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

# Create recipient

> Register a recipient.

Body is a common section + a type-specific section keyed on `transferType`. Call [`GET /recipients/requirements`](/api-reference/recipients/requirements) first for the live field list.

<Info>**Scope** `recipients:write` · rate-limited</Info>

## Headers

<ParamField header="Authorization" type="string" required>
  API key.
</ParamField>

<ParamField header="Idempotency-Key" type="string">
  Optional. Up to 255 url-safe characters (≥8). Replays the cached response within 24 hours; mismatched bodies on the same key return `409 IDEMPOTENCY_KEY_REUSED`.
</ParamField>

## Request body

### Common

<ParamField body="email" type="string" required />

<ParamField body="country" type="string" required>ISO 3166-1 alpha-2.</ParamField>
<ParamField body="isBusiness" type="string">`"business"` (default) or `"individual"`.</ParamField>
<ParamField body="businessName" type="string">Required when `isBusiness="business"`.</ParamField>
<ParamField body="firstName" type="string">Required when `isBusiness="individual"`.</ParamField>
<ParamField body="lastName" type="string">Required when `isBusiness="individual"`.</ParamField>
<ParamField body="phone" type="string">E.164.</ParamField>

<ParamField body="address" type="object">
  <Expandable title="address">
    <ParamField body="streetLine1" type="string" />

    <ParamField body="streetLine2" type="string" />

    <ParamField body="city" type="string" />

    <ParamField body="state" type="string" />

    <ParamField body="postalCode" type="string" />

    <ParamField body="country" type="string">ISO 3166-1 alpha-2.</ParamField>
  </Expandable>
</ParamField>

<ParamField body="externalReference" type="object">
  Map of `string` → `string`. Echoed back on reads.
</ParamField>

### Type-specific

<Tabs>
  <Tab title="Fiat (bank)">
    <ParamField body="transferType" type="string" required>`"fiat"`</ParamField>

    <ParamField body="paymentMethods" type="object[]" required>
      One entry per (currency, rail). Send only fields the chosen `rail` needs.

      <Expandable title="paymentMethods[]">
        <ParamField body="type" type="string" required>`"bank"`</ParamField>
        <ParamField body="rail" type="string" required>e.g. `ach`, `sepa`, `pix`, `mobile_money`.</ParamField>

        <ParamField body="accountNumber" type="string" />

        <ParamField body="bankName" type="string" />

        <ParamField body="accountOwnerName" type="string" />

        <ParamField body="routingNumber" type="string">US (ACH).</ParamField>
        <ParamField body="swiftCode" type="string">SWIFT/BIC.</ParamField>
        <ParamField body="iban" type="string">SEPA + similar.</ParamField>
        <ParamField body="bsb" type="string">Australia.</ParamField>
        <ParamField body="ifsc" type="string">India.</ParamField>
        <ParamField body="nuban" type="string">Nigeria.</ParamField>
        <ParamField body="pixKey" type="string">Brazil.</ParamField>
        <ParamField body="brebKey" type="string">Colombia.</ParamField>
        <ParamField body="mobileMoneyPhone" type="string">E.164 phone (Mobile Money).</ParamField>
      </Expandable>
    </ParamField>
  </Tab>

  <Tab title="Stablecoin (wallet)">
    <ParamField body="transferType" type="string" required>`"stablecoin"`</ParamField>

    <ParamField body="walletAddresses" type="object" required>
      Chain ID → wallet address.

      ```json theme={null}
      {
        "1": "0xAbc…",
        "137": "0xAbc…",
        "42161": "0xAbc…"
      }
      ```
    </ParamField>
  </Tab>
</Tabs>

## Response

<ResponseField name="id" type="string">UUID.</ResponseField>

<ResponseField name="email" type="string" />

<ResponseField name="isBusiness" type="boolean" />

<ResponseField name="businessName" type="string" />

<ResponseField name="firstName" type="string" />

<ResponseField name="lastName" type="string" />

<ResponseField name="country" type="string">ISO 3166-1 alpha-2.</ResponseField>
<ResponseField name="currency" type="string">Inferred from `country` when omitted.</ResponseField>

<ResponseField name="phone" type="string" />

<ResponseField name="address" type="object">
  <Expandable title="address">
    <ResponseField name="streetLine1" type="string" />

    <ResponseField name="streetLine2" type="string" />

    <ResponseField name="city" type="string" />

    <ResponseField name="state" type="string" />

    <ResponseField name="postalCode" type="string" />

    <ResponseField name="country" type="string" />
  </Expandable>
</ResponseField>

<ResponseField name="transferType" type="string">`"fiat"` or `"stablecoin"`.</ResponseField>
<ResponseField name="walletAddresses" type="object">Chain ID → address, when `transferType` is `"stablecoin"`.</ResponseField>
<ResponseField name="externalReference" type="object">Map of `string` → `string`.</ResponseField>
<ResponseField name="status" type="string">`"pending"`, `"accepted"`, or `"rejected"`.</ResponseField>
<ResponseField name="createdAt" type="string">ISO 8601.</ResponseField>
<ResponseField name="updatedAt" type="string">ISO 8601.</ResponseField>

<ResponseExample>
  ```json 201 — Fiat recipient theme={null}
  {
    "id": "8b1a4c1d-7a3c-4a08-94ad-9f1ef1e0c3a2",
    "email": "payments@acme-ph.com",
    "isBusiness": true,
    "businessName": "Acme Corp Philippines",
    "country": "PH",
    "currency": "PHP",
    "transferType": "fiat",
    "externalReference": { "vendor_id": "ACME-001" },
    "status": "pending",
    "createdAt": "2026-06-09T10:00:00Z",
    "updatedAt": "2026-06-09T10:00:00Z"
  }
  ```

  ```json 201 — Stablecoin recipient theme={null}
  {
    "id": "8b1a4c1d-7a3c-4a08-94ad-9f1ef1e0c3a2",
    "email": "treasury@acme-singapore.com",
    "isBusiness": true,
    "businessName": "Acme Singapore",
    "country": "SG",
    "transferType": "stablecoin",
    "walletAddresses": {
      "137": "0xAbcDef0123456789AbcDef0123456789AbcDef01",
      "42161": "0xAbcDef0123456789AbcDef0123456789AbcDef01"
    },
    "status": "accepted",
    "createdAt": "2026-06-09T10:00:00Z",
    "updatedAt": "2026-06-09T10:00:00Z"
  }
  ```
</ResponseExample>
