{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Process Checkout",
  "description": "Request body for attempting payment on an existing checkout. The required companion fields depend on the selected `payment_type`, for example card details, saved-card data, or payer information required by a specific payment method.",
  "type": "object",
  "properties": {
    "payment_type": {
      "description": "Payment method used for this processing attempt. It determines which additional request fields are required.",
      "type": "string",
      "example": "card",
      "enum": [
        "card",
        "boleto",
        "ideal",
        "blik",
        "bancontact",
        "google_pay",
        "apple_pay"
      ]
    },
    "installments": {
      "description": "Number of installments for deferred payments. Available only to merchant users in Brazil.",
      "type": "integer",
      "example": 1,
      "maximum": 12,
      "minimum": 1
    },
    "mandate": {
      "$ref": "#/components/schemas/MandatePayload"
    },
    "card": {
      "$ref": "#/components/schemas/Card"
    },
    "google_pay": {
      "description": "Raw `PaymentData` object received from Google Pay. Send the Google Pay response payload as-is.",
      "type": "object",
      "example": {
        "apiVersionMinor": 0,
        "apiVersion": 2,
        "paymentMethodData": {
          "description": "Visa \u2022\u2022\u2022\u2022 1111",
          "tokenizationData": {
            "type": "PAYMENT_GATEWAY",
            "token": "token-data"
          },
          "type": "CARD",
          "info": {
            "cardNetwork": "VISA",
            "cardDetails": "1111"
          }
        }
      }
    },
    "apple_pay": {
      "description": "Raw payment token object received from Apple Pay. Send the Apple Pay response payload as-is.",
      "type": "object",
      "example": {
        "token": {
          "paymentData": {
            "data": "si2xuT2ArQo689SfE-long-token",
            "signature": "MIAGCSqGSIb3DQEHA-long-signature",
            "header": {
              "publicKeyHash": "PWfjDi3TSwgZ20TY/A7f3V6J/1rhHyRDCspbeljM0io=",
              "ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEaBtz7UN2MNV0qInJVEEhXy10PU0KfO6KxFjXm93oKWL6lCsxZZGDl/EKioUHVSlKgpsKGin0xvgldfxeJVgy0g==",
              "transactionId": "62e0568bc9258e9d0e059d745650fc8211d05ef7a7a1589a6411bf9b12cdfd04"
            },
            "version": "EC_v1"
          },
          "paymentMethod": {
            "displayName": "MasterCard 8837",
            "network": "MasterCard",
            "type": "debit"
          },
          "transactionIdentifier": "62E0568BC9258E9D0E059D745650FC8211D05EF7A7A1589A6411BF9B12CDFD04"
        }
      }
    },
    "token": {
      "description": "Saved-card token to use instead of raw card details when processing with a previously stored payment instrument.",
      "type": "string",
      "example": "ba85dfee-c3cf-48a6-84f5-d7d761fbba50"
    },
    "customer_id": {
      "description": "Customer identifier associated with the saved payment instrument. Required when `token` is provided.",
      "type": "string",
      "example": "MEDKHDTI"
    },
    "personal_details": {
      "$ref": "#/components/schemas/PersonalDetails"
    }
  },
  "required": [
    "payment_type"
  ]
}