Pay via BOOK

Move funds between two accounts within the system.

Pay via BOOK lets you move funds from one Account to another Account within the system.

This payout method is used when both the source and destination accounts already exist inside this ecosystem. Unlike ACH, Wire, or Check payouts, BOOK transfers do not involve external bank accounts, mailing destinations, or additional payment rail processing.

Use Pay via BOOK when you need to send funds between two Accounts inside the system.

Common Use Cases:

  • Move funds between two users within the platform
  • Transfer funds between internal operating accounts
  • Send money between customer-linked Accounts
  • Support internal ecosystem disbursements

Create a BOOK transfer

Processing a BOOK transfer involves submitting the source and destination Passport Account identifiers to the API and tracking the transaction lifecycle.

  1. Make a POST request to /v1/customer/id/{id}/transaction (or externalId) API endpoint with the required parameters:

    ParameterRequiredDescription
    methodSet to BOOK
    externalIdOptionalYour own reference ID for the transaction. Maximum 45 characters.
    typeOptionalType of transaction. Possible value: REGULAR
    source.account.idAccount to be debited
    destination.account.idAccount to be credited
    amountAmount to transfer (in USD). Must be greater than zero.
    purposePurpose of the transaction. Maximum 128 characters.
    allowDuplicateOptionalSet to true to allow duplicate transactions on the same day. Defaults to false.
  2. Once the request is submitted, our system performs a series of system-level validations before sending the transaction for processing. These validations check for:

    1. Missing or invalid required fields
    2. Incorrect parameter formats or values
    3. Source or destination account status and availability
    4. Program Manager configuration or permission issues

    If any validation fails, the request is rejected immediately and an error response is returned. You must correct the issue and resubmit the request. For a complete list of validation errors and how to resolve them, refer to the Error Codes & Messages section.

  3. If all validations pass, the transaction is submitted for processing. You can track the outcome by:

    1. Retrieving the transaction via GET /v1/customer/id/{id}/transaction/id/{id} (or externalId) API endpoint
    2. Subscribing to Transaction webhooks
    3. Check the status field to understand the current state of the transaction.
  4. For every successfully created transaction, store:

    1. id – Unique transaction identifier assigned by Passport
    2. externalId – Your reference identifier (if provided)

    These are required for tracking, reconciliation, and follow-up actions.



.readme-logo { display: none !important; }