Payments or payouts from your Volt Account
You can use our generic /api/payouts
endpoint in order to send any type of payment:
- Refund/Payout
- Settlement – has less restrictive anti-fraud monitoring rules
In order to use Settlements properly, provide an account IBAN to Volt. If the payment is sent to your own account, Volt can recognise this and apply less restrictive monitoring rules.
Request header for signing payments
As you’re using a Volt Account, you’ll need to digitally sign any payment request using an additional header. This is for regulatory compliance, so is a mandatory requirement for production payments – you should test therefore this as part of your sandbox testing before going live.
Testing on sandbox
On the Sandbox environment we can simulate various payout behaviours based on the payout amount:
- If the
amount
is 20 you will receive apayout_failed
webhook and the payout status will be FAIL - If the
amount
is 40 you will receive apayout_rejected
webhook and the payout status will be FAIL - If the
amount
is 60 you will not receive any notification and the payout will be stuck in PENDING - If the
amount
is 80 you will receive apayout_rejected
webhook, the payout status will be FAIL, and you will get an additional ‘SEPA Instant not supported‘ message
If there is sufficient balance on the account, any other payment amount should result in SUCCESS.
Headers
authorization
is the only header you’ll need to provide to use this endpoint
Request body
{
"amount": 1,
"currency": "EUR",
"accountId": "{{accountId}}",
"reference": "pay demo",
"creditorAccount": {
"iban": "DK6689000099105309",
"swiftBic": "SXPYDKKKXXX",
"accountNumber": "12345678",
"routing": "123456"
},
"creditorName": "Example Firm Inc.",
"creditorFirstName": "John",
"creditorLastName": "Blogs",
"creditorAddress": "1 Street, ABC123 Berlin, DE",
"payerTransactionReference": "payerReference"
}
Field details
Field | Example | Description |
---|---|---|
amount |
1 | Amount in minor units – in this example, it’s 1 Euro Cent |
currency |
EUR | Currency of the transfer |
accountId |
{{accountId}} | Volt account id of the sender account, not to be confused by Unique ID for API |
reference |
pay demo | Remittance information |
creditorAccount > iban |
DK6689000099105309 | Either IBAN or the accountNumber and routing should be supplied |
creditorAccount > swiftBic |
SXPYDKKKXXX | |
creditorAccount > accountNumber |
12345678 | |
creditorAccount > routing |
123456 | A region-specific bank routing code. In the UK this will be the sort code, in the USA a 9 digit routing / transit number, in Australia a BSB |
creditorName |
Example Firm Inc. | Beneficiary name – please use if you are sending a payment to an organisation. Either this field or creditorFirstName+creditorLastName are required. |
creditorFirstName |
John | Please provide the First and Last name of a creditor if it’s an individual. This will help your payouts go faster through our compliance screening. |
creditorLastName |
Blogs | |
creditorAddress |
1 Street, ABC123, Berlin, DE | Beneficiary address |
payerTransactionReference |
payerReference | Custom reference, unique! |
Responses
{
"message": "Payout request has been created successfully.",
"id": "f8b4f0d3-5eba-462b-84eb-0a5203a8be3c" //Volt transaction ID
}
Any other HTTP code (40x
, 50x
) indicates that the payment request was not created (details will be provided in the message
field)
[
{
"id": "d0aa3176-ea0f-44ab-a0eb-dcabc01f2bf2",
"reference": "payment demo 2",
"externalReference": null,
"amount": "13",
"currency": "EUR",
"status": "completed",
"accountId": "5aab1a5d-1647-45a3-956e-ce73ac813908",
"creditorAccount": {
"bic": "RABONL2UXXX",
"iban": "NL11RABO4097012428",
"accountName": "John Bloggs",
"accountAddress": "1 Street, ABC123 Berlin, DE"
},
"creditorName": "John Bloggs",
"creditorAddress": "1 Street, ABC123 Berlin, DE",
"valueData": "2023-10-16 16:51:01",
"instructedTimestamp": null
},
{
"id": "bf0efb70-a8fd-432f-85f4-683191d70a94",
"reference": "payment demo 1",
"externalReference": null,
"amount": "1",
"currency": "EUR",
"status": "completed",
"accountId": "5aab1a5d-1647-45a3-956e-ce73ac813908",
"creditorAccount": {
"bic": "RABONL2UXXX",
"iban": "NL11RABO4097012428",
"accountName": "John Bloggs",
"accountAddress": "1 Street, ABC123 Berlin, DE"
},
"creditorName": "John Bloggs",
"creditorAddress": "1 Street, ABC123 Berlin, DE",
"valueData": "2023-10-16 16:50:36",
"instructedTimestamp": null
},
{
"id": "b7d8f12a-82b5-4aae-99e2-0525b1ce3528",
"reference": "payment demo 2",
"externalReference": null,
"amount": "20",
"currency": "EUR",
"status": "failed",
"accountId": "5aab1a5d-1647-45a3-956e-ce73ac813908",
"creditorAccount": {
"bic": "RABONL2UXXX",
"iban": "NL11RABO4097012428",
"accountName": "John Bloggs",
"accountAddress": "1 Street, ABC123 Berlin, DE"
},
"creditorName": "John Bloggs",
"creditorAddress": "1 Street, ABC123 Berlin, DE",
"valueData": null,
"instructedTimestamp": null
},
{
"id": "5148aff1-c0b8-4cc1-ba6f-e6c55db17c03",
"reference": "payment demo 2",
"externalReference": null,
"amount": "60",
"currency": "EUR",
"status": "pending",
"accountId": "5aab1a5d-1647-45a3-956e-ce73ac813908",
"creditorAccount": {
"bic": "RABONL2UXXX",
"iban": "NL11RABO4097012428",
"accountName": "John Bloggs",
"accountAddress": "1 Street, ABC123 Berlin, DE"
},
"creditorName": "John Bloggs",
"creditorAddress": "1 Street, ABC123 Berlin, DE",
"valueData": null,
"instructedTimestamp": "2023-10-16 16:52:41"
},
{
"id": "a1b6df1c-0bc0-4b4c-aad3-6d7ddb266802",
"reference": "payment demo 2",
"externalReference": null,
"amount": "13",
"currency": "EUR",
"status": "completed",
"accountId": "5aab1a5d-1647-45a3-956e-ce73ac813908",
"creditorAccount": {
"bic": "RABONL2UXXX",
"iban": "NL11RABO4097012428",
"accountName": "John Bloggs",
"accountAddress": "1 Street, ABC123 Berlin, DE"
},
"creditorName": "John Bloggs",
"creditorAddress": "1 Street, ABC123 Berlin, DE",
"valueData": "2023-10-16 16:51:06",
"instructedTimestamp": null
},
{
"id": "12b7a711-b1b3-435e-b38a-6f3728032784",
"reference": "payment demo 2",
"externalReference": null,
"amount": "20",
"currency": "EUR",
"status": "failed",
"accountId": "5aab1a5d-1647-45a3-956e-ce73ac813908",
"creditorAccount": {
"bic": "RABONL2UXXX",
"iban": "NL11RABO4097012428",
"accountName": "John Bloggs",
"accountAddress": "1 Street, ABC123 Berlin, DE"
},
"creditorName": "John Bloggs",
"creditorAddress": "1 Street, ABC123 Berlin, DE",
"valueData": null,
"instructedTimestamp": null
},
{
"id": "b0d8cb03-2276-45b9-b402-841dd3a4d68d",
"reference": "payment demo 2",
"externalReference": null,
"amount": "40",
"currency": "EUR",
"status": "rejected",
"accountId": "5aab1a5d-1647-45a3-956e-ce73ac813908",
"creditorAccount": {
"bic": "RABONL2UXXX",
"iban": "NL11RABO4097012428",
"accountName": "John Bloggs",
"accountAddress": "1 Street, ABC123 Berlin, DE"
},
"creditorName": "John Bloggs",
"creditorAddress": "1 Street, ABC123 Berlin, DE",
"valueData": null,
"instructedTimestamp": null
}
]
{
"id": "d0aa3176-ea0f-44ab-a0eb-dcabc01f2bf2",
"reference": "payment demo 2",
"externalReference": null,
"amount": "13",
"currency": "EUR",
"status": "completed",
"accountId": "5aab1a5d-1647-45a3-956e-ce73ac813908",
"creditorAccount": {
"bic": "RABONL2UXXX",
"iban": "NL11RABO4097012428",
"accountName": "John Bloggs",
"accountAddress": "1 Street, ABC123 Berlin, DE"
},
"creditorName": "John Bloggs",
"creditorAddress": "1 Street, ABC123 Berlin, DE",
"valueData": "2023-10-16 16:51:01",
"instructedTimestamp": null
}
Webhook
Once created, payment request is being processed by Volt and Volt banking partner. Notification is sent when the processing is complete.
{
"notificationType": "payout_completed",
"timestamp": "2023-02-21T22:10:43+0000",
"transactionDetails": {
"id": "c3000ea5-05a9-4d1a-816f-26b570f6d70e",
"status": "SUCCESS",
"errors": [],
"debtorDetails": {
"debtorAccount": {
"accountNumber": null,
"financialInstitution": null,
"country": null
},
"debtorName": null,
"debtorAddress": null,
"viban": "NL31HKOT5224030013"
},
"debitAmount": {
"amount": "10",
"currency": "EUR"
},
"date": "2023-02-21T22:10:40+00:00",
"remittanceInfo": {
"line1": "pay demo",
"line2": null,
"line3": null,
"line4": null
},
"externalId": null,
"creditorDetails": {
"creditorAccount": {
"accountNumber": "DK6689000099105309",
"financialInstitution": null,
"country": null
},
"creditorName": "John Bloggs",
"creditorAddress": "1 Street, ABC123 Berlin, DE",
"viban": null
},
"creditAmount": {
"amount": "10",
"currency": "EUR"
}
}
}
Payout Confirmation
Sent when the payment has been confirmed by the banking partner.
"notificationType": "payout_completed",
"transactionDetails"."status": "SUCCESS",
Payout Failure or Rejection
Sent when the payment fails to process at Volt.
"notificationType": "payout_rejected",
"transactionDetails"."status": "FAIL",
- On this page
- Testing on sandbox