{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/asa-request", "title": "asa-request", "description": "The Auth Stream Access request payload that was sent to the ASA responder.", "type": "object", "properties": { "merchant": { "$ref": "#/components/schemas/transaction_merchant" }, "service_location": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/service_location" } ] }, "avs": { "type": "object", "properties": { "address": { "description": "Cardholder address", "type": "string" }, "zipcode": { "description": "Cardholder ZIP code", "type": "string" }, "address_on_file_match": { "$ref": "#/components/schemas/address_match_result" } }, "required": [ "address_on_file_match", "address", "zipcode" ] }, "card": { "$ref": "#/components/schemas/asa_request_card" }, "cardholder_authentication": { "$ref": "#/components/schemas/cardholder_authentication" }, "pos": { "type": "object", "properties": { "entry_mode": { "$ref": "#/components/schemas/asa_request_pos_entry_mode" }, "terminal": { "$ref": "#/components/schemas/asa_pos_terminal" } } }, "amount": { "type": "integer", "format": "int64", "deprecated": true, "description": "Deprecated, use `amounts`. Authorization amount of the transaction (in cents), including any acquirer fees. The contents of this field are identical to `authorization_amount`." }, "acquirer_fee": { "type": "integer", "format": "int64", "description": "Fee (in cents) assessed by the merchant and paid for by the cardholder. Will be zero if no fee is assessed. Rebates may be transmitted as a negative value to indicate credited fees." }, "authorization_amount": { "type": "integer", "format": "int64", "deprecated": true, "description": "Deprecated, use `amounts`. The base transaction amount (in cents) plus the acquirer fee field. This is the amount the issuer should authorize against unless the issuer is paying the acquirer fee on behalf of the cardholder." }, "cardholder_currency": { "type": "string", "deprecated": true, "description": "Deprecated, use `amounts`. 3-character alphabetic ISO 4217 code for cardholder's billing currency." }, "cash_amount": { "type": "integer", "format": "int64", "description": "The portion of the transaction requested as cash back by the cardholder, and does not include any acquirer fees. The amount field includes the purchase amount, the requested cash back amount, and any acquirer fees.\n\nIf no cash back was requested, the value of this field will be 0, and the field will always be present." }, "cashback": { "type": "integer", "format": "int64", "description": "Deprecated, use `cash_amount`." }, "token_info": { "$ref": "#/components/schemas/token_info" }, "ttl": { "description": "Deprecated: approximate time-to-live for the authorization.", "type": "string", "format": "date-time" }, "conversion_rate": { "deprecated": true, "description": "Deprecated, use `amounts`. If the transaction was requested in a currency other than the settlement currency, this field will be populated to indicate the rate used to translate the merchant_amount to the amount (i.e., `merchant_amount` x `conversion_rate` = `amount`). Note that the `merchant_amount` is in the local currency and the amount is in the settlement currency.", "type": "number" }, "created": { "type": "string", "format": "date-time", "description": "Date and time when the transaction first occurred in UTC." }, "merchant_amount": { "type": "integer", "format": "int64", "deprecated": true, "description": "Deprecated, use `amounts`. The amount that the merchant will receive, denominated in `merchant_currency` and in the smallest currency unit. Note the amount includes `acquirer_fee`, similar to `authorization_amount`. It will be different from `authorization_amount` if the merchant is taking payment in a different currency." }, "merchant_currency": { "deprecated": true, "allOf": [ { "$ref": "#/components/schemas/merchant_currency" } ], "description": "Deprecated, use `amounts`." }, "network": { "type": "string", "description": "Card network of the authorization.", "enum": [ "AMEX", "INTERLINK", "MAESTRO", "MASTERCARD", "UNKNOWN", "VISA" ] }, "network_risk_score": { "$ref": "#/components/schemas/network_risk_score" }, "settled_amount": { "type": "integer", "format": "int64", "deprecated": true, "description": "Deprecated, use `amounts`. Amount (in cents) of the transaction that has been settled, including any acquirer fees." }, "amounts": { "description": "Structured amounts for this authorization. The `cardholder` and `merchant` amounts reflect the original network authorization values. For programs with hold adjustments enabled (e.g., automated fuel dispensers or tipping MCCs), the `hold` amount may exceed the `cardholder` and `merchant` amounts to account for anticipated final transaction amounts such as tips or fuel fill-ups", "type": "object", "properties": { "cardholder": { "$ref": "#/components/schemas/converted_amount" }, "merchant": { "$ref": "#/components/schemas/amount" }, "settlement": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/amount" } ] }, "hold": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/amount" } ] } }, "required": [ "cardholder", "merchant", "settlement", "hold" ] }, "status": { "$ref": "#/components/schemas/asa_request_status" }, "token": { "description": "The provisional transaction group uuid associated with the authorization", "type": "string", "format": "uuid" }, "event_token": { "description": "The event token associated with the authorization. This field is only set for programs enrolled into the beta.", "type": "string", "format": "uuid" }, "fleet_info": { "$ref": "#/components/schemas/asa_request_fleet_info" }, "network_specific_data": { "$ref": "#/components/schemas/asa_network_specific_data" }, "account_type": { "$ref": "#/components/schemas/account_type" }, "transaction_initiator": { "type": "string", "description": "The entity that initiated the transaction.", "enum": [ "CARDHOLDER", "MERCHANT", "UNKNOWN" ] }, "latest_challenge": { "description": "The latest Authorization Challenge that was issued to the cardholder for this merchant.", "type": "object", "properties": { "status": { "type": "string", "enum": [ "COMPLETED", "PENDING", "EXPIRED", "ERROR" ], "description": "The status of the Authorization Challenge\n\n* `COMPLETED` - Challenge was successfully completed by the cardholder\n* `PENDING` - Challenge is still open\n* `EXPIRED` - Challenge has expired without being completed\n* `ERROR` - There was an error processing the challenge" }, "phone_number": { "type": "string", "description": "The phone number used for sending Authorization Challenge SMS." }, "completed_at": { "type": "string", "format": "date-time", "description": "The date and time when the Authorization Challenge was completed in UTC. Present only if the status is `COMPLETED`." } }, "required": [ "status", "phone_number" ] } }, "required": [ "acquirer_fee", "amount", "amounts", "authorization_amount", "avs", "card", "cardholder_currency", "cash_amount", "created", "merchant", "service_location", "merchant_amount", "merchant_currency", "settled_amount", "status", "token", "transaction_initiator" ], "$defs": { "asa_request_status": { "type": "string", "description": "The type of authorization request that this request is for. Note that `CREDIT_AUTHORIZATION` and `FINANCIAL_CREDIT_AUTHORIZATION` is only available to users with credit decisioning via ASA enabled.", "enum": [ "AUTHORIZATION", "CREDIT_AUTHORIZATION", "FINANCIAL_AUTHORIZATION", "FINANCIAL_CREDIT_AUTHORIZATION", "BALANCE_INQUIRY" ] }, "asa_request_pos_entry_mode": { "description": "POS > Entry Mode object in ASA", "type": "object", "properties": { "card": { "description": "Card Presence Indicator", "type": "string", "enum": [ "PRESENT", "NOT_PRESENT", "UNKNOWN" ] }, "cardholder": { "description": "Cardholder Presence Indicator", "type": "string", "enum": [ "DEFERRED_BILLING", "ELECTRONIC_ORDER", "INSTALLMENT", "MAIL_ORDER", "NOT_PRESENT", "PRESENT", "REOCCURRING", "TELEPHONE_ORDER", "UNKNOWN" ] }, "pan": { "description": "Method of entry for the PAN", "type": "string", "enum": [ "AUTO_ENTRY", "BAR_CODE", "CONTACTLESS", "ECOMMERCE", "ERROR_KEYED", "ERROR_MAGNETIC_STRIPE", "ICC", "KEY_ENTERED", "MAGNETIC_STRIPE", "MANUAL", "OCR", "SECURE_CARDLESS", "UNSPECIFIED", "UNKNOWN", "CREDENTIAL_ON_FILE", "ECOMMERCE" ] }, "pin_entered": { "type": "boolean", "description": "Indicates whether the cardholder entered the PIN. True if the PIN was entered." } } }, "asa_request_fleet_info": { "title": "Fleet Info", "description": "Optional Object containing information if the Card is a part of a Fleet managed program", "type": [ "object", "null" ], "properties": { "driver_number": { "oneOf": [ { "type": "null", "description": "Driver Number was not provided as part of the transaction " }, { "type": "string", "description": "Number representing the driver" } ] }, "vehicle_number": { "oneOf": [ { "type": "null", "description": "Vehicle Number was not provided as part of the transaction" }, { "type": "string", "description": "Number associated with the vehicle" } ] }, "fleet_restriction_code": { "type": "string", "description": "Code indicating which restrictions, if any, there are on purchase. This is configured at a program level and is a static configuration, and does not change on a request to request basis", "enum": [ "NO_RESTRICTIONS", "FUEL_ONLY" ] }, "fleet_prompt_code": { "type": "string", "description": "Code indicating what the driver was prompted to enter at time of purchase. This is configured at a program level and is a static configuration, and does not change on a request to request basis", "enum": [ "NO_PROMPT", "VEHICLE_NUMBER", "DRIVER_NUMBER" ] } }, "required": [ "fleet_restriction_code", "fleet_prompt_code" ] }, "asa_network_specific_data": { "title": "Network Specific Data", "description": "Contains raw data provided by the card network, including attributes that provide further context about the authorization. If populated by the network, data is organized by Lithic and passed through without further modification. Please consult the official network documentation for more details about these values and how to use them. This object is only available to certain programs- contact your Customer Success Manager to discuss enabling access.", "type": [ "object", "null" ], "properties": { "mastercard": { "oneOf": [ { "type": "null", "description": "There was no Mastercard-specific data available for this transaction." }, { "$ref": "#/components/schemas/asa_network_specific_data_mastercard" } ] }, "visa": { "oneOf": [ { "type": "null", "description": "There was no Visa-specific data available for this transaction." }, { "$ref": "#/components/schemas/asa_network_specific_data_visa" } ] } } }, "asa_network_specific_data_mastercard": { "type": "object", "properties": { "transaction_type_identifier": { "oneOf": [ { "type": "null", "description": "Transaction type identifier not available." }, { "type": "string", "description": "Indicates the type of additional transaction purpose.", "minLength": 3, "maxLength": 3 } ] }, "ecommerce_security_level_indicator": { "oneOf": [ { "type": "null", "description": "Electronic commerce security level indicator not available." }, { "type": "string", "description": "Indicates the electronic commerce security level and UCAF collection.", "minLength": 3, "maxLength": 3 } ] }, "on_behalf_service_result": { "oneOf": [ { "type": "null", "description": "On-behalf service result not available." }, { "type": "array", "items": { "type": "object", "properties": { "service": { "type": "string", "description": "Indicates the service performed on the transaction.", "minLength": 2, "maxLength": 2 }, "result_1": { "type": "string", "description": "Indicates the results of the service processing.", "minLength": 1, "maxLength": 1 }, "result_2": { "type": "string", "description": "Identifies the results of the service processing.", "minLength": 1, "maxLength": 1 } }, "required": [ "service", "result_1", "result_2" ] }, "description": "The On-behalf Service performed on the transaction and the results. Contains all applicable, on-behalf service results that were performed on a given transaction.", "maxItems": 10 } ] } } }, "asa_network_specific_data_visa": { "type": "object", "properties": { "business_application_identifier": { "oneOf": [ { "type": "null", "description": "Business application identifier not available." }, { "type": "string", "description": "Identifies the purpose or category of a transaction, used to classify and process transactions according to Visa\u2019s rules.", "minLength": 2, "maxLength": 2 } ] } } }, "asa_request_card": { "description": "Card object in ASA", "type": "object", "required": [ "last_four", "memo", "spend_limit", "spend_limit_duration", "state", "token", "type" ], "properties": { "last_four": { "description": "Last four digits of the card number", "type": "string" }, "memo": { "description": "Customizable name to identify the card", "type": "string" }, "spend_limit": { "description": "Amount (in cents) to limit approved authorizations. Purchase requests above the spend limit will be declined (refunds and credits will be approved).\n\nNote that while spend limits are enforced based on authorized and settled volume on a card, they are not recommended to be used for balance or reconciliation-level accuracy. Spend limits also cannot block force posted charges (i.e., when a merchant sends a clearing message without a prior authorization).", "type": "integer", "format": "int64" }, "spend_limit_duration": { "description": "Note that to support recurring monthly payments, which can occur on different day every month, the time window we consider for MONTHLY velocity starts 6 days after the current calendar date one month prior.", "type": "string", "enum": [ "ANNUALLY", "FOREVER", "MONTHLY", "TRANSACTION" ] }, "state": { "type": "string", "enum": [ "CLOSED", "OPEN", "PAUSED", "PENDING_ACTIVATION", "PENDING_FULFILLMENT" ] }, "type": { "$ref": "#/components/schemas/card-type" }, "token": { "description": "Globally unique identifier for the card.", "type": "string", "format": "uuid" } } } } }