JSON schemas

Here, you'll find the JSON schemas for:

FAST request message

Disclaimer

Depending on the payment scheme you use, you need to verify certain values against your own scheme specification.

  • The data object ISO_MSG contains network-specific scheme values.
  • For the data object SUMMARY, the Processor_Decision_Code key contains network-specific scheme values.
  • For the data object PROCESSOR_VALIDATIONS, the Rules_Decision key contains network-specific scheme values.

This schema defines the data format in the request message sent from Banking.Live to FAST clients.

{
    "$schema": "http://json-schema.org/draft-07/schema",
    "title": "FAST Request Message",
    "description": "The FAST (Framework for Authorisation and Settlement Transmission) interface allows 'banks' (retail banks and nonbank card issuers) to participate in the authorisation process, approve spend amounts and apply additional controls and limits if required. The bank can check the requested authorisation amount (and other elements) against their account record for the card and take a decline/approve decision which is routed back via FAST to the processor side for onward communication to Mastercard, Visa or MADA",
    "type": "object",
    "additionalProperties": false,
    "required": [
        "MESSAGE_TYPE",
        "SUMMARY",
        "PROCESSOR_VALIDATIONS",
        "ISO_MSG",
        "RULES"
    ],
    "properties": {
        "MESSAGE_TYPE": {
            "type": "object",
            "additionalProperties": false,
            "description": "This node contains very basic information on the message type and a message description.",
            "properties": {
                "Message_Type": {
                    "type": "string",
                    "pattern": "^[0-9]{4}$",
                    "errorMessage": "The Message_Type should be a string with length of 4 digits"
                },
                "Message_Desc": {
                    "type": "string"
                }
            },
            "required": [
                "Message_Type",
                "Message_Desc"
            ]
        },
        "SUMMARY": {
            "type": "object",
            "additionalProperties": false,
            "description": "This node contains the very basic information in user friendly narrative for FAST clients to take a financial decision or to use the feed for end-customer consumption.",
            "properties": {
                "TID": {
                    "type": "string",
                    "pattern": "^[0-9]{1,19}$",
                    "description": "The numerical value of TID shouldn't exceed the upper limit of 9223372036854775807 "
                },
                "RID": {
                    "type": "string",
                    "pattern": "^[0-9]{1,19}$",
                    "description": "The numerical value of TID shouldn't exceed the upper limit of 9223372036854775807 "
                },
                "PID": {
                    "type": "string",
                    "pattern": "^[0-9]{1,6}$"
                },
                "Client_Id": {
                    "type": "string",
                    "pattern": "^[0-9]{6}$"
                },
                "Transaction_Date_Time": {
                    "type": "string",
                    "pattern": "^(0[1-9]|[1-2][0-9]|3[0-1])-(0[1-9]|1[0-2])-(\\d{4})\\s([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$"
                },
                "Network": {
                    "type": "string",
                    "enum": [
                        "MC",
                        "VISA",
                        "MADA",
                        "CRTX",
                        "PROSA",
                        "AFS",
                        "UAE",
                        "BATM",
                        "JNET",
                        "PPWR"
                    ],
                    "enumDescriptions": [
                        "The message came from the Mastercard Network.",
                        "The message came from the VISA Network.",
                        "The message came from the MADA Network.",
                        "The message came from the CORTEX Network.",
                        "The message came from the PROSA Network.",
                        "The message came from the AFS Network.",
                        "The message came from the UAE-Switch Network.",
                        "The message came from the Bank al Etihad ATM",
                        "The message came from the JONET Network",
                        "The message came from the Paymentology Network."
                    ]
                },
                "Spend_Type": {
                    "type": "string",
                    "pattern": "^(?=ATM|POS|ECOM|TRANSIT)-.*$"
                },
                "Spend_Location": {
                    "type": "string"
                },
                "Transaction_Amount": {
                    "oneOf": [
                        {
                            "enum": [
                                "NA"
                            ]
                        },
                        {
                            "type": "string",
                            "pattern": "^[0-9]{1,12}(\\.[0-9]{1,4})?$"
                        }
                    ]
                },
                "Transaction_Currency": {
                    "oneOf": [
                        {
                            "enum": [
                                "NA"
                            ]
                        },
                        {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                        }
                    ]
                },
                "Billing_Amount": {
                    "oneOf": [
                        {
                            "enum": [
                                "NA"
                            ]
                        },
                        {
                            "type": "string",
                            "pattern": "^[0-9]{1,12}(\\.[0-9]{1,4})?$"
                        }
                    ]
                },
                "Billing_Currency": {
                    "oneOf": [
                        {
                            "enum": [
                                "NA"
                            ]
                        },
                        {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                        }
                    ]
                },
                "Card_Use_Type": {
                    "type": "string"
                },
                "Customer_Validation": {
                    "type": "string"
                },
                "Processor_Decision_Code": {
                    "type": "string",
                    "description": "Note this value, depending on the schema, can be two or three digits."
                },
                "Processor_Reason_Code": {
                    "type": "string",
                    "pattern": "^[0-9]{3}$"
                },
                "Processor_Decision_Desc": {
                    "type": "string",
                    "pattern": "^(?=Approve|Decline).*$"
                },
                "Merchant_Category": {
                    "type": "string"
                },
                "Account_Id": {
                    "type": "string"
                },
                "Customer_Ac": {
                    "type": "string"
                },
                "Total_Fee_Bill": {
                    "type": "string",
                    "pattern": "^[0-9]{1,12}(\\.[0-9]{1,4})?$"
                }
            },
            "required": [
                "TID",
                "RID",
                "PID",
                "Client_Id",
                "Transaction_Date_Time",
                "Network",
                "Spend_Type",
                "Spend_Location",
                "Transaction_Amount",
                "Transaction_Currency",
                "Billing_Amount",
                "Billing_Currency",
                "Card_Use_Type",
                "Customer_Validation",
                "Processor_Decision_Code",
                "Processor_Reason_Code",
                "Processor_Decision_Desc",
                "Merchant_Category",
                "Account_Id",
                "Customer_Ac",
                "Total_Fee_Bill"
            ]
        },
        "PROCESSOR_VALIDATIONS": {
            "type": "object",
            "additionalProperties": false,
            "description": "This node contains all the non-financial checks performed by the Paymentology system as a processor, in addition to the results of these checks.",
            "properties": {
                "Pan_Check": {
                    "type": "string",
                    "enum": [
                        "NA",
                        "PASS",
                        "FAIL"
                    ]
                },
                "Pin_Check": {
                    "type": "string",
                    "enum": [
                        "NA",
                        "PASS",
                        "FAIL"
                    ]
                },
                "Expiry_Check": {
                    "type": "string",
                    "enum": [
                        "NA",
                        "PASS",
                        "FAIL"
                    ]
                },
                "Track_Check": {
                    "type": "string",
                    "enum": [
                        "NA",
                        "PASS",
                        "FAIL"
                    ]
                },
                "CVV_Type": {
                    "type": "string",
                    "enum": [
                        "0",
                        "1",
                        "2",
                        "3",
                        "4"
                    ]
                },
                "CVV_Check": {
                    "type": "string",
                    "enum": [
                        "NA",
                        "PASS",
                        "FAIL",
                        "BYPASS"
                    ]
                },
                "ARQC_Check": {
                    "type": "string",
                    "enum": [
                        "NA",
                        "PASS",
                        "FAIL"
                    ]
                },
                "3DS_Check": {
                    "type": "string",
                    "enum": [
                        "NA",
                        "PASS",
                        "FAIL"
                    ]
                },
                "Test_Matrix": {
                    "type": "string",
                    "pattern": "^[0-9]{1,19}$"
                },
                "Test_Results": {
                    "type": "string",
                    "pattern": "^[0-9]{1,19}$"
                },
                "Rules_Checked": {
                    "type": "string"
                },
                "Rules_Triggered": {
                    "type": "string"
                },
                "Rules_Decision": {
                    "type": "string",
                    "description": "Note this value, it is three digits for the MADA network but two digits for the others."
                }
            },
            "required": [
                "Pan_Check",
                "Pin_Check",
                "Expiry_Check",
                "Track_Check",
                "CVV_Type",
                "CVV_Check",
                "ARQC_Check",
                "3DS_Check",
                "Test_Matrix",
                "Test_Results",
                "Rules_Checked",
                "Rules_Triggered",
                "Rules_Decision"
            ]
        },
        "ISO_MSG": {
            "type": "object",
            "description": "This node will contain the heart of the transactional information as it is received and parsed from the transaction source. Note that any additional properties not explicitly defined in the schema will be allowed and ignored during validation.",
            "not": {
                "required": [
                    "DE52"
                ]
            },
            "required": [
                "DE2"
            ],
            "additionalProperties": true,
            "properties": {
                "DE2": {
                    "type": "string",
                    "pattern": "^[0-9]{5,19}$",
                    "description": "This field contains the value of a public token."
                },
                "DE3_1": {
                    "type": "string",
                    "pattern": "^[0-9]{2}$",
                    "description": "Subfield 1 of DE 3, Cardholder Transaction Type Code"
                },
                "DE3_2": {
                    "type": "string",
                    "pattern": "^[0-9]{2}$",
                    "description": "Subfield 2 of DE 3, Cardholder “From Account” Type Code"
                },
                "DE3_3": {
                    "type": "string",
                    "pattern": "^[0-9]{2}$",
                    "description": "Subfield 3 of DE 3, Cardholder “To Account” Type Code"
                },
                "DE47": {
                    "oneOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "object"
                        }
                    ],
                    "additionalProperties": true
                },
                "DE48": {
                    "oneOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "object",
                            "properties": {
                                "33": {
                                    "oneOf": [
                                        {
                                            "type": "string"
                                        },
                                        {
                                            "type": "object"
                                        }
                                    ],
                                    "additionalProperties": true
                                }
                            },
                            "required": []
                        }
                    ],
                    "additionalProperties": true
                },
                "DE55": {
                    "type": "object",
                    "additionalProperties": true
                },
                "DE124": {
                    "oneOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "object"
                        }
                    ],
                    "additionalProperties": true
                }
            }
        },
        "RULES": {
            "type": "array",
            "description": "This node is an array of all rules, their descriptive details along with the relevant actions that have been triggered on the particular transaction.",
            "items": {
                "type": "object",
                "properties": {
                    "Rule_Id": {
                        "type": "integer"
                    },
                    "Rule_Type": {
                        "type": "string"
                    },
                    "Rule_Check_Result": {
                        "type": "integer"
                    },
                    "Pattern_Result": {
                        "type": "boolean"
                    },
                    "Current_Txn_Amt_Deviation": {
                        "type": "number"
                    },
                    "Aggregate_Deviation": {
                        "type": "number"
                    },
                    "Count_Deviation": {
                        "type": "integer"
                    },
                    "Actions": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "Act": {
                                    "type": "string"
                                },
                                "DE39": {
                                    "type": "string"
                                },
                                "Exit_Code": {
                                    "type": "integer"
                                },
                                "Nwk_Status": {
                                    "type": "integer"
                                }
                            }
                        }
                    }
                },
                "required": [
                    "Rule_Id",
                    "Rule_Type",
                    "Rule_Check_Result",
                    "Pattern_Result",
                    "Current_Txn_Amt_Deviation",
                    "Aggregate_Deviation",
                    "Count_Deviation"
                ]
            }
        },
        "DECISION_ENGINE": {
            "type": "object",
            "description": "This node contains Decision Engine actions separated into Actions (enforced) and Dry_Run (evaluated only).",
            "properties": {
                "Actions": {
                    "type": "array",
                    "description": "Array of Decision Engine actions that are actively enforced on the transaction.",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "typeName": {
                                "type": "string"
                            },
                            "details": {
                                "type": "object",
                                "properties": {
                                    "attributes": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "additionalProperties": {
                                                "type": [
                                                    "string",
                                                    "number",
                                                    "integer",
                                                    "boolean",
                                                    "null",
                                                    "object",
                                                    "array"
                                                ]
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "DryRunActions": {
                    "type": "array",
                    "description": "Array of Decision Engine actions evaluated in simulation mode only.",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "typeName": {
                                "type": "string"
                            },
                            "details": {
                                "type": "object",
                                "properties": {
                                    "attributes": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "additionalProperties": {
                                                "type": [
                                                    "string",
                                                    "number",
                                                    "integer",
                                                    "boolean",
                                                    "null",
                                                    "object",
                                                    "array"
                                                ]
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "allOf": [
        {
            "if": {
                "properties": {
                    "SUMMARY": {
                        "properties": {
                            "Network": {
                                "enum": [
                                    "CRTX",
                                    "MADA"
                                ]
                            }
                        }
                    }
                }
            },
            "then": {
                "properties": {
                    "SUMMARY": {
                        "properties": {
                            "Processor_Decision_Code": {
                                "pattern": "^[0-9]{3}$"
                            }
                        }
                    }
                }
            },
            "else": {
                "properties": {
                    "SUMMARY": {
                        "properties": {
                            "Processor_Decision_Code": {
                                "pattern": "^[a-zA-Z0-9]{2}$"
                            }
                        }
                    }
                }
            }
        }
    ]
}

🔝

FAST response message

This schema defines the data format in the response message sent to Banking.Live from FAST clients.

{
    "$schema": "http://json-schema.org/draft-07/schema",
    "title": "FAST Response Message",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "Message_Type": {
            "type": "string",
            "pattern": "^[0-9]{4}$",
            "errorMessage": "The Message_Type should be a string with length of 4 digits"
        },
        "TID": {
            "type": "integer",
            "pattern": "^[0-9]{1,19}$"
        },
        "RID": {
            "type": "integer",
            "pattern": "^[0-9]{1,19}$"
        },
        "DE2": {
            "type": "string",
            "pattern": "^[0-9]{6,19}$"
        },
        "DE4": {
            "type": [
                "string",
                "null"
            ],
            "pattern": "^[0-9]{12}$",
            "nullable": true
        },
        "DE5": {
            "type": [
                "string",
                "null"
            ],
            "pattern": "^[0-9]{12}$",
            "nullable": true
        },
        "DE6": {
            "type": [
                "string",
                "null"
            ],
            "pattern": "^[0-9]{12}$",
            "nullable": true
        },
        "DE7": {
            "type": [
                "string",
                "null"
            ],
            "nullable": true
        },
        "DE11": {
            "type": [
                "string",
                "null"
            ],
            "nullable": true
        },
        "DE30": {
            "type": [
                "string",
                "null"
            ],
            "nullable": true
        },
        "DE38": {
            "type": [
                "string",
                "null"
            ],
            "pattern": "^[a-zA-Z0-9]{6}$",
            "maxLength": 6,
            "nullable": true
        },
        "DE39": {
            "type": "string",
            "pattern": "^[a-zA-Z0-9]{2,3}$"
        },
        "DE44": {
            "type": [
                "string",
                "null"
            ],
            "nullable": true
        },
        "DE47": {
            "type": [
                "string",
                "null"
            ],
            "nullable": true
        },
        "DE48": {
            "type": [
                "string",
                "null"
            ],
            "nullable": true
        },
        "DE54": {
            "type": [
                "string",
                "null"
            ],
            "nullable": true
        },
        "DE57": {
            "type": [
                "string",
                "null"
            ],
            "nullable": true
        },
        "DE63": {
            "type": [
                "string",
                "null"
            ],
            "nullable": true
        },
        "DE120": {
            "type": [
                "string",
                "null"
            ],
            "nullable": true
        },
        "DE124": {
            "type": [
                "string",
                "null"
            ],
            "nullable": true
        }
    },
    "required": [
        "DE39"
    ]
}

🔝