{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amadeus/refs/heads/main/json-schema/transfer-book-payment-schema.json",
  "title": "Payment",
  "description": "defines the payment in transfer reservation. For \"CREDIT_CARD\" - creditCard is mandatory, for \"TRAVEL_ACCOUNT\" - paymentReference is optional, for \"PAYMENT_SERVICE_PROVIDER\" - paymentServiceProvider and paymentReference are mandatory.\n",
  "type": "object",
  "properties": {
    "methodOfPayment": {
      "type": "string",
      "description": "Method of payment required when PaymentType equal BT (applicable only for reservation action).",
      "enum": [
        "CREDIT_CARD",
        "TRAVEL_ACCOUNT",
        "PAYMENT_SERVICE_PROVIDER"
      ],
      "example": "CREDIT_CARD"
    },
    "paymentReference": {
      "type": "string",
      "description": "payment refence that will be passed to provider in case \"TRAVEL_ACCOUNT\" method of payment",
      "example": "string-value"
    },
    "paymentServiceProvider": {
      "type": "string",
      "description": "payment service provider details will be passed to provider in case \"PAYMENT_SERVICE_PROVIDER\" method of payment.",
      "enum": [
        "STRIPE_CONNECT"
      ],
      "example": "STRIPE_CONNECT"
    },
    "creditCard": {
      "type": "object",
      "description": "information about payment card",
      "required": [
        "number",
        "holderName",
        "vendorCode",
        "expiryDate"
      ],
      "properties": {
        "number": {
          "type": "string",
          "pattern": "[0-9]{16}",
          "description": "card number",
          "example": 1
        },
        "holderName": {
          "type": "string",
          "description": "card holder name",
          "example": "Sample Name"
        },
        "vendorCode": {
          "type": "string",
          "pattern": "[a-zA-Z]{2}",
          "description": "card vendor code, e.g VI \u2013 VISA, CA \u2013 MasterCard, AX \u2013 American Express etc",
          "example": "string-value"
        },
        "expiryDate": {
          "type": "string",
          "pattern": "^(0[1-9]|1[0-2])[0-9]{2}$",
          "description": "card expiry date in format MMYY, e.g. 0237 for February 2037",
          "example": "2026-08-15"
        },
        "cvv": {
          "type": "string",
          "pattern": "[a-zA-Z0-9]{3,4}",
          "description": "cerification calue number, as indicated on the credit card. Only for query",
          "example": "string-value"
        }
      }
    }
  }
}