Loading...
Payouts

Payouts via the API


Once the payout functionality is enabled for you, you will be able to pay out any amount, as long as you have sufficient . Please note that you can’t go into overdraft.

GET eligible beneficiaries

This step only applies to Payouts made to known beneficiaries, so-called "closed loop payouts".

In the closed-loop payout system, you may only send funds to beneficiaries who you’ve received funds from in the past 12 months. It’s therefore advisable to check that the account number or IBAN you’re sending to will be valid for a payout, before trying to create a new payout request.

This endpoint will provide a list of all eligible beneficiaries, based on money received from previously-initiated Payments or . You may search by account number, IBAN or beneficiary name, by providing one or more of these items as query parameters.

Location

GET https://connect-api-sandbox.volt.io/payouts/beneficiaries

Parameters

ParameterDescription
accountNumberAccount number of the beneficiary account that you'd like to send a payout to
ibanIBAN of the beneficiary account that you'd like to send a payout to
nameName of the beneficiary that you'd like to send a payout to

Request example

GET /payouts/beneficiaries?accountNumber=12345678

[
  {
    "name": "John Johnson",
    "accountNumber": "12345678",
    "sortCode": "404452",
    "iban": null,
    "swiftBic": null
  }
]

POST a new payout request

To create a payout request, you will need the account details. This may be an IBAN, IBAN + Swift BIC, account number + sort code, or other account identifiers depending on your region.

If you wish to straight through process these requests, then the API requests must be signed using a private key, for more details on this please refer .

Location

POST https://connect-api-sandbox.volt.io/payouts

Request headers

If you’re using a Volt Account, you’ll need to sign your request using an additional header. If you’re using one of our Connected Accounts, you don’t need to include this header. You can only test this on production, as this header is ignored on sandbox.

Idempotency keys are optional, but recommended, to avoid duplicate POST requests. Send a unique identifier for each request – we recommend using a UUID. If the request times out, or you don’t receive a response or any other reason, you may safely retry the request using the same payload and headers.

All headers - idempotency key is optional, JWS signature is required

Authorization: Bearer {Access Token}
Content-type: application/json
idempotency-key: {Your Unique Value}
X-JWS-Signature: {JWT Token}

Request body

{
  "amount": 12345,
  "currency": "EUR",
  "paymentTitle": "SEPA test",
  "beneficiary": {
    "name": "John Johnson",
    "iban": "DE07500105176551562526"
  },
  "externalReference": "Some reference"
}

Fields

Field nameTypeDescription
amountintegerIn minor units, no decimal places
currencystring (3)3 letter ISO code for currencies
paymentTitlestringPayment reference to be shown on statement
beneficiaryobject
    namestringFull name or organisation name
    ibanstringRequired for SEPA
    swiftBicstringOptional for SEPA
    accountNumberstringUK and AU domestic payouts only
    sortCodestringUK domestic payouts only
    bsbstringRequired for AU domestic payouts
    emailstringRequired for AU domestic payouts
externalReferencestring|nullOptional internal payout reference to be used for reconciliation and tracking within merchant systems. Not unique. Not shared with banks or payment networks. Maximum length is 255 chars.

Successful response

A successful request to create a Payout will result in an HTTP 201 Created response, with a body containing the ID of the Payout that was created.

GET list of payouts

To get a list of all the payouts you’ve created, call the GET /payouts endpoint with no parameters.

Parameters

ParameterDescription
statusThe current status of the payout. Possible values are:
  • PAYOUT_CREATED
  • PAYOUT_APPROVED_AUTOMATICALLY (for payouts created on API only)
  • PAYOUT_APPROVED_BY_USER (for payouts created on Fuzebox only)
  • PAYOUT_REJECTED_BY_USER (for payouts created on Fuzebox only)
  • PAYOUT_PROCESSING
  • PAYOUT_CONFIRMED
  • PAYOUT_FAILED

Sample response

[
  {
    "id": "efffed42-40f7-4bd2-840d-908aae9a33ad",
    "status": "PAYOUT_CREATED",
    "createdAt": "2019-08-24T14:15:22Z",
    "amount": 500,
    "currency": "EUR",
    "paymentTitle": "Payout123456",
    "beneficiary": {
      "name": "John Johnson",
      "accountNumber": "12345678",
      "sortCode": "404452",
      "iban": "DK8389009999910135",
      "swiftBic": "SXPYDKKKXXX"
    },
    "sender": {
      "sortCode": "404777",
      "accountNumber": "87654321",
      "iban": "DK8389009999910135",
      "swiftBic": "SXPYDKKKXXX"
    },
    "externalReference": null
  }
]

GET payout details

To get details of a payout, you’ll need the id returned when you created the payout.

Location

GET https://connect-api-sandbox.volt.io/payouts/{id}

Parameters

ParameterDescription
idid of the payout, as returned by the create payout endpoint

Sample responses

  1. Where the payout was created using the API so did not require approval.

GET /payouts/efffed42-40f7-4bd2-840d-908aae9a33ad

{
  "id": "efffed42-40f7-4bd2-840d-908aae9a33ad",
  "status": "PAYOUT_APPROVED_AUTOMATICALLY",
  "createdAt": "2019-08-24T14:15:22Z",
  "amount": 500,
  "currency": "EUR",
  "paymentTitle": "Payout123456",
  "beneficiary": {
    "name": "John Johnson",
    "accountNumber": "12345678",
    "sortCode": "404452",
    "iban": "DK8389009999910135",
    "swiftBic": "SXPYDKKKXXX"
  },
  "sender": {
    "sortCode": "404777",
    "accountNumber": "87654321",
    "iban": "DK8389009999910135",
    "swiftBic": "SXPYDKKKXXX"
  },
  "externalReference": null
}
  1. Where the payout was created on Fuzebox and rejected by a user.

GET /payouts/94fcc71e-6244-4f77-a86b-99eb7601b843

{
  "id": "efffed42-40f7-4bd2-840d-908aae9a33ad",
  "status": "PAYOUT_REJECTED_BY_USER",
  "createdAt": "2019-08-24T14:15:22Z",
  "amount": 500,
  "currency": "EUR",
  "paymentTitle": "Payout123456",
  "beneficiary": {
    "name": "John Johnson",
    "accountNumber": "12345678",
    "sortCode": "404452",
    "iban": "DK8389009999910135",
    "swiftBic": "SXPYDKKKXXX"
  },
  "sender": {
    "sortCode": "404777",
    "accountNumber": "87654321",
    "iban": "DK8389009999910135",
    "swiftBic": "SXPYDKKKXXX"
  },
  "approvals": [
    {
      "user": {
        "name": "Robert Robertson"
      },
      "type": "REJECTION",
      "createdAt": "2019-08-24T14:15:22Z"
    }
  ],
  "externalReference": "Some reference"
}

How is this guide?

Last updated on

On this page