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

# Add recipient

> Creates a recipient the user can pay out to. Requires the `recipients` permission.

Required fields vary by currency and rail — call [Get recipient required fields](/api-reference/reference/get-recipient-required-fields) first. The example below is an INR bank recipient on the IMPS rail.



## OpenAPI

````yaml POST /api/v0/recipients/{userId}
openapi: 3.1.0
info:
  title: Endl Partner API
  version: '0'
  description: >-
    REST API for Endl partners: wallets, quotes, recipients, accounts and
    transactions.


    All endpoints are authenticated with `X-API-KEY` and `X-API-SECRET`, are
    scoped to the partner that owns the credential, and return the standard
    response envelope.
servers:
  - url: https://qa-api.endl.xyz
    description: QA
security:
  - apiKey: []
    apiSecret: []
tags:
  - name: Wallets
    description: Create and manage user wallets.
  - name: Quotes
    description: Price a transfer before submitting it.
  - name: Recipients
    description: Manage the parties a user pays out to.
  - name: Accounts
    description: Open and inspect user accounts.
  - name: Transactions
    description: Fund, submit, and track transfers.
  - name: Reference
    description: 'Static catalogues: currencies, countries, rates, rails, codes.'
paths:
  /api/v0/recipients/{userId}:
    post:
      tags:
        - Recipients
      summary: Add recipient
      description: >-
        Creates a recipient the user can pay out to. Requires the `recipients`
        permission.


        Required fields vary by currency and rail — call [Get recipient required
        fields](/api-reference/reference/get-recipient-required-fields) first.
        The example below is an INR bank recipient on the IMPS rail.
      parameters:
        - name: userId
          in: path
          required: true
          description: Identifier of the end user the resource belongs to.
          schema:
            type: string
            format: uuid
            example: 8f14e45f-ceea-467a-9a3f-1b2c0d4e5f60
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                alias:
                  type: string
                  description: Label for the recipient.
                type:
                  type: string
                  description: '`BUSINESS` or `INDIVIDUAL`.'
                currency:
                  type: string
                  description: Currency the recipient is paid in.
                payoutRail:
                  type: string
                  description: Rail used to reach the recipient.
                bankName:
                  type: string
                  description: Receiving bank name.
                bankAccountNumber:
                  type: string
                  description: Receiving account number.
                ifsc:
                  type: string
                  description: Rail-specific bank code — IFSC for Indian rails.
                recipientCountry:
                  type: string
                  description: ISO-3166 alpha-3 country code.
              required:
                - alias
                - type
                - currency
                - payoutRail
                - recipientCountry
            example:
              alias: Acme Corp
              type: BUSINESS
              currency: INR
              payoutRail: IMPS
              bankName: HDFC
              bankAccountNumber: '1234567890'
              ifsc: HDFC0001234
              recipientCountry: IND
      responses:
        '201':
          description: Recipient created
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 201
                  message:
                    type: string
                    example: Recipient created
                  status:
                    type: string
                    enum:
                      - SUCCESS
                      - ERROR
                    example: SUCCESS
                  data:
                    type:
                      - object
                      - array
                      - 'null'
                    description: >-
                      Successful responses share the standard envelope. The
                      shape of `data` for this endpoint is not yet captured in
                      this specification — see the note on the [API reference
                      overview](/api-reference/introduction).
                  errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/FieldError'
                    example: []
        '400':
          description: Validation failed, or the API key lacks the required permission.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid API credentials.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: No such resource, or it belongs to another partner.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: The request conflicts with the current state of the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Credentials could not be verified right now. Retry with backoff.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    FieldError:
      type: object
      properties:
        code:
          type: string
          example: VALIDATION_ERROR
        message:
          type: string
          example: must not be blank
        field:
          type: string
          example: sourceAmount
    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
          example: 400
        message:
          type: string
          example: Validation failed
        status:
          type: string
          example: ERROR
        data:
          type:
            - object
            - 'null'
          example: null
        errors:
          type: array
          items:
            $ref: '#/components/schemas/FieldError'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-KEY
      description: Your partner API key.
    apiSecret:
      type: apiKey
      in: header
      name: X-API-SECRET
      description: Your partner API secret.

````