{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/adyen/main/json-schema/adyen-balance-inquiry-response-schema.json", "title": "BalanceInquiryResponse", "description": "It conveys the balance and the identification of the associated payment, loyalty or stored value account. Content of the Balance Inquiry Response message.", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/adyen-balanceinquiry-api-openapi.yml#/components/schemas/BalanceInquiryResponse", "type": "object", "properties": { "Response": { "$ref": "#/$defs/Response" }, "PaymentAccountStatus": { "$ref": "#/$defs/PaymentAccountStatus" }, "LoyaltyAccountStatus": { "$ref": "#/$defs/LoyaltyAccountStatus" }, "PaymentReceipt": { "type": "array", "items": { "$ref": "#/$defs/PaymentReceipt" } } }, "required": [ "Response" ], "$defs": { "Alignment": { "type": "string", "enum": [ "Centred", "Justified", "Left", "Right" ] }, "AllowedProduct": { "type": "object", "description": "Product that is payable by the payment card. Product codes that are payable by the payment card.", "properties": { "ProductCode": { "type": "integer", "minimum": 1, "maximum": 20, "description": "Product code of item purchased with the transaction." }, "EanUpc": { "type": "integer", "description": "Standard product code of item purchased with the transaction." }, "ProductLabel": { "type": "string", "pattern": "^.+$", "description": "Product name of an item purchased with the transaction." }, "AdditionalProductInfo": { "type": "string", "pattern": "^.+$", "description": "Additionl information related to the line item." } }, "required": [ "ProductCode" ] }, "BarcodeType": { "type": "string", "enum": [ "Code128", "Code25", "EAN13", "EAN8", "PDF417", "QRCode", "UPCA" ] }, "CardData": { "type": "object", "description": "Allows acquisition of the card data by the Sale System before the Payment, CardAcquisition or BalanceInquiry request to the POI. It could also be sent in the CardAcquisition response, to be processed by the Sale System. Information related to the payment card used for the transaction.", "properties": { "PaymentBrand": { "type": "string", "pattern": "^.+$", "description": "If card PAN is readable ." }, "MaskedPan": { "type": "string", "pattern": "^.+$" }, "PaymentAccountRef": { "type": "string", "pattern": "^.+$" }, "EntryMode": { "$ref": "#/$defs/EntryMode" }, "CardCountryCode": { "type": "integer", "minimum": 3, "maximum": 3, "description": "If available in the card." }, "ProtectedCardData": { "type": "string", "description": "SensitiveCardData protected by CMS EnvelopedData." }, "SensitiveCardData": { "$ref": "#/$defs/SensitiveCardData" }, "AllowedProductCode": { "type": "array", "items": { "type": "integer", "minimum": 1, "maximum": 20 } }, "AllowedProduct": { "type": "array", "items": { "$ref": "#/$defs/AllowedProduct" } }, "PaymentToken": { "$ref": "#/$defs/PaymentToken" }, "CustomerOrder": { "type": "array", "items": { "$ref": "#/$defs/CustomerOrder" } } } }, "CharacterHeight": { "type": "string", "enum": [ "DoubleHeight", "HalfHeight", "SingleHeight" ] }, "CharacterStyle": { "type": "string", "enum": [ "Bold", "Italic", "Normal", "Underline" ] }, "CharacterWidth": { "type": "string", "enum": [ "DoubleWidth", "SingleWidth" ] }, "CheckData": { "type": "object", "description": "Allows the check information to be provided by the Sale System before requesting the payment, or stored by the Sale System after processing of the payment. Information related to the paper check used for the transaction.", "properties": { "BankID": { "type": "string", "pattern": "^.+$", "description": "Mandatory if TrackData absent." }, "AccountNumber": { "type": "string", "pattern": "^.+$", "description": "Mandatory if TrackData absent." }, "CheckNumber": { "type": "string", "pattern": "^.+$", "description": "Mandatory if TrackData absent." }, "TrackData": { "$ref": "#/$defs/TrackData" }, "CheckCardNumber": { "type": "string", "pattern": "^.+$", "description": "If provided by the customer." }, "TypeCode": { "$ref": "#/$defs/TypeCode" }, "Country": { "type": "string", "pattern": "^[A-Z]{3,3}$", "description": "Absent if country of the Sale system." } } }, "Color": { "type": "string", "enum": [ "Black", "Blue", "Cyan", "Green", "Magenta", "Red", "White", "Yellow" ] }, "CustomerOrder": { "type": "object", "description": "Customer order attached to a customer, recorded in the POI system. Allows the management of customer orders by the POI, for instance in a multi-channel or a click and collect sale transaction.", "properties": { "CustomerOrderID": { "type": "string", "pattern": "^.+$", "description": "Additional and optional identification of a customer order." }, "SaleReferenceID": { "type": "string", "pattern": "^.+$" }, "OpenOrderState": { "type": "boolean", "default": true }, "StartDate": { "type": "string", "format": "date-time", "description": "Date time of the beginning of an operation." }, "EndDate": { "type": "string", "format": "date-time", "description": "Date time of the end of an operation." }, "ForecastedAmount": { "type": "number", "maximum": 99999999.999999, "minimum": 0 }, "CurrentAmount": { "type": "number", "maximum": 99999999.999999, "minimum": 0, "description": "Total amount of all completed transactions of a customer order." }, "Currency": { "type": "string", "pattern": "^[A-Z]{3,3}$", "description": "Currency of a monetary amount." }, "AccessedBy": { "type": "string", "pattern": "^.+$" }, "AdditionalInformation": { "type": "string", "pattern": "^.+$", "description": "Unqualified information." } }, "required": [ "SaleReferenceID", "StartDate", "ForecastedAmount", "CurrentAmount" ] }, "DocumentQualifier": { "type": "string", "enum": [ "CashierReceipt", "CustomerReceipt", "Document", "Journal", "SaleReceipt", "Voucher" ] }, "EntryMode": { "type": "array", "items": { "type": "string", "enum": [ "Contactless", "File", "ICC", "Keyed", "MagStripe", "Manual", "Mobile", "RFID", "Scanned", "SynchronousICC", "Tapped" ] } }, "ErrorCondition": { "type": "string", "enum": [ "Aborted", "Busy", "Cancel", "DeviceOut", "InProgress", "InsertedCard", "InvalidCard", "LoggedOut", "MessageFormat", "NotAllowed", "NotFound", "PaymentRestriction", "Refusal", "UnavailableDevice", "UnavailableService", "UnreachableHost", "WrongPIN" ] }, "GeographicCoordinates": { "type": "object", "properties": { "Latitude": { "type": "string", "pattern": "^.+$" }, "Longitude": { "type": "string", "pattern": "^.+$" } }, "required": [ "Latitude", "Longitude" ] }, "Geolocation": { "type": "object", "properties": { "GeographicCoordinates": { "$ref": "#/$defs/GeographicCoordinates" }, "UTMCoordinates": { "$ref": "#/$defs/UTMCoordinates" } } }, "IdentificationSupport": { "type": "string", "enum": [ "HybridCard", "LinkedCard", "LoyaltyCard", "NoCard" ] }, "IdentificationType": { "type": "string", "enum": [ "AccountNumber", "BarCode", "ISOTrack2", "PAN", "PhoneNumber" ] }, "LoyaltyAccount": { "type": "object", "description": "This data structure conveys the identification of the account and the associated loyalty brand. Data related to a loyalty account processed in the transaction.", "properties": { "LoyaltyAccountID": { "$ref": "#/$defs/LoyaltyAccountID" }, "LoyaltyBrand": { "type": "string", "pattern": "^.+$", "description": "If a card is analysed." } }, "required": [ "LoyaltyAccountID" ] }, "LoyaltyAccountID": { "type": "object", "description": "In the Payment or the Loyalty Request message, it allows to identify the loyalty account by the Sale Terminal instead of the POI Terminal (e.g. because the account identification is a bar-code read by the Cashier on a scanner device). Identification of a Loyalty account.", "properties": { "EntryMode": { "$ref": "#/$defs/EntryMode" }, "IdentificationType": { "$ref": "#/$defs/IdentificationType" }, "IdentificationSupport": { "$ref": "#/$defs/IdentificationSupport" }, "LoyaltyID": { "type": "string" } }, "required": [ "EntryMode", "IdentificationType", "LoyaltyID" ] }, "LoyaltyAccountStatus": { "type": "object", "properties": { "LoyaltyAccount": { "$ref": "#/$defs/LoyaltyAccount" }, "CurrentBalance": { "type": "number", "maximum": 99999999.999999, "minimum": 0 }, "LoyaltyUnit": { "$ref": "#/$defs/LoyaltyUnit" }, "Currency": { "type": "string", "pattern": "^[A-Z]{3,3}$" } }, "required": [ "LoyaltyAccount" ] }, "LoyaltyUnit": { "type": "string", "enum": [ "Monetary", "Point" ] }, "MobileData": { "type": "object", "description": "Mobile phone is used as a payment instrument for the transaction. Information related to the mobile for the payment transaction.", "properties": { "MobileCountryCode": { "type": "integer", "minimum": 3, "maximum": 3, "description": "If data available." }, "MobileNetworkCode": { "type": "integer", "minimum": 2, "maximum": 3, "description": "If data available." }, "MaskedMSISDN": { "type": "integer", "description": "If data available." }, "Geolocation": { "$ref": "#/$defs/Geolocation" }, "ProtectedMobileData": { "type": "string", "description": "SensitiveMobileData." }, "SensitiveMobileData": { "$ref": "#/$defs/SensitiveMobileData" } } }, "OutputBarcode": { "type": "object", "properties": { "BarcodeType": { "$ref": "#/$defs/BarcodeType" }, "BarcodeValue": { "type": "string", "pattern": "^.+$" } }, "required": [ "BarcodeValue" ] }, "OutputContent": { "type": "object", "description": "This is a sequence of elements if they have different formats. Content to display or print.", "properties": { "OutputFormat": { "$ref": "#/$defs/OutputFormat" }, "PredefinedContent": { "$ref": "#/$defs/PredefinedContent" }, "OutputText": { "type": "array", "items": { "$ref": "#/$defs/OutputText" } }, "OutputXHTML": { "type": "string", "format": "byte", "pattern": "^.{0,262144}$", "description": "Mandatory, if OutputFormat is XHTML, not allowed otherwise." }, "OutputBarcode": { "$ref": "#/$defs/OutputBarcode" } }, "required": [ "OutputFormat" ] }, "OutputFormat": { "type": "string", "enum": [ "BarCode", "MessageRef", "Text", "XHTML" ] }, "OutputText": { "type": "object", "description": "It conveys Information related to the content of the text message and its format. All the data elements related to the format of the text to display or print are parameters valid for the whole Text content. Content of text message to display or print.", "properties": { "Text": { "type": "string" }, "CharacterSet": { "type": "integer" }, "Font": { "type": "string", "pattern": "^.+$" }, "StartRow": { "type": "integer", "minimum": 1, "maximum": 500 }, "StartColumn": { "type": "integer", "minimum": 1, "maximum": 500 }, "Color": { "$ref": "#/$defs/Color" }, "CharacterWidth": { "$ref": "#/$defs/CharacterWidth" }, "CharacterHeight": { "$ref": "#/$defs/CharacterHeight" }, "CharacterStyle": { "$ref": "#/$defs/CharacterStyle" }, "Alignment": { "$ref": "#/$defs/Alignment" }, "EndOfLineFlag": { "type": "boolean", "default": true } }, "required": [ "Text" ] }, "PaymentAccountStatus": { "type": "object", "properties": { "PaymentInstrumentData": { "$ref": "#/$defs/PaymentInstrumentData" }, "CurrentBalance": { "type": "number", "maximum": 99999999.999999, "minimum": 0 }, "Currency": { "type": "string", "pattern": "^[A-Z]{3,3}$" }, "PaymentAcquirerData": { "$ref": "#/$defs/PaymentAcquirerData" } } }, "PaymentAcquirerData": { "type": "object", "description": "Data related to the response from the payment Acquirer.", "properties": { "AcquirerID": { "type": "integer", "description": "If several Acquirers." }, "MerchantID": { "type": "string", "pattern": "^.+$", "description": "Identification of the Merchant for the Acquirer." }, "AcquirerPOIID": { "type": "string", "pattern": "^.+$", "description": "Identification of the POI for the payment Acquirer." }, "AcquirerTransactionID": { "$ref": "#/$defs/TransactionIDType" }, "ApprovalCode": { "type": "string", "pattern": "^.+$", "description": "If available." }, "HostReconciliationID": { "type": "string", "pattern": "^.+$" } }, "required": [ "MerchantID", "AcquirerPOIID" ] }, "PaymentInstrumentData": { "type": "object", "description": "Sent in the result of the payment transaction. For a card, it could also be sent in the CardAcquisition response, to be processed by the Sale System. Data related to the instrument of payment for the transaction.", "properties": { "PaymentInstrumentType": { "$ref": "#/$defs/PaymentInstrumentType" }, "ProtectedCardData": { "type": "string" }, "CardData": { "$ref": "#/$defs/CardData" }, "CheckData": { "$ref": "#/$defs/CheckData" }, "MobileData": { "$ref": "#/$defs/MobileData" }, "StoredValueAccountID": { "$ref": "#/$defs/StoredValueAccountID" } }, "required": [ "PaymentInstrumentType" ] }, "PaymentInstrumentType": { "type": "string", "enum": [ "Card", "Cash", "Check", "Mobile", "StoredValue" ] }, "PaymentReceipt": { "type": "object", "description": "If the payment receipts are printed by the Sale system and the POI or the Sale does not implement the Print exchange (Basic profile). Customer or Merchant payment receipt.", "properties": { "DocumentQualifier": { "$ref": "#/$defs/DocumentQualifier" }, "IntegratedPrintFlag": { "type": "boolean", "description": "Type of the print integrated to other prints." }, "RequiredSignatureFlag": { "type": "boolean", "default": false, "description": "Indicate that the cardholder payment receipt requires a physical signature by the Customer." }, "OutputContent": { "$ref": "#/$defs/OutputContent" } }, "required": [ "DocumentQualifier", "OutputContent" ] }, "PaymentToken": { "type": "object", "description": "Surrogate of the PAN (Primary Account Number) of the payment card to identify the payment mean of the customer. It allows, for a merchant, to identify the customer.", "properties": { "TokenRequestedType": { "$ref": "#/$defs/TokenRequestedType" }, "TokenValue": { "type": "string", "pattern": "^.+$" }, "ExpiryDateTime": { "type": "string", "format": "date-time", "description": "Expiry date and time. Limits the validity of a payment token." } }, "required": [ "TokenRequestedType", "TokenValue" ] }, "PredefinedContent": { "type": "object", "description": "It conveys Information related to the predefined message. Reference of a predefined message to display or print.", "properties": { "ReferenceID": { "type": "string", "pattern": "^.+$", "description": "Identification of a predefined message to display or print." }, "Language": { "type": "string", "pattern": "^[a-z]{2,2}$", "description": "Identification of a language." } }, "required": [ "ReferenceID" ] }, "Response": { "type": "object", "description": "If Result is Success, ErrorCondition is absent or not used in the processing of the message. In the other cases, the ErrorCondition has to be present and can refine the processing of the message response. AdditionalResponse gives more information about the success or the failure of the message request processing, for logging without real time involvements. Result of a message request processing.", "properties": { "Result": { "$ref": "#/$defs/Result" }, "ErrorCondition": { "$ref": "#/$defs/ErrorCondition" }, "AdditionalResponse": { "type": "string", "pattern": "^.+$", "description": "If present, the POI logs it for further examination." } }, "required": [ "Result" ] }, "Result": { "type": "string", "enum": [ "Failure", "Partial", "Success" ] }, "SensitiveCardData": { "type": "object", "description": "This data structure could be CMS protected (EnvelopedData). In this case the data structure SensitiveCardData is replaced by the data structure ProtectedCardData of type ContentInformationType. When this data is protected, the exact content is unknown by the Sale System, and might include all the information which are required by an external backup POI Server to make a batch payment transaction in case of problem with the POI System. Sensitive information related to the payment card, entered or read by the Sale System.", "properties": { "PAN": { "type": "integer", "minimum": 8, "maximum": 28 }, "CardSeqNumb": { "type": "integer", "minimum": 2, "maximum": 3, "description": "if EntryMode is File, Keyed or Manual." }, "ExpiryDate": { "type": "integer", "minimum": 4, "maximum": 4, "description": "if EntryMode is File." }, "TrackData": { "type": "array", "items": { "$ref": "#/$defs/TrackData" } } } }, "SensitiveMobileData": { "type": "object", "properties": { "MSISDN": { "type": "integer" }, "ISMI": { "type": "integer" }, "IMEI": { "type": "integer" } }, "required": [ "MSISDN" ] }, "StoredValueAccountID": { "type": "object", "description": "It contains the identifications of the stored value account or the stored value card, and the associated product sold by the Sale System for stored value requests. Identification of the stored value account or the stored value card.", "properties": { "StoredValueAccountType": { "$ref": "#/$defs/StoredValueAccountType" }, "StoredValueProvider": { "type": "string", "pattern": "^.+$" }, "OwnerName": { "type": "string", "pattern": "^.+$" }, "ExpiryDate": { "type": "integer", "minimum": 4, "maximum": 4 }, "EntryMode": { "$ref": "#/$defs/EntryMode" }, "IdentificationType": { "$ref": "#/$defs/IdentificationType" }, "StoredValueID": { "type": "string", "pattern": "^.+$" } }, "required": [ "StoredValueAccountType", "EntryMode", "IdentificationType", "StoredValueID" ] }, "StoredValueAccountType": { "type": "string", "enum": [ "GiftCard", "Other", "PhoneCard" ] }, "TokenRequestedType": { "type": "string", "enum": [ "Customer", "Transaction" ] }, "TrackData": { "type": "object", "description": "ISO 7813 - ISO 4909. Generic data structure for a card track, used when the magstripe card reader is located on the Sale Terminal, or for magstripe Card Reader device request. The data structure is also used to store the line at the bottom of a bank check. Magnetic track or magnetic ink characters line.", "properties": { "TrackNumb": { "type": "integer", "minimum": 1, "maximum": 3, "default": 2 }, "TrackFormat": { "$ref": "#/$defs/TrackFormat" }, "TrackValue": { "type": "string", "pattern": "^.{1,104}$" } }, "required": [ "TrackValue" ] }, "TrackFormat": { "type": "string", "enum": [ "AAMVA", "ISO" ] }, "TransactionIDType": { "type": "object", "description": "Identification of a transaction for the Sale System or the POI System.", "properties": { "TransactionID": { "type": "string", "pattern": "^.+$" }, "TimeStamp": { "type": "string", "format": "date-time" } }, "required": [ "TransactionID", "TimeStamp" ] }, "TypeCode": { "type": "string", "enum": [ "Company", "Personal" ] }, "UTMCoordinates": { "type": "object", "properties": { "UTMZone": { "type": "string", "pattern": "^.+$" }, "UTMEastward": { "type": "string", "pattern": "^.+$" }, "UTMNorthward": { "type": "string", "pattern": "^.+$" } }, "required": [ "UTMZone", "UTMEastward", "UTMNorthward" ] } } }