Program Funding Sources

Use the /fundingsources/program endpoint to create a program funding source.

A program funding source represents a bank account from which funds are drawn for Managed Just-in-Time (JIT) Funding transactions. For more information about JIT Funding, see About Just-in-Time Funding. In the sandbox environment, each program funding source you create simulates funds for use in test transactions. In production environments, program funding sources are created by Marqeta and draw funds from a bank account you set up in conjunction with Marqeta.

Note Your program funding source must be approved by Marqeta and the issuing bank. If you are using a third-party service to collect user funds, Marqeta and the issuing bank require specific reporting to ensure compliance with applicable rules and regulations. Contact Marqeta for more information.

Create program funding source

Action: POST

Endpoint: /fundingsources/program Create a program funding source.

Request body

Fields Description
active
boolean
Optional
Indicates whether the program funding source is active.
Allowable Values:
true, false
Default value:
false
name
string
Required
Name of the program funding source.
Allowable Values:
1–50 chars
token
string
Optional
Unique identifier of the funding source. If you do not include a token, the system will generate one automatically. As this token is necessary for use in other calls, we recommend that you define a simple and easy to remember string rather than letting the system generate a token for you. This value cannot be updated.
Allowable Values:
1–36 chars

Sample request body

JSON

{
  "token": "my_programfundingsource_token",
  "name": "my_programfundingsource_name",
  "active": true
}

Response body

Fields Description
account
string
Returned
Account identifier.
Allowable Values:
255 char max
active
boolean
Conditionally returned
Indicates whether the program funding source is active. This field is returned if it exists in the resource.
Allowable Values:
true, false
created_time
datetime
Returned
Date and time when the resource was created, in UTC.
Allowable Values:
datetime
Format:
yyyy-MM-ddThh:mm:ssZ
last_modified_time
datetime
Returned
Date and time when the resource was last modified, in UTC.
Allowable Values:
datetime
Format:
yyyy-MM-ddThh:mm:ssZ
name
string
Returned
Name of the program funding source.
Allowable Values:
1–50 chars
token
string
Returned
Unique identifier of the funding source.
Allowable Values:
1–36 chars

Sample response body

JSON

{
  "name": "my_programfundingsource_name",
  "active": true,
  "token": "my_programfundingsource_token",
  "account": "12.003.001.000147",
  "created_time": "2023-02-25T20:46:04Z",
  "last_modified_time": "2023-02-25T20:46:04Z"
}

Create ACH program source

Action: POST

Endpoint: /fundingsources/program/ach Create an ACH program funding source.

Request body

Fields Description
account_number
string
Required
ACH account number.
Allowable Values:
36 char max
account_type
string
Required
Type of account.
Allowable Values:
checking, savings, corporate, loan
bank_name
string
Optional
Name of the bank holding the account.
Allowable Values:
255 char max
is_default_account
boolean
Optional
If there are multiple funding sources, this field specifies which source is used by default in funding calls. If there is only one funding source, the system ignores this field and always uses that source.
Allowable Values:
true, false
Default value:
false
name_on_account
string
Required
Name on the ACH account.
Allowable Values:
1–50 chars
routing_number
string
Required
Routing number for the ACH account.
Allowable Values:
9 digits
token
string
Optional
Unique identifier of the funding source. If you do not include a token, the system will generate one automatically. This token is necessary for use in other calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember. This value cannot be updated.
Allowable Values:
1–36 chars
verification_notes
string
Optional
Free-form text field for holding notes about verification. This field is returned only if verification_override = true.
Allowable Values:
255 char max
verification_override
boolean
Optional
Allows the ACH funding source to be used, regardless of its verification status. Set this field to true if you can attest that you have verified the account on your own and that it will not be returned by the Federal Reserve.
NOTE: When using PLAID to validate a funding source, this field is always set to true.
Allowable Values:
true, false
Default value:
false

Sample request body

JSON

{
  "name_on_account": "John Doe",
  "account_number": "888271159",
  "routing_number": "121000357",
  "account_type": "checking",
  "is_default_account": true,
  "verification_override": true,
  "verification_notes": "testing"
}

Response body

Fields Description
account_suffix
string
Returned
ACH account identifier appended to the bank account number.
Allowable Values:
255 char max
account_type
string
Returned
Type of account.
Allowable Values:
checking, savings, corporate, loan
active
boolean
Returned
Specifies whether the account is active.
Allowable Values:
true, false
bank_name
string
Conditionally returned
Name of the bank holding the account. This field is returned if it exists in the resource.
Allowable Values:
255 char max
created_time
datetime
Returned
Date and time when the resource was created, in UTC.
Allowable Values:
datetime
Format:
yyyy-MM-ddThh:mm:ssZ
date_sent_for_verification
datetime
Conditionally returned
Date and time in UTC when the request for account validation was sent to the third-party partner.
This field is returned if it exists in the resource.
Allowable Values:
datetime
Format:
yyyy-MM-ddThh:mm:ssZ
date_verified
datetime
Conditionally returned
Date and time when the account was verified, in UTC.
This field is returned if it exists in the resource.
Allowable Values:
datetime
Format:
yyyy-MM-ddThh:mm:ssZ
is_default_account
boolean
Conditionally returned
If there are multiple funding sources, this field specifies which source is used by default in funding calls. If there is only one funding source, the system ignores this field and always uses that source.
Allowable Values:
true, false
last_modified_time
datetime
Returned
Date and time when the resource was last modified, in UTC.
Allowable Values:
datetime
Format:
yyyy-MM-ddThh:mm:ssZ
name_on_account
string
Returned
Name on the ACH account.
Allowable Values:
1–50 chars
token
string
Returned
Unique identifier of the funding source.
Allowable Values:
Existing funding source token
verification_notes
string
Conditionally returned
Free-form text field for holding notes about verification. This field is returned only if verification_override = true.
Allowable Values:
255 char max
verification_override
boolean
Conditionally returned
Allows the ACH funding source to be used regardless of its verification status. This field is returned if it exists in the resource.
NOTE: When using PLAID to validate a funding source, this field is always set to true.
Allowable Values:
true, false
verification_status
string
Conditionally returned
Account verification status. This field is returned if it exists in the resource.
Allowable Values:
ACH_FAILED, ACH_VERIFIED, VERIFICATION_PENDING

Sample response body

JSON

{
  "token": "my_program_ach_source_token",
  "name_on_account": "John Doe",
  "account_type": "checking",
  "account_suffix": "1156",
  "is_default_account": true,
  "active": true,
  "verification_status": "ACH_VERIFIED",
  "created_time": "2023-02-27T18:40:27Z",
  "last_modified_time": "2023-02-27T18:40:27Z"
}

List ACH program sources

Action: GET

Endpoint: /fundingsources/program/ach List ACH program funding sources.

URL query parameters

Fields Description
count
integer
Optional
Number of resources to retrieve.
Allowable Values:
1-10
start_index
integer
Optional
Sort order index of the first resource in the returned array.
Allowable Values:
Any integer
Default value:
0
fields
string
Optional
Comma-delimited list of fields to return (field_1,field_2, and so on). Leave blank to return all fields.
Allowable Values:
Comma-delimited list of fields, or blank
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:
createdTime, lastModifiedTime, or any field in the resource model
Default value:
-lastModifiedTime
active
boolean
Optional
If true, returns ACH funding sources from active programs only. If false, returns all ACH funding sources.
Allowable Values:
true, false

Response body

Fields Description
count
integer
Conditionally returned
Number of resources to retrieve.
This field is returned if there are resources in your returned array.
Allowable Values:
1-10
data
array of objects
Conditionally returned
Array of ACH funding source objects.
Objects are returned as appropriate to your query.
Allowable Values:
Array of one or more ACH funding source objects
data[].account_suffix
string
Returned
ACH account identifier appended to the bank account number.
Allowable Values:
255 char max
data[].account_type
string
Returned
Type of account.
Allowable Values:
checking, savings, corporate, loan
data[].active
boolean
Returned
Specifies whether the account is active.
Allowable Values:
true, false
data[].bank_name
string
Conditionally returned
Name of the bank holding the account. This field is returned if it exists in the resource.
Allowable Values:
255 char max
data[].created_time
datetime
Returned
Date and time when the resource was created, in UTC.
Allowable Values:
datetime
Format:
yyyy-MM-ddThh:mm:ssZ
data[].date_sent_for_verification
datetime
Conditionally returned
Date and time in UTC when the request for account validation was sent to the third-party partner.
This field is returned if it exists in the resource.
Allowable Values:
datetime
Format:
yyyy-MM-ddThh:mm:ssZ
data[].date_verified
datetime
Conditionally returned
Date and time when the account was verified, in UTC.
This field is returned if it exists in the resource.
Allowable Values:
datetime
Format:
yyyy-MM-ddThh:mm:ssZ
data[].is_default_account
boolean
Conditionally returned
If there are multiple funding sources, this field specifies which source is used by default in funding calls. If there is only one funding source, the system ignores this field and always uses that source.
Allowable Values:
true, false
data[].last_modified_time
datetime
Returned
Date and time when the resource was last modified, in UTC.
Allowable Values:
datetime
Format:
yyyy-MM-ddThh:mm:ssZ
data[].name_on_account
string
Returned
Name on the ACH account.
Allowable Values:
1–50 chars
data[].token
string
Returned
Unique identifier of the funding source.
Allowable Values:
Existing funding source token
data[].verification_notes
string
Conditionally returned
Free-form text field for holding notes about verification. This field is returned only if verification_override = true.
Allowable Values:
255 char max
data[].verification_override
boolean
Conditionally returned
Allows the ACH funding source to be used regardless of its verification status. This field is returned if it exists in the resource.
NOTE: When using PLAID to validate a funding source, this field is always set to true.
Allowable Values:
true, false
data[].verification_status
string
Conditionally returned
Account verification status. This field is returned if it exists in the resource.
Allowable Values:
ACH_FAILED, ACH_VERIFIED, VERIFICATION_PENDING
end_index
integer
Conditionally returned
Sort order index of the last resource in the returned array.
This field is returned if there are resources in your returned array.
Allowable Values:
Any integer
is_more
boolean
Conditionally returned
A value of true indicates that more unreturned resources exist. A value of false indicates that no more unreturned resources exist.
This field is returned if there are resources in your returned array.
Allowable Values:
true, false
start_index
integer
Conditionally returned
Sort order index of the first resource in the returned array.
This field is returned if there are resources in your returned array.
Allowable Values:
Any integer

Retrieve program source

Action: GET

Endpoint: /fundingsources/program/{token} Retrieve a specific program funding source, whether active or inactive.

URL path parameters

Fields Description
token
string
Required
Unique identifier of the program funding source.
Allowable Values:
Existing program funding source token

Response body

Sample response body

JSON

Update program source

Action: PUT

Endpoint: /fundingsources/program/{token} Update a program funding source.

URL path parameters

Request body

Fields Description
active
boolean
Optional
Indicates whether the program funding source is active.
Allowable Values:
true, false
Default value:
false
name
string
Optional
Name of the program funding source.
Allowable Values:
1–50 chars

Sample request body

JSON

{
  "name": "your_programfundingsource_name",
  "active": false
}

Response body

Sample response body

JSON

{
  "name": "your_programfundingsource_name",
  "active": true,
  "token": "my_programfundingsource_token",
  "account": "12.003.001.000147",
  "created_time": "2023-02-25T20:46:04Z",
  "last_modified_time": "2023-02-25T20:50:00Z"
}