> ## 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.

# Create sender

> Create a POBO sender — the originator a payment is made on behalf of.

`type` is `INDIVIDUAL` or `BUSINESS`; a business carries its name in `businessName`.

**Before a sender can be used for a payout it needs a name, a `governmentId`, and `address.country`.** A duplicate `governmentId` for the same partner is rejected with `409`.

The response returns a `snd_` reference id — that is the `senderId` every POBO transaction requires.



## OpenAPI

````yaml api-reference/endl-pobo-api.json POST /api/v0/pobo/senders
openapi: 3.1.0
info:
  title: Endl POBO API
  version: '0'
  description: >-
    Payment on behalf of — pay out on behalf of a named originator.


    Every POBO endpoint lives under `/api/v0/pobo` and needs an API key carrying
    the `pobo` permission. POBO is **partner-scoped**: there is no `userId` in
    any path, and every identifier you exchange is a prefixed reference id
    rather than an internal UUID.


    POBO routes through Paywho only. A Bridge-routed currency or rail is
    rejected with `400`.
servers:
  - url: https://api-sandbox.endl.io
    description: Sandbox
security:
  - apiKey: []
paths:
  /api/v0/pobo/senders:
    post:
      tags:
        - Senders
      summary: Create sender
      description: >-
        Create a POBO sender — the originator a payment is made on behalf of.


        `type` is `INDIVIDUAL` or `BUSINESS`; a business carries its name in
        `businessName`.


        **Before a sender can be used for a payout it needs a name, a
        `governmentId`, and `address.country`.** A duplicate `governmentId` for
        the same partner is rejected with `409`.


        The response returns a `snd_` reference id — that is the `senderId`
        every POBO transaction requires.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - INDIVIDUAL
                    - BUSINESS
                  description: >-
                    `INDIVIDUAL` or `BUSINESS`. A business carries its name in
                    `businessName`.
                firstName:
                  type: string
                  description: Given name. Individuals.
                lastName:
                  type: string
                  description: Family name. Individuals.
                businessName:
                  type: string
                  description: Registered name. Businesses.
                email:
                  type: string
                  description: Contact email.
                phone:
                  type: string
                  description: Contact phone in E.164 — `+639171234567`.
                dateOfBirth:
                  type: string
                  description: Date of birth, `YYYY-MM-DD`.
                governmentId:
                  type: string
                  description: >-
                    Government identifier. **Required before the sender can be
                    used for a payout.** Must be unique per partner — a
                    duplicate is a `409`.
                governmentIdType:
                  type: string
                  description: Kind of identifier — for example `PASSPORT`.
                governmentIdIssueCountry:
                  type: string
                  description: ISO 3166-1 alpha-3 country that issued the id.
                nationality:
                  type: string
                  description: ISO 3166-1 alpha-3 nationality.
                occupation:
                  type: string
                  description: Occupation.
                relationshipToCustomer:
                  type: string
                  description: >-
                    Relationship of this sender to your customer — `SELF`, for
                    instance.
                address:
                  type: object
                  description: >-
                    Postal address. `countryThreeLetter` is the ISO 3166-1
                    alpha-3 code.
                  properties:
                    addressLine1:
                      type: string
                      description: Street address.
                    addressLine2:
                      type: string
                      description: Second address line, if any.
                    city:
                      type: string
                      description: City.
                    state:
                      type: string
                      description: State or province.
                    country:
                      type: string
                      description: Country name.
                    postalCode:
                      type: string
                      description: Postal or ZIP code.
                    countryThreeLetter:
                      type: string
                      description: ISO 3166-1 alpha-3 country code — `PHL`.
            example:
              type: INDIVIDUAL
              firstName: Maria
              lastName: Santos
              email: maria.santos@example.com
              phone: '+639171234567'
              dateOfBirth: '1988-04-12'
              governmentId: P1234567
              governmentIdType: PASSPORT
              governmentIdIssueCountry: PHL
              nationality: PHL
              occupation: Software Engineer
              relationshipToCustomer: SELF
              address:
                addressLine1: 12 Rizal Ave
                city: Manila
                state: Metro Manila
                country: Philippines
                postalCode: '1000'
                countryThreeLetter: PHL
      responses:
        '201':
          description: Sender created. `data` carries the `snd_` reference id.
          content:
            application/json:
              example:
                code: 201
                message: Success
                status: SUCCESS
                data: {}
                errors: []
        '400':
          description: Validation failed, or the route is not supported for POBO.
          content:
            application/json:
              example:
                code: 400
                message: Rail not supported for POBO
                status: ERROR
                data: null
                errors:
                  - code: VALIDATION_ERROR
                    message: Rail not supported for POBO
                    field: null
        '401':
          description: Missing or invalid API credentials.
          content:
            application/json:
              example:
                data: null
                code: 401
                message: Authentication Failed!
                status: Error
                errors:
                  - code: '401'
                    message: Authentication Failed!
                    field: Authentication Failed!
        '403':
          description: The key does not carry the `pobo` permission. Raised at the edge.
          content:
            application/json:
              example:
                data: null
                code: 403
                message: API key does not have 'pobo' permission
                status: Error
                errors:
                  - code: '403'
                    message: API key does not have 'pobo' permission
                    field: API key does not have 'pobo' permission
        '409':
          description: The request conflicts with existing state.
          content:
            application/json:
              example:
                code: 409
                message: >-
                  A sender with this governmentId already exists for this
                  partner
                status: ERROR
                data: null
                errors:
                  - code: CONFLICT
                    message: >-
                      A sender with this governmentId already exists for this
                      partner
                    field: null
        '429':
          description: The per-API-key request rate limit was exceeded.
          content:
            application/json:
              example:
                data: null
                code: 429
                message: Rate limit exceeded, please retry later
                status: Error
                errors:
                  - code: '429'
                    message: Rate limit exceeded, please retry later
                    field: Rate limit exceeded, please retry later
        '500':
          description: Unexpected server error.
          content:
            application/json:
              example:
                code: 500
                message: Unexpected error
                status: ERROR
                data: null
                errors:
                  - code: INTERNAL_ERROR
                    message: Unexpected error
                    field: null
        '502':
          description: >-
            Endl could not reach the service behind the edge. Retry with
            backoff.
          content:
            application/json:
              example:
                data: null
                code: 502
                message: Upstream service error
                status: Error
                errors: null
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: API-KEY
      description: Your partner API key. Must carry the `pobo` permission.

````