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.
-
Make a
POSTrequest to/v1/customer/id/{id}/transaction(orexternalId) API endpoint with the required parameters:Parameter Required Description method✓ Set to BOOKexternalIdOptional Your own reference ID for the transaction. Maximum 45 characters. typeOptional Type of transaction. Possible value: REGULARsource.account.id✓ Account to be debited destination.account.id✓ Account to be credited amount✓ Amount to transfer (in USD). Must be greater than zero. purpose✓ Purpose of the transaction. Maximum 128 characters. allowDuplicateOptional Set to trueto allow duplicate transactions on the same day. Defaults tofalse. -
Once the request is submitted, our system performs a series of system-level validations before sending the transaction for processing. These validations check for:
- Missing or invalid required fields
- Incorrect parameter formats or values
- Source or destination account status and availability
- 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.
-
If all validations pass, the transaction is submitted for processing. You can track the outcome by:
- Retrieving the transaction via GET
/v1/customer/id/{id}/transaction/id/{id}(orexternalId) API endpoint - Subscribing to Transaction webhooks
- Check the
statusfield to understand the current state of the transaction.
- Retrieving the transaction via GET
-
For every successfully created transaction, store:
id– Unique transaction identifier assigned by PassportexternalId– Your reference identifier (if provided)
These are required for tracking, reconciliation, and follow-up actions.
Updated 20 days ago