> ## Documentation Index
> Fetch the complete documentation index at: https://developer.me-cash.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 🇬🇧 GBP Payout

This endpoint allows you to process payouts in **British Pounds (GBP)** to recipients with a UK bank account via Bank Transfer.

***

## Endpoint

**POST:** `https://sandboxapi.me-cash.com/v2/payout`

***

## Request Details

### Headers

Include these headers in your request:

| **Header**     | **Value**          | **Required** |
| :------------- | :----------------- | :----------- |
| `Content-Type` | `application/json` | ✅ Yes        |
| `x-api-key`    | `YOUR_API_KEY`     | ✅ Yes        |

***

## Request Examples

Here are examples of how to make a GBP payout request in different languages.

<CodeGroup>
  ```bash cURL theme={null}
  curl --location --request POST 'https://sandboxapi.me-cash.com/v2/payout' \
  --header 'x-api-key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "recipient": {
      "firstName": "Derick",
      "lastName": "Heaney",
      "type": "BUSINESS",
      "account": {
        "bankName": "Investment Account",
        "sortCode": "040004",
        "address": "8190 Amely Freeway",
        "accountNumber": "7835****"
      },
      "paymentChannel": "BANK_TRANSFER",
      "currency": "GBP",
      "country": "GB",
      "stored": true
    },
    "quoteId": "a4f7b2c1-ef14-4999-906b-xxxxxxxxxxxxx",
    "reason": "Gift",
    "invoice": "4b9b6d30-a2ed-421a-bd69-xxxxxxxxxxxx",
    "remark": "Testing"
  }'
  ```

  ```javascript JavaScript (Fetch) theme={null}
  const url = 'https://sandboxapi.me-cash.com/v2/payout';

  const options = {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'YOUR_API_KEY'
    },
    body: JSON.stringify({
      recipient: {
        firstName: "Derick",
        lastName: "Heaney",
        type: "BUSINESS",
        account: {
          bankName: "Investment Account",
          sortCode: "040004",
          address: "8190 Amely Freeway",
          accountNumber: "7835****"
        },
        paymentChannel: "BANK_TRANSFER",
        currency: "GBP",
        country: "GB",
        stored: true
      },
      quoteId: "a4f7b2c1-ef14-4999-906b-xxxxxxxxxxxxx",
      reason: "Gift",
      invoice: "4b9b6d30-a2ed-421a-bd69-xxxxxxxxxxxx",
      remark: "Testing"
    })
  };

  fetch(url, options)
    .then(res => res.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));
  ```

  ```python Python (Requests) theme={null}
  import requests
  import json

  url = "https://sandboxapi.me-cash.com/v2/payout"

  payload = {
      "recipient": {
          "firstName": "Derick",
          "lastName": "Heaney",
          "type": "BUSINESS",
          "account": {
              "bankName": "Investment Account",
              "sortCode": "040004",
              "address": "8190 Amely Freeway",
              "accountNumber": "7835****"
          },
          "paymentChannel": "BANK_TRANSFER",
          "currency": "GBP",
          "country": "GB",
          "stored": True
      },
      "quoteId": "a4f7b2c1-ef14-4999-906b-xxxxxxxxxxxxx",
      "reason": "Gift",
      "invoice": "4b9b6d30-a2ed-421a-bd69-xxxxxxxxxxxx",
      "remark": "Testing"
  }

  headers = {
      "x-api-key": "YOUR_API_KEY",
      "Content-Type": "application/json"
  }

  response = requests.post(url, headers=headers, data=json.dumps(payload))
  print(response.json())
  ```

  ```javascript Node.js (Axios) theme={null}
  const axios = require('axios');

  const url = 'https://sandboxapi.me-cash.com/v2/payout';

  const data = {
    recipient: {
      firstName: "Derick",
      lastName: "Heaney",
      type: "BUSINESS",
      account: {
        bankName: "Investment Account",
        sortCode: "040004",
        address: "8190 Amely Freeway",
        accountNumber: "7835****"
      },
      paymentChannel: "BANK_TRANSFER",
      currency: "GBP",
      country: "GB",
      stored: true
    },
    quoteId: "a4f7b2c1-ef14-4999-906b-xxxxxxxxxxxxx",
    reason: "Gift",
    invoice: "4b9b6d30-a2ed-421a-bd69-xxxxxxxxxxxx",
    remark: "Testing"
  };

  const config = {
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'YOUR_API_KEY'
    }
  };

  axios.post(url, data, config)
    .then(response => {
      console.log(response.data);
    })
    .catch(error => {
      console.error('Error:', error.response ? error.response.data : error.message);
    });
  ```
</CodeGroup>

***

### Request Body Breakdown

| **Field**                         | **Type** | **Description**                                                        | **Required** |
| :-------------------------------- | :------- | :--------------------------------------------------------------------- | :----------- |
| `quoteId`                         | String   | The unique ID of the quote for this payout.                            | ✅ Yes        |
| `reason`                          | String   | The purpose of the transfer (e.g., `Payment for services`).            | ✅ Yes        |
| `invoice`                         | String   | Optional identifier for the invoice (returned from file upload).       | ❌ No         |
| `remark`                          | String   | An optional, additional note about the transaction.                    | ✅ Yes        |
| `recipient`                       | Object   | An object containing all details about the person receiving the funds. | ✅ Yes        |
| `recipient.firstName`             | String   | The first name of the recipient.                                       | ✅ Yes        |
| `recipient.lastName`              | String   | The last name of the recipient.                                        | ✅ Yes        |
| `recipient.type`                  | String   | The type of recipient. Enum: `INDIVIDUAL`, `BUSINESS`.                 | ✅ Yes        |
| `recipient.paymentChannel`        | String   | The payment method. Must be `BANK_TRANSFER` for GBP payouts.           | ✅ Yes        |
| `recipient.currency`              | String   | The ISO currency code. Must be `GBP`.                                  | ✅ Yes        |
| `recipient.country`               | String   | The recipient's two-letter ISO country code. Must be `GB`.             | ✅ Yes        |
| `recipient.stored`                | Boolean  | A flag indicating whether to save the recipient for future use.        | ✅ Yes        |
| `recipient.account`               | Object   | An object containing the recipient's bank account details.             | ✅ Yes        |
| `recipient.account.bankName`      | String   | The name of the recipient's bank.                                      | ✅ Yes        |
| `recipient.account.sortCode`      | String   | The 6-digit sort code of the UK bank account.                          | ✅ Yes        |
| `recipient.account.address`       | String   | The recipient's residential or business address.                       | ✅ Yes        |
| `recipient.account.accountNumber` | String   | The 8-digit bank account number of the recipient.                      | ✅ Yes        |

***

## Success Response (200 OK)

If the payout is successfully created, the API returns the following response:

```json copy theme={null}
{
  "message": "Transaction created successfully",
  "status": "success",
  "data": {
    "id": "b8c7d6e5-f4a3-210f-fedc-xxxxxxxxxxxxx",
    "reason": "Gift",
    "invoice": "4b9b6d30-a2ed-421a-bd69-xxxxxxxxxxxx",
    "remark": "Testing",
    "referenceNumber": "GBPPAYOUT12345",
    "type": "SEND",
    "state": "COMPLETED",
    "quote": {
      "id": "a4f7b2c1-ef14-4999-906b-xxxxxxxxxxxxx",
      "source": {
        "currency": "NGN",
        "country": "NG",
        "amount": 250000
      },
      "target": {
        "currency": "GBP",
        "country": "GB",
        "amount": 100
      },
      "rate": 2500,
      "fee": {
        "amount": 1500
      }
    },
    "recipient": {
      "firstName": "Derick",
      "lastName": "Heaney",
      "type": "BUSINESS",
      "account": {
        "accountNumber": "7835XXXX",
        "sortCode": "040004",
        "bankName": "Investment Account",
        "address": "8190 Amely Freeway"
      },
      "paymentChannel": "BANK_TRANSFER",
      "currency": "GBP",
      "country": "GB"
    },
    "created": "2025-09-19T10:05:45.123456Z",
    "processed": "2025-09-19T10:06:12.789101Z"
  }
}

```

***

## Response Breakdown

***

| **Field**                              | **Type** | **Description**                                                 |     |
| :------------------------------------- | :------- | :-------------------------------------------------------------- | --- |
| `message`                              | String   | A confirmation message indicating the result of the request.    |     |
| `status`                               | String   | The overall status of the request, e.g., `success`.             |     |
| `data`                                 | Object   | A container for all the transaction data.                       |     |
| `data.id`                              | String   | The unique identifier for this payout transaction.              |     |
| `data.remark`                          | String   | The remark or note that was provided in the request.            |     |
| `data.invoice`                         | String   | Optional identifier for the invoice provided in the request.    |     |
| `data.reason`                          | String   | The reason for the payout provided in the request.              |     |
| `data.referenceNumber`                 | String   | A unique reference number generated for the payout.             |     |
| `data.type`                            | String   | The type of transaction, e.g., `SEND`.                          |     |
| `data.state`                           | String   | The current state of the payout (`COMPLETED`, `PENDING`, etc.). |     |
| `data.quote.source.currency`           | String   | The three-letter currency code of the source funds.             |     |
| `data.quote.target.amount`             | Number   | The converted amount that the recipient will receive.           |     |
| `data.recipient.name`                  | String   | The full name of the recipient.                                 |     |
| `data.recipient.account.accountNumber` | String   | The recipient's bank account number.                            |     |
| `data.recipient.account.sortCode`      | String   | The sort code of the recipient's bank account.                  |     |
| `data.recipient.account.bankName`      | String   | The name of the recipient's bank.                               |     |
| `data.created`                         | String   | ISO 8601 timestamp of when the transaction was created.         |     |
| `data.processed`                       | String   | ISO 8601 timestamp of when the transaction was processed.       | --- |

## **Payout Transaction States**

The payout transaction can have one of the following states:

| **State**   | **Description**                          |
| ----------- | ---------------------------------------- |
| `COMPLETED` | The payout was successfully processed.   |
| `PENDING`   | The payout is still being processed.     |
| `FAILED`    | The payout failed to process.            |
| `REFUNDED`  | The payout has been sent back to sender. |

***

## Error Handling

| **Status Code** | **Meaning**           | **Example Response**                   |
| :-------------- | :-------------------- | :------------------------------------- |
| `400`           | Insufficient Balance  | Insufficient Balance                   |
| `401`           | Unauthorized          | Invalid API key provided.              |
| `403`           | Forbidden             | IP not whitelisted                     |
| `404`           | Not Found             | The requested endpoint does not exist. |
| `422`           | Unprocessable Entity  | Invalid quote ID provided.             |
| `500`           | Internal Server Error | An internal error occurred.            |

***

## **Best Practices**

✅ Ensure `quoteId` is valid and linked to an existing quote.\
✅ Confirm that the recipient’s **bank account number** and **bank code** are correct.\
✅ Use a valid API key in the headers.\
✅ Handle error responses correctly in your integration.
