{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "http://api.example.com/credit-card.json#",
    "type": "object",
    "properties": {
        "cardHolderName": {
            "type": "string",
            "minLength": 5,
            "maxLength": 64
        },
        "expireDateMonth": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12
        },
        "expireDateYear": {
            "type": "integer",
            "minimum": 18,
            "maximum": 30
        },
        "cvvNumber": {
            "type": "string",
            "pattern": "^[0-9]{3}$"
        },
        "cardNumber": {
            "type": "string",
            "minLength": 15,
            "maxLength": 16,
            "pattern": "^[0-9]{16}$"
        }
    },
    "required": [
        "cardHolderName",
        "cardNumber",
        "expireDateMonth",
        "expireDateYear",
        "cvvNumber"
    ],
    "additionalProperties": false
}