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

Prop

Type

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

Prop

Type

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

Prop

Type

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

Prop

Type

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