Skip to main content
Use the /fundingsources/programgateway endpoint to create a program gateway funding source. A program gateway funding source represents a bank account from which funds are drawn for Gateway Just-in-Time (JIT) Funding transactions. For more information about JIT Funding, see About Just-in-Time Funding. In a sandbox environment, you can create a program gateway funding source that simulates funds for use in test transactions. In a production environment, you must work with a Marqeta representative to define the bank account from which the program gateway funding source draws funds.
Note
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 gateway source

Action: POST
Endpoint: /fundingsources/programgateway
Creates a program gateway funding source. A program gateway funding source is a transaction relay that allows you to approve or decline transactions in real time.

Request body

FieldsDescription
active

boolean

Optional
Indicates whether the program gateway funding source is active.

Allowable Values:

true, false

Default value:
false
basic_auth_password

string

Required
Password for authenticating your environment.

Allowable Values:

20–100 chars

- Must contain at least one numeral
- Must contain at least one lowercase letter
- Must contain at least one uppercase letter
- Must contain at least one of these symbols: @ # $ % ! ^ & * ( ) \ _ + ~ ` - = [ ] , ; : ’ ” , . / < > ?
basic_auth_username

string

Required
Username for authenticating your environment.

Allowable Values:

1–50 chars
custom_header

object

Optional
Additional custom information included in the HTTP header. For example, this might contain security information, along with Basic Authentication, when making a JIT Funding request. Custom headers also appear in the associated webhook’s notifications.

Allowable Values:

Up to three name-value pairs: 500 char max per name, 500 char max per value
name

string

Required
Name of the program gateway funding source.

Allowable Values:

1–50 chars
timeout_millis

integer

Optional
Total timeout in milliseconds for gateway processing.

Allowable Values:

1000–3000

Default value:
3000
token

string

Optional
Unique identifier of the program gateway 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
url

string

Required
URL of the gateway endpoint hosted in your environment, to which POST requests are submitted by the Marqeta platform.

Allowable Values:

250 char max

Must be HTTPS
use_mtls

boolean

Optional
Specifies whether or not to use mutual transport layer security (mTLS) authentication for the funding request.

mTLS authentication is in the beta testing phase, and is not yet generally available. Contact your Marqeta representative for more information about using mTLS authentication.

Allowable Values:

true, false

Default value:
false

Sample request body

JSON
{
  "token": "my_pgfs_token",
  "basic_auth_username": "my_username",
  "basic_auth_password": "my_20-to-100-character_password",
  "url": "https://my_secure_domain.com/my_gateway",
  "name": "my_pgfs_name"
}

Response body

FieldsDescription
account

string

Returned
Bank account number.

Allowable Values:

36 char max
active

boolean

Conditionally returned
Indicates whether the program gateway funding source is active. This field is returned if it exists in the resource.

Allowable Values:

true, false
basic_auth_password

string

Returned
Password for authenticating your environment.

Allowable Values:

Existing basic_auth password
basic_auth_username

string

Returned
Username for authenticating your environment.

Allowable Values:

Existing basic_auth username
created_time

datetime

Returned
Date and time when the resource was created, in UTC.

Allowable Values:

datetime

Format:
yyyy-MM-ddThh:mm:ssZ
custom_header

object

Returned
Additional custom information included in the HTTP header.

Allowable Values:

Up to three name-value pairs: 500 char max per name, 500 char max per value
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 gateway funding source.

Allowable Values:

1–50 chars
timeout_millis

integer

Returned
Total timeout in milliseconds for gateway processing.

Allowable Values:

1000-3000
token

string

Returned
Unique identifier of the program gateway funding source.

Allowable Values:

1–36 chars
url

string

Returned
URL of the gateway endpoint hosted in your environment, to which POST requests are submitted by the Marqeta platform.

Allowable Values:

Existing URL
use_mtls

boolean

Returned
Specifies whether or not to use mutual transport layer security (mTLS) authentication for the funding request.

mTLS authentication is in the beta testing phase, and is not yet generally available. Contact your Marqeta representative for more information about using mTLS authentication.

Allowable Values:

true, false
version

string

Returned
Program gateway funding source object version.

Allowable Values:

255 char max

Sample response body

JSON
{
  "name": "my_pgfs_name",
  "active": true,
  "token": "my_pgfs_token",
  "account": "12.003.001.000155",
  "url": "https://my_secure_domain.com/my_gateway",
  "created_time": "2023-02-28T20:00:00Z",
  "last_modified_time": "2023-02-28T20:00:00Z",
  "basic_auth_username": "my_username",
  "basic_auth_password": "my_20-to-100-character_password",
  "use_mtls": false,
  "timeout_millis": 3000,
  "custom_header": {
    "my_header_name_1": "my_value_1",
    "my_header_name_2": "my_value_2",
    "my_header_name_3": "my_value_3"
  },
  "version": "2"
}

Update program gateway source custom headers

Action: PUT
Endpoint: /fundingsources/programgateway/customheaders/{token}
Adds or updates custom HTTP headers for a specific program gateway funding source.

URL path parameters

FieldsDescription
token

string

Required
Unique identifier of the program gateway funding source.

Allowable Values:

Existing program gateway funding source token

Request body

FieldsDescription
custom_header

object

Optional
Additional custom information included in the HTTP header. For example, this might contain security information, along with Basic Authentication, when making a JIT Funding request. Custom headers also appear in the associated webhook’s notifications.

Allowable Values:

Up to three name-value pairs: 500 char max per name, 500 char max per value

Sample request body

JSON
{
  "custom_header": {
    "my_header_name_1": "my_value_1",
    "my_header_name_2": "my_value_2",
    "my_header_name_3": "my_value_3"
  }
}

Response body

FieldsDescription
account

string

Returned
Bank account number.

Allowable Values:

36 char max
active

boolean

Conditionally returned
Indicates whether the program gateway funding source is active. This field is returned if it exists in the resource.

Allowable Values:

true, false
basic_auth_password

string

Returned
Password for authenticating your environment.

Allowable Values:

Existing basic_auth password
basic_auth_username

string

Returned
Username for authenticating your environment.

Allowable Values:

Existing basic_auth username
created_time

datetime

Returned
Date and time when the resource was created, in UTC.

Allowable Values:

datetime

Format:
yyyy-MM-ddThh:mm:ssZ
custom_header

object

Returned
Additional custom information included in the HTTP header.

Allowable Values:

Up to three name-value pairs: 500 char max per name, 500 char max per value
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 gateway funding source.

Allowable Values:

1–50 chars
timeout_millis

integer

Returned
Total timeout in milliseconds for gateway processing.

Allowable Values:

1000-3000
token

string

Returned
Unique identifier of the program gateway funding source.

Allowable Values:

1–36 chars
url

string

Returned
URL of the gateway endpoint hosted in your environment, to which POST requests are submitted by the Marqeta platform.

Allowable Values:

Existing URL
use_mtls

boolean

Returned
Specifies whether or not to use mutual transport layer security (mTLS) authentication for the funding request.

mTLS authentication is in the beta testing phase, and is not yet generally available. Contact your Marqeta representative for more information about using mTLS authentication.

Allowable Values:

true, false
version

string

Returned
Program gateway funding source object version.

Allowable Values:

255 char max

Sample response body

JSON
{
  "name": "my_pgfs_name",
  "active": true,
  "token": "my_pgfs_token",
  "account": "12.003.001.000155",
  "url": "https://my_secure_domain.com/my_gateway",
  "created_time": "2023-02-28T20:00:00Z",
  "last_modified_time": "2023-02-28T20:00:00Z",
  "basic_auth_username": "my_username",
  "basic_auth_password": "my_20-to-100-character_password",
  "use_mtls": false,
  "timeout_millis": 3000,
  "custom_header": {
    "my_header_name_1": "my_value_1",
    "my_header_name_2": "my_value_2",
    "my_header_name_3": "my_value_3"
  },
  "version": "2"
}

Retrieve program gateway source

Action: GET
Endpoint: /fundingsources/programgateway/{token}
Retrieves a specific program gateway funding source.

URL path parameters

FieldsDescription
token

string

Required
Unique identifier of the program gateway funding source.

Allowable Values:

Existing program gateway funding source token

Response body

FieldsDescription
account

string

Returned
Bank account number.

Allowable Values:

36 char max
active

boolean

Conditionally returned
Indicates whether the program gateway funding source is active. This field is returned if it exists in the resource.

Allowable Values:

true, false
basic_auth_password

string

Returned
Password for authenticating your environment.

Allowable Values:

Existing basic_auth password
basic_auth_username

string

Returned
Username for authenticating your environment.

Allowable Values:

Existing basic_auth username
created_time

datetime

Returned
Date and time when the resource was created, in UTC.

Allowable Values:

datetime

Format:
yyyy-MM-ddThh:mm:ssZ
custom_header

object

Returned
Additional custom information included in the HTTP header.

Allowable Values:

Up to three name-value pairs: 500 char max per name, 500 char max per value
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 gateway funding source.

Allowable Values:

1–50 chars
timeout_millis

integer

Returned
Total timeout in milliseconds for gateway processing.

Allowable Values:

1000-3000
token

string

Returned
Unique identifier of the program gateway funding source.

Allowable Values:

1–36 chars
url

string

Returned
URL of the gateway endpoint hosted in your environment, to which POST requests are submitted by the Marqeta platform.

Allowable Values:

Existing URL
use_mtls

boolean

Returned
Specifies whether or not to use mutual transport layer security (mTLS) authentication for the funding request.

mTLS authentication is in the beta testing phase, and is not yet generally available. Contact your Marqeta representative for more information about using mTLS authentication.

Allowable Values:

true, false
version

string

Returned
Program gateway funding source object version.

Allowable Values:

255 char max

Sample response body

JSON
{
  "name": "my_pgfs_name",
  "active": true,
  "token": "my_pgfs_token",
  "account": "12.003.001.000155",
  "url": "https://my_secure_domain.com/my_gateway",
  "created_time": "2023-02-28T20:00:00Z",
  "last_modified_time": "2023-02-28T20:00:00Z",
  "basic_auth_username": "my_username",
  "basic_auth_password": "my_20-to-100-character_password",
  "use_mtls": false,
  "timeout_millis": 3000,
  "custom_header": {
    "my_header_name_1": "my_value_1",
    "my_header_name_2": "my_value_2",
    "my_header_name_3": "my_value_3"
  },
  "version": "2"
}

Update program gateway source

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

URL path parameters

FieldsDescription
token

string

Required
Unique identifier of the program gateway funding source.

Allowable Values:

Existing program gateway funding source token

Request body

FieldsDescription
active

boolean

Optional
Indicates whether the program gateway funding source is active.

Allowable Values:

true, false

Default value:
false
basic_auth_password

string

Required
Password for authenticating your environment.

Allowable Values:

20–100 chars

- Must contain at least one numeral
- Must contain at least one lowercase letter
- Must contain at least one uppercase letter
- Must contain at least one of these symbols: @ # $ % ! ^ & * ( ) \ _ + ~ ` - = [ ] , ; : ’ ” , . / < > ?
basic_auth_username

string

Required
Username for authenticating your environment.

Allowable Values:

1–50 chars
custom_header

object

Optional
Additional custom information included in the HTTP header. For example, this might contain security information, along with Basic Authentication, when making a JIT Funding request. Custom headers also appear in the associated webhook’s notifications.

Allowable Values:

Up to three name-value pairs: 500 char max per name, 500 char max per value
name

string

Optional
Name of the program gateway funding source.

Allowable Values:

1–50 chars
timeout_millis

integer

Optional
Total timeout in milliseconds for gateway processing.

Allowable Values:

1000–3000

Default value:
3000
url

string

Required
URL of the gateway endpoint hosted in your environment, to which POST requests are submitted by the Marqeta platform.

Allowable Values:

250 char max

Must be HTTPS
use_mtls

boolean

Optional
Specifies whether or not to use mutual transport layer security (mTLS) authentication for the funding request.

mTLS authentication is in the beta testing phase, and is not yet generally available. Contact your Marqeta representative for more information about using mTLS authentication.

Allowable Values:

true, false

Default value:
false

Sample request body

JSON
{
  "active": false,
  "url": "https://my_secure_domain.com/my_gateway",
  "basic_auth_username": "my_username",
  "basic_auth_password": "my_20-to-100-character_password"
}

Response body

FieldsDescription
account

string

Returned
Bank account number.

Allowable Values:

36 char max
active

boolean

Conditionally returned
Indicates whether the program gateway funding source is active. This field is returned if it exists in the resource.

Allowable Values:

true, false
basic_auth_password

string

Returned
Password for authenticating your environment.

Allowable Values:

Existing basic_auth password
basic_auth_username

string

Returned
Username for authenticating your environment.

Allowable Values:

Existing basic_auth username
created_time

datetime

Returned
Date and time when the resource was created, in UTC.

Allowable Values:

datetime

Format:
yyyy-MM-ddThh:mm:ssZ
custom_header

object

Returned
Additional custom information included in the HTTP header.

Allowable Values:

Up to three name-value pairs: 500 char max per name, 500 char max per value
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 gateway funding source.

Allowable Values:

1–50 chars
timeout_millis

integer

Returned
Total timeout in milliseconds for gateway processing.

Allowable Values:

1000-3000
token

string

Returned
Unique identifier of the program gateway funding source.

Allowable Values:

1–36 chars
url

string

Returned
URL of the gateway endpoint hosted in your environment, to which POST requests are submitted by the Marqeta platform.

Allowable Values:

Existing URL
use_mtls

boolean

Returned
Specifies whether or not to use mutual transport layer security (mTLS) authentication for the funding request.

mTLS authentication is in the beta testing phase, and is not yet generally available. Contact your Marqeta representative for more information about using mTLS authentication.

Allowable Values:

true, false
version

string

Returned
Program gateway funding source object version.

Allowable Values:

255 char max

Sample response body

JSON
{
  "name": "my_pgfs_name",
  "active": false,
  "token": "my_pgfs_token",
  "account": "12.003.001.000155",
  "url": "https://my_secure_domain.com/my_gateway",
  "created_time": "2023-02-28T20:00:00Z",
  "last_modified_time": "2023-02-28T20:00:00Z",
  "basic_auth_username": "my_username",
  "basic_auth_password": "my_20-to-100-character_password",
  "use_mtls": false,
  "timeout_millis": 3000,
  "custom_header": {
    "my_header_name_1": "my_value_1",
    "my_header_name_2": "my_value_2",
    "my_header_name_3": "my_value_3"
  },
  "version": "2"
}