{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/citi/main/json-schema/citi-notification-request-schema.json", "title": "notificationRequest", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/citi-notification-api-openapi.yml#/components/schemas/notificationRequest", "required": [ "AcquirerCountryCode", "AcquirerInstitutionID", "AuthIDCode", "BillingAmount", "CardAcceptorIDCode", "CardAcceptorNameLocation", "CardAcceptorTerminalID", "CardExpiryDate", "CurrencyCodeBilling", "CurrencyCodeTransaction", "LocalTransactionDate", "LocalTransactionTime", "MCCMerchantType", "MessageTypeID", "POSConditionCode", "POSEntryMode", "PrimaryAccountNumber", "ProcessingCode", "ResponseCode", "RetrievalReferenceNumber", "SystemTraceAuditNumber", "TransactionAmount", "TransmissionDateAndTime" ], "type": "object", "properties": { "MessageTypeID": { "maxLength": 4, "minLength": 4, "type": "string", "description": "ISO Message Type Identifier - 0100 for Auths/0120 for Advices/0400 or 0420 for Reversals" }, "PrimaryAccountNumber": { "maxLength": 19, "minLength": 19, "type": "string", "description": "Primary Account Number - this contains the (Real) Card Number" }, "ProcessingCode": { "maxLength": 6, "minLength": 6, "type": "string", "description": "Processing Code" }, "TransactionAmount": { "maxLength": 13, "minLength": 1, "type": "string", "description": "Transaction Amount" }, "BillingAmount": { "maxLength": 13, "minLength": 1, "type": "string", "description": "Cardholder Billing Amount" }, "TransmissionDateAndTime": { "maxLength": 10, "minLength": 10, "type": "string", "description": "Date and Time - MMDDHHMMSS format" }, "SystemTraceAuditNumber": { "maxLength": 6, "minLength": 6, "type": "string", "description": "Number assigned by the message initiator that uniquely identifies a cardholder transaction and all message types that comprise it" }, "LocalTransactionTime": { "maxLength": 6, "minLength": 6, "type": "string", "description": "Transaction Local Time HHMMSS" }, "LocalTransactionDate": { "maxLength": 4, "minLength": 4, "type": "string", "description": "Transaction Local Date - MMDD" }, "CardExpiryDate": { "maxLength": 4, "minLength": 4, "type": "string", "description": "Card Expiration Date - YYMM" }, "MCCMerchantType": { "maxLength": 4, "minLength": 4, "type": "string", "description": "Card acceptor business code / merchant category code [MCC]" }, "AcquirerCountryCode": { "maxLength": 3, "minLength": 3, "type": "string", "description": "Acquiring Institution Country Code is the code of the country where the acquiring institution is located" }, "POSEntryMode": { "maxLength": 4, "minLength": 4, "type": "string", "description": "indicates the method used for PAN entry to initiate a transaction and the PIN entry capabilities" }, "POSConditionCode": { "maxLength": 2, "minLength": 2, "type": "string", "description": "(Visa only) Code identifying transaction conditions at the point-of-sale or point of service - for MC, refer to F61 fields below" }, "AcquirerInstitutionID": { "maxLength": 11, "minLength": 6, "type": "string", "description": "Identifies the acquiring institution (for example, merchant bank) or its agent" }, "RetrievalReferenceNumber": { "maxLength": 12, "minLength": 12, "type": "string", "description": "Reference number supplied by the system retaining the original source document of the transaction and assists in locating that source document or a copy thereof" }, "AuthIDCode": { "maxLength": 6, "minLength": 6, "type": "string", "description": "Authorization code provided by the issuer when a transaction is approved" }, "ResponseCode": { "maxLength": 2, "minLength": 2, "type": "string", "description": "Code that defines the response to a request or the message disposition and acknowledgement that a transaction or a message was received" }, "CardAcceptorTerminalID": { "maxLength": 8, "minLength": 8, "type": "string", "description": "Identifies a terminal at the card acceptor location of acquiring institutions or merchant POS systems" }, "CardAcceptorIDCode": { "maxLength": 15, "minLength": 15, "type": "string", "description": "Merchant ID to uniquely identify the merchant in a transaction" }, "CardAcceptorNameLocation": { "maxLength": 40, "minLength": 40, "type": "string", "description": "Name and location of the card acceptor that defines the point of interaction in both local and interchange environments" }, "CurrencyCodeTransaction": { "maxLength": 3, "minLength": 3, "type": "string", "description": "Local currency of the acquirer or source location of the transaction" }, "CurrencyCodeBilling": { "maxLength": 3, "minLength": 3, "type": "string", "description": "Currency code used by the issuer to bill the cardholder's account" }, "VisaF44RespSrcReasonCode": { "maxLength": 1, "minLength": 1, "type": "string", "description": "For Visa STIP advice, contains the response source/reason code that identifies the source of the field 39 response decision" }, "VisaF60TermEntCapab": { "maxLength": 1, "minLength": 1, "type": "string", "description": "Code identifying the terminal's capability to electronically read account numbers and expiration dates from cards" }, "VisaF60ChipCondCode": { "maxLength": 1, "minLength": 1, "type": "string", "description": "Code that provides information about fallback transactions, which are initiated from the magnetic-stripe of VSDC cards at VSDC terminals" }, "VisaF60SpclCondIndic": { "maxLength": 1, "minLength": 1, "type": "string", "description": "Describes selected special conditions at the point-of-sale" }, "VisaF60ChipTxnIndic": { "maxLength": 1, "minLength": 1, "type": "string", "description": "This code is set by full VSDC data acquirers if they receive a message from the terminal that indicates a chip-based transaction" }, "VisaF60MoToECIndic": { "maxLength": 2, "minLength": 2, "type": "string", "description": "For mail order or telephone order transactions (field 25 = 08), it identifies the type of mail/telephone order. For e-commerce transactions (field 25 = 59), it identifies the level of security used in an e-commerce transaction over an open network (for example, the Internet)" }, "VisaF123VirtualCardNbr": { "maxLength": 19, "minLength": 19, "type": "string", "description": "Visa Virtual Card Number" }, "VisaF123WalletSPId": { "maxLength": 11, "minLength": 11, "type": "string", "description": "Token requestor ID / Wallet Service Provider ID" }, "VisaF126RecurTxnIndic": { "maxLength": 1, "minLength": 1, "type": "string", "description": "Visa Recurring Transaction flag (value = R identifies a recurring transaction)" }, "MCF48VirtualCardNbr": { "maxLength": 19, "minLength": 19, "type": "string", "description": "Mastercard Virtual Card Number" }, "MCF48WalletSPId": { "maxLength": 11, "minLength": 11, "type": "string", "description": "Mastercard Token/Wallet Service Provider" }, "MCF60AdviceReasonCode": { "maxLength": 3, "minLength": 3, "type": "string", "description": "For Mastercard STIP advice, this field indicates the general purpose of the advice message" }, "MCF61POSTermAtt": { "maxLength": 1, "minLength": 1, "type": "string", "description": "(POS Terminal Attendance) indicates if the card acceptor is attending the terminal" }, "MCF61POSCHPresence": { "maxLength": 1, "minLength": 1, "type": "string", "description": "(POS Cardholder Presence) indicates whether the cardholder is present at the point of service and explains the condition if the cardholder is not present. A value of '4' indicates a recurring transaction" }, "MCF61POSCdPresence": { "maxLength": 1, "minLength": 1, "type": "string", "description": "(POS Card Presence) indicates if the card is present at the point of service" }, "MCF61POSTranStatus": { "maxLength": 1, "minLength": 1, "type": "string", "description": "(POS Transaction Status) indicates the purpose or status of the request" }, "MCF61POSTranSec": { "maxLength": 1, "minLength": 1, "type": "string", "description": "(POS Transaction Security) indicates the card acceptor’s confidence in the transaction security level" }, "MCF61POSChActTermLvl": { "maxLength": 1, "minLength": 1, "type": "string", "description": "(Cardholder-Activated Terminal Level) indicates the type of cardholder activated terminal used by the cardholder to initiate the transaction" }, "MCF61POSCountryCode": { "maxLength": 3, "minLength": 3, "type": "string", "description": "(POS Country Code) indicates the country of the POS location (not the acquirer location) using ISO-specified codes" } } }