Skip to main content
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 source

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

Request body

FieldsDescription
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

FieldsDescription
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

FieldsDescription
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

FieldsDescription
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

FieldsDescription
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

FieldsDescription
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

FieldsDescription
token

string

Required
Unique identifier of the program funding source.

Allowable Values:

Existing program funding source token

Response body

FieldsDescription
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"
}

Update program source

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

URL path parameters

FieldsDescription
token

string

Required
Unique identifier of the program funding source.

Allowable Values:

Existing program funding source token

Request body

FieldsDescription
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

FieldsDescription
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": "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"
}