View Categories

Withdrawal – to Payment Method

1 min read

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).