Pay via Check

Send funds by physical check to a registered mailing destination.

Pay via Check lets you send funds from a Passport Account by issuing a physical check to a mailing address outside the Passport system.

This payout method supports multiple destination types, depending on who you are paying. Use a pre-registered mailing address when sending a check to an address you already maintain in Passport, or use a Contact when sending a check to another person or business whose payee details are already saved in the system.

Unlike ACH or Wire, this method delivers funds through a physical check, making it useful when electronic payout methods are not available or are not preferred.

Check payouts do not support one-time destinations. The recipient mailing address must already be registered in Passport before you create the transaction.

Common Use Cases:

  • Pay vendors or suppliers by mailed check
  • Send payments to a saved payee managed as a Contact
  • Mail funds to your own registered mailing address
  • Include remittance information with a physical payment

Prepare payout recipients

Before initiating a check payout, make sure the recipient is already set up in Passport.

  • Use a pre-registered mailing address when the check should be mailed to an address you already manage in the system.
  • Use Add Payees as Contacts when sending checks to another person or business and you want to reuse their saved payee details later.

This helps reduce manual entry, improves consistency, and ensures that check payouts are sent only to approved destinations.


Create a check payout

Processing a check payout involves providing the destination mailing details and any delivery or remittance preferences, then 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 CHECK
    source.account.idThe Passport Account to be debited
    destinationDefines the mailing address or Contact to which the check will be sent. Refer to the Destination Types accordion below for supported options.
    amountAmount to send (in USD). Must be greater than zero.
    purposePurpose of the transaction. Maximum 128 characters.
    typeOptionalType of transaction. Possible values: REGULAR (default), EXTERNAL.
    allowDuplicateOptionalSet to true to allow duplicate transactions on the same day. Defaults to false.
    externalIdOptionalYour own reference ID for the transaction. Maximum 45 characters.

Destination Types

Send to a pre-registered mailing address

Use this option when you want to send money from a Passport Account to a mailing address that is already registered in Passport.

This is the right option when you are sending a physical check to your own registered mailing address or to another address that you already maintain directly in the system.

ParameterRequiredDescription
destination.address.idUnique identifier of the mailing address assigned by Passport
destination.payeeNameName of the payee to whom the check is being sent
source.payorAddress.idUnique identifier of the payor’s address assigned by Passport

Best for:

  • Sending a check to your own registered mailing address
  • Sending a check to a recipient address that is already maintained in Passport

Send to a Contact

Use this option when you want to send money from a Passport Account to another person or business outside the system whose payee details are already saved as a Contact.

Contacts are useful for recurring third-party check payouts because they let you reuse saved payee details instead of manually entering recipient information each time. If the recipient has not been saved yet, first add them in Add Payees as Contacts.

ParameterRequiredDescription
destination.contact.idUnique identifier of the Contact assigned by Passport
destination.contact.mailingAddress.idUnique identifier of the mailing address linked to the Contact

Best for:

  • Paying another person or business outside the system
  • Reusing saved third-party payee details for repeat check payouts

  1. You can also pass the processingDetail object, which carries additional processing instructions for your transaction. While optional as a whole, certain fields within it may be required depending on your Program Manager configuration.

    ParameterRequiredDescription
    processingDetail.deliveryModeRecommendedMode of delivery for the check. Possible values: STANDARD (default), TWO_DAY, OVERNIGHT.
    processingDetail.memoAdditional details printed in the memo field of the check.
    processingDetail.remittanceInfoCheck remittance details passed as per the Check Remittance Template linked to the customer. Sub-nodes correspond to column headings defined in the template. Maximum 10 column headings and 17 entries are supported.
    processingDetail.checkIssueDateFor EXTERNAL type transactions, the date printed on the check indicating when it was issued. Format: MM/DD/YYYY.
    processingDetail.location.idUnique identifier of a location to be linked to the transaction, assigned by Passport.
  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. 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

    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 such as stop requests.


Delivery Modes

Check payouts support three delivery modes, which determine how and when the physical check is delivered to the recipient.

ModeBehavior
STANDARDDefault delivery mode. Check is mailed via standard postal service.
TWO_DAYCheck is delivered within two business days via expedited shipping.
OVERNIGHTCheck is delivered the next business day via overnight courier.

Transaction Statuses

The table below describes the possible statuses of a check payout and the reasons associated with each.

StatusDescriptionReason
SCHEDULEDDefault status on creation.ON_USER_REQUEST
PENDINGTransaction is on hold as one or more processing conditions have not been met. Source account must be ACTIVE with sufficient funds, and all entities must be OFAC and CIP verified.EXTERNAL_ACCOUNT_BLOCKED, EXTERNAL_ACCOUNT_INACTIVE, ACCOUNT_INACTIVE, ACCOUNT_BLOCKED, ACCOUNT_CLOSURE_INITIATED, ACCOUNT_CLOSED, CUSTOMER_SUSPENDED, OFAC status is not verified
PROCESSINGTransaction has been picked up for processing.PROCESSING_IN_TRANSIT
IN_DELIVERYCheck has been printed and is currently under shipment.PROCESSING_IN_DELIVERY
DELIVEREDCheck has been successfully delivered to the recipient.Transaction Delivered
COMPLETEDTransaction has been successfully completed after the realization interval.PROCESSED_BY_SYSTEM, Remote Check Processed
FAILEDTransaction could not be processed within the allowed interval.INSUFFICIENT_FUNDS, EXTERNAL_ACCOUNT_BLOCKED, Transaction failed due to OFAC verification failure, <return-description> (<return-code>)
STOPPEDA stop request was received after the check was printed.LOST_CHECK, FRAUD, INCORRECT_DESTINATION, INCORRECT_AMOUNT, INCORRECTLY_CREATED, ON_USER_REQUEST, OTHERS
CANCELLEDTransaction was cancelled upon user request before the check was printed.ON_USER_REQUEST, INCORRECTLY_CREATED, OTHERS

Best Practices

PracticeDescription
Register recipient addresses in advanceCheck payouts do not support one-time destinations. Make sure the destination mailing address is already registered in Passport before creating the transaction.
Use Contacts for third-party recipientsWhen sending checks to another person or business outside the system, save them as a Contact so you can reuse their payee details later.
Choose the right delivery modeSelect OVERNIGHT or TWO_DAY for time-sensitive payments. Use STANDARD for routine disbursements to manage costs.
Use the Memo fieldPopulate processingDetail.memo with a clear descriptor. This is printed directly on the check and helps the recipient identify the payment.
Include remittance informationFor payments that require supporting detail — such as invoice breakdowns — use processingDetail.remittanceInfo to include structured remittance data alongside the check.
Monitor transaction statusTrack your transaction through IN_DELIVERY and DELIVERED statuses to confirm the check has reached the recipient before raising a stop request.
Use WebhooksSubscribe to transaction webhooks to stay informed about status transitions asynchronously, without polling.
Test your integrationUse Passport's sandbox environment to test all send scenarios, including stop requests and delivery failures, before going live.


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