DOCS

New!

/

10 minute read

November 4, 2019

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

  • pgfs.billpayment

  • pgfs.billpayment.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 fraud-related data elements from the card network and the Marqeta platform (when FraudStream is enabled).

Fraud data elements from the card network can include the following fields:

Fields Description

transaction_risk_score

int, optional

(Visa and Mastercard) Transaction fraud risk score calculated by the card network; a higher score indicates higher risk.

Allowable Values:

1-99

account_risk_score

int, optional

(Visa only) Account holder risk condition code evaluated by the card network; a higher score indicates a greater likelihood that the card number is compromised.

Allowable Values:

1-9

transaction_risk_score_reason_code

string, optional

(Mastercard only) Unique code that describes the main driver of the transaction_risk_score.

Allowable Values:

1-29

transaction_risk_score_reason_description

string, optional

(Mastercard only) Description of the transaction_risk_score_reason_code.

Allowable Values:

Various strings

Fraud data elements from the Marqeta platform can include the following fields:

Fields Description

score

int, optional

Transaction risk score calculated by Marqeta; a higher score indicates higher risk.

Allowable Values:

1-99

risk_level

string, optional

Estimate of the risk level of the transaction, based on the Marqeta risk score.

Allowable Values:

LOW, MEDIUM, HIGH

recommended_action

string, optional

Flags transactions based on the rules defined for the program within FraudStream. When a rule is triggered, the value is “DECLINE”.

Allowable Values:

APPROVE, DECLINE, NOT_PERFORMED

rule_violations

array, optional

FraudStream rules that were flagged at transaction time.

Allowable Values:

Array of strings

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": "DECLINE",
    "rule_violations":
      [
        "24hr.velocity.exceeded"
      ]
  }
}

Is this helpful?

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 card network) can request additional verification during the transaction process, such as the card holder’s name or date of birth.

Fields Description

electronic_commerce_indicator

string, optional

Status of verification attempt.

Allowable Values:

authentication_successful, authentication_attempted, no_authentication

verification_result

string, optional

Result of the verification attempt.

Allowable Values:

verified, failed, not_verified, not_present, not_provided

verification_value_created_by

string, optional

Transaction participant who determined the verification result.

Allowable Values:

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

Is this helpful?

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

Fields Description

type

string, required

Type of security code verified.

Allowable Values:

CVV1, CVV2, ICVV, DCVV

response.code

string, required

Indicates whether the verification check passed.

Allowable Values:

0000, 0001

response.memo

string, optional

Free-form description of the verification result.

Allowable Values:

99 char max

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

Is this helpful?

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.
Fields Description

transaction_category

string, optional

Type of product or service being purchased.

Allowable Values:

RETAIL_SALE, BILL_PAY, HOTEL, RESTAURANT, AUTO_RENTAL, AIRLINE, PAYMENT, HOSPITALIZATION_COLLEGE, PHONE_MAIL_ECOMMERCE, ATM, HEALTH_CARE, TRANSIT

authorization_life_cycle

int, optional

Number of days until pre-authorization expires.

Allowable Values:

lodging_auto_rental_start_date

date, optional

Pick-up date for an auto rental, or check-in date for lodging.

Allowable Values:

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

Fields Description

transaction_type

string, optional

Type of transit transaction performed.

Allowable Values:

PRE_FUNDED, REAL_TIME_AUTHORIZED, POST_AUTHORIZED_AGGREGATED, AUTHORIZED_AGGREGATED_SPLIT_CLEARING, OTHER, DEBIT_RECOVERY

transportation_mode

string, optional

Mode of transportation purchased.

Allowable Values:

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:

Fields Description

passenger_name

string, optional

Name of passenger for air travel.

Allowable Values:

Format: forename surname

depart_date

date, optional

Date of departure for air travel.

Allowable Values:

Format: dd/mm/yyyy

origination_city

string, optional

Three-letter airport code for the city of departure.

Allowable Values:

Format: SFO

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

Is this helpful?

Have any feedback on this page?

If you feel we can do anything better, please let our team know.

We strive for the best possible developer experience.