{"id":126,"date":"2025-09-09T13:45:35","date_gmt":"2025-09-09T13:45:35","guid":{"rendered":"https:\/\/developers.10npay.com\/?post_type=docs&#038;p=1545"},"modified":"2026-05-15T09:25:02","modified_gmt":"2026-05-15T09:25:02","password":"","slug":"user-add-additional-data","status":"publish","type":"docs","link":"https:\/\/developers.10npay.com\/bg\/docs\/user-add-additional-data\/","title":{"rendered":"User \u2014 Add Additional Data"},"content":{"rendered":"<h1 style=\"text-align: center\" data-start=\"0\" data-end=\"46\"><span style=\"font-size: 32px\"> User \u2014 Add Additional Data (Risk\/KYC) API<\/span><\/h1>\n<p data-start=\"48\" data-end=\"211\"><strong data-start=\"48\" data-end=\"65\">Gateway Path:<\/strong> <code data-start=\"66\" data-end=\"93\">\/User\/add-additional-data<\/code><br data-start=\"93\" data-end=\"96\" \/><strong data-start=\"96\" data-end=\"108\">Service:<\/strong> Authentication &amp; Authorization<br data-start=\"139\" data-end=\"142\" \/><strong data-start=\"142\" data-end=\"153\">Method:<\/strong> <code data-start=\"154\" data-end=\"160\">POST<\/code><br data-start=\"160\" data-end=\"163\" \/><strong data-start=\"163\" data-end=\"172\">Auth:<\/strong> Bearer token in <code data-start=\"189\" data-end=\"204\">Authorization<\/code> header<\/p>\n<hr data-start=\"213\" data-end=\"216\" \/>\n<h2 data-start=\"218\" data-end=\"245\"><span style=\"font-size: 28px\">1)  Overview &amp; Purpose<\/span><\/h2>\n<p data-start=\"246\" data-end=\"539\">Persists <strong data-start=\"255\" data-end=\"288\">risk &amp; KYC-related attributes<\/strong> for a user in a structured JSON payload.<br data-start=\"329\" data-end=\"332\" \/>All values in <code data-start=\"346\" data-end=\"367\">additionalData.data<\/code> must be <strong data-start=\"376\" data-end=\"421\">sourced from the KYC verification process<\/strong> (i.e., retrieved by calling the KYC-related endpoints in your flow) and then submitted here in one consolidated call.<\/p>\n<blockquote data-start=\"541\" data-end=\"748\">\n<p data-start=\"543\" data-end=\"748\"><span style=\"font-size: 20px\"> <em data-start=\"546\" data-end=\"564\">Source of truth:<\/em> \u201cKYC verification process\u201d endpoints (questionnaires, address capture, device\/location capture, BTrust callback, etc.). This endpoint <strong data-start=\"699\" data-end=\"719\">does not compute<\/strong> values; it only stores them.<\/span><\/p>\n<\/blockquote>\n<hr data-start=\"750\" data-end=\"753\" \/>\n<h2 data-start=\"755\" data-end=\"783\"><span style=\"font-size: 28px\">2)  Endpoint Definition<\/span><\/h2>\n<p data-start=\"784\" data-end=\"826\"><strong data-start=\"784\" data-end=\"793\">HTTP:<\/strong> <code data-start=\"794\" data-end=\"826\">POST \/User\/add-additional-data<\/code><\/p>\n<h3 data-start=\"828\" data-end=\"839\"><span style=\"font-size: 24px\">Headers<\/span><\/h3>\n<ul data-start=\"840\" data-end=\"931\">\n<li data-start=\"840\" data-end=\"896\">\n<p data-start=\"842\" data-end=\"896\"><code data-start=\"842\" data-end=\"873\">Authorization: Bearer &lt;token&gt;<\/code> \u2014 valid access token<\/p>\n<\/li>\n<li data-start=\"897\" data-end=\"931\">\n<p data-start=\"899\" data-end=\"931\"><code data-start=\"899\" data-end=\"931\">Content-Type: application\/json<\/code><\/p>\n<\/li>\n<\/ul>\n<h3 data-start=\"933\" data-end=\"961\"><span style=\"font-size: 24px\">Request Body (structure)<\/span><\/h3>\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\n<div class=\"sticky top-9\">\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\n<div class=\"bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><div class=\"dm-code-snippet dark default  dm-normal-version\" style=\"background-color:#abb8c3;\" snippet-height=\"\">\n\t\t\t<div class=\"control-language\">\n                <div class=\"dm-buttons\">\n                    <div class=\"dm-buttons-left\">\n                        <div class=\"dm-button-snippet red-button\"><\/div>\n                        <div class=\"dm-button-snippet orange-button\"><\/div>\n                        <div class=\"dm-button-snippet green-button\"><\/div>\n                    <\/div>\n                    <div class=\"dm-buttons-right\">\n                        <a id=\"dm-copy-raw-code\">\n                        <span class=\"dm-copy-text\">Copy Code<\/span>\n                        <span class=\"dm-copy-confirmed\" style=\"display:none\">Copied<\/span>\n                        <span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a>\n                    <\/div>\n                <\/div>\n                <pre class=\"no-line-numbers\"><code id=\"dm-code-raw\" class=\"wrap language-php\"><\/p>\n<pre class=\"dm-pre-admin-side\">{\r\n    \"id\": 2077,\r\n    \"additionalData\": {\r\n        \"type\": \"EnrollAdditionalData\",\r\n        \"data\": {\r\n            \"userId\": 2077,\r\n            \"BTrustAppCallBackId\": \"\",\r\n            \"isCorrespondenceAddressSame\": true,\r\n            \"sourceOfFundId\": \"8\",\r\n            \"residenceAddressZipCode\": \"1000\",\r\n            \"correspondenceAddress\": {\r\n                \"addressType\": \"C\",\r\n                \"addressLine\": \"\",\r\n                \"city\": \"\",\r\n                \"stateProvinceCounty\": \"\",\r\n                \"zipCode\": \"\",\r\n                \"countryId\": \"BG\"\r\n            },\r\n            \"secondaryLanguage\": \"BUL\",\r\n            \"taxResidences\": \"BG\",\r\n            \"gender\": \"M\",\r\n            \"accountPurposeCode\": \"1\",\r\n            \"mainActivityCode\": \"1\",\r\n            \"financingMethodCode\": \"2\",\r\n            \"enrollIP\": \"203.0.113.24\",\r\n            \"enrollLatitude\": 42.6975,\r\n            \"enrollLongitude\": 23.3241,\r\n            \"enrollChannel\": \"M\"\r\n        }\r\n    }\r\n}<\/pre>\n<p><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div><\/p><\/div>\n<\/div>\n<h3 data-start=\"1754\" data-end=\"1764\"><span style=\"font-size: 24px\">Fields<\/span><\/h3>\n<ul data-start=\"1765\" data-end=\"3387\">\n<li data-start=\"1765\" data-end=\"1846\">\n<p data-start=\"1767\" data-end=\"1846\"><strong data-start=\"1767\" data-end=\"1773\">id<\/strong> <em data-start=\"1774\" data-end=\"1802\">(integer, required, int32)<\/em> \u2014 User identifier, range <code data-start=\"1828\" data-end=\"1843\">1..2147483647<\/code>.<\/p>\n<\/li>\n<li data-start=\"1847\" data-end=\"3387\">\n<p data-start=\"1849\" data-end=\"1890\"><strong data-start=\"1849\" data-end=\"1867\">additionalData<\/strong> <em data-start=\"1868\" data-end=\"1888\">(object, required)<\/em><\/p>\n<ul data-start=\"1893\" data-end=\"3387\">\n<li data-start=\"1893\" data-end=\"1982\">\n<p data-start=\"1895\" data-end=\"1982\"><strong data-start=\"1895\" data-end=\"1903\">type<\/strong> <em data-start=\"1904\" data-end=\"1924\">(string, required)<\/em> \u2014 Fixed contract marker, e.g. <code data-start=\"1955\" data-end=\"1979\">\"EnrollAdditionalData\"<\/code>.<\/p>\n<\/li>\n<li data-start=\"1985\" data-end=\"3387\">\n<p data-start=\"1987\" data-end=\"2039\"><strong data-start=\"1987\" data-end=\"1995\">data<\/strong> <em data-start=\"1996\" data-end=\"2016\">(object, required)<\/em> \u2014 KYC\/risk attributes:<\/p>\n<ul data-start=\"2044\" data-end=\"3387\">\n<li data-start=\"2044\" data-end=\"2096\">\n<p data-start=\"2046\" data-end=\"2096\"><strong data-start=\"2046\" data-end=\"2056\">userId<\/strong> <em data-start=\"2057\" data-end=\"2078\">(integer, required)<\/em> \u2014 Mirrors <code data-start=\"2089\" data-end=\"2093\">id<\/code>.<\/p>\n<\/li>\n<li data-start=\"2101\" data-end=\"2168\">\n<p data-start=\"2103\" data-end=\"2168\"><strong data-start=\"2103\" data-end=\"2126\">BTrustAppCallBackId<\/strong> <em data-start=\"2127\" data-end=\"2137\">(string)<\/em> \u2014 From BTrust callback step.<\/p>\n<\/li>\n<li data-start=\"2173\" data-end=\"2268\">\n<p data-start=\"2175\" data-end=\"2268\"><strong data-start=\"2175\" data-end=\"2206\">isCorrespondenceAddressSame<\/strong> <em data-start=\"2207\" data-end=\"2228\">(boolean, required)<\/em> \u2014 Whether correspondence = residence.<\/p>\n<\/li>\n<li data-start=\"2273\" data-end=\"2347\">\n<p data-start=\"2275\" data-end=\"2347\"><strong data-start=\"2275\" data-end=\"2293\">sourceOfFundId<\/strong> <em data-start=\"2294\" data-end=\"2314\">(string, required)<\/em> \u2014 Code from the SoF selection.<\/p>\n<\/li>\n<li data-start=\"2352\" data-end=\"2423\">\n<p data-start=\"2354\" data-end=\"2423\"><strong data-start=\"2354\" data-end=\"2381\">residenceAddressZipCode<\/strong> <em data-start=\"2382\" data-end=\"2392\">(string)<\/em> \u2014 Residence ZIP\/postal code.<\/p>\n<\/li>\n<li data-start=\"2428\" data-end=\"2688\">\n<p data-start=\"2430\" data-end=\"2517\"><strong data-start=\"2430\" data-end=\"2455\">correspondenceAddress<\/strong> <em data-start=\"2456\" data-end=\"2515\">(object, required if <code data-start=\"2478\" data-end=\"2513\">isCorrespondenceAddressSame=false<\/code>)<\/em><\/p>\n<ul data-start=\"2524\" data-end=\"2688\">\n<li data-start=\"2524\" data-end=\"2586\">\n<p data-start=\"2526\" data-end=\"2586\"><strong data-start=\"2526\" data-end=\"2541\">addressType<\/strong> <em data-start=\"2542\" data-end=\"2552\">(string)<\/em> \u2014 e.g., <code data-start=\"2561\" data-end=\"2566\">\"C\"<\/code> (correspondence).<\/p>\n<\/li>\n<li data-start=\"2593\" data-end=\"2688\">\n<p data-start=\"2595\" data-end=\"2688\"><strong data-start=\"2595\" data-end=\"2610\">addressLine<\/strong>, <strong data-start=\"2612\" data-end=\"2620\">city<\/strong>, <strong data-start=\"2622\" data-end=\"2645\">stateProvinceCounty<\/strong>, <strong data-start=\"2647\" data-end=\"2658\">zipCode<\/strong>, <strong data-start=\"2660\" data-end=\"2673\">countryId<\/strong> <em data-start=\"2674\" data-end=\"2685\">(strings)<\/em>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-start=\"2693\" data-end=\"2764\">\n<p data-start=\"2695\" data-end=\"2764\"><strong data-start=\"2695\" data-end=\"2716\">secondaryLanguage<\/strong> <em data-start=\"2717\" data-end=\"2727\">(string)<\/em> \u2014 Language code; from profile\/KYC.<\/p>\n<\/li>\n<li data-start=\"2769\" data-end=\"2844\">\n<p data-start=\"2771\" data-end=\"2844\"><strong data-start=\"2771\" data-end=\"2788\">taxResidences<\/strong> <em data-start=\"2789\" data-end=\"2809\">(string, required)<\/em> \u2014 Country code(s), e.g., <code data-start=\"2835\" data-end=\"2841\">\"BG\"<\/code>.<\/p>\n<\/li>\n<li data-start=\"2849\" data-end=\"2916\">\n<p data-start=\"2851\" data-end=\"2916\"><strong data-start=\"2851\" data-end=\"2861\">gender<\/strong> <em data-start=\"2862\" data-end=\"2872\">(string)<\/em> \u2014 <code data-start=\"2875\" data-end=\"2880\">\"M\"<\/code>, <code data-start=\"2882\" data-end=\"2887\">\"F\"<\/code>, or policy-defined values.<\/p>\n<\/li>\n<li data-start=\"2921\" data-end=\"2990\">\n<p data-start=\"2923\" data-end=\"2990\"><strong data-start=\"2923\" data-end=\"2945\">accountPurposeCode<\/strong> <em data-start=\"2946\" data-end=\"2966\">(string, required)<\/em> \u2014 Purpose of account.<\/p>\n<\/li>\n<li data-start=\"2995\" data-end=\"3066\">\n<p data-start=\"2997\" data-end=\"3066\"><strong data-start=\"2997\" data-end=\"3017\">mainActivityCode<\/strong> <em data-start=\"3018\" data-end=\"3038\">(string, required)<\/em> \u2014 Customer main activity.<\/p>\n<\/li>\n<li data-start=\"3071\" data-end=\"3137\">\n<p data-start=\"3073\" data-end=\"3137\"><strong data-start=\"3073\" data-end=\"3096\">financingMethodCode<\/strong> <em data-start=\"3097\" data-end=\"3117\">(string, required)<\/em> \u2014 Funding method.<\/p>\n<\/li>\n<li data-start=\"3142\" data-end=\"3208\">\n<p data-start=\"3144\" data-end=\"3208\"><strong data-start=\"3144\" data-end=\"3156\">enrollIP<\/strong> <em data-start=\"3157\" data-end=\"3177\">(string, required)<\/em> \u2014 IP captured at enrollment.<\/p>\n<\/li>\n<li data-start=\"3213\" data-end=\"3306\">\n<p data-start=\"3215\" data-end=\"3306\"><strong data-start=\"3215\" data-end=\"3233\">enrollLatitude<\/strong>, <strong data-start=\"3235\" data-end=\"3254\">enrollLongitude<\/strong> <em data-start=\"3255\" data-end=\"3265\">(number)<\/em> \u2014 Geo coordinates captured during KYC.<\/p>\n<\/li>\n<li data-start=\"3311\" data-end=\"3387\">\n<p data-start=\"3313\" data-end=\"3387\"><strong data-start=\"3313\" data-end=\"3330\">enrollChannel<\/strong> <em data-start=\"3331\" data-end=\"3351\">(string, required)<\/em> \u2014 <code data-start=\"3354\" data-end=\"3359\">\"M\"<\/code> (mobile), <code data-start=\"3370\" data-end=\"3375\">\"W\"<\/code> (web), etc.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<blockquote data-start=\"3389\" data-end=\"3565\">\n<p data-start=\"3391\" data-end=\"3565\"><span style=\"font-size: 20px\"> <strong data-start=\"3393\" data-end=\"3407\">Important:<\/strong> some field above must be <strong data-start=\"3433\" data-end=\"3468\">fetched from KYC flow endpoints<\/strong> prior to calling this API.<\/span><\/p>\n<\/blockquote>\n<hr data-start=\"3567\" data-end=\"3570\" \/>\n<h2 data-start=\"3572\" data-end=\"3590\"><span style=\"font-size: 28px\">3)  Responses<\/span><\/h2>\n<h3 data-start=\"3592\" data-end=\"3618\"><span style=\"font-size: 24px\"> 3.1 Success \u2014 200 OK<\/span><\/h3>\n<p data-start=\"3619\" data-end=\"3743\">The additional data was stored successfully.<br data-start=\"3663\" data-end=\"3666\" \/><strong data-start=\"3666\" data-end=\"3675\">Body:<\/strong> none (or minimal confirmation, depending on gateway configuration).<\/p>\n<hr data-start=\"3745\" data-end=\"3748\" \/>\n<h3 data-start=\"3750\" data-end=\"3800\"><span style=\"font-size: 24px\"> 3.2 Server Error \u2014 500 Internal Server Error<\/span><\/h3>\n<p data-start=\"3801\" data-end=\"3881\">Unexpected failure.<br data-start=\"3820\" data-end=\"3823\" \/><strong data-start=\"3823\" data-end=\"3832\">Body:<\/strong> usually empty (use logs\/trace IDs from gateway).<\/p>\n<hr data-start=\"3883\" data-end=\"3886\" \/>\n<h2 data-start=\"3888\" data-end=\"3913\"><span style=\"font-size: 28px\">4)  Validation Rules<\/span><\/h2>\n<ul data-start=\"3914\" data-end=\"4466\">\n<li data-start=\"3914\" data-end=\"3960\">\n<p data-start=\"3916\" data-end=\"3960\"><strong data-start=\"3916\" data-end=\"3923\">id:<\/strong> required; integer <code data-start=\"3942\" data-end=\"3957\">1..2147483647<\/code>.<\/p>\n<\/li>\n<li data-start=\"3961\" data-end=\"4074\">\n<p data-start=\"3963\" data-end=\"4074\"><strong data-start=\"3963\" data-end=\"3987\">additionalData.type:<\/strong> required; must match contract (<code data-start=\"4019\" data-end=\"4043\">\"EnrollAdditionalData\"<\/code> or as defined by your spec).<\/p>\n<\/li>\n<li data-start=\"4075\" data-end=\"4170\">\n<p data-start=\"4077\" data-end=\"4170\"><strong data-start=\"4077\" data-end=\"4101\">additionalData.data:<\/strong> required; object must include all mandatory KYC fields per policy.<\/p>\n<\/li>\n<li data-start=\"4171\" data-end=\"4260\">\n<p data-start=\"4173\" data-end=\"4260\"><strong data-start=\"4173\" data-end=\"4200\">Correspondence address:<\/strong> required <strong data-start=\"4210\" data-end=\"4218\">only<\/strong> if <code data-start=\"4222\" data-end=\"4257\">isCorrespondenceAddressSame=false<\/code>.<\/p>\n<\/li>\n<li data-start=\"4261\" data-end=\"4370\">\n<p data-start=\"4263\" data-end=\"4370\"><strong data-start=\"4263\" data-end=\"4290\">Codes &amp; country fields:<\/strong> must use valid enumerations\/ISO codes (e.g., ISO-3166 alpha-2 for countries).<\/p>\n<\/li>\n<li data-start=\"4371\" data-end=\"4466\">\n<p data-start=\"4373\" data-end=\"4466\"><strong data-start=\"4373\" data-end=\"4386\">IP &amp; geo:<\/strong> if collected, provide canonical formats (IPv4\/IPv6 string; decimal lat\/long).<\/p>\n<\/li>\n<\/ul>\n<blockquote data-start=\"4468\" data-end=\"4602\">\n<p data-start=\"4470\" data-end=\"4602\"><span style=\"font-size: 20px\"> Apply server-side throttling and audit logging. Do not accept partially-populated data if policy requires a complete KYC dataset.<\/span><\/p>\n<\/blockquote>\n<hr data-start=\"4604\" data-end=\"4607\" \/>\n<h2 data-start=\"4609\" data-end=\"4669\"><span style=\"font-size: 28px\">5)  Data Sourcing \u2014 KYC Verification Process (Guidance)<\/span><\/h2>\n<div class=\"_tableContainer_1rjym_1\">\n<div class=\"_tableWrapper_1rjym_13 group flex w-fit flex-col-reverse\">\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"4671\" data-end=\"5209\">\n<thead data-start=\"4671\" data-end=\"4701\">\n<tr data-start=\"4671\" data-end=\"4701\">\n<th data-start=\"4671\" data-end=\"4679\" data-col-size=\"md\">Field<\/th>\n<th data-start=\"4679\" data-end=\"4701\" data-col-size=\"md\">Typical KYC Source<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"4712\" data-end=\"5209\">\n<tr data-start=\"4712\" data-end=\"4781\">\n<td data-start=\"4712\" data-end=\"4736\" data-col-size=\"md\"><code data-start=\"4714\" data-end=\"4735\">BTrustAppCallBackId<\/code><\/td>\n<td data-start=\"4736\" data-end=\"4781\" data-col-size=\"md\">Callback result from BTrust identity step- this param is not used for web identification<\/td>\n<\/tr>\n<tr data-start=\"4782\" data-end=\"4909\">\n<td data-start=\"4782\" data-end=\"4866\" data-col-size=\"md\"><code data-start=\"4784\" data-end=\"4800\">sourceOfFundId<\/code>, <code data-start=\"4802\" data-end=\"4822\">accountPurposeCode<\/code>, <code data-start=\"4824\" data-end=\"4842\">mainActivityCode<\/code>, <code data-start=\"4844\" data-end=\"4865\">financingMethodCode<\/code><\/td>\n<td data-start=\"4866\" data-end=\"4909\" data-col-size=\"md\">Appropriateness\/Questionnaire endpoints<\/td>\n<\/tr>\n<tr data-start=\"4910\" data-end=\"4998\">\n<td data-start=\"4910\" data-end=\"4959\" data-col-size=\"md\"><code data-start=\"4912\" data-end=\"4927\">taxResidences<\/code>, <code data-start=\"4929\" data-end=\"4937\">gender<\/code>, <code data-start=\"4939\" data-end=\"4958\">secondaryLanguage<\/code><\/td>\n<td data-start=\"4959\" data-end=\"4998\" data-col-size=\"md\">filled by the client<\/td>\n<\/tr>\n<tr data-start=\"4999\" data-end=\"5083\">\n<td data-start=\"4999\" data-end=\"5054\" data-col-size=\"md\"><code data-start=\"5001\" data-end=\"5026\">residenceAddressZipCode<\/code>, <code data-start=\"5028\" data-end=\"5053\">correspondenceAddress.*<\/code><\/td>\n<td data-start=\"5054\" data-end=\"5083\" data-col-size=\"md\">filled by the client<\/td>\n<\/tr>\n<tr data-start=\"5084\" data-end=\"5209\">\n<td data-start=\"5084\" data-end=\"5151\" data-col-size=\"md\"><code data-start=\"5086\" data-end=\"5096\">enrollIP<\/code>, <code data-start=\"5098\" data-end=\"5114\">enrollLatitude<\/code>, <code data-start=\"5116\" data-end=\"5133\">enrollLongitude<\/code>, <code data-start=\"5135\" data-end=\"5150\">enrollChannel<\/code><\/td>\n<td data-start=\"5151\" data-end=\"5209\" data-col-size=\"md\">Device context &amp; geolocation capture during enrollment<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p data-start=\"5211\" data-end=\"5301\"><em data-start=\"5211\" data-end=\"5301\">Implement the KYC flow first, cache\/collect results, then submit them via this endpoint.<\/em><\/p>\n<hr data-start=\"5303\" data-end=\"5306\" \/>\n<h2 data-start=\"5308\" data-end=\"5325\"><span style=\"font-size: 28px\">6)  Examples<\/span><\/h2>\n<h3 data-start=\"5327\" data-end=\"5339\"><span style=\"font-size: 24px\">6.1 cURL<\/span><\/h3>\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\n<div class=\"sticky top-9\">\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\"><\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><div class=\"dm-code-snippet dark default  dm-normal-version\" style=\"background-color:#abb8c3;\" snippet-height=\"\">\n\t\t\t<div class=\"control-language\">\n                <div class=\"dm-buttons\">\n                    <div class=\"dm-buttons-left\">\n                        <div class=\"dm-button-snippet red-button\"><\/div>\n                        <div class=\"dm-button-snippet orange-button\"><\/div>\n                        <div class=\"dm-button-snippet green-button\"><\/div>\n                    <\/div>\n                    <div class=\"dm-buttons-right\">\n                        <a id=\"dm-copy-raw-code\">\n                        <span class=\"dm-copy-text\">Copy Code<\/span>\n                        <span class=\"dm-copy-confirmed\" style=\"display:none\">Copied<\/span>\n                        <span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a>\n                    <\/div>\n                <\/div>\n                <pre class=\"no-line-numbers\"><code id=\"dm-code-raw\" class=\"wrap language-php\"><\/p>\n<pre class=\"dm-pre-admin-side\">\r\ncurl -X POST \"https:\/\/api-test.10npay.com\/User\/add-additional-data\"  -H \"Authorization: Bearer &lt;YOUR_SECRET_TOKEN&gt;\"  -H \"Content-Type: application\/json\"  -d @payload.json -i<\/pre>\n<p><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div><\/p><\/div>\n<\/div>\n<h3 data-start=\"5536\" data-end=\"5553\"><span style=\"font-size: 24px\">6.2 C# (.NET)<\/span><\/h3>\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\n<div class=\"sticky top-9\">\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\n<div class=\"bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><div class=\"dm-code-snippet dark default  dm-normal-version\" style=\"background-color:#abb8c3;\" snippet-height=\"\">\n\t\t\t<div class=\"control-language\">\n                <div class=\"dm-buttons\">\n                    <div class=\"dm-buttons-left\">\n                        <div class=\"dm-button-snippet red-button\"><\/div>\n                        <div class=\"dm-button-snippet orange-button\"><\/div>\n                        <div class=\"dm-button-snippet green-button\"><\/div>\n                    <\/div>\n                    <div class=\"dm-buttons-right\">\n                        <a id=\"dm-copy-raw-code\">\n                        <span class=\"dm-copy-text\">Copy Code<\/span>\n                        <span class=\"dm-copy-confirmed\" style=\"display:none\">Copied<\/span>\n                        <span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a>\n                    <\/div>\n                <\/div>\n                <pre class=\"no-line-numbers\"><code id=\"dm-code-raw\" class=\"wrap language-php\"><\/p>\n<pre class=\"dm-pre-admin-side\">using System.Net.Http; using System.Net.Http.Headers; var http = new HttpClient(); var req = new HttpRequestMessage(HttpMethod.Post, \"https:\/\/api-test.10npay.com\/User\/add-additional-data\"); req.Headers.Authorization = new AuthenticationHeaderValue(\"Bearer\", \"&lt;YOUR_SECRET_TOKEN&gt;\"); req.Content = new StringContent(System.IO.File.ReadAllText(\"payload.json\")); req.Content.Headers.ContentType = new MediaTypeHeaderValue(\"application\/json\"); using var res = await http.SendAsync(req); res.EnsureSuccessStatusCode(); \/\/ Expect 200 OK<\/pre>\n<p><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div><\/p><\/div>\n<\/div>\n<h3 data-start=\"6103\" data-end=\"6129\"><span style=\"font-size: 24px\">6.3 JavaScript (fetch)<\/span><\/h3>\n<div class=\"contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary\">\n<div class=\"sticky top-9\">\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\n<div class=\"bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs\"><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><div class=\"dm-code-snippet dark default  dm-normal-version\" style=\"background-color:#abb8c3;\" snippet-height=\"\">\n\t\t\t<div class=\"control-language\">\n                <div class=\"dm-buttons\">\n                    <div class=\"dm-buttons-left\">\n                        <div class=\"dm-button-snippet red-button\"><\/div>\n                        <div class=\"dm-button-snippet orange-button\"><\/div>\n                        <div class=\"dm-button-snippet green-button\"><\/div>\n                    <\/div>\n                    <div class=\"dm-buttons-right\">\n                        <a id=\"dm-copy-raw-code\">\n                        <span class=\"dm-copy-text\">Copy Code<\/span>\n                        <span class=\"dm-copy-confirmed\" style=\"display:none\">Copied<\/span>\n                        <span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a>\n                    <\/div>\n                <\/div>\n                <pre class=\"no-line-numbers\"><code id=\"dm-code-raw\" class=\"wrap language-php\"><\/p>\n<pre class=\"dm-pre-admin-side\">const body = {\/* build from KYC endpoints *\/}; await fetch(\"https:\/\/api-test.10npay.com\/User\/add-additional-data\", { method: \"POST\", headers: { Authorization: \"Bearer &lt;YOUR_SECRET_TOKEN&gt;\", \"Content-Type\": \"application\/json\" }, body: JSON.stringify(body) }); \/\/ Expect 200 OK<\/pre>\n<p><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div><\/p><\/div>\n<\/div>\n<hr data-start=\"6441\" data-end=\"6444\" \/>\n<h2 data-start=\"6446\" data-end=\"6463\"><span style=\"font-size: 24px\">7)  Sequence<\/span><\/h2>\n<ol data-start=\"6465\" data-end=\"6845\">\n<li data-start=\"6465\" data-end=\"6567\">\n<p data-start=\"6468\" data-end=\"6567\"><strong data-start=\"6468\" data-end=\"6495\">Client \u2192 KYC endpoints:<\/strong> Collect questionnaire, addresses, device\/IP, BTrust callback ID, etc.<\/p>\n<\/li>\n<li data-start=\"6568\" data-end=\"6682\">\n<p data-start=\"6571\" data-end=\"6682\"><strong data-start=\"6571\" data-end=\"6596\">Client \u2192 API Gateway:<\/strong> <code data-start=\"6597\" data-end=\"6629\">POST \/User\/add-additional-data<\/code> (Bearer, JSON body) with the consolidated payload.<\/p>\n<\/li>\n<li data-start=\"6683\" data-end=\"6731\">\n<p data-start=\"6686\" data-end=\"6731\"><strong data-start=\"6686\" data-end=\"6713\">Gateway \u2192 Auth Service:<\/strong> Validate token.<\/p>\n<\/li>\n<li data-start=\"6732\" data-end=\"6790\">\n<p data-start=\"6735\" data-end=\"6790\"><strong data-start=\"6735\" data-end=\"6762\">Gateway \u2192 User Service:<\/strong> Persist <code data-start=\"6771\" data-end=\"6787\">additionalData<\/code>.<\/p>\n<\/li>\n<li data-start=\"6791\" data-end=\"6845\">\n<p data-start=\"6794\" data-end=\"6845\"><strong data-start=\"6794\" data-end=\"6815\">Gateway \u2192 Client:<\/strong> <code data-start=\"6816\" data-end=\"6824\">200 OK<\/code> (or <code data-start=\"6829\" data-end=\"6834\">500<\/code> on error).<\/p>\n<\/li>\n<\/ol>","protected":false},"excerpt":{"rendered":"<p>User \u2014 Add Additional Data (Risk\/KYC) API Gateway Path: \/User\/add-additional-dataService: Authentication &amp; AuthorizationMethod: POSTAuth: Bearer token in Authorization header 1) Overview &amp; Purpose Persists risk &amp; KYC-related attributes for a user in a structured JSON payload.All values in additionalData.data must be sourced from the KYC verification process (i.e., retrieved by calling the KYC-related endpoints in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[],"doc_tag":[],"knowledge_base":[34],"class_list":["post-126","docs","type-docs","status-publish","hentry","knowledge_base-psd2"],"year_month":"2026-06","word_count":779,"total_views":0,"reactions":{"happy":0,"normal":0,"sad":0},"author_info":{"name":"10npaydev","author_nicename":"10npaydev","author_url":"https:\/\/developers.10npay.com\/bg\/author\/10npaydev\/"},"doc_category_info":[],"doc_tag_info":[],"knowledge_base_info":[{"term_name":"psd2","term_url":"https:\/\/developers.10npay.com\/bg\/docs\/psd2\/","term_slug":"psd2"}],"knowledge_base_slug":["psd2"],"_links":{"self":[{"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/docs\/126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/comments?post=126"}],"version-history":[{"count":1,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/docs\/126\/revisions"}],"predecessor-version":[{"id":139,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/docs\/126\/revisions\/139"}],"wp:attachment":[{"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/media?parent=126"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/doc_category?post=126"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/doc_tag?post=126"},{"taxonomy":"knowledge_base","embeddable":true,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/knowledge_base?post=126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}