Table of Contents
Withdrawal – to Saved Payment Method #
Use this flow when the user wants to withdraw funds to one of their saved IBAN payment methods. The same gateway endpoints as the generic “third-party IBAN” withdrawal are used, but the IBAN data comes from the stored payment method entry.
Prerequisites #
- Retrieve the user’s payment methods via
GET /api/v1/IndividualPaymentMethod/{individualId}. - Select an IBAN payment method (value = IBAN, owner/bank metadata, status Active).
1. (Optional) Calculate transfer fee #
POST https://api-test.10npay.com/app/get-money-transfer-charge
Payload is identical to other transfers (set PaymentType accordingly, e.g., P2IBANWithdrawal). Response → MoneyTransferChargeResponse.
2. Initiate withdrawal to saved payment method #
POST https://api-test.10npay.com/app/withdrawal-to-3rd-party-iban
| Field | Description |
|---|---|
sourceCustomerAccount |
User’s wallet IBAN. |
beneficiaryCustomerAccount |
IBAN from the selected payment method. |
beneficiaryCustomerName |
Name on the payment method / bank account. |
amount |
Withdrawal amount. |
currency |
Currency code (BGN). |
notes |
Payment reference (optional). |
deviceId |
Device fingerprint/ID. |
Response – SCA result (OTP/in-app). Keep the transfer context for execution.
3. Resend verification code #
POST https://api-test.10npay.com/app/resend-code-for-withdraw
Send the same payload as initiation when the OTP expires.
4. Execute withdrawal #
POST https://api-test.10npay.com/app/execute-withdrawal-to-3rd-party-iban
| Field | Description |
|---|---|
sourceCustomerAccount |
Source IBAN. |
beneficiaryCustomerAccount |
Beneficiary IBAN (same as initiation). |
beneficiaryCustomerName |
Beneficiary name. |
amount |
Amount. |
currency |
Currency. |
code |
OTP / confirmation code from SCA. |
deviceId |
Device fingerprint/ID. |
Response 200 – transaction ID. HTTP 202 indicates in-app SCA challenge still pending.
Error handling #
- 400 – validation (inactive payment method, invalid IBAN, insufficient funds, etc.).
- 404 – account/payment method not found.
- 500 – transient error (retry).
