Copy
{
    "$id": "https://api.gsicommerce.com/schema/json/common-datatypes",
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "additionalProperties": false,
    "$defs": {
        "Amounts": {
            "type": "object",
            "properties": {
                "total": {
                    "$ref": "#/$defs/Amount"
                }
            },
            "required": [
                "total"
            ]
        },
        "Amount": {
            "type": "object",
            "properties": {
                "currencyCode": {
                    "type": "string",
                    "enum": [
                        "AED",
                        "AFN",
                        "ALL",
                        "AMD",
                        "ANG",
                        "AOA",
                        "ARS",
                        "AUD",
                        "AWG",
                        "AZN",
                        "BAM",
                        "BBD",
                        "BDT",
                        "BGN",
                        "BHD",
                        "BIF",
                        "BMD",
                        "BND",
                        "BOB",
                        "BRL",
                        "BSD",
                        "BTN",
                        "BWP",
                        "BYR",
                        "BZD",
                        "CAD",
                        "CDF",
                        "CHF",
                        "CLP",
                        "CNY",
                        "COP",
                        "CRC",
                        "CUP",
                        "CVE",
                        "CZK",
                        "DJF",
                        "DKK",
                        "DOP",
                        "DZD",
                        "EEK",
                        "EGP",
                        "ERN",
                        "ETB",
                        "EUR",
                        "FJD",
                        "FKP",
                        "GBP",
                        "GEL",
                        "GHS",
                        "GIP",
                        "GMD",
                        "GNF",
                        "GTQ",
                        "GYD",
                        "GWP",
                        "HKD",
                        "HNL",
                        "HRK",
                        "HTG",
                        "HUF",
                        "IDR",
                        "ILS",
                        "INR",
                        "IQD",
                        "IRR",
                        "ISK",
                        "JMD",
                        "JOD",
                        "JPY",
                        "KES",
                        "KGS",
                        "KHR",
                        "KMF",
                        "KPW",
                        "KRW",
                        "KWD",
                        "KYD",
                        "KZT",
                        "LAK",
                        "LBP",
                        "LKR",
                        "LRD",
                        "LSL",
                        "LTL",
                        "LVL",
                        "LYD",
                        "MAD",
                        "MDL",
                        "MGA",
                        "MKD",
                        "MMK",
                        "MNT",
                        "MOP",
                        "MRO",
                        "MUR",
                        "MVR",
                        "MWK",
                        "MXN",
                        "MYR",
                        "MZN",
                        "NAD",
                        "NGN",
                        "NIO",
                        "NOK",
                        "NPR",
                        "NZD",
                        "OMR",
                        "PAB",
                        "PEN",
                        "PGK",
                        "PHP",
                        "PKR",
                        "PLN",
                        "PYG",
                        "QAR",
                        "RON",
                        "RSD",
                        "RUB",
                        "RWF",
                        "SAR",
                        "SBD",
                        "SCR",
                        "SDG",
                        "SEK",
                        "SGD",
                        "SHP",
                        "SKK",
                        "SLL",
                        "SOS",
                        "SRD",
                        "STD",
                        "SVC",
                        "SYP",
                        "SZL",
                        "THB",
                        "TJS",
                        "TMM",
                        "TND",
                        "TOP",
                        "TRY",
                        "TTD",
                        "TWD",
                        "TZS",
                        "UAH",
                        "UGX",
                        "USD",
                        "UYU",
                        "UZS",
                        "VEF",
                        "VND",
                        "VUV",
                        "WST",
                        "XAF",
                        "XCD",
                        "XDR",
                        "XOF",
                        "XPF",
                        "YER",
                        "ZAR",
                        "ZMK",
                        "ZWR"
                    ]
                },
                "value": {
                    "type": "number",
                    "multipleOf" : 0.01
                }
            },
            "required": [
                "value",
                "currencyCode"
            ]
        },
        "ContactDetails": {
            "type": "object",
            "properties": {
                "address": {
                    "$ref": "#/$defs/Address"
                },
                "contact": {
                    "$ref": "#/$defs/ContactInformation"
                }
            },
            "required": [
                "address",
                "contact"
            ]
        },
        "Address": {
            "type": "object",
            "properties": {
                "buildingName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 70
                },
                "houseNumber": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 50
                },
                "line1": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 70
                },
                "line2": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 70
                },
                "line3": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 70
                },
                "line4": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 70
                },
                "poBox": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 70
                },
                "city": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 40
                },
                "mainDivision": {
                    "$ref": "#/$defs/MainDivision"
                },
                "postalCode": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 35
                },
                "country": {
                    "pattern": "^[A-Z]{2}$",
                    "type": "string",
                    "enum": [
                        "AD",
                        "AE",
                        "AF",
                        "AG",
                        "AI",
                        "AL",
                        "AM",
                        "AN",
                        "AO",
                        "AQ",
                        "AR",
                        "AS",
                        "AT",
                        "AU",
                        "AW",
                        "AX",
                        "AZ",
                        "BA",
                        "BB",
                        "BD",
                        "BE",
                        "BF",
                        "BG",
                        "BH",
                        "BI",
                        "BJ",
                        "BL",
                        "BM",
                        "BN",
                        "BO",
                        "BQ",
                        "BR",
                        "BS",
                        "BT",
                        "BV",
                        "BW",
                        "BY",
                        "BZ",
                        "C2",
                        "CA",
                        "CC",
                        "CD",
                        "CF",
                        "CG",
                        "CH",
                        "CI",
                        "CK",
                        "CL",
                        "CM",
                        "CN",
                        "CO",
                        "CR",
                        "CU",
                        "CV",
                        "CW",
                        "CX",
                        "CY",
                        "CZ",
                        "DE",
                        "DJ",
                        "DK",
                        "DM",
                        "DO",
                        "DZ",
                        "EC",
                        "EE",
                        "EG",
                        "EH",
                        "ER",
                        "ES",
                        "ET",
                        "FI",
                        "FJ",
                        "FK",
                        "FM",
                        "FO",
                        "FR",
                        "GA",
                        "GB",
                        "GD",
                        "GE",
                        "GF",
                        "GG",
                        "GH",
                        "GI",
                        "GL",
                        "GM",
                        "GN",
                        "GP",
                        "GQ",
                        "GR",
                        "GS",
                        "GT",
                        "GU",
                        "GW",
                        "GY",
                        "HK",
                        "HM",
                        "HN",
                        "HR",
                        "HT",
                        "HU",
                        "ID",
                        "IE",
                        "IL",
                        "IM",
                        "IN",
                        "IO",
                        "IQ",
                        "IR",
                        "IS",
                        "IT",
                        "JE",
                        "JM",
                        "JO",
                        "JP",
                        "KE",
                        "KG",
                        "KH",
                        "KI",
                        "KM",
                        "KN",
                        "KP",
                        "KR",
                        "KW",
                        "KY",
                        "KZ",
                        "LA",
                        "LB",
                        "LC",
                        "LI",
                        "LK",
                        "LR",
                        "LS",
                        "LT",
                        "LU",
                        "LV",
                        "LY",
                        "MA",
                        "MC",
                        "MD",
                        "ME",
                        "MF",
                        "MG",
                        "MH",
                        "MK",
                        "ML",
                        "MM",
                        "MN",
                        "MO",
                        "MP",
                        "MQ",
                        "MR",
                        "MS",
                        "MT",
                        "MU",
                        "MV",
                        "MW",
                        "MX",
                        "MY",
                        "MZ",
                        "NA",
                        "NC",
                        "NE",
                        "NF",
                        "NG",
                        "NI",
                        "NL",
                        "NO",
                        "NP",
                        "NR",
                        "NU",
                        "NZ",
                        "OM",
                        "PA",
                        "PE",
                        "PF",
                        "PG",
                        "PH",
                        "PK",
                        "PL",
                        "PM",
                        "PN",
                        "PR",
                        "PS",
                        "PT",
                        "PW",
                        "PY",
                        "QA",
                        "RE",
                        "RO",
                        "RS",
                        "RU",
                        "RW",
                        "SA",
                        "SB",
                        "SC",
                        "SD",
                        "SE",
                        "SG",
                        "SH",
                        "SI",
                        "SJ",
                        "SK",
                        "SL",
                        "SM",
                        "SN",
                        "SO",
                        "SR",
                        "SS",
                        "ST",
                        "SV",
                        "SX",
                        "SY",
                        "SZ",
                        "TC",
                        "TD",
                        "TF",
                        "TG",
                        "TH",
                        "TJ",
                        "TK",
                        "TL",
                        "TM",
                        "TN",
                        "TO",
                        "TR",
                        "TT",
                        "TV",
                        "TW",
                        "TZ",
                        "UA",
                        "UG",
                        "UM",
                        "US",
                        "UY",
                        "UZ",
                        "VA",
                        "VC",
                        "VE",
                        "VG",
                        "VI",
                        "VN",
                        "VU",
                        "WF",
                        "WS",
                        "YE",
                        "YT",
                        "ZA",
                        "ZM",
                        "ZW",
                        "ZZ"
                    ]
                }
            },
            "required": [
                "line1",
                "city",
                "mainDivision",
                "country"
            ]
        },
        "MainDivision": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 5
                },
                "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 35
                }
            },
            "required": [
                "code"
            ]
        },
        "ContactInformation": {
            "type": "object",
            "properties": {
                "person": {
                    "$ref": "#/$defs/Person"
                },
                "emailAddresses": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "format": "email",
                        "minLength": 3,
                        "maxLength": 150
                    }
                },
                "phoneNumbers": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "minLength": 10,
                        "maxLength": 40
                    }
                }
            },
            "required": [
                "person",
                "emailAddresses",
                "phoneNumbers"
            ]
        },
        "Person": {
            "type": "object",
            "properties": {
                "name": {
                    "$ref": "#/$defs/Name"
                }
            },
            "required": [
                "name"
            ]
        },
        "Name": {
            "type": "object",
            "properties": {
                "firstName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                },
                "lastName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                },
                "middleName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 40
                },
                "salutation": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 10
                },
                "suffix": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 40
                }
            },
            "required": [
                "firstName",
                "lastName"
            ]
        },
        "OrderInformation": {
            "type": "object",
            "properties": {
                "orderId": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 40
                }
            },
            "required": [
                "orderId"
            ]
        },
        "PaymentMethod": {
            "type": "object",
            "properties": {
                "accountIdentifier": {
                    "$ref": "#/$defs/AccountIdentifier"
                },
                "cashAppPayData": {
                    "$ref": "#/$defs/CashAppPayData"
                },
                "tender": {
                    "type": "string",
                    "enum": [
                        "AD",
                        "AF",
                        "AL",
                        "AM",
                        "AP",
                        "BL",
                        "CD",
                        "CK",
                        "CP",
                        "CT",
                        "DC",
                        "DD",
                        "DG",
                        "DI",
                        "FP",
                        "FT",
                        "FV",
                        "FX",
                        "GE",
                        "GP",
                        "GS",
                        "GX",
                        "ID",
                        "IO",
                        "JC",
                        "KL",
                        "MC",
                        "MI",
                        "MO",
                        "OI",
                        "PH",
                        "PM",
                        "PO",
                        "PY",
                        "RK",
                        "RP",
                        "SF",
                        "SG",
                        "SL",
                        "SM",
                        "SP",
                        "ST",
                        "SU",
                        "SV",
                        "TD",
                        "TM",
                        "TP",
                        "TV",
                        "UN",
                        "VC",
                        "VL",
                        "VO",
                        "VT"
                    ]
                }
            }
        },
        "AccountIdentifier": {
            "type": "object",
            "properties": {
                "token": {
                    "type": "boolean"
                },
                "identifier": {
                    "type": "string",
                    "pattern": "^[a-zA-Z0-9]{3,40}$"
                }
            }
        },
        "CashAppPayData": {
            "type": "object",
            "properties": {
                "grantId": {
                    "type": "string",
                    "minLength": 4
                }
            },
            "required": [
                "grantId"
            ]
        }
    }
}