{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "TokenRequest",
  "title": "TokenRequest",
  "additionalProperties": false,
  "properties": {
    "bankId": {
      "type": "string",
      "pattern": "^[0-9]{4,}$"
    },
    "amount": {
      "type": "object",
      "properties": {
        "subtotalIva": {
          "type": "integer",
          "minimum": 0
        },
        "subtotalIva0": {
          "type": "integer",
          "minimum": 0
        },
        "iva": {
          "type": "integer",
          "minimum": 0
        },
        "extraTaxes": {
          "type": "object",
          "properties": {
            "propina": {
              "type": "integer",
              "minimum": 0
            },
            "tasaAeroportuaria": {
              "type": "integer",
              "minimum": 0
            },
            "agenciaDeViajes": {
              "type": "integer",
              "minimum": 0
            },
            "iac": {
              "type": "integer",
              "minimum": 0
            }
          }
        }
      },
      "required": ["subtotalIva", "subtotalIva0", "iva"]
    },
    "callbackUrl": {
      "type": "string"
    },
    "userType": {
      "type": "string",
      "enum": ["0", "1"]
    },
    "documentType": {
      "type": "string",
      "enum": ["CC", "NIT", "CE", "TI", "PP"]
    },
    "documentNumber": {
      "type": "string",
      "pattern": "^[0-9]{6,}$"
    },
    "paymentDescription": {
      "type": "string"
    }
  },
  "required": [
    "bankId",
    "amount",
    "callbackUrl",
    "userType",
    "documentType",
    "documentNumber"
  ],
  "type": "object"
}
