> ## 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 pre-transaction

> Lock a quote in and receive deposit instructions for the transfer.

**`senderId` is mandatory on every POBO transaction.** That is the whole point of the surface: the payment is made on behalf of a named originator.



## OpenAPI

````yaml api-reference/endl-pobo-api.json POST /api/v0/pobo/transactions/pre-txn
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/transactions/pre-txn:
    post:
      tags:
        - Transactions
      summary: Create pre-transaction
      description: >-
        Lock a quote in and receive deposit instructions for the transfer.


        **`senderId` is mandatory on every POBO transaction.** That is the whole
        point of the surface: the payment is made on behalf of a named
        originator.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - quoteId
                - recipientId
                - senderId
              properties:
                quoteId:
                  type: string
                  description: The quote to lock in — `qut_…`.
                recipientId:
                  type: string
                  description: Who is being paid — `rec_…`.
                senderId:
                  type: string
                  description: >-
                    **Mandatory.** The originator this payment is made on behalf
                    of — `snd_…`.
                transferPurposeCode:
                  type: string
                  description: Purpose of the transfer — `FAMILY_SUPPORT`.
            example:
              quoteId: qut_xxxxxxxxxxxxxxxxxxxx
              recipientId: rec_xxxxxxxxxxxxxxxxxxxx
              senderId: snd_xxxxxxxxxxxxxxxxxxxx
              transferPurposeCode: FAMILY_SUPPORT
      responses:
        '200':
          description: Deposit instructions for the transfer.
          content:
            application/json:
              example:
                code: 200
                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
        '404':
          description: No such resource, or it belongs to another partner.
          content:
            application/json:
              example:
                code: 404
                message: Resource not found
                status: ERROR
                data: null
                errors:
                  - code: NOT_FOUND
                    message: Resource not found
                    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.

````