{"id":212,"date":"2023-08-22T11:09:22","date_gmt":"2023-08-22T11:09:22","guid":{"rendered":"https:\/\/developers.10npay.com\/docs\/consent-first-registration\/"},"modified":"2026-05-28T09:12:20","modified_gmt":"2026-05-28T09:12:20","password":"","slug":"consent-first-registration","status":"publish","type":"docs","link":"https:\/\/developers.10npay.com\/bg\/docs\/consent-first-registration\/","title":{"rendered":"Consent &#8211; First Registration"},"content":{"rendered":"<p><span style=\"font-size: 16px;\"><\/span><\/p>\r\n<h5 id=\"0-toc-title\" class=\"wp-block-heading\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">General Information<\/span><\/h5>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">The Consent registration for using 10n Payments accounts goes through three steps.<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><strong>Step 1: \u00a0API INPUT Parameters<\/strong><\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">The application should send a request for consent registration of 10n payments account (IBAN, currency), for which operations the consent will be valid \u2013 detailed information, balance, transactions, as well as data on when the consent is valid (validUntil respectively available the accounts specified in it, how many times a day (frequencyPerDay) can be accessed information about each account.<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><strong>Step 2: Consent Authentication by the customer<\/strong><\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">The customer authenticate via his operational SCA App that he allow his 10n payment\u2019s account to be used in TPP\/AISP.<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><strong>IMPORTANT<\/strong>: Wallet and Strong Customer Authentication Apps are paired with the mobile phone number provided by the customer during onboarding. Based on this phone number connected to the customer\u2019s IBAN, PSD2 HUB Calls the 10n Payment SCA Engine to authenticate the customer.<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><strong>NOTE:<\/strong>\u00a0If this does not happen within a defined time interval relative to the registration, the content is marked as Rejected, and the accounts on it are not available. The time is currently set on 20 minutes.<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><strong>STEP 3: Generate CONSENT ID in PSD2 HUB<\/strong><\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">Based on the REQUEST provided in STEP1, and after successful authentication, PSD2 HUB generate the consent ID and provides the ID to the TPP\/AISP in RESPONSE to the REQUEST in STEP1.<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">Based on consent ID TPP\/AISP can check its status and detailed information. The consent statuses now are:<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<ul class=\"wp-block-list\" style=\"text-align: justify;\">\r\n<li><span style=\"font-size: 20px;\">Received<\/span><\/li>\r\n\r\n\r\n\r\n<li><span style=\"font-size: 20px;\">Valid<\/span><\/li>\r\n<li><span style=\"font-size: 20px;\">Rejected<\/span><\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">The characteristic of PSD2 is that each registered consent is accessed through a unique ID generated by the server-side of the PSD2 implementation \u2013 all accounts, accounts, payments first pass phase registration, then authorization phase and finally can be used through this ID.<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">In addition, each PSD2 API reference must carry a unique reference number in an X-Request-ID header, with the answer echoing in the same header. In case of an error in the response body, there may be a JSON with the error text, for example:<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><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=\"no-wrap language-php\"><\/span><\/p>\r\n<pre class=\"dm-pre-admin-side\"><span style=\"font-size: 20px;\">{\r\n  \"code\": 404,\r\n  \"description\": \"There is no consent with that ID!\"\r\n}<\/span><\/pre>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div><\/span><\/p>\r\n<h5 style=\"text-align: justify;\"><span style=\"font-size: 20px;\">End-point url<br \/><\/span><\/h5>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><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=\"no-wrap language-php\"><\/span><\/p>\r\n<pre class=\"dm-pre-admin-side\"><span style=\"font-size: 20px;\">http:\/\/[ip]:[port]\/psd2\/v1\/consents<\/span><\/pre>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div><\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><strong>Method: <\/strong>POST <\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<h5 style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><strong>HEADERS<\/strong><\/span><\/h5>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<ul style=\"text-align: justify;\">\r\n<li><span style=\"font-size: 20px;\"><strong>X-Request-ID = [request-id]:<\/strong> Required header, a unique request ID (GUID).<\/span><\/li>\r\n<li><span style=\"font-size: 20px;\"><strong>Content-Type: application\/json:<\/strong> Required header.<\/span><\/li>\r\n<li><span style=\"font-size: 20px;\"><strong>PSU-ID: [user-id]:<\/strong> User identifier received upon login, required.<\/span><\/li>\r\n<\/ul>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<h5 style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><strong>Request<\/strong><\/span><\/h5>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><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=\"no-wrap language-php\"><\/span><\/p>\r\n<pre class=\"dm-pre-admin-side\"><span style=\"font-size: 20px;\">{\r\n\t\"access\": {\r\n\t\t\"balances\": [\r\n\t\t\t{\r\n\t\t\t\t\"iban\": \"BG53TEPJ401310010XXXXX\",\r\n\t\t\t\t\"currency\": \"BGN\"\r\n\t\t\t}\r\n\t\t],\r\n\t\t\"transactions\": [\r\n\t\t\t{\r\n\t\t\t\t\"iban\": \"BG53TEPJ401310010XXXXX\",\r\n\t\t\t\t\"currency\": \"BGN\"\r\n\t\t\t}\r\n\t\t],\r\n\t\t\"accounts\": [\r\n\t\t\t{\r\n\t\t\t\t\"iban\": \"BG53TEPJ401310010XXXXX\",\r\n\t\t\t\t\"currency\": \"BGN\"\r\n\t\t\t}\r\n\t\t]\r\n\t},\r\n\t\"validUntil\": \"2020-01-01\",\r\n\t\"frequencyPerDay\": \"4\"\r\n}<\/span><\/pre>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div><\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<h5 style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><strong>Response<br \/><\/strong><\/span><\/h5>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><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=\"no-wrap language-php\"><\/span><\/p>\r\n<pre class=\"dm-pre-admin-side\"><span style=\"font-size: 20px;\">{\r\n\t\"consentStatus\": \"Received\",\r\n\t\"consentId\": \"697e95aa-8508-4bba-8efc-1e3259a763f4\",\r\n\t\"_links\": {\r\n\t\t\"self\": {\r\n\t\t\t\"href\": \"\/v1\/consents\/697e95aa-8508-4bba-8efc-1e3259a763f4\"\r\n\t\t},\r\n\t\t\"status\": {\r\n\t\t\t\"href\": \"\/v1\/consents\/697e95aa-8508-4bba-8efc-1e3259a763f4\/status\"\r\n\t\t},\r\n\t\t\"startAuthorisationWithPsuAuthentication\": {\r\n\t\t\t\"href\": \"\/v1\/consents\/697e95aa-8508-4bba-8efc-1e3259a763f4\/authorisations\"\r\n\t\t}\r\n\t}\r\n}<\/span><\/pre>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\"><\/code><\/pre>\n\t\t\t<\/div>\n        <\/div><\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<h5 id=\"4-toc-title\" class=\"wp-block-heading\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">Remarks<\/span><\/h5>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">The account\/IBAN to be registered can appear in one of the three lists of accounts: balances, transactions, and accounts. Presence in one of the three lists indicates valid transactions with that account &#8211; respectively &#8211; balance inquiry, transaction list, and account detail information. If an account appears in balances and\/or transactions &#8211; it means that it is implicitly included in the list for detailed information &#8211; accounts.<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">ConsentId field should be sent as header Consent-ID value in subsequent operations with this consent &#8211; authentication, status etc.<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">self &#8211; link for detailed information in GET request for this consent, then the links for accessing the resources\/accounts themselves are displayed (accounts are accessed not by IBAN, but by their generated IDs for this consent)<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">status &#8211; link to get the status of the consent.<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<p class=\"wp-block-paragraph\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">startAuthorisationWithPsuAuthentication &#8211; basic link for authentication of the account.<\/span><\/p>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<\/span><\/p>\r\n<h5 id=\"snppet\" class=\"wp-block-heading\" style=\"text-align: justify;\"><span style=\"font-size: 20px;\">Snippet<\/span><\/h5>\r\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">\r\n\r\n<p><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: 20px;\">[codesnippet id=&#8221;2&#8243;]<\/span><\/p>\n<p><span style=\"font-size: 16px;\"><\/p>\n<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>General Information The Consent registration for using 10n Payments accounts goes through three steps. Step 1: \u00a0API INPUT Parameters The application should send a request for consent registration of 10n payments account (IBAN, currency), for which operations the consent will be valid \u2013 detailed information, balance, transactions, as well as data on when the consent [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[39],"doc_tag":[],"knowledge_base":[34],"class_list":["post-212","docs","type-docs","status-publish","hentry","doc_category-l-consents","knowledge_base-psd2"],"year_month":"2026-05","word_count":713,"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":[{"term_name":"ll. Consents","term_url":"https:\/\/developers.10npay.com\/bg\/docs\/psd2\/l-consents\/"}],"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\/212","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=212"}],"version-history":[{"count":1,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/docs\/212\/revisions"}],"predecessor-version":[{"id":434,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/docs\/212\/revisions\/434"}],"wp:attachment":[{"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/media?parent=212"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/doc_category?post=212"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/doc_tag?post=212"},{"taxonomy":"knowledge_base","embeddable":true,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/knowledge_base?post=212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}