Skip to main content
The Marqeta platform provides you with a production environment and a sandbox. The main difference between the production and sandbox environments is that your production environment communicates with a payment card network. This communication allows your program’s cards to pay for goods and services by initiating live transactions over the card network. There are two types of sandbox environments available:
  • Public sandbox: A single-user environment where you can begin building your program and experiment with the Marqeta platform.
  • Private sandbox: A multi-user environment where you can integrate your application with the Marqeta platform.
All funds and transactions are simulated in both types of sandbox environments. Unlike the production environment, a sandbox does not communicate with a card network, so the cards you create within them cannot be used to conduct real-world transactions. Therefore, you must rely on simulated transactions in order to test all objects you create within a sandbox. The sandbox environments provide a set of endpoints that let you simulate various types of card network transactions, such as authorizations, reversals, and balance inquiries. These endpoints are available only within the sandbox, so the details on this page do not apply to production. To use the Simulations API for card transactions:
  • Create a card in your sandbox environment.
  • Use the /simulations/cardtransactions/* endpoints to simulate transaction event types. Each endpoint is its own event type.
  • Use the /webhooks endpoint to send optional customer notifications for system events.
To use the Simulations API for direct deposits, see Simulations 2.0 — Direct Deposits.
Note
You can use Postman to run requests for card transaction and direct deposit simulations endpoints. This collection of requests has been saved as a YAML file for your convenience. To access the YAML file, see Postman Collection for Simulations 2.0.
All card transaction simulations endpoints share the same request/response model, as described below.

Request body

FieldsDescription
card_token

string

Optional
Unique identifier of the card. Useful when a single account holder has multiple cards.

Allowable Values:

36 char max
amount

decimal

Optional
Amount of the transaction.

Allowable Values:

0 min

Format: 0.00
anticipated_amount

decimal

Optional
Anticipated amount of the transaction, as provided by the card network.

Allowable Values:

Format: 0.00
cash_back_amount

decimal

Optional
The cashback amount requested.

Allowable Values:

Format: 0.00
is_preauthorization

boolean

Optional
Indicates if the transaction is a pre-authorization. Set to true to mark the amount as an authorization only.

Allowable Values:

true, false
card_acceptor

object

Optional
Contains information about the merchant.

Allowable Values:

Valid card_acceptor object
card_acceptor.mid

string

Optional
The merchant identifier.

Allowable Values:

2–15 chars
card_acceptor.mcc

string

Optional
Merchant category code (MCC).

Allowable Values:

5 char max
card_acceptor.name

string

Optional
Card acceptor’s name.

Allowable Values:

255 char max
card_acceptor.address

string

Optional
Card acceptor’s address. May be returned if the request uses Transaction Model v1 of the Marqeta Core API. Not returned for Transaction Model v2 requests.

Allowable Values:

255 char max
card_acceptor.city

string

Optional
Card acceptor’s city.

Allowable Values:

255 char max
card_acceptor.state

string

Optional
Two-character state, provincial, territorial, or federal abbreviation.

For a complete list of valid abbreviations, see Valid state, provincial, territorial, and federal abbreviations.

Allowable Values:

2 char max
card_acceptor.postal_code

string

Optional
Card acceptor’s postal code.

Allowable Values:

10 char max
card_acceptor.country_code

string

Optional
Card acceptor’s country code. May be returned if the request uses Transaction Model v2 of the Marqeta Core API. Not returned for Transaction Model v1 requests.

Allowable Values:

40 char max
card_acceptor.poi

object

Optional
Contains information about the point of sale, including details about how the card was presented.

Returned if provided by the card network, and if the request uses Transaction Model v1 of the Marqeta Core API. Not returned for Transaction Model v2 requests.

Allowable Values:

tid, partial_approval_capable, cardholder_presence, card_presence, pin_present, special_condition_indicator
card_acceptor.poi.tid

string

Optional
Card acceptor or terminal identification number.

Allowable Values:

255 char max
card_acceptor.poi.partial_approval_capable

string

Optional
Indicates whether the card acceptor or terminal supports partial-approval transactions.

Allowable Values:

255 char max
card_acceptor.poi.cardholder_presence

string

Optional
Indicates whether the cardholder was present during the transaction.

Allowable Values:

255 char max
card_acceptor.poi.card_presence

string

Optional
Indicates whether the card was present during the transaction.

Allowable Values:

255 char max
card_acceptor.poi.pin_present

string

Optional
Indicates whether the cardholder entered a PIN during the transaction.

Allowable Values:

255 char max
card_acceptor.poi.special_condition_indicator

string

Optional
Indicates a higher-risk operation, such as a quasi-cash or cryptocurrency transaction.

These transactions typically involve non-financial institutions.

Allowable Values:

UNSPECIFIED, CRYPTOCURRENCY_PURCHASE, QUASI_CASH, DEBT_PAYMENT, CENTRAL_BANK_DIGITAL_CURRENCY_PURCHASE, STABLECOIN_PURCHASE, BLOCKCHAIN_NATIVE_TOKEN_PURCHASE, NON_FUNGIBLE_TOKEN_PURCHASE
force_post

boolean

Optional
Set to true to simulate a forced clearing transaction.

NOTE: If you set this field to true, you must also set the original_transaction_token field to an existing transaction token (the transaction does not need to be related).

Allowable Values:

true, false
fees

array of objects

Optional
List of fees associated with the transaction.

This array is returned if it exists in the resource.

Allowable Values:

Existing fees array
fees[].type

string

Optional
The type of fee assessed by the card network.

Allowable Values:

ISSUER_FEE, SWITCH_FEE, PINDEBIT_ASSOC_FEE, ACQUIRER_FEE, INTERCHANGE_FEE, CUR_CONV_CARDHOLDER_FEE, CUR_CONV_ISSUER_FEE, CROSS_BORDER_ISSUER_FEE
fees[].amount

decimal

Optional
The amount of the network fee.

Allowable Values:

Format: 0.00
fees[].credit_debit

string

Optional
Indicates whether the fee is a credit or a debit.

- C indicates a credit
- D indicates a debit

The following table lists the default values for fee types:

Fee Type / Default Value
ISSUER_FEE / C
SWITCH_FEE / D
PINDEBIT_ASSOC_FEE / D
ACQUIRER_FEE / D
INTERCHANGE_FEE / C
CUR_CONV_CARDHOLDER_FEE / D
CUR_CONV_ISSUER_FEE / C
CROSS_BORDER_ISSUER_FEE / C

Allowable Values:

C, D
card_options

object

Optional
Contains attributes that govern card usage.

Allowable Values:

Valid card_options object
card_options.pin

string

Optional
The PIN for the card.

Allowable Values:

4 char max
card_options.cvv

string

Optional
The CVV2 number for the card.

Allowable Values:

3 chars
card_options.card_present

boolean

Optional
A value of true requires that the card be present for the transaction.

Allowable Values:

true, false
card_options.expiration

string

Optional
The expiration date of the card.

Allowable Values:

4 chars
card_options.billing_address

object

Optional
Used for Address Verification System (AVS). The address-related fields in this object are verified against known values.

Allowable Values:

Valid billing_address object
card_options.billing_address.first_name

string

Optional
Cardholder’s first name.

Allowable Values:

To pass AVS, the value in this field must match the first name on record.
card_options.billing_address.last_name

string

Optional
Cardholder’s last name.

Allowable Values:

To pass AVS, the value in this field must match the last name on record.
card_options.billing_address.address

string

Optional
Cardholder’s address.

Allowable Values:

To pass AVS, the value in this field must match the address on record.
card_options.billing_address.zip

string

Optional
Cardholder’s postal code.

Allowable Values:

To pass AVS, the value in this field must match the postal code on record.
pos

object

Optional
Contains information about the point of sale, including details on how the card was presented. May be returned if the request uses Transaction Model v2 of the Marqeta Core API.

Not returned for Transaction Model v1 requests.

Allowable Values:

Valid pos object
pos.partial_approval_capable

boolean

Optional
Indicates the capability of the card acceptor or terminal to handle partial approvals.

Allowable Values:

true, false
pos.special_condition_indicator

string

Optional
Indicates special conditions for the transaction.

Allowable Values:

UNSPECIFIED, CRYPTOCURRENCY_PURCHASE, QUASI_CASH, DEBT_PAYMENT, CENTRAL_BANK_DIGITAL_CURRENCY_PURCHASE, STABLECOIN_PURCHASE, BLOCKCHAIN_NATIVE_TOKEN_PURCHASE, NON_FUNGIBLE_TOKEN_PURCHASE
pos.pan_entry_mode

string

Optional
How the card PAN was captured at the point of sale.

The Marqeta platform supports different values, depending on which card network was specified using the network field. The following table lists the supported PAN capture methods per card network:

NOTE: This field does not apply to the Discover card network.

Entry Mode / Visa / Mastercard / Pulse
MAG_STRIPE / ✓ / ✓ / ✓
MANUAL / ✓ / ✓ / ✓
CARD_ON_FILE / ✓ / ✓ / ✓
CHIP_FALLBACK / ✓ / ✓ / ✓
BAR_CODE / / / ✓
OCR / / / ✓

Allowable Values:

- MAG_STRIPE – Magnetic stripe card’s swipe method was used.
- MANUAL – Card PAN was entered manually.
- CARD_ON_FILE – Merchant initiated the transaction using card information stored on file.
- CHIP_FALLBACK – Chip card was processed as a magnetic stripe transaction.
- BAR_CODE – Bar code was used.
- OCR – Optical code reader was used.
preceding_related_transaction_token

string

Optional
Unique identifier of the card. Useful when a single account holder has multiple cards.

Allowable Values:

36 char max
network

string

Optional
Indicates which card network was used to complete the transaction.

Allowable Values:

VISA, MASTERCARD, DISCOVER, PULSE
sub_network

string

Optional
Indicates which subnetwork was used to complete the transaction.

Allowable Values:

VISANET, VISANETDEBIT, VISAINTERLINK, VISAPLUS, MAESTRO, CIRRUS, MASTERCARDDEBIT
currency_conversion

object

Optional
Contains information from the card network about currency conversion, including the original currency of the transaction, the amount of the transaction in the origination currency, and the conversion rate.

Returned if the transaction involves currency conversion.

Allowable Values:

Valid currency_conversion object
currency_conversion.original_amount

decimal

Optional
Amount of the transaction in the currency in which it originated. Returned if the transaction involves currency conversion.

Allowable Values:

Format: 0.00
currency_conversion.conversion_rate

decimal

Optional
Conversion rate between the origination currency and the settlement currency.

Returned when the transaction currency is different from the origination currency.

Allowable Values:

Current conversion rate

NOTE: A value of 0 or 1 indicates no conversion; the currencies are the same.
currency_conversion.original_currency_code

string

Optional
The three-digit ISO 4217 currency code.

Allowable Values:

Valid three-digit ISO 4217 currency code
currency_code

string

Optional
Currency type of the transaction.

Allowable Values:

AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTN, BWP, BYR, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, IMP, INR, IQD, IRR, ISK, JEP, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SPL, SRD, STD, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TVD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VEF, VND, VUV, WST, XAF, XCD, XDR, XOF, XPF, YER, ZAR, ZMW, ZWD
account_funding

object

Optional
Information used when funding an account.

Allowable Values:

Valid account_funding object
account_funding.first_name

string

Required
Account holder’s first name.

Allowable Values:

To pass AVS, must match the first name on record.
account_funding.last_name

string

Optional
Account holder’s last name.

Allowable Values:

To pass AVS, must match the last name on record.
account_funding.receiver_name

string

Optional
Recipient’s name.

Allowable Values:

To pass AVS, must match the name on record.
account_funding.funding_source

string

Required
Describes the source of the funding.

Allowable Values:

CREDIT, DEBIT, PREPAID, DEPOSIT_ACCOUNT, CASH, MOBILE_MONEY_ACCOUNT, NON_VISA_CREDIT, CHECK, ACH
account_funding.receiver_account_type

string

Required
Identifies the account type used for the funding request.

Allowable Values:

OTHER, RTN_BANK_ACCOUNT, IBAN, CARD_ACCOUNT, EMAIL, PHONE_NUMBER, BANK_ACCOUNT_NUMBER_AND_BANK_IDENTIFICATION_CODE, WALLET_ID, SOCIAL_NETWORK_ID
account_funding.transaction_purpose

string

Optional
Identifies the purpose of the transaction.

Allowable Values:

- FAMILY_SUPPORT
- REGULAR_LABOR_TRANSFERS
- TRAVEL_AND_TOURISM
- EDUCATION
- MEDICAL_TREATMENT
- EMERGENCY_NEED
- SAVINGS
- GIFTS
- OTHER
- SALARY
- CROWD_LENDING
- CRYPTO_CURRENCY
account_funding.transaction_type

string

Required
Describes the type of transaction.

Allowable Values:

ACCOUNT_TO_ACCOUNT, PERSON_TO_PERSON, WALLET_TRANSFER, MONEY_TRANSFER_BY_BANK, BUSINESS_TO_BUSINESS, DISBURSEMENT, GOVERNMENT_DISBURSEMENT, GAMBLING_PAYOUT, LOYALTY, MERCHANT_DISBURSEMENT, ONLINE_GAMBLING_PAYOUT, PENSION_DISBURSEMENT, PREPAID_LOADS, CARD_BILL_PAYMENT, BILL_PAYMENT, CASH_CLAIM, CASH_IN, CASH_OUT, MOBILE_AIR_TIME_PAYMENT, MONEY_TRANSFER_BY_MERCHANT, FACE_TO_FACE_MERCHANT_PAYMENT, GOVERNMENT_PAYMENT, PAYMENTS_GOODS_SERVICES, FUNDS_TRANSFER, VISA_ACCEPT, GENERAL_BUSINESS_TO_BUSINESS_TRANSFER, BUSINESS_TO_BUSINESS_TRANSFER, CASH_DEPOSIT, PURCHASE_REPAYMENT, AFT_OR_OCT_ELIGIBILITY, CONSUMER_BILL_PAYMENT, REQUEST_TO_PAY, LIQUID_ASSET, FAST_REFUND, GAMING_PAYMENT
original_credit

object

Optional
Contains information about an original credit transaction (OCT), which enables the cardholder to receive funds on the specified card from an external source via the card network.

Allowable Values:

Existing original_credit object
original_credit.funding_source

string

Optional
Describes the source of the funding.

Allowable Values:

CREDIT, DEBIT, PREPAID, DEPOSIT_ACCOUNT, CASH, MOBILE_MONEY_ACCOUNT, NON_VISA_CREDIT, CHECK, ACH
original_credit.transaction_type

string

Optional
Describes the type of transaction.

Allowable Values:

ACCOUNT_TO_ACCOUNT, PERSON_TO_PERSON, WALLET_TRANSFER, MONEY_TRANSFER_BY_BANK, BUSINESS_TO_BUSINESS, DISBURSEMENT, GOVERNMENT_DISBURSEMENT, GAMBLING_PAYOUT, LOYALTY, MERCHANT_DISBURSEMENT, ONLINE_GAMBLING_PAYOUT, PENSION_DISBURSEMENT, PREPAID_LOADS, CARD_BILL_PAYMENT, BILL_PAYMENT, CASH_CLAIM, CASH_IN, CASH_OUT, MOBILE_AIR_TIME_PAYMENT, MONEY_TRANSFER_BY_MERCHANT, FACE_TO_FACE_MERCHANT_PAYMENT, GOVERNMENT_PAYMENT, PAYMENTS_GOODS_SERVICES, FUNDS_TRANSFER, VISA_ACCEPT, GENERAL_BUSINESS_TO_BUSINESS_TRANSFER, BUSINESS_TO_BUSINESS_TRANSFER, CASH_DEPOSIT, PURCHASE_REPAYMENT, AFT_OR_OCT_ELIGIBILITY, CONSUMER_BILL_PAYMENT, REQUEST_TO_PAY, GAMING_PAYMENT
original_credit.sender_account_type

string

Optional
The type of account from which the OCT draws funds.

Allowable Values:

OTHER, RTN_BANK_ACCOUNT, IBAN, CARD_ACCOUNT, EMAIL, PHONE_NUMBER, BANK_ACCOUNT_NUMBER_AND_BANK_IDENTIFICATION_CODE, WALLET_ID, SOCIAL_NETWORK_ID
original_credit.sender_name

string

Optional
Full name of the sender.

Allowable Values:

255 char max
original_credit.screening_score

string

Optional
Sanctions screening score to assist with meeting Anti-Money Laundering (AML) obligations. Higher scores indicate that the sender’s data more closely resembles an entry on the regulatory watchlist.

A value of 999 means that no screening score is available.

Allowable Values:

000-100, 999
flex

object

Optional
Requests model to invoke Flexible Credential transactions.

Allowable Values:

eligible, eligible_products
flex.eligible

boolean

Optional
Indicates whether the transaction is eligible for Flexible Credential transactions or not.

Allowable Values:

true, false
flex.eligible_products

array of strings

Optional
Specifies which of the payment instrument’s credentials is eligible for this transaction.

Allowable Values:

DEBIT_TO_LOAN
account_name_verification

object

Optional
Contains name verification data: the full name entered by the cardholder, name data held by the Marqeta platform, and an assertion by the Marqeta platform as to whether the two sets of data match.

Allowable Values:

on_file, request, request_type, response
account_name_verification.on_file

object

Optional
Contains the name of the cardholder for account name verification.

Allowable Values:

first_name, last_name, middle_name
account_name_verification.on_file.first_name

string

Optional
First name of the cardholder.

Allowable Values:

40 char max
account_name_verification.on_file.last_name

string

Optional
Last name of the cardholder.

Allowable Values:

40 char max
account_name_verification.on_file.middle_name

string

Optional
Middle name of the cardholder.

Allowable Values:

40 char max
account_name_verification.request

object

Optional
Contains the name of the cardholder for account name verification.

Allowable Values:

first_name, last_name, middle_name
account_name_verification.request.first_name

string

Optional
First name of the cardholder.

Allowable Values:

40 char max
account_name_verification.request.last_name

string

Optional
Last name of the cardholder.

Allowable Values:

40 char max
account_name_verification.request.middle_name

string

Optional
Middle name of the cardholder.

Allowable Values:

40 char max
account_name_verification.request_type

string

Optional
(Mastercard only) Indicates the type of authentication request.

Allowable Values:

SENDER, RECEIVER
account_name_verification.response

object

Optional
Contains an assertion as to whether the Marqeta platform’s address verification data matches data provided by the cardholder.

Allowable Values:

Existing response object
account_name_verification.response.code

string

Required
Four-digit code corresponding with the outcome of the attempted transaction type.

For account name verification, the four digits correspond with assertions that the first, middle, last, and full name of the cardholder on the Marqeta platform match the data provided by the cardholder. 0 indicates no validation was performed, 1 indicates the match was unsuccessful (unmatched), 2 indicates the match was partial, and 3 indicates the match was exact. For example:

Code / First Name / Middle Name / Last Name / Full Name
0000 / Not validated / Not validated / Not validated / Not validated
1111 / Unmatched / Unmatched / Unmatched / Unmatched
3333 / Exact match / Exact match / Exact match / Exact match
1232 / Unmatched / Partial match / Exact match / Partial match

Allowable Values:

Four-digit code
account_name_verification.response.memo

string

Required
Information on the outcome of the attempted transaction type.

Allowable Values:

255 char max
account_name_verification.response.additional_information

string

Optional
Provides information about the relevant velocity control for the transaction, if applicable.

Allowable Values:

The additional_information field returns a string in the following format: <Velocity control name>, cumulative transaction amount is <X>, where X is the cumulative transaction amount value calculated by Marqeta. For example: 500 max spend per day, cumulative transaction amount is 750.
address_verification

object

Optional
Contains the address of the cardholder for account address verification.

Allowable Values:

postal_code, street_address
address_verification.postal_code

string

Optional
Postal code of the cardholder.

Allowable Values:

10 char max
address_verification.street_address

string

Optional
Street address of the cardholder.

Allowable Values:

255 char max

Response body

FieldsDescription
transaction

object

Optional
Contains information about the transaction.

Allowable Values:

Existing transaction object
transaction.type

string

Required
Transaction event type.

For more information about the type field, see Transaction events.

Allowable Values:

gpa.credit, gpa.credit.pending, gpa.credit.pending.reversal, gpa.credit.reversal, gpa.credit.networkload, gpa.credit.networkload.reversal, gpa.debit.networkload, gpa.debit, gpa.debit.pending, gpa.debit.pending.reversal, gpa.grant, gpa.credit.issueroperator, gpa.debit.issueroperator, gpa.credit.chargeback, gpa.credit.chargeback.reversal, gpa.credit.billpayment, gpa.credit.authorization.billpayment, gpa.credit.authorization.billpayment.reversal, authorization, authorization.advice, authorization.reversal, authorization.clearing, authorization.reversal.issuerexpiration, dispute.credit, dispute.debit, authorization.clearing.chargeback, authorization.clearing.chargeback.reversal, refund, pindebit.atm.withdrawal, pindebit.balanceinquiry, pindebit.cashback, pindebit.checkavs, pindebit, programreserve.credit, programreserve.debit, fee.charge.pending, fee.charge, fee.charge.refund, fee.charge.reversal, funds.expire, reward.earn, transfer.peer, transfer.fee, account.funding.authorization, account.funding.authorization.reversal, account.funding.authorization.clearing, account.funding.auth_plus_capture, account.funding.auth_plus_capture.reversal, account.credit, account.debit, balanceinquiry, authorization.atm.withdrawal, authorization.pin.change, authorization.pin.unblock, authorization.clearing.atm.withdrawal, authorization.cashback, authorization.clearing.cashback, transfer.program, authorization.quasi.cash, authorization.clearing.quasi.cash, authorization.incremental, gpa.credit.authorization, gpa.credit.authorization.reversal, gpa.debit.authorization, gpa.debit.reversal, original.credit.authorization, original.credit.authorization.reversal, original.credit.authorization.clearing, original.credit.auth_plus_capture, original.credit.auth_plus_capture.reversal, refund.authorization, refund.authorization.advice, refund.authorization.clearing, refund.authorization.reversal, token.activation-request, token.advice, pindebit.authorization, pindebit.authorization.clearing, pindebit.authorization.reversal, pindebit.authorization.reversal.issuerexpiration, authorization.standin, authorization.clearing.chargeback.completed, authorization.clearing.chargeback.provisional.credit, authorization.clearing.chargeback.provisional.debit, authorization.clearing.chargeback.writeoff, directdeposit.credit, directdeposit.credit.pending, directdeposit.credit.reject, directdeposit.credit.pending.reversal, directdeposit.credit.reversal, directdeposit.debit, directdeposit.debit.pending, directdeposit.debit.reject, directdeposit.debit.reversal, pin.change.reversal, pin.change.reversal.advice, directdeposit.debit.pending.reversal, pindebit.chargeback, pindebit.chargeback.completed, pindebit.chargeback.provisional.credit, pindebit.chargeback.provisional.debit, pindebit.chargeback.reversal, pindebit.chargeback.writeoff, pindebit.pin.change, pindebit.pin.unblock, pindebit.credit.adjustment, pindebit.quasicash, pindebit.quasi.cash, pindebit.refund, pindebit.refund.reversal, pindebit.reversal, pindebit.transfer, pushtocard.debit, pushtocard.reversal, credit.adjustment, debit.adjustment, pin.change.via.api, product.inquiry, transit.offer, transfer.from.checking.hold, transfer.from.checking.clear, transfer.to.checking.open, transfer.to.checking.clear, transfer.to.savings.open, transfer.to.savings.clear, transfer.from.savings.hold, transfer.from.savings.clear, fps.debit.hold, fps.debit.clear, fps.debit.hold.reverse, fps.debit.clear.reverse, fps.credit.open, fps.credit.clear, fps.credit.open.reverse, fps.credit.clear.reverse, interest.posting.clear, interest.posting.clear.reverse, interest.posting.adjustment, unknown
transaction.state

string

Required
Current state of the transaction.

For more information about the state field, see The transaction lifecycle.

Allowable Values:

CLEARED, COMPLETION, DECLINED, ERROR, PENDING
transaction.token

string

Required
Unique identifier of the transaction, formatted as a UUID.

NOTE: For subsequent related transactions, this token value appears as the preceding_related_transaction_token.

Allowable Values:

1–36 chars
transaction.user_token

string

Optional
Unique identifier of the user who owns the account that funded the transaction. Subsequent related transactions retain the same user_token, even if the card used to complete the transaction moves to another user.

Allowable Values:

36 char max
transaction.card_token

string

Optional
Unique identifier of the card. Useful when a single account holder has multiple cards.

Allowable Values:

36 char max
transaction.response

object

Optional
Contains an assertion as to whether the Marqeta platform’s address verification data matches data provided by the cardholder.

Allowable Values:

Existing response object
transaction.response.code

string

Required
Four-digit code corresponding with the outcome of the attempted transaction type.

For card security verification, the code indicates whether the verification check passed and can have these possible values:

- 0000 – passed
- 0001 – did not pass

Allowable Values:

Four-digit code
transaction.response.memo

string

Required
Information on the outcome of the attempted transaction type.

Allowable Values:

255 char max
transaction.response.additional_information

string

Optional
Provides information about the relevant velocity control for the transaction, if applicable.

Allowable Values:

The additional_information field returns a string in the following format: <Velocity control name>, cumulative transaction amount is <X>, where X is the cumulative transaction amount value calculated by Marqeta. For example: 500 max spend per day, cumulative transaction amount is 750.
transaction.created_time

datetime

Optional
Date and time when the Marqeta platform created the transaction entry, in UTC format. For example, when Marqeta processed the clearing record for a refund.

Allowable Values:

date-time

Format:
yyyy-MM-ddThh:mm:ssZ
transaction.user_transaction_time

datetime

Optional
Date and time when the user initiated the transaction, in UTC. For example, when a merchant performed the original authorization for a refund.

Allowable Values:

date-time

Format:
yyyy-MM-ddThh:mm:ssZ
transaction.settlement_date

datetime

Optional
Date and time when funds were moved for a transaction, in UTC. For example, in the case of a refund, when funds were credited to the cardholder.

Allowable Values:

date-time

Format:
yyyy-MM-ddThh:mm:ssZ
transaction.amount

decimal

Required
Amount of the transaction.

Allowable Values:

Format: 0.00
transaction.amount_to_be_released

decimal

Optional
Amount to released following a financial advice.

Allowable Values:

Format: 0.00
transaction.anticipated_amount

decimal

Optional
Anticipated amount of the transaction, as provided by the card network. This field applies to anticipated amount verification transactions (AAVTs).

Allowable Values:

Format: 0.00
transaction.cash_back_amount

decimal

Optional
The cashback amount requested.

Allowable Values:

Format: 0.00
transaction.request_amount

decimal

Optional
Merchant-requested amount, including any fees. This includes amount and cashback amount.

Allowable Values:

Format: 0.00
transaction.gpa

object

Optional
Contains information about the GPA balances and pending credits.

Allowable Values:

- available_balance
- balances
- cached_balance
- credit_balance
- currency_code
- impacted_amount
- last_updated_time
- ledger_balance
- pending_credits
transaction.gpa.ledger_balance

decimal

Optional
When using standard funding: The funds that are available to spend immediately, including funds from any authorized transactions that have not yet cleared. When using Just-in-Time (JIT) Funding: Authorized funds that are currently on hold, but not yet cleared.

Allowable Values:

Format: 0.00
transaction.gpa.available_balance

decimal

Optional
Ledger balance minus any authorized transactions that have not yet cleared. Also known as the cardholder’s purchasing power. When using JIT Funding, this balance is usually equal to $0.00.

Allowable Values:

Format: 0.00
transaction.gpa.impacted_amount

decimal

Optional
Balance change based on the amount of the transaction.

Allowable Values:

Format: 0.00
transaction.currency_code

string

Optional
The three-digit ISO 4217 currency code.

Allowable Values:

Valid three-digit ISO 4217 currency code
transaction.currency_conversion

object

Optional
Contains information from the card network about currency conversion, including the original currency of the transaction, the amount of the transaction in the origination currency, and the conversion rate.

Returned if the transaction involves currency conversion.

Allowable Values:

Valid currency_conversion object
transaction.currency_conversion.original_amount

decimal

Optional
Amount of the transaction in the currency in which it originated. Returned if the transaction involves currency conversion.

Allowable Values:

Format: 0.00
transaction.currency_conversion.conversion_rate

decimal

Optional
Conversion rate between the origination currency and the settlement currency.

Returned when the transaction currency is different from the origination currency.

Allowable Values:

Current conversion rate

NOTE: A value of 0 or 1 indicates no conversion; the currencies are the same.
transaction.currency_conversion.original_currency_code

string

Optional
The three-digit ISO 4217 currency code.

Allowable Values:

Valid three-digit ISO 4217 currency code
transaction.preceding_related_transaction_token

string

Optional
Returned for final transaction types.

Unique identifier of the preceding related transaction. Useful for identifying the transaction that preceded the current one. For example, authorization, a temporary transaction type, precedes and is completed by authorization.clearing, a final transaction type.

In this case, the authorization token is returned with this field. See Transaction events for details on which transaction types are temporary or final.

Allowable Values:

Format: UUID
transaction.network

string

Optional
Indicates which card network was used to complete the transaction.

Allowable Values:

VISA, MASTERCARD, PULSE, DISCOVER
transaction.subnetwork

string

Optional
Indicates which subnetwork used to complete the transaction.

Allowable Values:

VISANET, VISANETDEBIT, VISAINTERLINK, VISAPLUS, MAESTRO, CIRRUS, MASTERCARDDEBIT
transaction.acquirer_fee_amount

decimal

Optional
Indicates the amount of the acquirer fee. Account holders are sometimes charged an acquirer fee for card use at places such as ATMs or fuel dispensers.

Allowable Values:

Format: 0.00
transaction.fees

array of objects

Optional
List of fees associated with the transaction.

This array is returned if it exists in the resource.

Allowable Values:

Array of existing fees objects
transaction.fees[].type

string

Optional
The type of fee assessed by the card network.

Allowable Values:

ISSUER_FEE, SWITCH_FEE, PINDEBIT_ASSOC_FEE, ACQUIRER_FEE, INTERCHANGE_FEE, CUR_CONV_CARDHOLDER_FEE, CUR_CONV_ISSUER_FEE, CROSS_BORDER_ISSUER_FEE
transaction.fees[].amount

decimal

Optional
The amount of the network fee.

Allowable Values:

Format: 0.00
transaction.fees[].credit_debit

string

Optional
Indicates whether the fee is a credit or a debit.

- C indicates a credit
- D indicates a debit

The following table lists the default values for fee types:

Fee Type / Default Value
ISSUER_FEE / C
SWITCH_FEE / D
PINDEBIT_ASSOC_FEE / D
ACQUIRER_FEE / D
INTERCHANGE_FEE / C
CUR_CONV_CARDHOLDER_FEE / D
CUR_CONV_ISSUER_FEE / C
CROSS_BORDER_ISSUER_FEE / C

Allowable Values:

C, D
transaction.flex

object

Optional
Contains information about a Flexible Credential transaction.

Allowable Values:

action, eligible, eligible_products, secondary_credential_identifier, selected_product
transaction.flex.action

string

Optional
Indicates whether the Flexible Credential transaction object is actionable (inquiry) or merely informative (advice).

Allowable Values:

inquiry, advice
transaction.flex.eligible

string

Optional
Indicates whether the transaction is eligible for Flexible Credential transactions or not.

Allowable Values:

true, false
transaction.flex.eligible_products

array of strings

Optional
Specifies which of the payment instrument’s credentials is eligible for this transaction:

- A value of DEBIT indicates the primary credential.
- A value of LOAN indicates the secondary credential.

Allowable Values:

DEBIT, LOAN, DEBIT_TO_LOAN
transaction.flex.secondary_credential_identifier

string

Optional
Identifies the secondary credential used in the transaction, if applicable.

Allowable Values:

255 char max
transaction.flex.selected_product

string

Optional
Indicates the eligible product that was used in the transaction.

Allowable Values:

DEBIT, LOAN
transaction.fraud

object

Optional
Contains one or more fraud determinations by the card network that apply either to the transaction or to the cardholder’s account.

Allowable Values:

issuer_processor, network_fraud_view, network_account_intelligence_score
transaction.fraud.network

object

Optional
Contains network-provided information about fraud determinations.

Allowable Values:

- account_risk_score
- account_risk_score_reason_code
- transaction_risk_score
- transaction_risk_score_reason_code
- transaction_risk_score_reason_description
transaction.card_acceptor

object

Optional
Contains information about the merchant.

Allowable Values:

Valid card_acceptor object
transaction.card_acceptor.mid

string

Optional
The merchant identifier.

Allowable Values:

2–15 chars
transaction.card_acceptor.mcc

string

Optional
Merchant category code (MCC).

Allowable Values:

5 char max
transaction.card_acceptor.name

string

Optional
Card acceptor’s name.

Allowable Values:

255 char max
transaction.card_acceptor.address

string

Optional
Card acceptor’s address. May be returned if the request uses Transaction Model v1 of the Marqeta Core API. Not returned for Transaction Model v2 requests.

Allowable Values:

255 char max
transaction.card_acceptor.city

string

Optional
Card acceptor’s city.

Allowable Values:

255 char max
transaction.card_acceptor.state

string

Optional
Two-character state, provincial, territorial, or federal abbreviation.

For a complete list of valid abbreviations, see Valid state, provincial, territorial, and federal abbreviations.

Allowable Values:

2 char max
transaction.card_acceptor.postal_code

string

Optional
Card acceptor’s postal code.

Allowable Values:

10 char max
transaction.card_acceptor.country_code

string

Optional
Card acceptor’s country code. May be returned if the request uses Transaction Model v2 of the Marqeta Core API. Not returned for Transaction Model v1 requests.

Allowable Values:

40 char max
transaction.card_acceptor.poi

object

Optional
Contains information about the point of sale, including details about how the card was presented.

Returned if provided by the card network, and if the request uses Transaction Model v1 of the Marqeta Core API. Not returned for Transaction Model v2 requests.

Allowable Values:

tid, partial_approval_capable, cardholder_presence, card_presence, pin_present, special_condition_indicator
transaction.card_acceptor.poi.tid

string

Optional
Card acceptor or terminal identification number.

Allowable Values:

255 char max
transaction.card_acceptor.poi.partial_approval_capable

string

Optional
Indicates whether the card acceptor or terminal supports partial-approval transactions.

Allowable Values:

255 char max
transaction.card_acceptor.poi.cardholder_presence

string

Optional
Indicates whether the cardholder was present during the transaction.

Allowable Values:

255 char max
transaction.card_acceptor.poi.card_presence

string

Optional
Indicates whether the card was present during the transaction.

Allowable Values:

255 char max
transaction.card_acceptor.poi.pin_present

string

Optional
Indicates whether the cardholder entered a PIN during the transaction.

Allowable Values:

255 char max
transaction.card_acceptor.poi.special_condition_indicator

string

Optional
Indicates a higher-risk operation, such as a quasi-cash or cryptocurrency transaction.

These transactions typically involve non-financial institutions.

Allowable Values:

UNSPECIFIED, CRYPTOCURRENCY_PURCHASE, QUASI_CASH, DEBT_PAYMENT, CENTRAL_BANK_DIGITAL_CURRENCY_PURCHASE, STABLECOIN_PURCHASE, BLOCKCHAIN_NATIVE_TOKEN_PURCHASE, NON_FUNGIBLE_TOKEN_PURCHASE
transaction.account_funding

object

Optional
Information used when funding an account.

Allowable Values:

Valid account_funding object
transaction.account_funding.first_name

string

Required
Account holder’s first name.

Allowable Values:

To pass AVS, must match the first name on record.
transaction.account_funding.last_name

string

Optional
Account holder’s last name.

Allowable Values:

To pass AVS, must match the last name on record.
transaction.account_funding.receiver_name

string

Optional
Recipient’s name.

Allowable Values:

To pass AVS, must match the name on record.
transaction.account_funding.funding_source

string

Required
Describes the source of the funding.

Allowable Values:

CREDIT, DEBIT, PREPAID, DEPOSIT_ACCOUNT, CASH, MOBILE_MONEY_ACCOUNT, NON_VISA_CREDIT, CHECK, ACH
transaction.account_funding.receiver_account_type

string

Required
Identifies the account type used for the funding request.

Allowable Values:

OTHER, RTN_BANK_ACCOUNT, IBAN, CARD_ACCOUNT, EMAIL, PHONE_NUMBER, BANK_ACCOUNT_NUMBER_AND_BANK_IDENTIFICATION_CODE, WALLET_ID, SOCIAL_NETWORK_ID
transaction.account_funding.transaction_purpose

string

Optional
Identifies the purpose of the transaction.

Allowable Values:

- FAMILY_SUPPORT
- REGULAR_LABOR_TRANSFERS
- TRAVEL_AND_TOURISM
- EDUCATION
- MEDICAL_TREATMENT
- EMERGENCY_NEED
- SAVINGS
- GIFTS
- OTHER
- SALARY
- CROWD_LENDING
- CRYPTO_CURRENCY
transaction.account_funding.transaction_type

string

Required
Describes the type of transaction.

Allowable Values:

ACCOUNT_TO_ACCOUNT, PERSON_TO_PERSON, WALLET_TRANSFER, MONEY_TRANSFER_BY_BANK, BUSINESS_TO_BUSINESS, DISBURSEMENT, GOVERNMENT_DISBURSEMENT, GAMBLING_PAYOUT, LOYALTY, MERCHANT_DISBURSEMENT, ONLINE_GAMBLING_PAYOUT, PENSION_DISBURSEMENT, PREPAID_LOADS, CARD_BILL_PAYMENT, BILL_PAYMENT, CASH_CLAIM, CASH_IN, CASH_OUT, MOBILE_AIR_TIME_PAYMENT, MONEY_TRANSFER_BY_MERCHANT, FACE_TO_FACE_MERCHANT_PAYMENT, GOVERNMENT_PAYMENT, PAYMENTS_GOODS_SERVICES, FUNDS_TRANSFER, VISA_ACCEPT, GENERAL_BUSINESS_TO_BUSINESS_TRANSFER, BUSINESS_TO_BUSINESS_TRANSFER, CASH_DEPOSIT, PURCHASE_REPAYMENT, AFT_OR_OCT_ELIGIBILITY, CONSUMER_BILL_PAYMENT, REQUEST_TO_PAY, LIQUID_ASSET, FAST_REFUND, GAMING_PAYMENT
transaction.gpa_order

object

Optional
Contains information about a GPA order, including fees, funding sources, and addresses. See GPA Orders for more information.

Allowable Values:

Existing gpa_order object
transaction.gpa_order.amount

decimal

Required
Amount funded.

Allowable Values:

Format: 0.00
transaction.gpa_order.created_time

datetime

Required
Date and time when the GPA order was created, in UTC.

Allowable Values:

date-time

Format:
yyyy-MM-ddThh:mm:ssZ
transaction.gpa_order.currency_code

string

Required
The three-digit ISO 4217 currency code.

Allowable Values:

Valid three-digit ISO 4217 currency code
transaction.gpa_order.fees

array of objects

Optional
List of fees associated with the transaction. This array is returned if it exists in the resource.

Allowable Values:

Array of existing fees objects
transaction.gpa_order.fees[].fee

object

Required
Contains details about the fee.

Allowable Values:

active, amount, created_time, currency_code, last_modified_time, name, real_time_assessment, tags, token
transaction.gpa_order.fees[].fee.active

boolean

Required
Indicates whether the fee is active.

Allowable Values:

true, false
transaction.gpa_order.fees[].fee.amount

decimal

Required
Amount of the fee.

Allowable Values:

Format: 0.00
transaction.gpa_order.fees[].fee.created_time

datetime

Required
Date and time when the fees object was created, in UTC.

Allowable Values:

Format: yyyy-MM-ddTHH:mm:ssZ
transaction.gpa_order.fees[].fee.currency_code

string

Required
The three-digit ISO 4217 currency code.

Allowable Values:

Valid three-digit ISO 4217 currency code
transaction.gpa_order.fees[].fee.last_modified_time

datetime

Required
Date and time when the GPA order was last modified, in UTC.

Allowable Values:

Format: yyyy-MM-ddTHH:mm:ssZ
transaction.gpa_order.fees[].fee.name

string

Required
Name of the fee.

Allowable Values:

50 char max
transaction.gpa_order.fees[].fee.real_time_assessment

object

Optional
Controls the assessment of real-time fees.

Allowable Values:

domestic_enabled, international_enabled, transaction_type
transaction.gpa_order.fees[].fee.real_time_assessment.domestic_enabled

boolean

Optional
Enables fee assessments for cases in which the origin of the transaction acquirer is inside the US.

Allowable Values:

true, false
transaction.gpa_order.fees[].fee.real_time_assessment.international_enabled

boolean

Optional
Enables fee assessments for cases in which the origin of the transaction acquirer is outside the US.

Allowable Values:

true, false
transaction.gpa_order.fees[].fee.real_time_assessment.transaction_type

string

Optional
Indicates the type of transactions for which the fee is assessed.

Allowable Values:

authorization, pindebit.atm.withdrawal, pindebit
transaction.gpa_order.fees[].fee.tags

string

Optional
Descriptive metadata about the fee.

Allowable Values:

255 char max
transaction.gpa_order.fees[].fee.token

string

Required
Unique identifier of the fees object.

Allowable Values:

Existing fees object token
transaction.gpa_order.fees[].memo

string

Optional
Additional text that describes the fee transfer.

Allowable Values:

1–99 chars
transaction.gpa_order.fees[].tags

string

Optional
Descriptive metadata about the fee.

Allowable Values:

255 char max
transaction.gpa_order.fees[].token

string

Required
Unique identifier of the fee.

Allowable Values:

1–36 chars
transaction.gpa_order.fees[].transaction_token

string

Required
Unique identifier of the fee transaction.

Allowable Values:

36 char max
transaction.gpa_order.funding

object

Required
Contains funding information for the transaction, including funding amount, type, and time of transaction, in UTC.

Allowable Values:

amount, gateway_log, source, source_address
transaction.gpa_order.funding.amount

decimal

Optional
Amount of funds loaded into the GPA.

Allowable Values:

Format: 0.00
transaction.gpa_order.funding.gateway_log

object

Optional
Contains information from the JIT Funding gateway in response to a funding request.

Allowable Values:

duration, message, order_number, response, timed_out, transaction_id
transaction.gpa_order.funding.gateway_log.duration

integer

Optional
Length of time taken (in milliseconds) by the gateway to respond to a funding request.

Allowable Values:

Any integer
transaction.gpa_order.funding.gateway_log.message

string

Required
Message about the status of the funding request. Useful for determining whether it was approved and completed successfully, declined by the gateway, or timed out.

Allowable Values:

Approved or completed successfully, Declined by gateway, Operation timeout
transaction.gpa_order.funding.gateway_log.order_number

string

Required
Customer order number, same value as transaction.token.

Allowable Values:

Existing transaction.token value
transaction.gpa_order.funding.gateway_log.timed_out

boolean

Optional
Whether the gateway sent a response (true) or timed out (false).

Allowable Values:

true, false
transaction.gpa_order.funding.gateway_log.transaction_id

string

Required
Customer-defined identifier for the transaction.

Allowable Values:

255 char max
transaction.gpa_order.funding.source

object

Required
Contains funding source information for the transaction, including the funding type and time of transaction, in UTC.

Allowable Values:

active, created_time, is_default_account, last_modified_time, token, type
transaction.gpa_order.funding.source.active

boolean

Required
Whether the funding source is active.

Allowable Values:

true, false
transaction.gpa_order.funding.source.created_time

datetime

Required
Date and time when the funding source was created, in UTC.

Allowable Values:

Format: yyyy-MM-ddTHH:mm:ssZ
transaction.gpa_order.funding.source.is_default_account

boolean

Required
Indicates whether the GPA order unload’s funding source is the default funding account.

Allowable Values:

true, false
transaction.gpa_order.funding.source.last_modified_time

datetime

Required
Date and time when the funding source was last modified, in UTC.

Allowable Values:

Format: yyyy-MM-ddTHH:mm:ssZ
transaction.gpa_order.funding.source.token

string

Required
Unique identifier of the funding source.

Allowable Values:

Format: UUID
transaction.gpa_order.funding.source.type

string

Required
Funding type of the funding source.

Allowable Values:

ach, paymentcard
transaction.gpa_order.funding.source_address

object

Optional
Contains information about the billing address of the funding source.

Allowable Values:

- active
- address_1
- address_2
- business_token
- city
- country
- created_time
- first_name
- is_default_address
- last_modified_time
- last_name
- phone
- postal_code
- state
- token
- user_token
- zip
transaction.gpa_order.funding.source_address.active

boolean

Optional
Whether the address is active.

Allowable Values:

true, false
transaction.gpa_order.funding.source_address.address_1

string

Required
Street address of the funding source.

Allowable Values:

255 char max
transaction.gpa_order.funding.source_address.address_2

string

Optional
Additional address information for the funding source.

This field is returned if it exists in the resource.

Allowable Values:

255 char max
transaction.gpa_order.funding.source_address.business_token

string

Optional
Unique identifier of the business account holder associated with the address. This field is returned if it exists in the resource. It is required if ‘user_token’ is not specified.

Allowable Values:

1–36 chars
transaction.gpa_order.funding.source_address.city

string

Required
City of the funding source.

Allowable Values:

40 char max
transaction.gpa_order.funding.source_address.country

string

Required
Country of the funding source.

Allowable Values:

1–40 chars
transaction.gpa_order.funding.source_address.created_time

datetime

Required
Date and time when the address was created, in UTC.

Allowable Values:

Format: yyyy-MM-ddTHH:mm:ssZ
transaction.gpa_order.funding.source_address.first_name

string

Required
First name of the account holder associated with the funding source.

Allowable Values:

40 char max
transaction.gpa_order.funding.source_address.is_default_address

boolean

Optional
Indicates whether this address is the default address used by the funding source.

Allowable Values:

true, false
transaction.gpa_order.funding.source_address.last_modified_time

datetime

Required
Date and time when the address was last modified, in UTC.

This field is returned if it exists in the resource.

Allowable Values:

Format: yyyy-MM-ddTHH:mm:ssZ
transaction.gpa_order.funding.source_address.last_name

string

Required
Last name of the account holder associated with the funding source.

Allowable Values:

40 char max
transaction.gpa_order.funding.source_address.phone

string

Optional
Phone number of the funding source.

This field is returned if it exists in the resource.

Allowable Values:

255 char max
transaction.gpa_order.funding.source_address.postal_code

string

Required
Postal code of the funding source.

Allowable Values:

10 char max
transaction.gpa_order.funding.source_address.state

string

Required
Two-character state, provincial, territorial, or federal abbreviation.

For a complete list of valid abbreviations, see Valid state, provincial, territorial, and federal abbreviations.

Allowable Values:

2 char max
transaction.gpa_order.funding.source_address.token

string

Required
Unique identifier of the funding_source_address object.

Allowable Values:

1–36 chars
transaction.gpa_order.funding.source_address.user_token

string

Optional
Unique identifier of the user account holder associated with the address. This field is returned if it exists in the resource. It is required if ‘business_token’ is not specified.

Allowable Values:

1–36 chars
transaction.gpa_order.funding.source_address.zip

string

Required
United States ZIP code of the funding source.

Allowable Values:

10 char max
transaction.gpa_order.funding_source_address_token

string

Optional
Unique identifier of the funding source address to use for this order.

Allowable Values:

Existing funding_source_address token
transaction.gpa_order.funding_source_token

string

Required
Unique identifier of the funding source to use for this order.

Allowable Values:

Existing funding_source_address token
transaction.gpa_order.gateway_message

string

Optional
Message about the status of the funding request. Useful for determining whether it was approved and completed successfully, declined by the gateway, or timed out.

This field is returned if it exists in the resource.

Allowable Values:

Approved or completed successfully, Declined by gateway,Operation timeout
transaction.gpa_order.gateway_token

integer

Optional
Unique identifier of the funding source to use for this order.

Allowable Values:

Existing gateway_token
transaction.gpa_order.jit_funding

object

Optional
Contains information about the JIT Funding load event, in which funds are loaded into an account.

Allowable Values:

- acting_user_token
- address_verification
- amount
- balances
- business_token
- decline_reason
- incremental_authorization_jit_funding_tokens
- memo
- method
- original_jit_funding_token
- tags
- token
- user_token
transaction.gpa_order.jit_funding.amount

decimal

Required
Requested amount of funding.

Allowable Values:

0 min
transaction.gpa_order.jit_funding.balances

object

Optional
Contains the GPA’s balance details.

Allowable Values:

Existing balances object
transaction.gpa_order.jit_funding.business_token

string

Optional
Holder of the business account that was funded.

Allowable Values:

36 char max
transaction.gpa_order.jit_funding.decline_reason

string

Optional
Reason why the transaction was declined.

Allowable Values:

INVALID_AMOUNT, INSUFFICIENT_FUNDS, TRANSACTION_NOT_PERMITTED, SUSPECTED_FRAUD, AMOUNT_LIMIT_EXCEEDED, TRANSACTION_COUNT_LIMIT_EXCEEDED, DUPLICATE_TRANSACTION, INVALID_MERCHANT, INVALID_CARD, NO_CREDIT_ACCOUNT, EXPIRED_CARD, NO_CHECKING_ACCOUNT, NO_SAVINGS_ACCOUNT, STOP_PAYMENT, REVOCATION_AUTHORIZATION_ORDER, REVOCATION_ALL_AUTHORIZATION_ORDER, SOFT_DECLINE_AUTHENTICATION_REQUIRED, CLOSED_ACCOUNT, SOFT_DECLINE_PIN_REQUIRED, CARD_NOT_ACTIVE, CARDHOLDER_NOT_ACTIVE
transaction.gpa_order.jit_funding.incremental_authorization_jit_funding_tokens

array of strings

Optional
Array of tokens referencing the JIT Funding tokens of all previous associated incremental authorization JIT Funding requests. Useful for ascertaining the final transaction amount when the original amount was incremented.

Allowable Values:

Existing incremental authorization JIT Funding tokens
transaction.gpa_order.jit_funding.memo

string

Optional
Additional information that describes the JIT Funding transaction.

Allowable Values:

99 char max
transaction.gpa_order.jit_funding.method

string

Required
JIT Funding response type. See The jit_funding object for the purpose, funding event type, and description of each method.

Allowable Values:

pgfs.authorization, pgfs.authorization.clearing, pgfs.authorization.advice, pgfs.authorization.incremental, pgfs.authorization.capture, pgfs.authorization.reversal, pgfs.authorization.cashback, pgfs.balanceinquiry, pgfs.auth_plus_capture, pgfs.refund, pgfs.refund.authorization, pgfs.refund.authorization.reversal, pgfs.refund.authorization.clearing, pgfs.force_capture, pgfs.authorization.capture.chargeback, pgfs.authorization.capture.chargeback.reversal, pgfs.pindebit, pgfs.pindebit.chargeback, pgfs.pindebit.chargeback.reversal, pgfs.pindebit.cashback, pgfs.pindebit.refund, pgfs.pindebit.authorization, pgfs.pindebit.authorization.clearing, pgfs.pindebit.authorization.reversal, pgfs.pindebit.atm.withdrawal, pgfs.pindebit.balanceinquiry, pgfs.pindebit.quasi.cash, pgfs.dispute.credit, pgfs.dispute.debit, pgfs.directdeposit.credit, pgfs.directdeposit.debit, pgfs.directdeposit.credit.reversal, pgfs.directdeposit.debit.reversal, pgfs.adjustment.credit, pgfs.adjustment.debit, pgfs.auth_plus_capture.standin, pgfs.authorization.standin, pgfs.network.load, pgfs.original.credit.authorization, pgfs.original.credit.auth_plus_capture, pgfs.original.credit.authorization.clearing, pgfs.original.credit.authorization.reversal, pgfs.billpayment, pgfs.billpayment.capture, pgfs.billpayment.reversal, pgfs.atm.withdrawal, pgfs.atm.clearing.withdrawal, pgfs.authorization.quasi.cash, pgfs.authorization.clearing.quasi.cash, pgfs.authorization.account_verification, pgfs.product.inquiry
transaction.gpa_order.jit_funding.original_jit_funding_token

string

Optional
Unique identifier of the first associated JIT Funding message. Useful for correlating related JIT Funding messages (that is, those associated with the same GPA order). Not included in the first of any set of related messages.

Allowable Values:

36 char max
transaction.gpa_order.jit_funding.tags

string

Optional
Customer-defined tags related to the JIT Funding transaction.

Allowable Values:

255 char max
transaction.gpa_order.jit_funding.token

string

Required
Existing JIT Funding token matching the funding.gateway_log.transaction_id field of the associated GPA order. Note that the transaction_id field updates if a subsequent JIT Funding message associated with that GPA order is sent. If multiple JIT Funding messages are associated with the same GPA order, the transaction_id field matches the token of the most recent message.

Allowable Values:

36 char max
transaction.gpa_order.jit_funding.user_token

string

Required
Holder of the user account that was funded.

Allowable Values:

36 char max
transaction.gpa_order.last_modified_time

datetime

Required
Date and time when the fees object was last modified, in UTC.

Allowable Values:

date-time

Format:
yyyy-MM-ddThh:mm:ssZ
transaction.gpa_order.memo

string

Optional
Additional descriptive text.

This field is returned if it exists in the resource.

Allowable Values:

99 char max
transaction.gpa_order.response

object

Required
Contains an assertion as to whether the Marqeta platform’s address verification data matches data provided by the cardholder.

Allowable Values:

Existing response object
transaction.gpa_order.response.code

string

Required
Four-digit code corresponding with the outcome of the attempted transaction type.

- 0000 – passed
- 0001 – did not pass

Allowable Values:

Four-digit code
transaction.gpa_order.response.memo

string

Required
Information on the outcome of the attempted transaction type.

Allowable Values:

255 char max
transaction.gpa_order.response.additional_information

string

Optional
Provides information about the relevant velocity control for the transaction, if applicable.

Allowable Values:

The additional_information field returns a string in the following format: <Velocity control name>, cumulative transaction amount is <X>, where X is the cumulative transaction amount value calculated by Marqeta. For example: 500 max spend per day, cumulative transaction amount is 750.
transaction.gpa_order.state

string

Required
Current status of the funding transaction.

Allowable Values:

PENDING, CLEARED, COMPLETION, DECLINED, ERROR,ALL
transaction.gpa_order.tags

string

Optional
Comma-delimited list of tags describing the order.

This field is returned if it exists in the resource.

Allowable Values:

255 char max
transaction.gpa_order.token

string

Required
Unique identifier of the GPA order.

Allowable Values:

36 char max
transaction.gpa_order.transaction_token

string

Required
Unique identifier of the transaction being funded.

Allowable Values:

Format: UUID
transaction.gpa_order.user_token

string

Optional
Unique identifier of the user resource.

This field is returned if it exists in the resource.

Allowable Values:

Existing user resource token
transaction.original_credit

object

Optional
Contains information about an original credit transaction (OCT), which enables the cardholder to receive funds on the specified card from an external source via the card network.

Allowable Values:

Existing original_credit object
transaction.original_credit.funding_source

string

Optional
Describes the source of the funding.

Allowable Values:

CREDIT, DEBIT, PREPAID, DEPOSIT_ACCOUNT, CASH, MOBILE_MONEY_ACCOUNT, NON_VISA_CREDIT, CHECK, ACH
transaction.original_credit.transaction_type

string

Optional
Describes the type of transaction.

Allowable Values:

ACCOUNT_TO_ACCOUNT, PERSON_TO_PERSON, WALLET_TRANSFER, MONEY_TRANSFER_BY_BANK, BUSINESS_TO_BUSINESS, DISBURSEMENT, GOVERNMENT_DISBURSEMENT, GAMBLING_PAYOUT, LOYALTY, MERCHANT_DISBURSEMENT, ONLINE_GAMBLING_PAYOUT, PENSION_DISBURSEMENT, PREPAID_LOADS, CARD_BILL_PAYMENT, BILL_PAYMENT, CASH_CLAIM, CASH_IN, CASH_OUT, MOBILE_AIR_TIME_PAYMENT, MONEY_TRANSFER_BY_MERCHANT, FACE_TO_FACE_MERCHANT_PAYMENT, GOVERNMENT_PAYMENT, PAYMENTS_GOODS_SERVICES, FUNDS_TRANSFER, VISA_ACCEPT, GENERAL_BUSINESS_TO_BUSINESS_TRANSFER, BUSINESS_TO_BUSINESS_TRANSFER, CASH_DEPOSIT, PURCHASE_REPAYMENT, AFT_OR_OCT_ELIGIBILITY, CONSUMER_BILL_PAYMENT, REQUEST_TO_PAY, GAMING_PAYMENT
transaction.original_credit.sender_account_type

string

Optional
The type of account from which the OCT draws funds.

Allowable Values:

OTHER, RTN_BANK_ACCOUNT, IBAN, CARD_ACCOUNT, EMAIL, PHONE_NUMBER, BANK_ACCOUNT_NUMBER_AND_BANK_IDENTIFICATION_CODE, WALLET_ID, SOCIAL_NETWORK_ID
transaction.original_credit.sender_name

string

Optional
Full name of the sender.

Allowable Values:

255 char max
transaction.original_credit.screening_score

string

Optional
Sanctions screening score to assist with meeting Anti-Money Laundering (AML) obligations. Higher scores indicate that the sender’s data more closely resembles an entry on the regulatory watchlist.

A value of 999 means that no screening score is available.

Allowable Values:

000-100, 999
transaction.account_name_verification

object

Optional
Contains name verification data: the full name entered by the cardholder, name data held by the Marqeta platform, and an assertion by the Marqeta platform as to whether the two sets of data match.

Allowable Values:

on_file, request, request_type, response
transaction.account_name_verification.on_file

object

Optional
Contains the name of the cardholder for account name verification.

Allowable Values:

first_name, last_name, middle_name
transaction.account_name_verification.on_file.first_name

string

Optional
First name of the cardholder.

Allowable Values:

40 char max
transaction.account_name_verification.on_file.last_name

string

Optional
Last name of the cardholder.

Allowable Values:

40 char max
transaction.account_name_verification.on_file.middle_name

string

Optional
Middle name of the cardholder.

Allowable Values:

40 char max
transaction.account_name_verification.request

object

Optional
Contains the name of the cardholder for account name verification.

Allowable Values:

first_name, last_name, middle_name
transaction.account_name_verification.request.first_name

string

Optional
First name of the cardholder.

Allowable Values:

40 char max
transaction.account_name_verification.request.last_name

string

Optional
Last name of the cardholder.

Allowable Values:

40 char max
transaction.account_name_verification.request.middle_name

string

Optional
Middle name of the cardholder.

Allowable Values:

40 char max
transaction.account_name_verification.request_type

string

Optional
(Mastercard only) Indicates the type of authentication request.

Allowable Values:

SENDER, RECEIVER
transaction.account_name_verification.response

object

Optional
Contains an assertion as to whether the Marqeta platform’s address verification data matches data provided by the cardholder.

Allowable Values:

Existing response object
transaction.account_name_verification.response.code

string

Required
Four-digit code corresponding with the outcome of the attempted transaction type.

For account name verification, the four digits correspond with assertions that the first, middle, last, and full name of the cardholder on the Marqeta platform match the data provided by the cardholder. 0 indicates no validation was performed, 1 indicates the match was unsuccessful (unmatched), 2 indicates the match was partial, and 3 indicates the match was exact. For example:

Code / First Name / Middle Name / Last Name / Full Name
0000 / Not validated / Not validated / Not validated / Not validated
1111 / Unmatched / Unmatched / Unmatched / Unmatched
3333 / Exact match / Exact match / Exact match / Exact match
1232 / Unmatched / Partial match / Exact match / Partial match

Allowable Values:

Four-digit code
transaction.account_name_verification.response.memo

string

Required
Information on the outcome of the attempted transaction type.

Allowable Values:

255 char max
transaction.account_name_verification.response.additional_information

string

Optional
Provides information about the relevant velocity control for the transaction, if applicable.

Allowable Values:

The additional_information field returns a string in the following format: <Velocity control name>, cumulative transaction amount is <X>, where X is the cumulative transaction amount value calculated by Marqeta. For example: 500 max spend per day, cumulative transaction amount is 750.
transaction.address_verification

object

Optional
Contains address verification data: the postal code and street address entered by the cardholder, address data held by the Marqeta platform, and an assertion by the Marqeta platform as to whether the two sets of data match.

Allowable Values:

on_file, request, response
transaction.address_verification.on_file

object

Optional
Contains the address of the cardholder for account address verification.

Allowable Values:

postal_code, street_address
transaction.address_verification.on_file.postal_code

string

Optional
Postal code of the cardholder.

Allowable Values:

10 char max
transaction.address_verification.on_file.street_address

string

Optional
Street address of the cardholder.

Allowable Values:

255 char max
transaction.address_verification.request

object

Optional
Contains the address of the cardholder for account address verification.

Allowable Values:

postal_code, street_address
transaction.address_verification.request.postal_code

string

Optional
Postal code of the cardholder.

Allowable Values:

10 char max
transaction.address_verification.request.street_address

string

Optional
Street address of the cardholder.

Allowable Values:

255 char max
transaction.address_verification.response

object

Optional
Contains an assertion as to whether the Marqeta platform’s address verification data matches data provided by the cardholder.

Allowable Values:

Existing response object
transaction.address_verification.response.code

string

Required
Four-digit code corresponding with the outcome of the attempted transaction type.

For address verification responses, the code is an assertion by the Marqeta platform as to whether its address verification data matches that provided by the cardholder:

Code / Address / Postal Code
0000 / Match / Match
0001 / Match / Unmatched
0100 / Unmatched / Match
0101 / Unmatched / Unmatched
0200 / Data not present / Match
0201 / Data not present / Unmatched
0002 / Match / Data not present
0102 / Unmatched / Data not present
0303 / Not validated / Not validated

Allowable Values:

Four-digit code
transaction.address_verification.response.memo

string

Required
Information on the outcome of the attempted transaction type.

Allowable Values:

255 char max
transaction.address_verification.response.additional_information

string

Optional
Provides information about the relevant velocity control for the transaction, if applicable.

Allowable Values:

The additional_information field returns a string in the following format: <Velocity control name>, cumulative transaction amount is <X>, where X is the cumulative transaction amount value calculated by Marqeta. For example: 500 max spend per day, cumulative transaction amount is 750.

International card transactions and currency conversion

With Simulations 2.0, you can simulate international card transactions based on currency and location.

Authorization events with currency conversion

You can add currency conversion when simulating an authorization-type transaction by including the currency_conversion object and related details in a POST request to the /simulations/cardtransactions/authorization endpoint. For information about the /simulations/cardtransactions/authorization endpoint, see Simulate authorization. The following example shows an authorization-type transaction, with currency conversion, for a United States card transacting in the United Kingdom. See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 37.50,
  "card_acceptor": {
    "mid": "11111"
  },
  "network": "VISA",
  "currency_conversion": {
    "original_amount": 30.00,
    "conversion_rate": 1.25,
    "original_currency_code": "GBP"
  }
}
See the full response body structure at Response body.

Sample response body

JSON
{
  "transaction": {
    "type": "authorization",
    "state": "PENDING",
    "token": "**CURRENCY_AUTHORIZATION_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": 0,
      "memo": "Approved or completed successfully"
    },
    "created_time": "2022-12-06T21:39:43.000Z",
    "user_transaction_time": "2022-12-06T21:39:43.000Z",
    "settlement_date": "2022-12-06T00:00:00.000Z",
    "amount": 37.50,
    "gpa": {
      "ledger_balance": 250.00,
      "available_balance": 212.25,
      "impacted_amount": -37.50
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 30.00,
      "conversion_rate": 1.25,
      "original_currency_code": 826
    },
    "network": "VISA",
    "subnetwork": "VISANET",
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL"
    }
  }
}

Clearing events with currency conversion

You can add currency conversion when simulating an authorization.clearing-type transaction by including the currency_conversion object and related details in a POST request to the /simulations/cardtransactions/authorization.clearing endpoint. For more information about the /simulations/cardtransactions/authorization.clearing endpoint, see Simulate authorization clearing. The following example shows an authorization.clearing-type transaction, with currency conversion, for a United States card in the United Kingdom. See the full request body structure at Request body.

Sample request body

JSON
{
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
  "amount": 37.50,
  "currency_conversion": {
    "original_amount": 30.00,
    "conversion_rate": 1.25,
    "original_currency_code": "GBP"
  }
}
See the full response body structure at Response body.

Sample response body

JSON
{
  "transaction": {
    "type": "authorization.clearing",
    "state": "COMPLETION",
    "token": "**AUTHORIZATION_CLEARING_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": 0,
      "memo": "Approved or completed successfully"
    },
    "created_time": "2022-12-06T21:41:48Z",
    "user_transaction_time": "2022-12-06T21:39:43Z",
    "settlement_date": "2022-12-06T00:00:00Z",
    "amount": 37.50,
    "gpa": {
      "ledger_balance": 212.25,
      "available_balance": 212.25,
      "impacted_amount": -37.50
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 30.00,
      "conversion_rate": 1.25,
      "original_currency_code": 826
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Card Acceptor Name",
      "city": "Seattle",
      "state": "WA",
      "country_code": "USA"
    }
  }
}

Transactions with Account Name Inquiry

Account Name Inquiry (ANI) is an account verification feature that is supported by both the Mastercard and Visa card networks. You can simulate the ANI feature with Simulations 2.0. For more information about ANI, see About Account Name Inquiry. You can add account name verification when simulating an authorization transaction by including the account_name_verification object and related details in a POST request to the /simulations/cardtransactions/authorization endpoint. For information about the /simulations/cardtransactions/authorization endpoint, see Simulate authorization.

ANI for Visa

The following example shows an authorization transaction, with account name verification, for the Visa network. See the full request body structure at Request body.

Sample request body

JSON
{
    "card_token": "**CARD_TOKEN**",
    "amount": "0",
    "card_acceptor": {
        "mid": "11111"
    },
    "network": "VISA",
    "account_name_verification": {
        "request": {
            "first_name": "first",
            "middle_name": "middle",
            "last_name": "last"
        }
    }
}
See the full response body structure at Response body.

Sample response body

JSON
{
    "transaction": {
        "type": "authorization",
        "state": "CLEARED",
        "token": "53f14f73-f830-4086-9ec6-f84ca5a30da9",
        "user_token": "89d9f7fb-f373-49a1-b28c-85539b1d0ca3",
        "card_token": "5ab74159-6346-4100-9959-c691c14b2e02",
        "response": {
            "code": "1830",
            "memo": "Card account verification success"
        },
        "created_time": "2024-02-12T20:04:25Z",
        "user_transaction_time": "2024-02-12T20:04:25Z",
        "settlement_date": "2024-02-12T00:00:00Z",
        "amount": "0.00",
        "request_amount": "0.00",
        "gpa": {
            "ledger_balance": "100.00",
            "available_balance": "100.00"
        },
        "currency_code": "USD",
        "currency_conversion": {
            "original_amount": "0.00",
            "conversion_rate": 1.0,
            "original_currency_code": "840"
        },
        "network": "VISA",
        "subnetwork": "VISANET",
        "acquirer_fee_amount": "0",
        "fraud": {
            "network": {
                "transaction_risk_score": 29,
                "account_risk_score": "3"
            }
        },
        "card_acceptor": {
            "mid": "000000000011111",
            "poi": {
                "tid": "TR100000",
                "partial_approval_capable": "0",
                "cardholder_presence": "0",
                "card_presence": "0",
                "channel": "OTHER",
                "processing_type": "MAGSTRIPE",
                "pin_present": "false"
            }
        },
        "original_credit": {},
        "account_name_verification": {
            "on_file": {
                "first_name": "First",
                "last_name": "Last",
                "middle_name": "Middle"
            },
            "request": {
                "first_name": "first",
                "last_name": "last",
                "middle_name": "middle"
            },
            "response": {
                "code": "3333",
                "memo": "First name match; Middle name match; Last name match; Full name match"
            }
        }
    }
}

ANI for Mastercard

The following example shows an authorization transaction, with account name verification, for the Mastercard network. See the full request body structure at Request body.

Sample request body

JSON
{
    "card_token": "**CARD_TOKEN**",
    "amount": "0",
    "card_acceptor": {
        "mid": "11111"
    },
    "network": "MASTERCARD",
    "account_name_verification": {
        "request": {
            "first_name": "first",
            "middle_name": "middle",
            "last_name": "last"
        },
        "request_type": "SENDER"
    }
}
See the full response body structure at Response body.

Sample response body

JSON
{
    "transaction": {
        "type": "authorization",
        "state": "CLEARED",
        "token": "044b9543-b7a0-4195-abf8-357f3b67444e",
        "user_token": "89d9f7fb-f373-49a1-b28c-85539b1d0ca3",
        "card_token": "5ab74159-6346-4100-9959-c691c14b2e02",
        "response": {
            "code": "1830",
            "memo": "Card account verification success"
        },
        "created_time": "2024-02-12T20:06:48Z",
        "user_transaction_time": "2024-02-12T20:06:48Z",
        "settlement_date": "2024-02-12T00:00:00Z",
        "amount": "0.00",
        "request_amount": "0.00",
        "gpa": {
            "ledger_balance": "100.00",
            "available_balance": "100.00"
        },
        "currency_code": "USD",
        "currency_conversion": {
            "original_amount": "0.00",
            "conversion_rate": 1.0,
            "original_currency_code": "840"
        },
        "network": "MASTERCARD",
        "acquirer_fee_amount": "0",
        "fraud": {
            "network": {
                "transaction_risk_score": 1,
                "transaction_risk_score_reason_code": "14",
                "transaction_risk_score_reason_description": "Suspicious grocery store activity"
            }
        },
        "card_acceptor": {
            "mid": "000000000011111",
            "poi": {
                "tid": "TR100000",
                "partial_approval_capable": "0",
                "cardholder_presence": "0",
                "card_presence": "1",
                "channel": "OTHER",
                "processing_type": "MAGSTRIPE",
                "pin_present": "false"
            }
        },
        "original_credit": {},
        "account_name_verification": {
            "on_file": {
                "first_name": "First",
                "last_name": "Last",
                "middle_name": "Middle"
            },
            "request": {
                "first_name": "first",
                "last_name": "last",
                "middle_name": "middle"
            },
            "response": {
                "code": "0003",
                "memo": "Full name match"
            }
        }
    }
}

Transactions with Visa Flexible Credential

The Visa Flexible Credential (VFC) feature allows cardholders to use their debit card for Buy Now, Pay Later (BNPL) credit transactions when you approve that transaction from your Just-in-Time Funding Gateway. By integrating VFC in your program, a single card product can toggle between debit and credit payment methods based on each transaction, bringing multiple funding sources to a single card. You can simulate VFC transactions for authorization, authorization.reversal, authorization.incremental, and refund.authorization transaction by including the flex object and related details in a POST request to the following endpoints:
  • /simulations/cardtransactions/authorization
  • /simulations/cardtransactions/authorization.reversal
  • /simulations/cardtransactions/authorization.incremental
  • /simulations/cardtransactions/refund.authorization
For information about the /simulations/cardtransactions/* endpoints, see Simulate authorization.

Authorization Transaction with VFC

The following example shows an authorization transaction with VFC for the Visa network.

Sample request body

See the full request body structure at Request body.
JSON
{
   "card_token": "**CARD_TOKEN**",
   "amount": "0",
   "card_acceptor": {
       "mid": "11111"
   },
   "network": "VISA",
    "flex": {
   "eligible": true,
   "eligible_products": ["DEBIT_TO_LOAN"]
   }
}

Sample response body

JSON
{
 "transaction": {
   "type": "authorization",
   "state": "PENDING",
   "token": "**TOKEN**",
   "user_token": "**USER_TOKEN**",
   "card_token": "**CARD_TOKEN**",
   "response": {
     "code": "0000",
     "memo": "Approved or completed successfully"
   },
   "created_time": "2025-08-18T22:36:10Z",
   "user_transaction_time": "2025-08-18T22:36:10Z",
   "settlement_date": "2025-08-18T00:00:00Z",
   "amount": "1.00",
   "anticipated_amount": "10.50",
   "request_amount": "1.00",
   "gpa": {
     "ledger_balance": "239.01",
     "available_balance": "0.00",
     "impacted_amount": "-1.00"
   },
   "currency_code": "USD",
   "currency_conversion": {
     "original_amount": "1.00",
     "conversion_rate": 1.0,
     "original_currency_code": "840"
   },
   "network": "VISA",
   "subnetwork": "VISANET",
   "acquirer_fee_amount": "0",
   "flex": {
     "eligible": "true",
     "selected_product": "DEBIT"
   },
   "fraud": {
     "network": {
       "transaction_risk_score": 34,
       "account_risk_score": "1"
     }
   },
   "card_acceptor": {
     "mid": "000000000011111",
     "poi": {
       "tid": "TR100000",
       "partial_approval_capable": "0",
       "cardholder_presence": "0",
       "card_presence": "0",
       "channel": "OTHER",
       "processing_type": "MANUAL",
       "pin_present": "false"
     }
   },
   "gpa_order": {
     "amount": "1.00",
     "created_time": "2025-08-18T22:36:10Z",
     "currency_code": "USD",
     "funding": {
       "amount": "1.00",
       "gateway_log": {
         "duration": 5,
         "message": "Approved or completed successfully",
         "order_number": "f1df3bf5-521f-f4r4-b063-bce75fd7bbef",
         "timed_out": false,
         "transaction_id": "eerewaee-9575-4653-te5a-fef5806b9872"
       },
       "source": {
         "active": true,
         "created_time": "2025-08-05T17:15:25Z",
         "is_default_account": false,
         "last_modified_time": "2025-08-05T17:15:25Z",
         "token": "**********2a6a",
         "type": "programgateway"
       }
     },
     "funding_source_token": "**********xxxx",
     "jit_funding": {
       "amount": "1.00",
       "balances": {},
       "method": "pgfs.authorization",
       "token": "e5bcfaee-9575-4653-883a-fe4re06b9872",
       "user_token": "3be8da9f-c5db-4052-803d-grewd976f8fb"
     },
     "last_modified_time": "2025-08-18T22:36:10Z",
     "response": {
       "code": "0000",
       "memo": "Approved or completed successfully"
     },
     "state": "PENDING",
     "token": "3er4430f-6e5e-41b0-b36f-339aea027818",
     "transaction_token": "41e45761-0a5c-46d8-bee1-dc667cfe323a",
     "user_token": "3be8da9f-vf45-4052-803d-9fec9976f8fb"
   },
   "original_credit": {}
 }
}
For more information about how to incorporate Visa Flexible Credential support in your program, contact your Marqeta representative.

Simulate authorization

Action: POST
Endpoint: /simulations/cardtransactions/authorization
Authorization is the process of confirming whether a card is valid, business rules are met, and funds are sufficient, and then placing a temporary hold on those funds. Use this endpoint to simulate an authorization type transaction by including the card_token and other authorization details in your request. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See Authorization Event.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "card_acceptor": {
    "mid": "11111"
  },
  "network": "VISA"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "authorization",
    "state": "PENDING",
    "token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2024-12-06T21:39:43Z",
    "user_transaction_time": "2024-12-06T21:39:43Z",
    "settlement_date": "2024-12-06T00:00:00Z",
    "amount": 10,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": 840
    },
    "network": "VISA",
    "subnetwork": "VISANET",
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL"
    }
  }
}

Simulate authorization advice

Action: POST
Endpoint: /simulations/cardtransactions/authorization.advice
Authorization advice allows an amount to be decreased after the authorization. This endpoint allows you to simulate post-swipe adjustments. Simulate an authorization.advice transaction by including the preceding_related_transaction_token and other authorization details in your request. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "authorization.advice",
    "state": "PENDING",
    "token": "**AUTHORIZATION_ADVICE_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-07T18:25:28Z",
    "user_transaction_time": "2025-03-07T18:25:22Z",
    "settlement_date": "2025-03-07T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 46,
        "account_risk_score": "9"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate authorization clearing

Action: POST
Endpoint: /simulations/cardtransactions/authorization.clearing
Clearing is the process of finalizing the hold on funds and posting the transaction on the cardholder’s account. This process is triggered by the merchant’s capture request. This endpoint simulates an authorization.clearing type transaction by including the preceding_related_transaction_token and amount in your request. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See Authorization Clearing Event.

Sample request body

JSON
{
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
  "amount": 10
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "authorization.clearing",
    "state": "COMPLETION",
    "token": "**AUTHORIZATION_CLEARING_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2024-12-06T21:41:48Z",
    "user_transaction_time": "2024-12-06T21:39:43Z",
    "settlement_date": "2024-12-06T00:00:00Z",
    "amount": 10,
    "gpa": {
      "ledger_balance": 240,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": 826
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Card Acceptor Name",
      "city": "St. Petersburg",
      "state": "FL",
      "country_code": "USA"
    }
  }
}

Simulate authorization reversal

Action: POST
Endpoint: /simulations/cardtransactions/authorization.reversal
A reversal releases the hold that was placed on account funds by an authorization, thus returning the funds to the account. This endpoint simulates an authorization.reversal type transaction by including the original_transaction_token and amount in your request. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
  "amount": 10
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "authorization.reversal",
    "state": "CLEARED",
    "token": "**AUTHORIZATION_REVERSAL_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully",
      "created_time": "2025-03-23T19:46:23Z",
      "user_transaction_time": "2025-03-23T19:46:20Z",
      "settlement_date": "2025-03-23T00:00:00Z",
      "amount": 10,
      "request_amount": 10,
      "gpa": {
        "ledger_balance": 250,
        "available_balance": 250,
        "impacted_amount": 10
      },
      "currency_code": "USD",
      "currency_conversion": {
        "original_amount": 10,
        "conversion_rate": 1,
        "original_currency_code": "840"
      },
      "network": "VISA",
      "subnetwork": "VISANET",
      "acquirer_fee_amount": 0,
      "fraud": {
        "network": {
          "transaction_risk_score": 16,
          "account_risk_score": "4"
        }
      },
      "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
      "card_acceptor": {
        "mid": "000000000011111",
        "mcc": "6411",
        "name": "Marqeta Storefront",
        "city": "St. Petersburg",
        "state": "FL",
        "postal_code": "33705"
      }
    }
  }
}

Simulate incremental authorization

Action: POST
Endpoint: /simulations/cardtransactions/authorization.incremental
Use this endpoint to simulate incremental authorization transactions. An incremental authorization is a request to add an additional dollar amount to an ongoing prior authorization. This type of transaction enables you to increase the final amount authorized as conditions change or additional charges accrue. A common use case is adding the gratuity (an incremental authorization) to the original total (a prior authorization) of a restaurant bill. For this use case, you use two endpoints: one to create the authorization, and another to increment it.
  • Create the authorization using the /simulations/cardtransactions/authorization endpoint:
    Action: POST
    Endpoint: /simulations/cardtransactions/authorization
  • Increment the authorization using the /simulations/cardtransactions/authorization.incremental endpoint:
    Action: POST
    Endpoint: /simulations/cardtransactions/authorization.incremental
You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 5,
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "authorization.incremental",
    "state": "PENDING",
    "token": "**AUTHORIZATION_INCREMENTAL_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-02-22T18:10:12Z",
    "user_transaction_time": "2025-02-22T18:10:12Z",
    "settlement_date": "2025-02-22T00:00:00Z",
    "amount": 5,
    "request_amount": 5,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 220,
      "impacted_amount": -5
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 5,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate authorization cash back

Action: POST
Endpoint: /simulations/cardtransactions/authorization.cashback
Use this endpoint to simulate authorization.cashback transactions, which covers authorization for cash back requested at a point-of-sale terminal. This simulation can be used to test dual-message cash back transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "card_acceptor": {
    "mid": "11111"
  },
  "network": "VISA",
  "cash_back_amount": 10
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "authorization.cashback",
    "state": "PENDING",
    "token": "**AUTHORIZATION_CASHBACK_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-23T19:43:43Z",
    "user_transaction_time": "2025-03-23T19:43:43Z",
    "settlement_date": "2025-03-23T00:00:00Z",
    "amount": 20,
    "cash_back_amount": 10,
    "request_amount": 20,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 230,
      "impacted_amount": -20
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 20,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 85,
        "account_risk_score": "3"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate ATM withdrawal authorization

Action: POST
Endpoint: /simulations/cardtransactions/authorization.atm.withdrawal
Use this endpoint to simulate authorization.atm.withdrawal transactions. In the EU, this includes authorization for withdrawing cash at an ATM. In the US, this event indicates that the cardholder got cash from a bank teller rather than an ATM. This simulation can be used to test dual-message ATM withdrawal transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "card_acceptor": {
    "mid": "11111"
  },
  "network": "VISA"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "authorization.atm.withdrawal",
    "state": "PENDING",
    "token": "**AUTHORIZATION_ATM_WITHDRAWAL_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-23T22:14:46Z",
    "user_transaction_time": "2025-03-23T22:14:46Z",
    "settlement_date": "2025-03-23T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 44,
        "account_risk_score": "4"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate ATM withdrawal authorization clearing

Action: POST
Endpoint: /simulations/cardtransactions/authorization.clearing.atm.withdrawal
Use this endpoint to simulate authorization.clearing.atm.withdrawal transactions, which completes an authorization for withdrawing cash at an ATM. This simulation can be used to test dual-message ATM withdrawal transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "authorization.clearing.atm.withdrawal",
    "state": "COMPLETION",
    "token": "**AUTHORIZATION_CLEARING_ATM_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-23T22:18:31Z",
    "user_transaction_time": "2025-03-23T22:18:31Z",
    "settlement_date": "2025-03-23T00:00:00Z",
    "amount": 10,
    "amount_to_be_released": 0,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 240,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705",
      "country_code": "USA"
    }
  }
}

Simulate quasi-cash authorization

Action: POST
Endpoint: /simulations/cardtransactions/authorization.quasi.cash
Use this endpoint to simulate authorization.quasi.cash transactions. This is for authorization at a point-of-sale terminal for items equivalent to cash, such as traveler’s checks, money orders, foreign currency, or gaming chips. This simulation can be used to test dual-message quasi-cash transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "card_acceptor": {
    "mid": "11111"
  },
  "network": "VISA"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "authorization.quasi.cash",
    "state": "PENDING",
    "token": "**AUTHORIZATION_QUASI_CASH_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-23T22:32:51Z",
    "user_transaction_time": "2025-03-23T22:32:51Z",
    "settlement_date": "2025-03-23T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 240,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 17,
        "account_risk_score": "6"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate quasi-cash authorization clearing

Action: POST
Endpoint: /simulations/cardtransactions/authorization.clearing.quasi.cash
Use this endpoint to simulate authorization.clearing.quasi.cash transactions, which completes an authorization at a point-of-sale terminal for items equivalent to cash, such as traveler’s checks, money orders, foreign currency, or gaming chips. This simulation can be used to test dual-message quasi-cash transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "authorization.clearing.quasi.cash",
    "state": "COMPLETION",
    "token": "**AUTHORIZATION_CLEARING_QUASI_CASH_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-23T22:34:18Z",
    "user_transaction_time": "2025-03-23T22:34:18Z",
    "settlement_date": "2025-03-23T00:00:00Z",
    "amount": 10,
    "amount_to_be_released": 0,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 80,
      "available_balance": 80,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705",
      "country_code": "USA"
    }
  }
}

Simulate AFT authorization

Action: POST
Endpoint: /simulations/cardtransactions/account.funding.authorization
Use this endpoint to simulate Account Funding Transactions (AFTs) using account.funding.authorization. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "network": "VISA",
  "account_funding": {
    "transaction_type": "ACCOUNT_TO_ACCOUNT",
    "funding_source": "CREDIT",
    "receiver_account_type": "CARD_ACCOUNT",
    "first_name": "FirstName",
    "last_name": "LastName"
  }
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "account.funding.authorization",
    "state": "PENDING",
    "token": "**ACCOUNT_FUNDING_AUTHORIZATION_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-01-19T00:03:48Z",
    "user_transaction_time": "2025-01-19T00:03:48Z",
    "settlement_date": "2025-01-19T00:00:00Z",
    "amount": 10,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": 840
    },
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "card_acceptor": {
      "mid": "000984172732880",
      "mcc": 4829,
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": 33705
    },
    "account_funding": {
      "receiver_name": "FirstName LastName",
      "funding_source": "CREDIT",
      "transaction_type": "ACCOUNT_TO_ACCOUNT"
    },
    "original_credit": {
      "funding_source": "CREDIT",
      "transaction_type": "ACCOUNT_TO_ACCOUNT"
    }
  }
}

Simulate AFT authorization clearing

Action: POST
Endpoint: /simulations/cardtransactions/account.funding.authorization.clearing
Use this endpoint to simulate account.funding.authorization.clearing transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "account.funding.authorization.clearing",
    "state": "COMPLETION",
    "token": "**ACCOUNT_FUNDING_AUTHORIZATION_CLEARING_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2024-12-06T21:47:21Z",
    "user_transaction_time": "2024-12-06T21:45:57Z",
    "settlement_date": "2024-12-06T00:00:00Z",
    "amount": 10,
    "gpa": {
      "ledger_balance": 240,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": 840
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "card_acceptor": {
      "mid": "000984172732880",
      "mcc": "4829",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "country_code": "USA"
    }
  }
}

Simulate AFT authorization reversal

Action: POST
Endpoint: /simulations/cardtransactions/account.funding.authorization.reversal
Use this endpoint to simulate account.funding.authorization.reversal transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "account.funding.authorization.reversal",
    "state": "CLEARED",
    "token": "**ACCOUNT_FUNDING_AUTHORIZATION_REVERSAL_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-23T21:31:40Z",
    "user_transaction_time": "2025-03-23T21:31:37Z",
    "settlement_date": "2025-03-23T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 250,
      "impacted_amount": 10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 44,
        "account_risk_score": "2"
      }
    },
    "card_acceptor": {
      "mid": "000984172732880",
      "mcc": "4829",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate AFT authorization and capture

Action: POST
Endpoint: /simulations/cardtransactions/account.funding.auth_plus_capture
Use this endpoint to simulate account.funding.auth_plus_capture transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "network": "VISA",
  "account_funding": {
    "transaction_type": "ACCOUNT_TO_ACCOUNT",
    "funding_source": "CREDIT",
    "receiver_account_type": "CARD_ACCOUNT",
    "first_name": "FirstName",
    "last_name": "LastName"
  }
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "account.funding.auth_plus_capture",
    "state": "COMPLETION",
    "token": "**ACCOUNT_FUNDING_AUTH_PLUS_CAPTURE_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-04-05T20:23:33Z",
    "user_transaction_time": "2025-04-05T20:23:33Z",
    "settlement_date": "2025-04-05T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 240,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANETDEBIT",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 15,
        "account_risk_score": "3"
      }
    },
    "card_acceptor": {
      "mid": "000984172732880",
      "mcc": "4829",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    },
    "account_funding": {
      "receiver_name": "fName lName",
      "funding_source": "CREDIT",
      "transaction_type": "ACCOUNT_TO_ACCOUNT"
    },
    "original_credit": {
      "funding_source": "CREDIT",
      "transaction_type": "ACCOUNT_TO_ACCOUNT"
    }
  }
}

Simulate AFT authorization and capture reversal

Action: POST
Endpoint: /simulations/cardtransactions/account.funding.auth_plus_capture.reversal
Use this endpoint to simulate account.funding.auth_plus_capture.reversal transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "account.funding.auth_plus_capture.reversal",
    "state": "COMPLETION",
    "token": "**ACCOUNT_FUNDING_AUTH_PLUS_CAPTURE_REVERSAL_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-04-05T20:59:47Z",
    "user_transaction_time": "2025-04-05T20:59:38Z",
    "settlement_date": "2025-04-05T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 250,
      "impacted_amount": 10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 28,
        "account_risk_score": "1"
      }
    },
    "card_acceptor": {
      "mid": "000984172732880",
      "mcc": "4829",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate refund

Action: POST
Endpoint: /simulations/cardtransactions/refund
Use this endpoint to simulate an offline refund. Refunds are not associated with a token, so a preceding_related_transaction_token is not needed. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "card_acceptor": {
    "mid": "11111"
  },
  "network": "VISA"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "refund",
    "state": "COMPLETION",
    "token": "**REFUND_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-07T21:46:29Z",
    "user_transaction_time": "2025-03-07T21:46:29Z",
    "settlement_date": "2025-03-07T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 250,
      "impacted_amount": 10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "card_acceptor": {
      "mid": "11111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705",
      "country_code": "USA"
    }
  }
}

Simulate refund authorization

Action: POST
Endpoint: /simulations/cardtransactions/refund.authorization
Online refund refers to the refund.authorization messages that Visa and Mastercard merchants can send to card issuers. These refund authorizations allow merchants to notify customers of a pending refund and give card issuers the opportunity to decline a refund. Like purchase authorizations, refund authorizations are eventually cleared or completed by a refund.authorization.clearing event. That refund authorization clearing is automatically accepted and processed by the Marqeta platform, regardless of your funding model. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "network": "VISA",
  "card_acceptor": {
    "mid": "11111"
  }
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "refund.authorization",
    "state": "PENDING",
    "token": "**REFUND_AUTHORIZATION_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-07T21:48:48Z",
    "user_transaction_time": "2025-03-07T21:48:48Z",
    "settlement_date": "2025-03-07T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 250,
      "impacted_amount": 10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 22,
        "account_risk_score": "2"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate refund authorization reversal

Action: POST
Endpoint: /simulations/cardtransactions/refund.authorization.reversal
Use this endpoint to reject refund.authorization transactions for online refunds. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "refund.authorization.reversal",
    "state": "CLEARED",
    "token": "**REFUND_AUTHORIZATION_REVERSAL_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-07T21:52:59Z",
    "user_transaction_time": "2025-03-07T21:52:28Z",
    "settlement_date": "2025-03-07T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 250,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 13,
        "account_risk_score": "4"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate refund authorization clearing

Action: POST
Endpoint: /simulations/cardtransactions/refund.authorization.clearing
Use this endpoint to simulate online refund clearing. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "refund.authorization.clearing",
    "state": "COMPLETION",
    "token": "**REFUND_AUTHORIZATION_CLEARING_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-07T21:54:58Z",
    "user_transaction_time": "2025-03-07T21:54:58Z",
    "settlement_date": "2025-03-07T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 250,
      "impacted_amount": 10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705",
      "country_code": "USA"
    }
  }
}

Simulate PIN-debit

Action: POST
Endpoint: /simulations/cardtransactions/pindebit
Use this endpoint to simulate transactions using network debit rails. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "network": "VISA",
  "card_acceptor": {
    "mid": "11111"
  },
  "card_options": {
    "pin": "6011"
  }
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "pindebit",
    "state": "COMPLETION",
    "token": "**PINDEBIT_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN",
    "card_token": "**CARD_TOKEN",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-14T18:03:15Z",
    "user_transaction_time": "2025-03-14T18:03:15Z",
    "settlement_date": "2025-03-14T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 240,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANETDEBIT",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 72,
        "account_risk_score": "9"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate PIN-debit reversal

Action: POST
Endpoint: /simulations/cardtransactions/pindebit.reversal
Use this endpoint to simulate transactions using network debit rails. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "preceding_related_transaction_token": "**PINDEBIT_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "pindebit.reversal",
    "state": "CLEARED",
    "token": "**PINDEBIT_REVERSAL_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN",
    "card_token": "**CARD_TOKEN",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-09-19T16:12:59Z",
    "user_transaction_time": "2025-09-19T16:12:47Z",
    "settlement_date": "2025-09-19T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 250,
      "impacted_amount": 10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "preceding_related_transaction_token": "**PINDEBIT_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 75,
        "account_risk_score": "2"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "5542",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate PIN-debit authorization

Action: POST
Endpoint: /simulations/cardtransactions/pindebit.authorization
Use this endpoint to simulate PIN-debit authorization transactions. The typical use case for dual-message PIN-debit transactions is automated fuel dispenser transactions. The pump sends an initial authorization message to the card issuer. When fueling completes, a clearing message is sent with the final amount. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "network": "VISA",
  "card_acceptor": {
    "mid": "11111"
  }
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "pindebit.authorization",
    "state": "PENDING",
    "token": "**PINDEBIT_AUTHORIZATION_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN",
    "card_token": "**CARD_TOKEN",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-07T18:09:02Z",
    "user_transaction_time": "2025-03-07T18:09:02Z",
    "settlement_date": "2025-03-07T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANETDEBIT",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 87,
        "account_risk_score": "7"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "5542",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate PIN-debit authorization clearing

Action: POST
Endpoint: /simulations/cardtransactions/pindebit.authorization.clearing
Use this endpoint to clear pindebit.authorization transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "pindebit.authorization.clearing",
    "state": "COMPLETION",
    "token": "**PINDEBIT_AUTHORIZATION_CLEARING_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN",
    "card_token": "**CARD_TOKEN",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-02-22T18:08:16Z",
    "user_transaction_time": "2025-02-22T18:08:15Z",
    "settlement_date": "2025-02-22T00:00:00Z",
    "amount": 10,
    "amount_to_be_released": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 240,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "5542",
      "country_code": "USA"
    }
  }
}

Simulate PIN-debit authorization reversal

Action: POST
Endpoint: /simulations/cardtransactions/pindebit.authorization.reversal
Use this endpoint to reverse pindebit.authorization transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "pindebit.authorization.reversal",
    "state": "CLEARED",
    "token": "**PINDEBIT_AUTHORIZATION_REVERSAL_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN",
    "card_token": "**CARD_TOKEN",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-07T18:12:39Z",
    "user_transaction_time": "2025-03-07T18:12:34Z",
    "settlement_date": "2025-03-07T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 250,
      "impacted_amount": 10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 75,
        "account_risk_score": "2"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "5542",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate PIN-debit cash back

Action: POST
Endpoint: /simulations/cardtransactions/pindebit.cashback
Simulate a PIN-debit transaction for cash back requested at a point-of-sale terminal. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "cash_back_amount": 5,
  "card_acceptor": {
    "mid": "11111"
  }
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "pindebit.cashback",
    "state": "COMPLETION",
    "token": "**PINDEBIT_CASHBACK_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN",
    "card_token": "**CARD_TOKEN",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-07T18:13:49Z",
    "user_transaction_time": "2025-03-07T18:13:49Z",
    "settlement_date": "2025-03-07T00:00:00Z",
    "amount": 15,
    "cash_back_amount": 5,
    "request_amount": 15,
    "gpa": {
      "ledger_balance": 235,
      "available_balance": 235,
      "impacted_amount": -15
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 15,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANETDEBIT",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 66,
        "account_risk_score": "5"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate PIN-debit refund

Action: POST
Endpoint: /simulations/cardtransactions/pindebit.refund
Use this endpoint to simulate a PIN-debit transaction refund. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "card_acceptor": {
    "mid": "11111"
  }
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "pindebit.refund",
    "state": "COMPLETION",
    "token": "**PINDEBIT_REFUND_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN",
    "card_token": "**CARD_TOKEN",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-07T18:15:15Z",
    "user_transaction_time": "2025-03-07T18:15:15Z",
    "settlement_date": "2025-03-07T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 260,
      "available_balance": 260,
      "impacted_amount": 10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANETDEBIT",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 77,
        "account_risk_score": "7"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate PIN-debit ATM withdrawal

Action: POST
Endpoint: /simulations/cardtransactions/pindebit.atm.withdrawal
Use this endpoint to simulate a cash withdrawal at an ATM. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "cash_back_amount": 10,
  "card_acceptor": {
    "mid": "11111"
  }
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "pindebit.atm.withdrawal",
    "state": "COMPLETION",
    "token": "**PINDEBIT_ATM_WITHDRAWAL_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-07T18:16:25Z",
    "user_transaction_time": "2025-03-07T18:16:25Z",
    "settlement_date": "2025-03-07T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 240,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANETDEBIT",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 90,
        "account_risk_score": "1"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate PIN-debit balance inquiry

Action: POST
Endpoint: /simulations/cardtransactions/pindebit.balanceinquiry
Use this endpoint to simulate a balance inquiry via the card network. This is a non-financial transaction. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "account_type": "savings",
  "card_acceptor": {
    "mid": "11111",
    "partial_approval_capable": "true"
  },
  "network": "VISA"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "pindebit.balanceinquiry",
    "state": "CLEARED",
    "token": "**PINDEBIT_BALANCEINQUIRY_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-02-22T18:08:39Z",
    "user_transaction_time": "2025-02-22T18:08:39Z",
    "settlement_date": "2025-02-22T00:00:00Z",
    "amount": 0,
    "request_amount": 0,
    "gpa": {
      "ledger_balance": 250,
      "available_balance": 250
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 0,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANETDEBIT",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 93,
        "account_risk_score": "1"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate PIN-debit quasi-cash

Action: POST
Endpoint: /simulations/cardtransactions/pindebit.quasi.cash
Use this endpoint to simulate pindebit.quasi.cash transactions. This PIN-debit transaction occurs at a point-of-sale terminal for items equivalent to cash, such as traveler’s checks, money orders, foreign currency, or gaming chips. This simulation can be used to test single-message cash back transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "card_acceptor": {
    "mid": "11111"
  },
  "network": "VISA"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "pindebit.quasi.cash",
    "state": "COMPLETION",
    "token": "**PINDEBIT_QUASI_CASH_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-23T22:30:08Z",
    "user_transaction_time": "2025-03-23T22:30:08Z",
    "settlement_date": "2025-03-23T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 240,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANETDEBIT",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 69,
        "account_risk_score": "8"
      }
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate OCT authorization

Action: POST
Endpoint: /simulations/cardtransactions/original.credit.authorization
Use this endpoint to simulate original.credit.authorization transactions. This is for original credit transaction (OCT) authorization for disbursing funds to a credit card. This simulation can be used to test dual-message OCT transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "card_token": "**CARD_TOKEN**",
  "card_acceptor": {
    "mid": "11111"
  }
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "original.credit.authorization",
    "state": "PENDING",
    "token": "**ORIGINAL_CREDIT_AUTHORIZATION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-23T23:19:25Z",
    "user_transaction_time": "2025-03-23T23:19:25Z",
    "settlement_date": "2025-03-23T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 240,
      "available_balance": 240,
      "impacted_amount": 10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 83,
        "account_risk_score": "5"
      }
    },
    "card_acceptor": {
      "mid": "000000000001234",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate OCT authorization clearing

Action: POST
Endpoint: /simulations/cardtransactions/original.credit.authorization.clearing
Use this endpoint to simulate original.credit.authorization.clearing transactions, which completes an original credit transaction (OCT) authorization. This simulation can be used to test dual-message OCT transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "original.credit.authorization.clearing",
    "state": "CLEARED",
    "token": "**ORIGINAL_CREDIT_AUTHORIZATION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-23T23:25:44Z",
    "user_transaction_time": "2025-03-23T23:19:25Z",
    "settlement_date": "2025-03-23T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 240,
      "available_balance": 240,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 1,
        "account_risk_score": "7"
      }
    },
    "card_acceptor": {
      "mid": "000000000001234",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate OCT authorization and capture

Action: POST
Endpoint: /simulations/cardtransactions/original.credit.auth_plus_capture
Use this endpoint to simulate original.credit.auth_plus_capture transactions for single-message original credit transaction (OCT) for disbursing funds to a credit card. This simulation can be used to test single-message OCT transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 10,
  "card_acceptor": {
    "mid": "11111"
  },
  "network": "VISA"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "original.credit.auth_plus_capture",
    "state": "COMPLETION",
    "token": "**ORIGINAL_CREDIT_AUTH_PLUS_CAPTURE_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-23T23:28:03Z",
    "user_transaction_time": "2025-03-23T23:28:03Z",
    "settlement_date": "2025-03-23T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 240,
      "available_balance": 240,
      "impacted_amount": 10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANETDEBIT",
    "acquirer_fee_amount": 0,
    "fraud": {
      "network": {
        "transaction_risk_score": 50,
        "account_risk_score": "7"
      }
    },
    "card_acceptor": {
      "mid": "000000000001111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate OCT authorization and capture reversal

Action: POST
Endpoint: /simulations/cardtransactions/original.credit.auth_plus_capture.reversal
Use this endpoint to simulate original.credit.auth_plus_capture.reversal transactions to reverse the financial impact of a single-message original credit transaction (OCT). This simulation can be used to reverse single-message OCT transactions. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "amount": 10,
  "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "original.credit.auth_plus_capture.reversal",
    "state": "COMPLETION",
    "token": "**ORIGINAL_CREDIT_AUTH_PLUS_CAPTURE_REVERSAL_TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-03-23T23:30:25Z",
    "user_transaction_time": "2025-03-23T23:28:03Z",
    "settlement_date": "2025-03-23T00:00:00Z",
    "amount": 10,
    "request_amount": 10,
    "gpa": {
      "ledger_balance": 100,
      "available_balance": 80,
      "impacted_amount": -10
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": 10,
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "preceding_related_transaction_token": "**AUTHORIZATION_TRANSACTION_TOKEN**",
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": 0,
    "fraud": {
      "description": "Contains one or more fraud determinations by the card network that apply either to the transaction or to the cardholder's account.",
      "x-allowableValues": "Existing `fraud` object",
      "network": {
        "description": "Contains network-provided information about fraud determinations.",
        "x-allowableValues": "- `account_risk_score`\n- `account_risk_score_reason_code`\n- `transaction_risk_score`\n- `transaction_risk_score_reason_code`\n- `transaction_risk_score_reason_description`",
        "transaction_risk_score": {
          "description": "Network-provided risk score for the transaction.\nA higher score indicates higher risk.\nThe risk score is useful for making decisions about authorizations.",
          "x-allowableValues": "Mastercard: 0-99\nVisa: 0-99"
        },
        "account_risk_score": "4"
      }
    },
    "card_acceptor": {
      "mid": "000000000001111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL",
      "postal_code": "33705"
    }
  }
}

Simulate Product Inquiry

Action: POST
Endpoint: /simulations/cardtransactions/product.inquiry
Use this endpoint to simulate a product.inquiry type transaction. You can view the full request body structure on the Simulations 2.0 — Card Transactions page.

Request body

See the full request body structure at Request body.

Sample request body

JSON
{
  "card_token": "**CARD_TOKEN**",
  "amount": 0,
  "card_acceptor": {
    "mid": "11111"
  },
  "flex": {
    "eligible": true,
    "eligible_products": [
      "DEBIT_TO_LOAN"
    ]
  },
  "network": "VISA"
}

Response body

See Card Transaction Simulation Response.

Sample response body

JSON
{
  "transaction": {
    "type": "product.inquiry",
    "state": "CLEARED",
    "token": "**TRANSACTION_TOKEN**",
    "user_token": "**USER_TOKEN**",
    "card_token": "**CARD_TOKEN**",
    "response": {
      "code": "0000",
      "memo": "Approved or completed successfully"
    },
    "created_time": "2025-08-05T22:11:10Z",
    "user_transaction_time": "2025-08-05T22:11:10Z",
    "settlement_date": "2025-08-05T00:00:00Z",
    "amount": "0.00",
    "request_amount": "0.00",
    "gpa": {
      "ledger_balance": "17.01",
      "available_balance": "0.00"
    },
    "currency_code": "USD",
    "currency_conversion": {
      "original_amount": "0.00",
      "conversion_rate": 1,
      "original_currency_code": "840"
    },
    "network": "VISA",
    "subnetwork": "VISANET",
    "acquirer_fee_amount": "0",
    "flex": {
      "eligible": true,
      "selected_product": "DEBIT"
    },
    "card_acceptor": {
      "mid": "000000000011111",
      "mcc": "6411",
      "name": "Marqeta Storefront",
      "city": "St. Petersburg",
      "state": "FL"
    },
    "gpa_order": {
      "amount": "0.00",
      "created_time": "2025-08-05T22:11:11Z",
      "currency_code": "USD",
      "funding": {
        "amount": "0.00",
        "gateway_log": {
          "duration": 70,
          "message": "Approved or completed successfully",
          "order_number": "**ORDER_NUMBER**",
          "timed_out": false,
          "transaction_id": "**TRANSACTION_ID**"
        },
        "source": {
          "active": true,
          "created_time": "2025-08-05T17:15:25Z",
          "is_default_account": false,
          "last_modified_time": "2025-08-05T17:15:25Z",
          "token": "**SOURCE_TOKEN**",
          "type": "programgateway"
        }
      },
      "funding_source_token": "**SOURCE_TOKEN**",
      "jit_funding": {
        "amount": "0.00",
        "balances": {},
        "method": "pgfs.product.inquiry",
        "token": "**JIT_TOKEN**",
        "user_token": "**USER_TOKEN**"
      },
      "last_modified_time": "2025-08-05T22:11:11Z",
      "response": {
        "code": "0000",
        "memo": "Approved or completed successfully"
      },
      "state": "COMPLETION",
      "token": "**GPA_ORDER_TOKEN**",
      "transaction_token": "**TRANSACTION_TOKEN**",
      "user_token": "**USER_TOKEN**"
    },
    "original_credit": {}
  }
}