Payment Status Callback

Whenever the user completes a deposit, we will send a notification callback to acknowledge this on our end. In case the deposit was completed successfully, the notification is sent to the URL specified within the field ‘returnUrl’ passed within the init-iframe request. In case an error happens on our end, we will send the notification on the ‘errorUrl’ if this is passed to us.

Once you receive our below notification on either the returnUrl or errorUrl, you are expected to call the payment-status API to retrieve the status. You should move funds to the user only upon receiving the status SUCCESSFUL within the response.

We highly recommend to configure both returnUrl and errorUrl such that you capture all notifications from our end. These URLs can also be identical as long as you always call the /payment-status API after receiving the notifications.

The notification callback structure is the below:

{
  "sourceMoney": {
    "amount": 150,
    "currency": "EUR",
    "presentationAmount": "EUR150.00"
  },
  "destinationMoney": {
    "amount": 150,
    "currency": "EUR",
    "presentationAmount": "EUR150.00"
  },
  "totalFees": {
    "amount": 0,
    "currency": "EUR",
    "presentationAmount": "EUR0.00"
  },
  "exchangeRate": null,
  "traceId": "traceIdKf9BRLbkAzKCO~ilV1Ga~",
  "money": {
    "amount": 150,
    "currency": "EUR",
    "presentationAmount": "EUR150.00"
  },
  "description": "Test",
  "clientReference": "Sherlock Holmes",
  "validationKey": "i3Kk40d5m0pP~L0BOrGPgSakPLBAV1BFc2QRWMp~Z2mz2ao~rCXuaBsQIfrX7~KdzBiucKQ0AVQkdKMil_Wy0_rM6V7KyvCalB0j8bpgzDTNYE_ix5eqdyYVdDw4",
  "cardToken": null,
  "responseCode": "dwcGXOe3OweA8E1X9g7N2BfYT6w77rLLg78PrLpqKHc=",
  "captureToken": null,
  "transactionReference": "879ff0d1-6a52-420e-9480-3c964ba633e3",
  "paymentType": "EWALLET",
  "sfaRequired": null,
  "siteReference": null,
  "customerAccountNumber": "5001000001213949",
  "customerAccountNumberType": null,
  "customerDob": [
    1993,
    10,
    31
  ],
  "customerPostCode": null,
  "customerFirstName": "anish",
  "customerLastName": "shah",
  "senderEmailAddress": "[email protected]",
  "paymentMethod": "giropay",
  "accountNumber": "500100XXXXXX3949",
  "customerCountryCode": "DE",
  "requestedMoney": {
    "amount": 150,
    "currency": "EUR",
    "presentationAmount": "EUR150.00"
  }
}
{
  "errorMessage": "Deposit attempt abandoned",
  "traceId": "traceIdPjrLbtlaLw7uiUMqU5ryO",
  "validationKey": "a139XMP2SLEvngp_ICppyaRywP47_Q8_VK0eRKHdcuWPzqseaUrg98dKJnLjSdE8o6BwqF1bLUDkMRuEgkWYTc~udj4AQAV6WRxLaXzJ_y~zP~qlx8KEOOZlIakH",
  "detailedStatus": "ABANDONED_BY_USER"
}
{
  "errorMessage": "Deposit attempt abandoned",
  "traceId": "traceIdcAD4kumMM0Pdhxj8NApx_",
  "validationKey": "JEYGrBqqswCWxvmyfvzOzh69d6SULU5odbf4c1AZR3isRCtoWj~w8WLVs7obeJ~NgUD1kvYbIRcMEMMDABi_csRfPaEVqLjS8_lbbxvs3GfoHGG0QHMwJP4t_ueJ",
  "detailedStatus": "REFUSED_BY_RISK"
}
{
  "errorMessage": "Type: TRANSACTION_FAILED. Args: [null]",
  "traceId": "traceIdPAAqMhRpxrBqD59qJPRtZ",
  "validationKey": "_Gzwj3A1pn~f3TbX4AdIWCGiunIP3KzN_KF5C55XtyI_B25NoeK0WqE4PZ7aegwrqQqu9F8eCOtdLI2jycSmffG8AkXrSJI35doa7bBBeoTN4Ty4S741KJgOoB81",
  "detailedStatus": "FAILED"
}

📘

Note: please ignore any additional fields passed within this response.


What’s Next