{"id":335,"date":"2024-06-14T15:21:04","date_gmt":"2024-06-14T15:21:04","guid":{"rendered":"https:\/\/developers.10npay.com\/?post_type=docs&#038;p=1075"},"modified":"2026-05-22T06:24:25","modified_gmt":"2026-05-22T06:24:25","password":"","slug":"money-transfer-in-10n-payment-p2p","status":"publish","type":"docs","link":"https:\/\/developers.10npay.com\/bg\/docs\/money-transfer-in-10n-payment-p2p\/","title":{"rendered":"Money transfer in 10n payment &#8211; P2P"},"content":{"rendered":"<h1>P2P Money Transfer (internal)<\/h1>\n<p>This flow covers transfers between two 10nPay individuals via the public gateway. It consists of fee calculation, initiation (SCA challenge), optional code resend, and execution.<\/p>\n<h2>0. (Optional) Determine transfer type<\/h2>\n<p>Call <code>GET \/api\/v1\/IndividualPayment\/{iban}\/is-internal-customer-account<\/code> to decide whether the beneficiary IBAN belongs to a 10nPay customer. If it returns <code>true<\/code>, follow the P2P steps below. Otherwise, use the third-party IBAN flow.<\/p>\n<h2>1. Calculate transfer fee<\/h2>\n<pre><code>POST https:\/\/api-test.10npay.com\/app\/get-money-transfer-charge\n<\/code><\/pre>\n<table>\n<thead>\n<tr>\n<th>Field<\/th>\n<th>Type<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>customerAccount<\/code><\/td>\n<td>string<\/td>\n<td>Source IBAN.<\/td>\n<\/tr>\n<tr>\n<td><code>amount<\/code><\/td>\n<td>number<\/td>\n<td>Transfer amount.<\/td>\n<\/tr>\n<tr>\n<td><code>id<\/code><\/td>\n<td>integer<\/td>\n<td>Source individual ID.<\/td>\n<\/tr>\n<tr>\n<td><code>PaymentType<\/code><\/td>\n<td>string<\/td>\n<td>Use <code>P2P<\/code> for this scenario.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Response 200<\/strong> \u2013 <code>MoneyTransferChargeResponse<\/code> (account balance, fee, fee currency, etc.).<\/p>\n<h2>2. Initiate P2P transfer (start SCA)<\/h2>\n<pre><code>POST https:\/\/api-test.10npay.com\/app\/{beneficiaryIndividualId}\/p2p-money-transfer\n<\/code><\/pre>\n<table>\n<thead>\n<tr>\n<th>Field<\/th>\n<th>Type<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>sourceCustomerAccount<\/code><\/td>\n<td>string<\/td>\n<td>Source IBAN.<\/td>\n<\/tr>\n<tr>\n<td><code>beneficiaryCustomerAccount<\/code><\/td>\n<td>string<\/td>\n<td>Beneficiary IBAN.<\/td>\n<\/tr>\n<tr>\n<td><code>transactionAmount<\/code><\/td>\n<td>number<\/td>\n<td>Amount in BGN.<\/td>\n<\/tr>\n<tr>\n<td><code>paymentNotes<\/code><\/td>\n<td>string?<\/td>\n<td>Optional reference.<\/td>\n<\/tr>\n<tr>\n<td><code>deviceId<\/code><\/td>\n<td>string<\/td>\n<td>Device fingerprint\/ID.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Response<\/strong> \u2013 returns an SCA status (HTTP 200). If SMS\/OTP or in-app approval is needed, the client must prompt the user accordingly.<\/p>\n<h2>3. Resend verification code<\/h2>\n<pre><code>POST https:\/\/api-test.10npay.com\/app\/{beneficiaryIndividualId}\/resend-code-p2p-money-transfer\n<\/code><\/pre>\n<p>Send the same payload as in step 2 when the OTP expired or was not received.<\/p>\n<h2>4. Execute P2P transfer<\/h2>\n<pre><code>POST https:\/\/api-test.10npay.com\/app\/{beneficiaryIndividualId}\/execute-p2p-money-transfer\n<\/code><\/pre>\n<table>\n<thead>\n<tr>\n<th>Field<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>sourceCustomerAccount<\/code><\/td>\n<td>Source IBAN.<\/td>\n<\/tr>\n<tr>\n<td><code>beneficiaryCustomerAccount<\/code><\/td>\n<td>Beneficiary IBAN.<\/td>\n<\/tr>\n<tr>\n<td><code>transactionAmount<\/code><\/td>\n<td>Amount.<\/td>\n<\/tr>\n<tr>\n<td><code>paymentNotes<\/code><\/td>\n<td>Optional reference.<\/td>\n<\/tr>\n<tr>\n<td><code>code<\/code><\/td>\n<td>OTP \/ SCA code (if required).<\/td>\n<\/tr>\n<tr>\n<td><code>deviceId<\/code><\/td>\n<td>Device fingerprint\/ID.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Response 200<\/strong> \u2013 transaction ID (string). If SCA via app is pending, the gateway may return HTTP 202 (Accepted) and the mobile app must poll\/finish the in-app challenge before final success.<\/p>\n<h2>Error handling<\/h2>\n<ul>\n<li><strong>400<\/strong> \u2013 validation errors (e.g., insufficient balance, invalid accounts).<\/li>\n<li><strong>404<\/strong> \u2013 beneficiary not found.<\/li>\n<li><strong>429<\/strong> \u2013 too many attempts.<\/li>\n<li><strong>500<\/strong> \u2013 retry later.<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>P2P Money Transfer (internal) This flow covers transfers between two 10nPay individuals via the public gateway. It consists of fee calculation, initiation (SCA challenge), optional code resend, and execution. 0. (Optional) Determine transfer type Call GET \/api\/v1\/IndividualPayment\/{iban}\/is-internal-customer-account to decide whether the beneficiary IBAN belongs to a 10nPay customer. If it returns true, follow the P2P [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[52],"doc_tag":[],"knowledge_base":[33],"class_list":["post-335","docs","type-docs","status-publish","hentry","doc_category-payment-operation-incl-call-for-fee-calculation","knowledge_base-10npay"],"year_month":"2026-07","word_count":253,"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":"Payment Operation (incl. Call for fee calculation)","term_url":"https:\/\/developers.10npay.com\/bg\/docs\/10npay\/payment-operation-incl-call-for-fee-calculation\/"}],"doc_tag_info":[],"knowledge_base_info":[{"term_name":"10npay","term_url":"https:\/\/developers.10npay.com\/bg\/docs\/10npay\/","term_slug":"10npay"}],"knowledge_base_slug":["10npay"],"_links":{"self":[{"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/docs\/335","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=335"}],"version-history":[{"count":1,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/docs\/335\/revisions"}],"predecessor-version":[{"id":414,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/docs\/335\/revisions\/414"}],"wp:attachment":[{"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/media?parent=335"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/doc_category?post=335"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/doc_tag?post=335"},{"taxonomy":"knowledge_base","embeddable":true,"href":"https:\/\/developers.10npay.com\/bg\/wp-json\/wp\/v2\/knowledge_base?post=335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}