Transaction Data for JIT Funding Decisions

If you have enabled Gateway JIT Funding for your program, the Marqeta platform sends funding requests to your system for each transaction. Some transaction types, such as authorizations, are actionable, meaning your system must respond programmatically to the request and approve or deny the funding. (Other transaction types, such as refunds or reversals, are informative only, meaning your system receives a funding notification but does not need to send a response.)

To aid in your system's decisioning process, the Marqeta platform includes data in the request about the transaction being funded. This data describes aspects of the transaction that indicate to your system whether it is advisable to approve or deny the funding request.

The message sent to your JIT Funding gateway endpoint includes the following key objects for decisioning:

  • jit_funding
  • fraud
  • cardholder_authentication_data
  • card_security_code_verification
  • transaction_metadata

In addition to your system's programmatic responses to JIT Funding requests, you can configure the following restrictions for your program on the Marqeta platform:

  • Spend controls — Limits when, where, and how much a user can spend with their card. For more information, see Controlling Spending.
  • Address Verification System (AVS) — Verifies that the address provided by the card holder matches the address on file. For more information, see About Address Verification.

The Marqeta platform processes these restrictions before sending a JIT Funding request to your gateway endpoint.

JIT Funding

The jit_funding object contains information about the funding event, including the associated user token and transaction amount. The method field indicates the type of transaction and whether the message is an actionable funding request sent to your gateway endpoint or an informative message sent to your webhook endpoint.

Actionable transaction types

Your system must programmatically approve or deny JIT Funding requests for the following types of transactions:

  • pgfs.authorization
  • pgfs.authorization.incremental
  • pgfs.auth_plus_capture

For more information about the jit_funding object, as well as the differences between actionable and informative transaction types, see Gateway JIT Funding Messages.


Fraud

The fraud object contains one or more fraud determinations for the transaction and the card holder's account. Fraud determinations originate from the network and/or the Marqeta platform.

A fraud determination from the network can include the following fields:

Name Type Description Allowable Values
transaction_risk_score int Determination of the transaction's risk, as calculated by the network; a higher score indicates higher risk. 1-100
account_risk_score int Determination of the account holder's risk, as calculated by the network; a higher score indicates higher risk. 1-100

A fraud determination from the Marqeta platform can include the following fields:

Name Type Description Allowable Values
score int Determination of the transaction's risk, as calculated by the Marqeta platform; a higher score indicates higher risk. 1-100
risk_level string Summary of the transaction's risk, based on score ranges specific to your program. LOW | MEDIUM | HIGH
recommended_action string The Marqeta platform's suggested response for the JIT Funding request. APPROVE | DECLINE | NOT_PERFORMED
rule_violations array Rules violated by the transaction that impact the Marqeta platform's risk score.

The following code block shows a sample fraud object as it would appear in a JIT Funding request:

"fraud": {
"network": {
"transaction_risk_score": 97,
"account_risk_score": 7
},
"issuer_processor":{
"score": "64",
"risk_level": "MEDIUM",
"recommended_action": "APPROVE",
"rule_violations":
[           
"24hr.velocity.exceeded"     
]
}  
}


Cardholder authentication data

The cardholder_authentication_data object contains information about additional authentication performed for e-commerce transactions. For example, a transaction participant (such as the network) can request additional verification during the transaction process, such as the card holder's name or date of birth.

Name Type Description Allowable Values
electronic_commerce_indicator string Status of verification attempt. authentication_successful | authentication_attempted | no_authentication
verification_result string Result of the verification attempt. verified | failed | not_verified | not_present | not_provided
verification_value_created_by string Transaction participant who determined the verification result. issuer_acs | issuer_attempts_server | network | network_attempts_server

The following code block shows a sample cardholder_authentication_data object as it would appear in a JIT Funding request:

"cardholder_authentication_data": {
"electronic_commerce_indicator": "authentication_successful",
"verification_result": "verified",
"verification_value_created_by": "issuer_acs"
}


Card security code verification

The card_security_code_verification object contains information about a verification check performed on the card's security code. 

The type field indicates the type of security code and can have the following possible values:

  • CVV1 – The security code stored in the magnetic stripe on the card.
  • CVV2 – The security code printed on the card.
  • ICVV – The security code stored on the chip of the card.
  • DCVV – A dynamic security code used in some contactless payments when a card or device is tapped on the card reader.

The response.code field indicates whether the verification check passed and can have one of the following values:

  • 0000 – Passed
  • 0001 – Did not pass
Name Type Description Allowable Values
type string Type of security code verified. CVV1 | CVV2 | ICVV | DCVV
response.code string Indicates whether the verification check passed. 0000 | 0001
response.memo string Free-form description of the verification result.

The following code block shows a sample card_security_code_verification object as it would appear in a JIT Funding request:

"card_security_code_verification": {
"type": "CVV1",
"response": {
"code": "0000",
"memo": "Card security code match"
}
}


Transaction metadata

The transaction_metadata object contains additional merchant-provided details about a transaction. It also includes sub-objects for more detailed information about transit and air travel purchases.

Note: Transaction metadata is only included when provided by the merchant.

Name Type Description Allowable Values
transaction_category string Type of product or service being purchased. RETAIL_SALE | BILL_PAY | HOTEL | RESTAURANT | AUTO_RENTAL | AIRLINE | PAYMENT | HOSPITALIZATION_COLLEGE | PHONE_MAIL_ECOMMERCE | ATM | HEALTH_CARE | TRANSIT
authorization_life_cycle int Number of days until pre-authorization expires.
lodging_auto_rental_start_date date Pick-up date for an auto rental, or check-in date for lodging.

The transaction_metadata.transit sub-object can contain the following fields related to transportation other than air travel:

Name Type Description Allowable Values
transaction_type string Type of transit transaction performed. PRE_FUNDED | REAL_TIME_AUTHORIZED | POST_AUTHORIZED_AGGREGATED | AUTHORIZED_AGGREGATED_SPLIT_CLEARING | OTHER | DEBIT_RECOVERY
transportation_mode string Mode of transportation purchased. BUS | TRAIN | WATER_BORNE_VEHICLE | TOLL | PARKING | TAXI | PARA_TRANSIT | SELF_DRIVE_VEHICLE | COACH | LOCOMOTIVE | POWERED_MOTOR_VEHICLE | TRAILER | INTER_CITY | CABLE_CAR

The transaction_metadata.airline sub-object can contain the following fields related to air travel:

Name Type Description Allowable Values
passenger_name string Name of passenger for air travel.
depart_date date Date of departure for air travel.
origination_city string Three-letter airport code for the city of departure.

The following code block shows a sample of the transaction_metadata object as it would appear in a JIT Funding request:

"transaction_metadata": {
"transaction_category": "AUTO_RENTAL",
"authorization_life_cycle": "10",
"lodging_auto_rental_start_date": "10/19/2018"
"transit": {
"transaction_type": "PRE_FUNDED",
"transportation_mode": "BUS"
},
"airline": {
"passenger_name": "Madison Aguilar",
"depart_date": "10/19/2016",
"origination_city": "SJC"
}
}