> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tabsglobal.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Save a Beneficiary

> Save a validated payout recipient for repeat transfers.

Saves a recipient's banking or wallet credentials to your merchant profile.

### Scopes required

`beneficiaries:write` or `*`

### Headers

<ParamField header="Authorization" type="string" required>
  Bearer API secret key formatted as `Bearer sk_live_...` or `Bearer sk_test_...`.
</ParamField>

### Body

<ParamField body="type" type="string" required>
  Recipient category: `BANK_ACCOUNT` or `CRYPTO_WALLET`.
</ParamField>

<ParamField body="details" type="object" required>
  Corridor specific beneficiary details.

  <Expandable title="Details properties">
    <ParamField body="accountName" type="string" required>
      Verified account holder legal name.
    </ParamField>

    <ParamField body="accountNumber" type="string" required>
      Bank account number or IBAN.
    </ParamField>

    <ParamField body="bankCode" type="string">
      3-digit CBN bank code (for NGN).
    </ParamField>

    <ParamField body="currency" type="string" required>
      Settlement currency code (`NGN`, `USD`, `EUR`, `GBP`).
    </ParamField>
  </Expandable>
</ParamField>

### Response

<ResponseField name="id" type="string">
  Unique beneficiary identifier.
</ResponseField>

<ResponseField name="type" type="string">
  Beneficiary type.
</ResponseField>

<ResponseField name="details" type="object">
  Saved recipient details.
</ResponseField>

<ResponseField name="createdAt" type="string">
  Creation timestamp.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.tabsglobal.co/v1/beneficiaries" \
    -H "Authorization: Bearer sk_live_..." \
    -H "Content-Type: application/json" \
    -d '{
      "type": "BANK_ACCOUNT",
      "details": {
        "accountName": "ADEWALE ADELEKE",
        "accountNumber": "0123456789",
        "bankCode": "058",
        "currency": "NGN"
      }
    }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api.tabsglobal.co/v1/beneficiaries", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.TABS_SECRET_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      type: "BANK_ACCOUNT",
      details: {
        accountName: "ADEWALE ADELEKE",
        accountNumber: "0123456789",
        bankCode: "058",
        currency: "NGN",
      },
    }),
  });

  const beneficiary = await response.json();
  console.log(beneficiary);
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.tabsglobal.co/v1/beneficiaries",
      headers={
          "Authorization": f"Bearer {API_KEY}",
          "Content-Type": "application/json",
      },
      json={
          "type": "BANK_ACCOUNT",
          "details": {
              "accountName": "ADEWALE ADELEKE",
              "accountNumber": "0123456789",
              "bankCode": "058",
              "currency": "NGN",
          },
      },
  )
  print(response.json())
  ```
</RequestExample>

<ResponseExample>
  ```json 201 Created theme={null}
  {
    "id": "ben_4a8e2b1c-9f0d-4e5a-8b2c-1d0f3a4b5c6d",
    "type": "BANK_ACCOUNT",
    "details": {
      "accountName": "ADEWALE ADELEKE",
      "accountNumber": "0123456789",
      "bankCode": "058",
      "currency": "NGN"
    },
    "createdAt": "2026-09-21T01:30:00.000Z"
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.