/
30 minute read
May 5, 2022

Program Funding via ACH (Beta)

Hidden

Use the /banktransfers endpoint to move funds between your program funding account and an external account over the ACH Network. This kind of bank transfer is also known as ACH origination.

Note
This feature is currently in beta and subject to change. It also requires additional activation steps. To learn more about the beta program for this feature and about activating it for your program, contact your Marqeta representative.

You can create the following types of transfers:

  • Push funds from your program funding account to an external account.

  • Pull funds from your external account into your program funding account.

You must have an existing bank account at a US bank to fund or receive funds from your program funding account. To add an external account to the Marqeta platform, send a POST request to the /fundingsources/program/ach endpoint.

Tip
To move funds within the Marqeta platform, use one of the Transfers endpoints: /peer-transfers, or /program-transfers.

Create ACH transfer

Action: POST
Endpoint: /banktransfers/ach

Create an ACH transfer that pushes funds to an external account or pulls funds into your program funding account.

Request body

Create bank transfer request model

Fields Description

amount

decimal
Required

The amount to push or pull.

Allowable Values:

0.01 min

currency_code

string
Optional

The currency of the push or pull.

Allowable Values:

A valid alpha-3 currency code.

Default value:
USD

funding_source_token

string
Required

The ACH funding source token for the external account.

Allowable Values:

36 char max

Existing ACH funding source token.

memo

string
Optional

Additional text describing the ACH transfer.

Allowable Values:

99 char max

standard_entry_class_code

string
Optional

Three-letter code identifying the type of entry.

  • WEB — Internet-initiated entry

  • PPD — Prearranged Payment and Deposit

  • CCD — Cash Concentration and Disbursement

Allowable Values:

WEB, PPD, CCD

statement_descriptor

string
Optional

Description of the transaction, as it will appear on the receiver’s bank statement.

Allowable Values:

10 char max

token

string
Optional

The token of the ACH transfer to retrieve.

Allowable Values:

36 char max

transfer_speed

string
Optional

Specifies how quickly to initiate the ACH transfer.

NOTE: Same-day transfers are limited to a maximum amount of $100,000.

Allowable Values:

STANDARD, SAME_DAY

type

string
Optional

Specifies whether the ACH transfer is a push (credit) or pull (debit).

Allowable Values:

PUSH, PULL

Sample request body
JSON
Copied

Is this helpful?

Yes
No
Response body
Fields Description

amount

decimal
Returned

The amount to push or pull.

Allowable Values:

0.01 min

batch_number

string
Conditionally returned

Field required in older versions of the API, but no longer used.

Allowable Values:

Any integer

created_time

datetime
Conditionally returned

The date and time when the ACH transfer was created, in UTC. 2021-10-26T20:03:15Z, for example.

Allowable Values:

Format: yyyy-MM-ddTHH:mm:ssZ

currency_code

string
Conditionally returned

The three-digit ISO 4217 currency code.

Allowable Values:

A valid three-digit ISO 4217 currency code

funding_source_token

string
Returned

The ACH funding source token for the external account.

Allowable Values:

36 char max

last_modified_time

datetime
Conditionally returned

The date and time when the ACH transfer was last modified, in UTC. 2021-10-26T20:03:10Z, for example.

Allowable Values:

Format: yyyy-MM-ddTHH:mm:ssZ

memo

string
Conditionally returned

Additional text describing the ACH transfer.

Allowable Values:

99 char max

return_code

string
Conditionally returned

A standardized ACH return code for a returned transaction, generally sent by the RDFI. Transactions can be returned for any of the reasons listed in the NACHA ACH return codes table of the ACH Origination Guide.

Allowable Values:

R01, R02, R03, R04, R05, R06, R07, R08, R09, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R50, R51, R52, R53, R61, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R80, R81, R82, R83, R84, R85

return_reason

string
Conditionally returned

Human-readable description correlating to the return_code, such as Insufficient funds, if a return code is present in the response.

Allowable Values:

255 char max

standard_entry_class_code

string
Conditionally returned

Three-letter code identifying the type of entry.

  • WEB — Internet-initiated entry

  • PPD — Prearranged Payment and Deposit

  • CCD — Cash Concentration and Disbursement

Allowable Values:

WEB, PPD, CCD

statement_descriptor

string
Conditionally returned

Description of the transaction, as it will appear on the receiver’s bank statement.

Allowable Values:

10 char max

status

string
Conditionally returned

New state of the ACH transfer.

Allowable Values:

INITIATED, PENDING, PROCESSING, SUBMITTED, RETURNED, COMPLETED, ERROR, CANCELLED

token

string
Conditionally returned

The token of the ACH transfer to retrieve.

Allowable Values:

36 char max

transfer_speed

string
Conditionally returned

Specifies how quickly to initiate the ACH transfer.

NOTE: Same-day transfers are limited to a maximum amount of $100,000.

Allowable Values:

STANDARD, SAME_DAY

transitions

array of objects
Conditionally returned

An array of ACH transfer transition objects.

Allowable Values:

One or more ACH transfer transition objects

transitions[].bank_transfer_token

string
Returned

Token of the ACH transfer being transitioned.

Allowable Values:

36 char max

transitions[].batch_number

string
Conditionally returned

Field required in older versions of the API, but no longer used.

Allowable Values:

Any integer

transitions[].channel

string
Returned

Mechanism by which the transaction was initiated.

Allowable Values:

API, SYSTEM

transitions[].created_time

datetime
Conditionally returned

The date and time when the ACH transfer was created.

Allowable Values:

Format: yyyy-MM-dd’T’HH:mm:ss.Z

transitions[].last_modified_time

datetime
Conditionally returned

The date and time when the ACH transfer was last modified.

Allowable Values:

Format: yyyy-MM-dd’T’HH:mm:ss.Z

transitions[].program_reserve_token

string
Conditionally returned

Not currently used.

Allowable Values:

36 char max

transitions[].reason

string
Conditionally returned

An explanation of why the transition is being made, for example "Created by POST call on API". Returned if this information was supplied when the transition was originally created.

Allowable Values:

255 char max

transitions[].return_code

string
Conditionally returned

A standardized ACH return code for a returned transaction, generally sent by the RDFI. Transactions can be returned for any of the reasons listed in the NACHA ACH return codes table of the ACH Origination Guide.

Allowable Values:

R01, R02, R03, R04, R05, R06, R07, R08, R09, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R50, R51, R52, R53, R61, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R80, R81, R82, R83, R84, R85

transitions[].return_reason

string
Conditionally returned

Human-readable description correlating to the return_code, such as Insufficient funds, if a return code is present in the response.

Allowable Values:

255 char max

transitions[].status

string
Returned

New state of the ACH transfer.

Allowable Values:

PENDING, PROCESSING, SUBMITTED, RETURNED, COMPLETED, CANCELLED

transitions[].token

string
Conditionally returned

The unique identifier of the bank transfer transition.

Allowable Values:

36 char max

transitions[].transaction_jit_token

string
Conditionally returned

Transaction token for JIT-related ledger entries for the ACH transfer.

Allowable Values:

Existing JIT funding transaction token

transitions[].transaction_token

string
Conditionally returned

Transaction token for non-JIT-related ledger entries for the ACH transfer.

Allowable Values:

Existing transaction token

type

string
Conditionally returned

Specifies whether the ACH transfer is a push (credit) or pull (debit).

Allowable Values:

PUSH, PULL

Sample response body
JSON
Copied

Is this helpful?

Yes
No

Retrieve ACH transfer

Action: GET
Endpoint: /banktransfers/ach/{token}

Retrieve a specific ACH transfer.

URL path parameters
Fields Description

token

string
Required

Bank transfer token

Allowable Values:

Response body
Fields Description

amount

decimal
Returned

The amount to push or pull.

Allowable Values:

0.01 min

batch_number

string
Conditionally returned

Field required in older versions of the API, but no longer used.

Allowable Values:

Any integer

created_time

datetime
Conditionally returned

The date and time when the ACH transfer was created, in UTC. 2021-10-26T20:03:15Z, for example.

Allowable Values:

Format: yyyy-MM-ddTHH:mm:ssZ

currency_code

string
Conditionally returned

The three-digit ISO 4217 currency code.

Allowable Values:

A valid three-digit ISO 4217 currency code

funding_source_token

string
Returned

The ACH funding source token for the external account.

Allowable Values:

36 char max

last_modified_time

datetime
Conditionally returned

The date and time when the ACH transfer was last modified, in UTC. 2021-10-26T20:03:10Z, for example.

Allowable Values:

Format: yyyy-MM-ddTHH:mm:ssZ

memo

string
Conditionally returned

Additional text describing the ACH transfer.

Allowable Values:

99 char max

return_code

string
Conditionally returned

A standardized ACH return code for a returned transaction, generally sent by the RDFI. Transactions can be returned for any of the reasons listed in the NACHA ACH return codes table of the ACH Origination Guide.

Allowable Values:

R01, R02, R03, R04, R05, R06, R07, R08, R09, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R50, R51, R52, R53, R61, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R80, R81, R82, R83, R84, R85

return_reason

string
Conditionally returned

Human-readable description correlating to the return_code, such as Insufficient funds, if a return code is present in the response.

Allowable Values:

255 char max

standard_entry_class_code

string
Conditionally returned

Three-letter code identifying the type of entry.

  • WEB — Internet-initiated entry

  • PPD — Prearranged Payment and Deposit

  • CCD — Cash Concentration and Disbursement

Allowable Values:

WEB, PPD, CCD

statement_descriptor

string
Conditionally returned

Description of the transaction, as it will appear on the receiver’s bank statement.

Allowable Values:

10 char max

status

string
Conditionally returned

New state of the ACH transfer.

Allowable Values:

INITIATED, PENDING, PROCESSING, SUBMITTED, RETURNED, COMPLETED, ERROR, CANCELLED

token

string
Conditionally returned

The token of the ACH transfer to retrieve.

Allowable Values:

36 char max

transfer_speed

string
Conditionally returned

Specifies how quickly to initiate the ACH transfer.

NOTE: Same-day transfers are limited to a maximum amount of $100,000.

Allowable Values:

STANDARD, SAME_DAY

transitions

array of objects
Conditionally returned

An array of ACH transfer transition objects.

Allowable Values:

One or more ACH transfer transition objects

transitions[].bank_transfer_token

string
Returned

Token of the ACH transfer being transitioned.

Allowable Values:

36 char max

transitions[].batch_number

string
Conditionally returned

Field required in older versions of the API, but no longer used.

Allowable Values:

Any integer

transitions[].channel

string
Returned

Mechanism by which the transaction was initiated.

Allowable Values:

API, SYSTEM

transitions[].created_time

datetime
Conditionally returned

The date and time when the ACH transfer was created.

Allowable Values:

Format: yyyy-MM-dd’T’HH:mm:ss.Z

transitions[].last_modified_time

datetime
Conditionally returned

The date and time when the ACH transfer was last modified.

Allowable Values:

Format: yyyy-MM-dd’T’HH:mm:ss.Z

transitions[].program_reserve_token

string
Conditionally returned

Not currently used.

Allowable Values:

36 char max

transitions[].reason

string
Conditionally returned

An explanation of why the transition is being made, for example "Created by POST call on API". Returned if this information was supplied when the transition was originally created.

Allowable Values:

255 char max

transitions[].return_code

string
Conditionally returned

A standardized ACH return code for a returned transaction, generally sent by the RDFI. Transactions can be returned for any of the reasons listed in the NACHA ACH return codes table of the ACH Origination Guide.

Allowable Values:

R01, R02, R03, R04, R05, R06, R07, R08, R09, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R50, R51, R52, R53, R61, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R80, R81, R82, R83, R84, R85

transitions[].return_reason

string
Conditionally returned

Human-readable description correlating to the return_code, such as Insufficient funds, if a return code is present in the response.

Allowable Values:

255 char max

transitions[].status

string
Returned

New state of the ACH transfer.

Allowable Values:

PENDING, PROCESSING, SUBMITTED, RETURNED, COMPLETED, CANCELLED

transitions[].token

string
Conditionally returned

The unique identifier of the bank transfer transition.

Allowable Values:

36 char max

transitions[].transaction_jit_token

string
Conditionally returned

Transaction token for JIT-related ledger entries for the ACH transfer.

Allowable Values:

Existing JIT funding transaction token

transitions[].transaction_token

string
Conditionally returned

Transaction token for non-JIT-related ledger entries for the ACH transfer.

Allowable Values:

Existing transaction token

type

string
Conditionally returned

Specifies whether the ACH transfer is a push (credit) or pull (debit).

Allowable Values:

PUSH, PULL

Sample response body
JSON
Copied

Is this helpful?

Yes
No

List ACH transfers

Action: GET
Endpoint: /banktransfers/ach

Retrieve a list of all ACH transfers.

URL query parameters
Fields Description

count

integer
Optional

Number of users to retrieve

Allowable Values:

1-10

start_index

integer
Optional

The sort order index of the first resource in the returned array.

Allowable Values:

Any integer

user_token

string
Optional

The unique identifier of the authorized owner of the account.

Allowable Values:

Existing user token

business_token

string
Optional

The unique identifier of the business.

Allowable Values:

Existing business token

funding_source_token

string
Optional

The unique identifier of the funding source.

Allowable Values:

Existing funding source token

statuses

string
Optional

Comma-delimited list of bank transfer states to display.

Allowable Values:

PENDING, PROCESSING, SUBMITTED, RETURNED, COMPLETED, CANCELLED

sort_by

string
Optional

Field on which to sort Use any field in the resource model, or one of the system fields lastModifiedTime or createdTime. Prefix the field name with a hyphen (-) to sort in descending order. Omit the hyphen to sort in ascending order.

Allowable Values:

lastModifiedTime, createdTime, or any field in the resource model

expand

string
Optional

Returns the full funding source object when fundingsource is passed. Otherwise returns the funding source token.

Allowable Values:

fundingsource or blank

Response body
Fields Description

count

integer
Conditionally returned

The number of resources retrieved.

Allowable Values:

1-10

data

array of objects
Conditionally returned

An array of ACH transfer objects.

Allowable Values:

One or more ACH transfer transition objects

data[].amount

decimal
Returned

The amount to push or pull.

Allowable Values:

0.01 min

data[].batch_number

string
Conditionally returned

Field required in older versions of the API, but no longer used.

Allowable Values:

Any integer

data[].created_time

datetime
Conditionally returned

The date and time when the ACH transfer was created, in UTC. 2021-10-26T20:03:15Z, for example.

Allowable Values:

Format: yyyy-MM-ddTHH:mm:ssZ

data[].currency_code

string
Conditionally returned

The three-digit ISO 4217 currency code.

Allowable Values:

A valid three-digit ISO 4217 currency code

data[].funding_source_token

string
Returned

The ACH funding source token for the external account.

Allowable Values:

36 char max

data[].last_modified_time

datetime
Conditionally returned

The date and time when the ACH transfer was last modified, in UTC. 2021-10-26T20:03:10Z, for example.

Allowable Values:

Format: yyyy-MM-ddTHH:mm:ssZ

data[].memo

string
Conditionally returned

Additional text describing the ACH transfer.

Allowable Values:

99 char max

data[].return_code

string
Conditionally returned

A standardized ACH return code for a returned transaction, generally sent by the RDFI. Transactions can be returned for any of the reasons listed in the NACHA ACH return codes table of the ACH Origination Guide.

Allowable Values:

R01, R02, R03, R04, R05, R06, R07, R08, R09, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R50, R51, R52, R53, R61, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R80, R81, R82, R83, R84, R85

data[].return_reason

string
Conditionally returned

Human-readable description correlating to the return_code, such as Insufficient funds, if a return code is present in the response.

Allowable Values:

255 char max

data[].standard_entry_class_code

string
Conditionally returned

Three-letter code identifying the type of entry.

  • WEB — Internet-initiated entry

  • PPD — Prearranged Payment and Deposit

  • CCD — Cash Concentration and Disbursement

Allowable Values:

WEB, PPD, CCD

data[].statement_descriptor

string
Conditionally returned

Description of the transaction, as it will appear on the receiver’s bank statement.

Allowable Values:

10 char max

data[].status

string
Conditionally returned

New state of the ACH transfer.

Allowable Values:

INITIATED, PENDING, PROCESSING, SUBMITTED, RETURNED, COMPLETED, ERROR, CANCELLED

data[].token

string
Conditionally returned

The token of the ACH transfer to retrieve.

Allowable Values:

36 char max

data[].transfer_speed

string
Conditionally returned

Specifies how quickly to initiate the ACH transfer.

NOTE: Same-day transfers are limited to a maximum amount of $100,000.

Allowable Values:

STANDARD, SAME_DAY

data[].transitions

array of objects
Conditionally returned

An array of ACH transfer transition objects.

Allowable Values:

One or more ACH transfer transition objects

data[].transitions[].bank_transfer_token

string
Returned

Token of the ACH transfer being transitioned.

Allowable Values:

36 char max

data[].transitions[].batch_number

string
Conditionally returned

Field required in older versions of the API, but no longer used.

Allowable Values:

Any integer

data[].transitions[].channel

string
Returned

Mechanism by which the transaction was initiated.

Allowable Values:

API, SYSTEM

data[].transitions[].created_time

datetime
Conditionally returned

The date and time when the ACH transfer was created.

Allowable Values:

Format: yyyy-MM-dd’T’HH:mm:ss.Z

data[].transitions[].last_modified_time

datetime
Conditionally returned

The date and time when the ACH transfer was last modified.

Allowable Values:

Format: yyyy-MM-dd’T’HH:mm:ss.Z

data[].transitions[].program_reserve_token

string
Conditionally returned

Not currently used.

Allowable Values:

36 char max

data[].transitions[].reason

string
Conditionally returned

An explanation of why the transition is being made, for example "Created by POST call on API". Returned if this information was supplied when the transition was originally created.

Allowable Values:

255 char max

data[].transitions[].return_code

string
Conditionally returned

A standardized ACH return code for a returned transaction, generally sent by the RDFI. Transactions can be returned for any of the reasons listed in the NACHA ACH return codes table of the ACH Origination Guide.

Allowable Values:

R01, R02, R03, R04, R05, R06, R07, R08, R09, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R50, R51, R52, R53, R61, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R80, R81, R82, R83, R84, R85

data[].transitions[].return_reason

string
Conditionally returned

Human-readable description correlating to the return_code, such as Insufficient funds, if a return code is present in the response.

Allowable Values:

255 char max

data[].transitions[].status

string
Returned

New state of the ACH transfer.

Allowable Values:

PENDING, PROCESSING, SUBMITTED, RETURNED, COMPLETED, CANCELLED

data[].transitions[].token

string
Conditionally returned

The unique identifier of the bank transfer transition.

Allowable Values:

36 char max

data[].transitions[].transaction_jit_token

string
Conditionally returned

Transaction token for JIT-related ledger entries for the ACH transfer.

Allowable Values:

Existing JIT funding transaction token

data[].transitions[].transaction_token

string
Conditionally returned

Transaction token for non-JIT-related ledger entries for the ACH transfer.

Allowable Values:

Existing transaction token

data[].type

string
Conditionally returned

Specifies whether the ACH transfer is a push (credit) or pull (debit).

Allowable Values:

PUSH, PULL

end_index

integer
Conditionally returned

The sort order index of the last resource in the returned array.

Allowable Values:

Any integer

is_more

boolean
Conditionally returned

A value of true indicates that more unreturned resources exist.

Allowable Values:

true, false

start_index

integer
Conditionally returned

The sort order index of the first resource in the returned array.

Allowable Values:

Any integer

Sample response body
JSON
Copied

Is this helpful?

Yes
No

Create ACH transfer transition

Action: POST
Endpoint: /banktransfers/ach/transitions

Create an ACH transfer transition that updates the status of an ACH transfer.

Each ACH transfer has a lifecycle of statuses, as shown in the following diagram:

ACH transfer lifecycle

Is this helpful?

Yes
No
Note
You can create ACH transfer transitions in the sandbox environment. However, Marqeta transitions ACH transfers through their lifecycle in the production environment.
Request body

Create bank transfer transition request model

Fields Description

bank_transfer_token

string
Required

Token of the ACH transfer you want to transition.

Allowable Values:

36 char max

Existing ACH transfer token.

batch_number

string
Optional

Field required in older versions of the API, but no longer used.

Allowable Values:

Any integer

channel

string
Required

Mechanism by which the transaction was initiated.

Allowable Values:

API, SYSTEM

program_reserve_token

string
Optional

Not currently used.

Allowable Values:

36 char max

An existing token

reason

string
Optional

Description of why the ACH transfer status was updated.

Allowable Values:

255 char max

return_code

string
Optional

A standardized ACH return code for a returned transaction, generally sent by the RDFI. Transactions can be returned for any of the reasons listed in the NACHA ACH return codes table of the ACH Origination Guide.

Allowable Values:

R01, R02, R03, R04, R05, R06, R07, R08, R09, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R50, R51, R52, R53, R61, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R80, R81, R82, R83, R84, R85

Note
If the transition is to the RETURNED state, a return_code should be supplied to indicate why the transaction is RETURNED.

status

string
Required

New state of the ACH transfer. NOTE: In production environments, the only value to which you are allowed to transition an ACH transfer is CANCELLED.

Allowable Values:

PENDING, PROCESSING, SUBMITTED, RETURNED, COMPLETED, CANCELLED

token

string
Optional

The unique identifier of the bank transfer transition.

Allowable Values:

36 char max

Sample request body
JSON
Copied

Is this helpful?

Yes
No
Response body
Fields Description

bank_transfer_token

string
Returned

Token of the ACH transfer being transitioned.

Allowable Values:

36 char max

batch_number

string
Conditionally returned

Field required in older versions of the API, but no longer used.

Allowable Values:

Any integer

channel

string
Returned

Mechanism by which the transaction was initiated.

Allowable Values:

API, SYSTEM

created_time

datetime
Conditionally returned

The date and time when the ACH transfer was created.

Allowable Values:

Format: yyyy-MM-dd’T’HH:mm:ss.Z

last_modified_time

datetime
Conditionally returned

The date and time when the ACH transfer was last modified.

Allowable Values:

Format: yyyy-MM-dd’T’HH:mm:ss.Z

program_reserve_token

string
Conditionally returned

Not currently used.

Allowable Values:

36 char max

reason

string
Conditionally returned

An explanation of why the transition is being made, for example "Created by POST call on API". Returned if this information was supplied when the transition was originally created.

Allowable Values:

255 char max

return_code

string
Conditionally returned

A standardized ACH return code for a returned transaction, generally sent by the RDFI. Transactions can be returned for any of the reasons listed in the NACHA ACH return codes table of the ACH Origination Guide.

Allowable Values:

R01, R02, R03, R04, R05, R06, R07, R08, R09, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R50, R51, R52, R53, R61, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R80, R81, R82, R83, R84, R85

return_reason

string
Conditionally returned

Human-readable description correlating to the return_code, such as Insufficient funds, if a return code is present in the response.

Allowable Values:

255 char max

status

string
Returned

New state of the ACH transfer.

Allowable Values:

PENDING, PROCESSING, SUBMITTED, RETURNED, COMPLETED, CANCELLED

token

string
Conditionally returned

The unique identifier of the bank transfer transition.

Allowable Values:

36 char max

transaction_jit_token

string
Conditionally returned

Transaction token for JIT-related ledger entries for the ACH transfer.

Allowable Values:

Existing JIT funding transaction token

transaction_token

string
Conditionally returned

Transaction token for non-JIT-related ledger entries for the ACH transfer.

Allowable Values:

Existing transaction token

Sample response body
JSON
Copied

Is this helpful?

Yes
No

List ACH transfer transitions

Action: GET
Endpoint: /banktransfers/ach/transitions

Retrieve a list of all ACH transfer transitions for a given ACH transfer.

URL query parameters
Fields Description

count

integer
Optional

Number of bank transfer transitions to retrieve

Allowable Values:

50 max

token

string
Optional

Bank transfer transition token

Allowable Values:

Existing bank transfer transition token

bank_transfer_token

string
Optional

Bank transfer token

Allowable Values:

Existing bank transfer token

start_index

integer
Optional

The sort order index of the first resource in the returned array.

Allowable Values:

Any integer

sort_by

string
Optional

Field on which to sort. Use any field in the resource model, or one of the system fields lastModifiedTime or createdTime. Prefix the field name with a hyphen (-) to sort in descending order. Omit the hyphen to sort in ascending order.

Allowable Values:

lastModifiedTime, createdTime, or any field in the resource model

statuses

string
Optional

Comma-delimited list of bank transfer states to display.

Allowable Values:

PENDING, PROCESSING, SUBMITTED, RETURNED, COMPLETED, CANCELLED

Response body
Fields Description

count

integer
Conditionally returned

The number of resources retrieved.

Allowable Values:

1-10

data

array of objects
Conditionally returned

An array of ACH transfer transition objects.

Allowable Values:

One or more ACH transfer transition objects

data[].bank_transfer_token

string
Returned

Token of the ACH transfer being transitioned.

Allowable Values:

36 char max

data[].batch_number

string
Conditionally returned

Field required in older versions of the API, but no longer used.

Allowable Values:

Any integer

data[].channel

string
Returned

Mechanism by which the transaction was initiated.

Allowable Values:

API, SYSTEM

data[].created_time

datetime
Conditionally returned

The date and time when the ACH transfer was created.

Allowable Values:

Format: yyyy-MM-dd’T’HH:mm:ss.Z

data[].last_modified_time

datetime
Conditionally returned

The date and time when the ACH transfer was last modified.

Allowable Values:

Format: yyyy-MM-dd’T’HH:mm:ss.Z

data[].program_reserve_token

string
Conditionally returned

Not currently used.

Allowable Values:

36 char max

data[].reason

string
Conditionally returned

An explanation of why the transition is being made, for example "Created by POST call on API". Returned if this information was supplied when the transition was originally created.

Allowable Values:

255 char max

data[].return_code

string
Conditionally returned

A standardized ACH return code for a returned transaction, generally sent by the RDFI. Transactions can be returned for any of the reasons listed in the NACHA ACH return codes table of the ACH Origination Guide.

Allowable Values:

R01, R02, R03, R04, R05, R06, R07, R08, R09, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R50, R51, R52, R53, R61, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R80, R81, R82, R83, R84, R85

data[].return_reason

string
Conditionally returned

Human-readable description correlating to the return_code, such as Insufficient funds, if a return code is present in the response.

Allowable Values:

255 char max

data[].status

string
Returned

New state of the ACH transfer.

Allowable Values:

PENDING, PROCESSING, SUBMITTED, RETURNED, COMPLETED, CANCELLED

data[].token

string
Conditionally returned

The unique identifier of the bank transfer transition.

Allowable Values:

36 char max

data[].transaction_jit_token

string
Conditionally returned

Transaction token for JIT-related ledger entries for the ACH transfer.

Allowable Values:

Existing JIT funding transaction token

data[].transaction_token

string
Conditionally returned

Transaction token for non-JIT-related ledger entries for the ACH transfer.

Allowable Values:

Existing transaction token

end_index

integer
Conditionally returned

The sort order index of the last resource in the returned array.

Allowable Values:

Any integer

is_more

boolean
Conditionally returned

A value of true indicates that more unreturned resources exist.

Allowable Values:

true, false

start_index

integer
Conditionally returned

The sort order index of the first resource in the returned array.

Allowable Values:

Any integer

Sample response body
JSON
Copied

Is this helpful?

Yes
No
Join our developer newsletter