Search Overlay

Bank deposit refunds

Offline bank transfer deposits allow customers to deposit funds using the vIBAN assigned to their accounts.

Refunds are used in cases the merchant wants to return the deposit to the customer.

The main difference between refund and withdrawal is that refund is triggered by the merchant, not by the customer.

Prerequisities for bank transfer refund:

  • Transaction paymentType must be BANK_TRANSFER

  • Transaction state must be COMPLETED

  • Transaction type must be DEPOSIT

  • One refund per deposit is allowed

  • The wallet account funding the refund must have the required refund amount

  • Refund amount is up to the deposit amount (partial refund is possible)

  • Refund is only forwarded back to the payment instrument associated to the deposit

  • Refund currency is the same as the deposit currency

  • Refund must have a merchant reference number so double refunding is not possible.

  • Refund does not require usual RISK details from the customer, since the operation is not triggered by him, but by the Merchant

Refund Steps

  1. Get deposit transaction details from Transaction update event webhook or Transaction API

    GET https://api2.test.paysafe.com/digitalwallets/v1/transactions/{transactionId}

    The transaction does not have merchantRefNum since it was created by Paysafe and the merchant was notified through webhook.

    For refund the id of the transaction, customerId and accountId are required.

     

    {
    "id": "5040057610",
    "slipId": "5009964049",
    "customerId": "5435323362",
    "accountId": "5014567344",
    "type": "DEPOSIT",
    "amount": 900,
    "currencyCode": "EUR",
    "fee": 100,
    "creationTime": "2021-07-15T17:54:12Z",
    "lastChangeDate": "2021-07-15T17:54:12Z",
    "direction": "CREDIT",
    "instrumentId": "1100000000000009",
    "paymentType": "BANK_TRANSFER",
    "status": "COMPLETED"
    }
  2. Call create refund API using the parameters.

    Merchant must provide merchangeRefNum for the new refund transaction.

    POST https://api2.test.paysafe.com/paymenthub/v1/settlements/{transactionId}/refunds

    {
    "merchantRefNum": "merchantRefNum-118",
    "amount": 190,
    "currencyCode": "EUR",
    "dupCheck": true,
    "wallet": {
    "customerId": "5435323362",
    "customerAccount": {
    "id": "5014567344"
    }
    }
    }
    {
    "id": "c7ef07b2-0069-4f58-b9e2-0f4cdbc6c725",
    "paymentType": "BANK_TRANSFER",
    "merchantRefNum": "merchantRefNum-118",
    "amount": 190,
    "currencyCode": "EUR",
    "txnTime": "2018-12-11T16:33:49Z",
    "status": "PROCESSING",
    "wallet": {
    "customerId": "5435323362",
    "customerAccount": {
    "id": "5014567344",
    "transactions" : [ {
    "id": "12321",
    "slipId": "5009964049",
    "type": "REFUND",
    "amount": 190,
    "currencyCode": "EUR",
    "creationTime": "2018-12-11T16:33:49Z",
    "direction": "DEBIT",
    "paymentType": "BANK_TRANSFER",
    "status": "PROCESSING",
    "merchantRefNum": "merchantRefNum-118"
    }]
    }
    },
    "gatewayReconciliationId": "2c8bc14c-8efd-4195-a7c9-15e371a30601",
    "gatewayResponse": {
    "processor": "WALLET"
    },
    "settlementId": "1c0d156c-445a-4171-8ddb-ef8fb4f01a74"
    }
  3. The merchant can poll the transaction API for status or will receive a webhook for the status of the refund transaction with the corresponding merchantRefNum

On this Page