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. 

Find out how to sign your request

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 a payout_failed webhook and the payout status will be FAIL
  • If the amount is 40 you will receive a payout_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 a payout_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

POST /api/payouts
{
    "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

Response - 201
{
    "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)

GET /api/payouts
[
    {
        "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
    }
]
GET /api/payouts/{payoutId}
{
    "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.

Notification body
{
  "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",