Credit notifications
When a pay-in credits to your Volt account, a notification will be triggered and sent to the notifications web hook URL provided during onboarding.
Retry strategy
Once received you should return an HTTP 200
response code.
If a response is not received, or the code you return is not 200
, we will retry 10 times, with an incremental delay. After the first failure, our support team will be notified and will be in contact with you. After the 10th failure, Volt will stop retrying.
Security
A checksum is provided in the notification headers. It is calculated using your notification secret, and the notification body. This way you can be sure that the notification has been sent by Volt, and has not been modified.
Headers
- Content-Type
- checksum
Body
Note that for credits received into your Volt Account (rather than a Virtual Account) the creditorDetails -> viban field will contain exactly the same iban as the creditorDetails -> account -> iban.
{
"eventId": "02399d85-80b4-4945-8001-a75f0877432d",
"notificationType": "credit_received",
"timestamp": "2024-04-08T08:00:00+00:00",
"transactionDetails": {
"id": "f267bfe2-a17c-41b0-895d-e2f28ff12664",
"status": "SUCCESS",
"errors": [],
"debtorDetails": {
"debtorAccount": {
"accountNumber": "XXXXXXXXXXXXXXX",
"financialInstitution": "REVOLT21XXX",
"country": "LT"
},
"debtorName": "Adam Smith",
"debtorAddress": null,
"viban": null
},
"debitAmount": {
"amount": "1000",
"currency": "EUR"
},
"date": "2024-04-08T08:00:00+00:00",
"remittanceInfo": {
"line1": "TEST",
"line2": null,
"line3": null,
"line4": null
},
"externalId": "72de0d43-7b15-4b57-b1cb-88b8c72d70fe",
"creditorDetails": {
"creditorAccount": {
"accountNumber": null,
"financialInstitution": null,
"country": null
},
"creditorName": null,
"creditorAddress": null,
"viban": "DE40202208000050888888",
"account": {
"iban": "DE40202208000050888888"
}
},
"creditAmount": {
"amount": "1000",
"currency": "EUR"
},
"payerTransactionReference": null,
"accountId": "7cdfabb8-34c9-465d-9093-1c822b9ff125",
"externalTransactionReference": null,
"identificationSetId": "ad07609f-a3fc-4354-b85e-546e52331524"
}
}
Body fields
eventType | uuid | notification identifier |
---|---|---|
notificationType |
string | credit_received |
timestamp | timestamp | timestamp when notification was created and sent |
transactionDetails.id | uuid | Volt transaction identifier |
transactionDetails.status | string | always SUCCESS for incoming funds |
transactionDetails.errors | array | empty for incoming funds |
transactionDetails.debtorDetails.debtorAccount.accountNumber | string | IBAN or Account Number |
transactionDetails.debtorDetails.debtorAccount.financialInstitution | string | SWIFT/BIC or Sort code |
transactionDetails.debtorDetails.debtorAccount.country | string | country code |
transactionDetails.debtorDetails.debtorName | string | payer name |
transactionDetails.debtorDetails.debtorAddress | JSON | { “line1”: “LIPOLOL 25”, “line2”: “AMSTERDAM”, “line3”: null } |
transactionDetails.debtorDetails.viban | string | payer virtual IBAN number (if available) |
transactionDetails.debitAmount.amount | integer | amount in minor units |
transactionDetails.debitAmount.currency | string | currency code |
transactionDetails.date | timestamp | |
transactionDetails.remittanceInfo | JSON | { “line1”: “Description that Shopper provides 35 max”, “line2″: ” in each line Ref$444231 can be more”, “line3”: null, “line4”: null } |
transactionDetails.externalId | uuid | transaction identifier at banking provider (if available) |
transactionDetails.creditorDetails.creditorAccount.accountNumber | string | IBAN or Account Number |
transactionDetails.creditorDetails.creditorAccount.financialInstitution | string | SWIFT/BIC or Sort code |
transactionDetails.creditorDetails.creditorAccount.country | string | country code |
transactionDetails.creditorDetails.creditorName | string | beneficiary name |
transactionDetails.creditorDetails.creditorAddress | JSON | { “line1”: “LIPOLOL 25”, “line2”: “AMSTERDAM”, “line3”: null } |
transactionDetails.creditorDetails.viban | string | virtual IBAN number |
transactionDetails.creditAmount.amount | integer | amount in minor units |
transactionDetails.creditAmount.currency | string | currency code |
How to test incoming funds
On the sandbox environment, we can simulate incoming credits by using the following endpoint::
POST /notification/mock-provider-1
This will make our system process the provided payment as if it’s a credit that hit your account.
Example request
{
"uniqueId": "{{$randomUUID}}", // needs to be unique with each request
"amount": 1000,
"iban": "{{$iban}}", // your sandbox iban or viban that you want the credit to be received t
"reference": "credit testing 123",
"currency": "EUR", // the currency should correspond to the account
"valueDate": "2023-09-23T00:00:00+00:00", // please set to today
"debtorAccount": {
"account": "DE75512108001245126199",
"financialInstitution": "SOGEDEFFXXX",
"country": "DE"
},
"debtorName": "Company 123",
"debtorAddress": {
"line1": "25 Debtor Testing Str.",
"line2": null,
"line3": null
},
"creditorAccount": {
"account": "{{iban}}", // your sandbox iban or viban that you want the credit to be received t
"financialInstitution": "SXPYDKKK",
"country": "DE"
},
"creditorName": "Your Company Name",
"creditorAddress": {
"line1": "25 Creditor Testing Str.",
"line2": "South Park",
"line3": "Colorado"
},
"masterAccountExternalId": "1278a27a-f771-4783-a108-8acc14737cd1"
}
Additional bank details
We can also, on request, provide additional details for the bank that the credit was received from. This can be useful if you’re doing additional AML checks when you receive funds. Please contact your account or implementation manager for further details, or email us at support@volt.io.
The bankDetails
section appears within the transactionDetails
section.
{
...
"transactionDetails": {
...
"bankDetails": {
"bankName": "REVOLUT BANK UAB",
"branchName": "",
"branchAddress": {
"streetAddress1": "KONSTITUCIJOS AVE. 21B",
"streetAddress2": "",
"streetAddress3": "",
"streetAddress4": "",
"city": "VILNIUS",
"zipCode": "08104",
"country": "LITHUANIA"
},
"bic11": "REVOLT21XXX",
"bic8": "REVOLT21"
}
...
}
- On this page
- How to test incoming funds
- Additional bank details