{
  "openapi": "3.0.3",
  "info": {
    "title": "Hyperswitch - API Documentation",
    "description": "\n## Get started\n\nHyperswitch provides a collection of APIs that enable you to process and manage payments.\nOur APIs accept and return JSON in the HTTP body, and return standard HTTP response codes.\n\nYou can consume the APIs directly using your favorite HTTP/REST library.\n\nWe have a testing environment referred to \"sandbox\", which you can setup to test API calls without\naffecting production data.\nCurrently, our sandbox environment is live while our production environment is under development\nand will be available soon.\nYou can sign up on our Dashboard to get API keys to access Hyperswitch API.\n\n### Environment\n\nUse the following base URLs when making requests to the APIs:\n\n| Environment   |  Base URL                          |\n|---------------|------------------------------------|\n| Sandbox       | <https://sandbox.hyperswitch.io>   |\n| Production    | <https://api.hyperswitch.io>       |\n\n## Authentication\n\nWhen you sign up on our [dashboard](https://app.hyperswitch.io) and create a merchant\naccount, you are given a secret key (also referred as api-key) and a publishable key.\nYou may authenticate all API requests with Hyperswitch server by providing the appropriate key in\nthe request Authorization header.\n\n| Key             |  Description                                                                                  |\n|-----------------|-----------------------------------------------------------------------------------------------|\n| api-key         | Private key. Used to authenticate all API requests from your merchant server                  |\n| publishable key | Unique identifier for your account. Used to authenticate API requests from your app's client  |\n\nNever share your secret api keys. Keep them guarded and secure.\n",
    "contact": {
      "name": "Hyperswitch Support",
      "url": "https://hyperswitch.io",
      "email": "support.global@juspay.io"
    },
    "license": {
      "name": "Apache-2.0"
    },
    "version": "0.1.0"
  },
  "servers": [
    {
      "url": "https://sandbox.hyperswitch.io",
      "description": "Sandbox Environment"
    }
  ],
  "paths": {
    "/v2/organizations": {
      "post": {
        "tags": [
          "Organization"
        ],
        "summary": "Organization - Create",
        "description": "Create a new organization",
        "operationId": "Create an Organization",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationCreateRequest"
              },
              "examples": {
                "Create an organization with organization_name": {
                  "value": {
                    "organization_name": "organization_abc"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Organization Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/organizations/{id}": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Organization - Retrieve",
        "description": "Retrieve an existing organization",
        "operationId": "Retrieve an Organization",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Organization",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Organization Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      },
      "put": {
        "tags": [
          "Organization"
        ],
        "summary": "Organization - Update",
        "description": "Create a new organization for .",
        "operationId": "Update an Organization",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Organization",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationUpdateRequest"
              },
              "examples": {
                "Update organization_name of the organization": {
                  "value": {
                    "organization_name": "organization_abcd"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Organization Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/organizations/{id}/merchant-accounts": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Organization - Merchant Account - List",
        "description": "List merchant accounts for an Organization",
        "operationId": "List Merchant Accounts",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Organization",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Merchant Account list retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MerchantAccountResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/connector-accounts": {
      "post": {
        "tags": [
          "Merchant Connector Account"
        ],
        "summary": "Connector Account - Create",
        "description": "Creates a new Connector Account for the merchant account. The connector could be a payment processor/facilitator/acquirer or a provider of specialized services like Fraud/Accounting etc.",
        "operationId": "Create a Merchant Connector",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MerchantConnectorCreate"
              },
              "examples": {
                "Create a merchant account with custom connector label": {
                  "value": {
                    "connector_account_details": {
                      "api_key": "{{adyen-api-key}}",
                      "auth_type": "BodyKey",
                      "key1": "{{adyen_merchant_account}}"
                    },
                    "connector_label": "EU_adyen",
                    "connector_name": "adyen",
                    "connector_type": "payment_processor"
                  }
                },
                "Create a merchant connector account under a specific profile": {
                  "value": {
                    "connector_account_details": {
                      "api_key": "{{adyen-api-key}}",
                      "auth_type": "BodyKey",
                      "key1": "{{adyen_merchant_account}}"
                    },
                    "connector_name": "adyen",
                    "connector_type": "payment_processor",
                    "profile_id": "{{profile_id}}"
                  }
                },
                "Create a merchant connector account with minimal fields": {
                  "value": {
                    "connector_account_details": {
                      "api_key": "{{adyen-api-key}}",
                      "auth_type": "BodyKey",
                      "key1": "{{adyen_merchant_account}}"
                    },
                    "connector_name": "adyen",
                    "connector_type": "payment_processor"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Merchant Connector Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantConnectorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/connector-accounts/{id}": {
      "get": {
        "tags": [
          "Merchant Connector Account"
        ],
        "summary": "Connector Account - Retrieve",
        "description": "Retrieves details of a Connector account",
        "operationId": "Retrieve a Merchant Connector",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Merchant Connector",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Merchant Connector retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantConnectorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Merchant Connector does not exist in records"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      },
      "put": {
        "tags": [
          "Merchant Connector Account"
        ],
        "summary": "Connector Account - Update",
        "description": "To update an existing Connector account. Helpful in enabling/disabling different payment methods and other settings for the connector",
        "operationId": "Update a Merchant Connector",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Merchant Connector",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MerchantConnectorUpdate"
              },
              "examples": {
                "Enable card payment method": {
                  "value": {
                    "connector_type": "payment_processor",
                    "payment_methods_enabled": [
                      {
                        "payment_method": "card"
                      }
                    ]
                  }
                },
                "Update webhook secret": {
                  "value": {
                    "connector_webhook_details": {
                      "merchant_secret": "{{webhook_secret}}"
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Merchant Connector Updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantConnectorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Merchant Connector does not exist in records"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Merchant Connector Account"
        ],
        "summary": "Merchant Connector - Delete",
        "description": "Delete or Detach a Merchant Connector from Merchant Account",
        "operationId": "Delete a Merchant Connector",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Merchant Connector",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Merchant Connector Deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantConnectorDeleteResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Merchant Connector does not exist in records"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/merchant-accounts": {
      "post": {
        "tags": [
          "Merchant Account"
        ],
        "summary": "Merchant Account - Create",
        "description": "Create a new account for a *merchant* and the *merchant* could be a seller or retailer or client who likes to receive and send payments.\n\nBefore creating the merchant account, it is mandatory to create an organization.",
        "operationId": "Create a Merchant Account",
        "parameters": [
          {
            "name": "X-Organization-Id",
            "in": "header",
            "description": "Organization ID for which the merchant account has to be created.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": {
              "X-Organization-Id": "org_abcdefghijklmnop"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MerchantAccountCreate"
              },
              "examples": {
                "Create a merchant account with merchant details": {
                  "value": {
                    "merchant_details": {
                      "primary_contact_person": "John Doe",
                      "primary_email": "example@company.com"
                    },
                    "merchant_name": "Cloth Store"
                  }
                },
                "Create a merchant account with metadata": {
                  "value": {
                    "merchant_name": "Cloth Store",
                    "metadata": {
                      "key_1": "John Doe",
                      "key_2": "Trends"
                    }
                  }
                },
                "Create a merchant account with minimal fields": {
                  "value": {
                    "merchant_name": "Cloth Store"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Merchant Account Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantAccountResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/merchant-accounts/{id}": {
      "get": {
        "tags": [
          "Merchant Account"
        ],
        "summary": "Merchant Account - Retrieve",
        "description": "Retrieve a *merchant* account details.",
        "operationId": "Retrieve a Merchant Account",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Merchant Account Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantAccountResponse"
                }
              }
            }
          },
          "404": {
            "description": "Merchant account not found"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      },
      "put": {
        "tags": [
          "Merchant Account"
        ],
        "summary": "Merchant Account - Update",
        "description": "Updates details of an existing merchant account. Helpful in updating merchant details such as email, contact details, or other configuration details like webhook, routing algorithm etc",
        "operationId": "Update a Merchant Account",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MerchantAccountUpdate"
              },
              "examples": {
                "Update Merchant Details": {
                  "value": {
                    "merchant_details": {
                      "primary_contact_person": "John Doe",
                      "primary_email": "example@company.com"
                    }
                  }
                },
                "Update merchant name": {
                  "value": {
                    "merchant_id": "merchant_abc",
                    "merchant_name": "merchant_name"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Merchant Account Updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantAccountResponse"
                }
              }
            }
          },
          "404": {
            "description": "Merchant account not found"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/merchant-accounts/{id}/profiles": {
      "get": {
        "tags": [
          "Merchant Account"
        ],
        "summary": "Merchant Account - Profile List",
        "description": "List profiles for an Merchant",
        "operationId": "List Profiles",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Merchant",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "profile list retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProfileResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/profiles": {
      "post": {
        "tags": [
          "Profile"
        ],
        "summary": "Profile - Create",
        "description": "Creates a new *profile* for a merchant",
        "operationId": "Create A Profile",
        "parameters": [
          {
            "name": "X-Merchant-Id",
            "in": "header",
            "description": "Merchant ID of the profile.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": {
              "X-Merchant-Id": "abc_iG5VNjsN9xuCg7Xx0uWh"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileCreate"
              },
              "examples": {
                "Create a profile with profile name": {
                  "value": {
                    "profile_name": "shoe_business"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Account Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/profiles/{id}": {
      "get": {
        "tags": [
          "Profile"
        ],
        "summary": "Profile - Retrieve",
        "description": "Retrieve existing *profile*",
        "operationId": "Retrieve a Profile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Merchant-Id",
            "in": "header",
            "description": "Merchant ID of the profile.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": {
              "X-Merchant-Id": "abc_iG5VNjsN9xuCg7Xx0uWh"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Profile Updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      },
      "put": {
        "tags": [
          "Profile"
        ],
        "summary": "Profile - Update",
        "description": "Update the *profile*",
        "operationId": "Update a Profile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Merchant-Id",
            "in": "header",
            "description": "Merchant ID of the profile.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": {
              "X-Merchant-Id": "abc_iG5VNjsN9xuCg7Xx0uWh"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileCreate"
              },
              "examples": {
                "Update profile with profile name fields": {
                  "value": {
                    "profile_name": "shoe_business"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Profile Updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/profiles/{id}/connector-accounts": {
      "get": {
        "tags": [
          "Business Profile"
        ],
        "summary": "Profile - Connector Accounts List",
        "description": "List Connector Accounts for the profile",
        "operationId": "List all Merchant Connectors for Profile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the business profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Merchant-Id",
            "in": "header",
            "description": "Merchant ID of the profile.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": {
              "X-Merchant-Id": "abc_iG5VNjsN9xuCg7Xx0uWh"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Merchant Connector list retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MerchantConnectorResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Merchant Connector does not exist in records"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/profiles/{id}/activate-routing-algorithm": {
      "patch": {
        "tags": [
          "Profile"
        ],
        "summary": "Profile - Activate routing algorithm",
        "description": "Activates a routing algorithm under a profile",
        "operationId": "Activates a routing algorithm under a profile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoutingAlgorithmId"
              },
              "examples": {
                "Activate a routing algorithm": {
                  "value": {
                    "routing_algorithm_id": "routing_algorithm_123"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Routing Algorithm is activated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutingDictionaryRecord"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "404": {
            "description": "Resource missing"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/v2/profiles/{id}/deactivate-routing-algorithm": {
      "patch": {
        "tags": [
          "Profile"
        ],
        "summary": "Profile - Deactivate routing algorithm",
        "description": "Deactivates a routing algorithm under a profile",
        "operationId": " Deactivates a routing algorithm under a profile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully deactivated routing config",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutingDictionaryRecord"
                }
              }
            }
          },
          "400": {
            "description": "Malformed request"
          },
          "403": {
            "description": "Malformed request"
          },
          "422": {
            "description": "Unprocessable request"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/v2/profiles/{id}/fallback-routing": {
      "patch": {
        "tags": [
          "Profile"
        ],
        "summary": "Profile - Update Default Fallback Routing Algorithm",
        "description": "Update the default fallback routing algorithm for the profile",
        "operationId": "Update the default fallback routing algorithm for the profile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RoutableConnectorChoice"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully updated the default fallback routing algorithm",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RoutableConnectorChoice"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Malformed request"
          },
          "422": {
            "description": "Unprocessable request"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      },
      "get": {
        "tags": [
          "Profile"
        ],
        "summary": "Profile - Retrieve Default Fallback Routing Algorithm",
        "description": "Retrieve the default fallback routing algorithm for the profile",
        "operationId": "Retrieve the default fallback routing algorithm for the profile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved default fallback routing algorithm",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RoutableConnectorChoice"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/v2/profiles/{id}/routing-algorithm": {
      "get": {
        "tags": [
          "Profile"
        ],
        "summary": "Profile - Retrieve Active Routing Algorithm",
        "description": "_\nRetrieve active routing algorithm under the profile",
        "operationId": "Retrieve the active routing algorithm under the profile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The number of records of the algorithms to be returned",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true,
              "minimum": 0
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The record offset of the algorithm from which to start gathering the results",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved active config",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkedRoutingConfigRetrieveResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource missing"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/v2/routing-algorithms": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Create",
        "description": "Create a routing algorithm",
        "operationId": "Create a routing algorithm",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoutingConfigRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Routing Algorithm created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutingDictionaryRecord"
                }
              }
            }
          },
          "400": {
            "description": "Request body is malformed"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource missing"
          },
          "422": {
            "description": "Unprocessable request"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/v2/routing-algorithms/{id}": {
      "get": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Retrieve",
        "description": "Retrieve a routing algorithm with its algorithm id",
        "operationId": "Retrieve a routing algorithm with its algorithm id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for a routing algorithm",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched routing algorithm",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantRoutingAlgorithm"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource missing"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/v2/api-keys": {
      "post": {
        "tags": [
          "API Key"
        ],
        "summary": "API Key - Create",
        "description": "Create a new API Key for accessing our APIs from your servers. The plaintext API Key will be\ndisplayed only once on creation, so ensure you store it securely.",
        "operationId": "Create an API Key",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateApiKeyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "API Key created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateApiKeyResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/api-keys/{id}": {
      "get": {
        "tags": [
          "API Key"
        ],
        "summary": "API Key - Retrieve",
        "description": "Retrieve information about the specified API Key.",
        "operationId": "Retrieve an API Key",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the API Key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "API Key retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetrieveApiKeyResponse"
                }
              }
            }
          },
          "404": {
            "description": "API Key not found"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      },
      "put": {
        "tags": [
          "API Key"
        ],
        "summary": "API Key - Update",
        "description": "Update information for the specified API Key.",
        "operationId": "Update an API Key",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the API Key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateApiKeyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "API Key updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetrieveApiKeyResponse"
                }
              }
            }
          },
          "404": {
            "description": "API Key not found"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "API Key"
        ],
        "summary": "API Key - Revoke",
        "description": "Revoke the specified API Key. Once revoked, the API Key can no longer be used for\nauthenticating with our APIs.",
        "operationId": "Revoke an API Key",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the API Key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "API Key revoked",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevokeApiKeyResponse"
                }
              }
            }
          },
          "404": {
            "description": "API Key not found"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/api-keys/list": {
      "get": {
        "tags": [
          "API Key"
        ],
        "summary": "API Key - List",
        "description": "List all the API Keys associated to a merchant account.",
        "operationId": "List all API Keys associated with a merchant account",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of API Keys to include in the response",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of API Keys to skip when retrieving the list of API keys.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of API Keys retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RetrieveApiKeyResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/v2/customers": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Customers - Create",
        "description": "Creates a customer object and stores the customer details to be reused for future payments.\nIncase the customer already exists in the system, this API will respond with the customer details.",
        "operationId": "Create a Customer",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the customer",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerRequest"
              },
              "examples": {
                "Create a customer with name and email": {
                  "value": {
                    "email": "guest@example.com",
                    "name": "John Doe"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Customer Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v1/customers": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Customers - Create",
        "description": "Creates a customer object and stores the customer details to be reused for future payments.\nIncase the customer already exists in the system, this API will respond with the customer details.",
        "operationId": "Create a Customer",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the customer",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerRequest"
              },
              "examples": {
                "Create a customer with name and email": {
                  "value": {
                    "email": "guest@example.com",
                    "name": "John Doe"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Customer Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/customers/{id}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Customers - Retrieve",
        "description": "Retrieves a customer's details.",
        "operationId": "Retrieve a Customer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the customer",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Customer Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          },
          "404": {
            "description": "Customer was not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "put": {
        "tags": [
          "Customers"
        ],
        "summary": "Customers - Update",
        "description": "Updates the customer's details in a customer object.",
        "operationId": "Update a Customer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the customer",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerUpdateRequest"
              },
              "examples": {
                "Update name and email of a customer": {
                  "value": {
                    "email": "guest@example.com",
                    "name": "John Doe"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Customer was Updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          },
          "404": {
            "description": "Customer was not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Customers"
        ],
        "summary": "Customers - Delete",
        "description": "Delete a customer record.",
        "operationId": "Delete a Customer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the customer",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Customer was Deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDeleteResponse"
                }
              }
            }
          },
          "404": {
            "description": "Customer was not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/customers/reference/{merchant_reference_id}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Customers - Retrieve using Merchant Reference ID",
        "description": "Retrieves a customer's details using the merchant supplied reference ID.",
        "operationId": "Retrieve a Customer using Merchant Reference ID",
        "parameters": [
          {
            "name": "merchant_reference_id",
            "in": "path",
            "description": "The merchant supplied reference identifier for the Customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the customer",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Customer Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          },
          "404": {
            "description": "Customer was not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v1/customers/{id}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Customers - Retrieve",
        "description": "Retrieves a customer's details.",
        "operationId": "Retrieve a Customer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the customer",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Customer Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          },
          "404": {
            "description": "Customer was not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "put": {
        "tags": [
          "Customers"
        ],
        "summary": "Customers - Update",
        "description": "Updates the customer's details in a customer object.",
        "operationId": "Update a Customer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the customer",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerUpdateRequest"
              },
              "examples": {
                "Update name and email of a customer": {
                  "value": {
                    "email": "guest@example.com",
                    "name": "John Doe"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Customer was Updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          },
          "404": {
            "description": "Customer was not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Customers"
        ],
        "summary": "Customers - Delete",
        "description": "Delete a customer record.",
        "operationId": "Delete a Customer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the customer",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Customer was Deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDeleteResponse"
                }
              }
            }
          },
          "404": {
            "description": "Customer was not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/customers/list": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Customers - List",
        "description": "Lists all the customers for a particular merchant id.",
        "operationId": "List all Customers for a Merchant",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the customer",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Customers retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v1/customers/list": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Customers - List",
        "description": "Lists all the customers for a particular merchant id.",
        "operationId": "List all Customers for a Merchant",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the customer",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Customers retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payments/create-intent": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Create Intent",
        "description": "**Creates a payment intent object when amount_details are passed.**\n\nYou will require the 'API - Key' from the Hyperswitch dashboard to make the first call, and use the 'client secret' returned in this API along with your 'publishable key' to make subsequent API calls from your client.",
        "operationId": "Create a Payment Intent",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentsCreateIntentRequest"
              },
              "examples": {
                "Create a payment intent with minimal fields": {
                  "value": {
                    "amount_details": {
                      "currency": "USD",
                      "order_amount": 6540
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsIntentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payments/{id}/get-intent": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Get Intent",
        "description": "**Get a payment intent object when id is passed in path**\n\nYou will require the 'API - Key' from the Hyperswitch dashboard to make the call.",
        "operationId": "Get the Payment Intent details",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Intent",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Intent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsIntentResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment Intent not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payments/{id}/update-intent": {
      "put": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Update Intent",
        "description": "**Update a payment intent object**\n\nYou will require the 'API - Key' from the Hyperswitch dashboard to make the call.",
        "operationId": "Update a Payment Intent",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Intent",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment intent",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentsUpdateIntentRequest"
              },
              "examples": {
                "Update a payment intent with minimal fields": {
                  "value": {
                    "amount_details": {
                      "currency": "USD",
                      "order_amount": 6540
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment Intent Updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsIntentResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment Intent Not Found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payments/{id}/confirm-intent": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Confirm Intent",
        "description": "**Confirms a payment intent object with the payment method data**\n\n.",
        "operationId": "Confirm Payment Intent",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Intent",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment intent",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentsConfirmIntentRequest"
              },
              "examples": {
                "Confirm the payment intent with card details": {
                  "value": {
                    "payment_method_data": {
                      "card": {
                        "card_cvc": "123",
                        "card_exp_month": "10",
                        "card_exp_year": "25",
                        "card_holder_name": "joseph Doe",
                        "card_number": "4242424242424242"
                      }
                    },
                    "payment_method_subtype": "credit",
                    "payment_method_type": "card"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "publishable_key__client_secret": []
          }
        ]
      }
    },
    "/v2/payments/{id}": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Get",
        "description": "Retrieves a Payment. This API can also be used to get the status of a previously initiated payment or next action for an ongoing payment",
        "operationId": "Retrieve a Payment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The global payment id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "force_sync",
            "in": "query",
            "description": "A boolean to indicate whether to force sync the payment status. Value can be true or false",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ForceSync"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Gets the payment with final status",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsResponse"
                }
              }
            }
          },
          "404": {
            "description": "No payment found with the given id"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payments": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Create and Confirm Intent",
        "description": "**Creates and confirms a payment intent object when the amount and payment method information are passed.**\n\nYou will require the 'API - Key' from the Hyperswitch dashboard to make the call.",
        "operationId": "Create and Confirm Payment Intent",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment intent",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentsRequest"
              },
              "examples": {
                "Create and confirm the payment intent with amount and card details": {
                  "value": {
                    "amount_details": {
                      "currency": "USD",
                      "order_amount": 6540
                    },
                    "payment_method_data": {
                      "card": {
                        "card_cvc": "123",
                        "card_exp_month": "10",
                        "card_exp_year": "25",
                        "card_holder_name": "joseph Doe",
                        "card_number": "4242424242424242"
                      }
                    },
                    "payment_method_subtype": "credit",
                    "payment_method_type": "card"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payments/{payment_id}/create-external-sdk-tokens": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Session token",
        "description": "Creates a session object or a session token for wallets like Apple Pay, Google Pay, etc. These tokens are used by Hyperswitch's SDK to initiate these wallets' SDK.",
        "operationId": "Create V2 Session tokens for a Payment",
        "parameters": [
          {
            "name": "payment_id",
            "in": "path",
            "description": "The identifier for payment",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentsSessionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment session object created or session token was retrieved from wallets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsSessionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "publishable_key__client_secret": []
          }
        ]
      }
    },
    "/v2/payments/{id}/payment-methods": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Payment Methods List",
        "description": "List the payment methods eligible for a payment. This endpoint also returns the saved payment methods for the customer when the customer_id is passed when creating the payment",
        "operationId": "Retrieve Payment methods for a Payment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The global payment id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment intent",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Get the payment methods",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodListResponseForPayments"
                }
              }
            }
          },
          "404": {
            "description": "No payment found with the given id"
          }
        },
        "security": [
          {
            "publishable_key__client_secret": []
          }
        ]
      }
    },
    "/v2/payments/list": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - List",
        "description": "To list the *payments*",
        "operationId": "List all Payments",
        "parameters": [
          {
            "name": "payment_id",
            "in": "path",
            "description": "The identifier for payment",
            "required": true,
            "schema": {
              "type": "string",
              "nullable": true
            },
            "example": "pay_fafa124123"
          },
          {
            "name": "profile_id",
            "in": "path",
            "description": "The identifier for business profile",
            "required": true,
            "schema": {
              "type": "string",
              "nullable": true
            },
            "example": "pay_fafa124123"
          },
          {
            "name": "customer_id",
            "in": "path",
            "description": "The identifier for customer",
            "required": true,
            "schema": {
              "type": "string",
              "nullable": true,
              "maxLength": 64,
              "minLength": 1
            },
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44"
          },
          {
            "name": "starting_after",
            "in": "path",
            "description": "A cursor for use in pagination, fetch the next list after some object",
            "required": true,
            "schema": {
              "type": "string",
              "nullable": true
            },
            "example": "pay_fafa124123"
          },
          {
            "name": "ending_before",
            "in": "path",
            "description": "A cursor for use in pagination, fetch the previous list before some object",
            "required": true,
            "schema": {
              "type": "string",
              "nullable": true
            },
            "example": "pay_fafa124123"
          },
          {
            "name": "limit",
            "in": "path",
            "description": "limit on the number of objects to return",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10,
              "maximum": 100,
              "minimum": 0
            }
          },
          {
            "name": "offset",
            "in": "path",
            "description": "The starting point within a list of objects",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true,
              "minimum": 0
            }
          },
          {
            "name": "created",
            "in": "path",
            "description": "The time at which payment is created",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "example": "2022-09-10T10:11:12Z"
          },
          {
            "name": "created.lt",
            "in": "path",
            "description": "Time less than the payment created time",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "example": "2022-09-10T10:11:12Z"
          },
          {
            "name": "created.gt",
            "in": "path",
            "description": "Time greater than the payment created time",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "example": "2022-09-10T10:11:12Z"
          },
          {
            "name": "created.lte",
            "in": "path",
            "description": "Time less than or equals to the payment created time",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "example": "2022-09-10T10:11:12Z"
          },
          {
            "name": "created.gte",
            "in": "path",
            "description": "Time greater than or equals to the payment created time",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "example": "2022-09-10T10:11:12Z"
          },
          {
            "name": "start_amount",
            "in": "path",
            "description": "The start amount to filter list of transactions which are greater than or equal to the start amount",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "end_amount",
            "in": "path",
            "description": "The end amount to filter list of transactions which are less than or equal to the end amount",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "connector",
            "in": "path",
            "description": "The connector to filter payments list",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Connector"
              },
              "nullable": true
            }
          },
          {
            "name": "currency",
            "in": "path",
            "description": "The currency to filter payments list",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Currency"
              },
              "nullable": true
            }
          },
          {
            "name": "status",
            "in": "path",
            "description": "The payment status to filter payments list",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/IntentStatus"
              },
              "nullable": true
            }
          },
          {
            "name": "payment_method_type",
            "in": "path",
            "description": "The payment method type to filter payments list",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PaymentMethod"
              },
              "nullable": true
            }
          },
          {
            "name": "payment_method_subtype",
            "in": "path",
            "description": "The payment method subtype to filter payments list",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PaymentMethodType"
              },
              "nullable": true
            }
          },
          {
            "name": "authentication_type",
            "in": "path",
            "description": "The authentication type to filter payments list",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/AuthenticationType"
              },
              "nullable": true
            }
          },
          {
            "name": "merchant_connector_id",
            "in": "path",
            "description": "The merchant connector id to filter payments list",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "nullable": true
            }
          },
          {
            "name": "order_on",
            "in": "path",
            "description": "The field on which the payments list should be sorted",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/SortOn"
            }
          },
          {
            "name": "order_by",
            "in": "path",
            "description": "The order in which payments list should be sorted",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/SortBy"
            }
          },
          {
            "name": "card_network",
            "in": "path",
            "description": "The card networks to filter payments list",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/CardNetwork"
              },
              "nullable": true
            }
          },
          {
            "name": "merchant_order_reference_id",
            "in": "path",
            "description": "The identifier for merchant order reference id",
            "required": true,
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved a payment list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentListResponse"
                }
              }
            }
          },
          "404": {
            "description": "No payments found"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/v2/payments/{id}/eligibility/check-balance-and-apply-pm-data": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Check Balance and Apply PM Data",
        "description": "Check the balance of the payment methods, apply the payment method data and recalculate remaining_amount and surcharge",
        "operationId": "Apply Payment Method Data",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The global payment id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment intent",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplyPaymentMethodDataRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Apply the Payment Method Data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckAndApplyPaymentMethodDataResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "publishable_key__client_secret": []
          }
        ]
      }
    },
    "/v2/payment-methods": {
      "post": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Create",
        "description": "Creates and stores a payment method against a customer. In case of cards, this API should be used only by PCI compliant merchants.",
        "operationId": "Create Payment Method",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment Method Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v1/payment-methods": {
      "post": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Create",
        "description": "Creates and stores a payment method against a customer. In case of cards, this API should be used only by PCI compliant merchants.",
        "operationId": "Create Payment Method",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment Method Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payment-methods/create-intent": {
      "post": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Create Intent",
        "description": "Creates a payment method for customer with billing information and other metadata.",
        "operationId": "Create Payment Method Intent",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodIntentCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment Method Intent Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payment-methods/{id}/confirm-intent": {
      "post": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Confirm Intent",
        "description": "Update a payment method with customer's payment method related information.",
        "operationId": "Confirm Payment Method Intent",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodIntentConfirm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment Method Intent Confirmed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payment-methods/{id}/update-saved-payment-method": {
      "put": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Update",
        "description": "Update an existing payment method of a customer.",
        "operationId": "Update Payment Method",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment Method Update",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v1/payment-methods/{id}/update-saved-payment-method": {
      "put": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Update",
        "description": "Update an existing payment method of a customer.",
        "operationId": "Update Payment Method",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment Method Update",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payment-methods/{id}": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Retrieve",
        "description": "Retrieves a payment method of a customer.",
        "operationId": "Retrieve Payment Method",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Method Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment Method Not Found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Delete",
        "description": "Deletes a payment method of a customer.",
        "operationId": "Delete Payment Method",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Method Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodDeleteResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment Method Not Found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v1/payment-methods/{id}": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "operationId": "Retrieve Payment Method",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Method Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment Method Not Found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Delete",
        "description": "Deletes a payment method of a customer.",
        "operationId": "Delete Payment Method",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Method Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodDeleteResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment Method Not Found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payment-methods/{payment_method_id}/check-network-token-status": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Check Network Token Status",
        "description": "Check the status of a network token for a saved payment method",
        "operationId": "Check Network Token Status",
        "parameters": [
          {
            "name": "payment_method_id",
            "in": "path",
            "description": "The unique identifier for the Payment Method",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Network Token Status Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokenStatusCheckResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment Method Not Found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/customers/{id}/saved-payment-methods": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - List Customer Saved Payment Methods",
        "description": "List the payment methods saved for a customer",
        "operationId": "List Customer Saved Payment Methods",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Methods Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerPaymentMethodsListResponse"
                }
              }
            }
          },
          "404": {
            "description": "Customer Not Found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v1/customers/{id}/saved-payment-methods": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - List Customer Saved Payment Methods",
        "description": "List the payment methods saved for a customer",
        "operationId": "List Customer Saved Payment Methods",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Methods Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerPaymentMethodsListResponse"
                }
              }
            }
          },
          "404": {
            "description": "Customer Not Found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payment-methods/token/{payment_method_temporary_token}/details": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Get Payment Method Token Data",
        "description": "Retrieve the Payment method id associated with a payment method token.",
        "operationId": "Get Payment Method Token Data",
        "parameters": [
          {
            "name": "payment_method_temporary_token",
            "in": "path",
            "description": "The unique identifier for the Payment Method Token",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Method Token Data Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodGetTokenDetailsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment Method Not Found | Payment method token either expired or does not exist"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v1/payment-methods/token/{payment_method_temporary_token}/details": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Get Payment Method Token Data",
        "description": "Retrieve the Payment method id associated with a payment method token.",
        "operationId": "Get Payment Method Token Data",
        "parameters": [
          {
            "name": "payment_method_temporary_token",
            "in": "path",
            "description": "The unique identifier for the Payment Method Token",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Method Token Data Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodGetTokenDetailsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment Method Not Found | Payment method token either expired or does not exist"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v1/{customer_id}/payment-methods/{payment_method_id}/default": {
      "post": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Set Default Payment Method for Customer",
        "description": "Set the Payment Method as Default for the Customer.",
        "operationId": "Set the Payment Method as Default",
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "description": "The unique identifier for the Customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "payment_method_id",
            "in": "path",
            "description": "The unique identifier for the Payment Method",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Method has been set as default",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDefaultPaymentMethodResponse"
                }
              }
            }
          },
          "400": {
            "description": "Payment Method has already been set as default for that customer"
          },
          "404": {
            "description": "Payment Method not found for the customer"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payment-method-sessions": {
      "post": {
        "tags": [
          "Payment Method Session"
        ],
        "summary": "Payment Method Session - Create",
        "description": "Create a payment method session for a customer\nThis is used to list the saved payment methods for the customer\nThe customer can also add a new payment method using this session",
        "operationId": "Create a payment method session",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method session",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodSessionRequest"
              },
              "examples": {
                "Create a payment method session with customer_id": {
                  "value": {
                    "customer_id": "0a_cus_abcdefghijklmnopqrstuvwxyz"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Create the payment method session",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodSessionResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v1/payment-method-sessions": {
      "post": {
        "tags": [
          "Payment Method Session"
        ],
        "summary": "Payment Method Session - Create",
        "description": "Create a payment method session for a customer\nThis is used to list the saved payment methods for the customer\nThe customer can also add a new payment method using this session",
        "operationId": "Create a payment method session",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method session",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodSessionRequest"
              },
              "examples": {
                "Create a payment method session with customer_id": {
                  "value": {
                    "customer_id": "0a_cus_abcdefghijklmnopqrstuvwxyz"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Create the payment method session",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodSessionResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/payment-method-sessions/{id}": {
      "get": {
        "tags": [
          "Payment Method Session"
        ],
        "summary": "Payment Method Session - Retrieve",
        "description": "Retrieve the payment method session",
        "operationId": "Retrieve the payment method session",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method Session",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method session",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "The payment method session is retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodSessionResponse"
                }
              }
            }
          },
          "404": {
            "description": "The request is invalid"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Payment Method Session"
        ],
        "summary": "Payment Method Session - Delete a saved payment method",
        "description": "Delete a saved payment method from the given payment method session.",
        "operationId": "Delete a saved payment method",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method Session",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method session",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodSessionDeleteSavedPaymentMethod"
              },
              "examples": {
                "Update the card holder name": {
                  "value": {
                    "payment_method_token": "token_9wcXDRVkfEtLEsSnYKgQ"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The payment method has been deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodDeleteSessionResponse"
                }
              }
            }
          },
          "404": {
            "description": "The request is invalid"
          }
        },
        "security": [
          {
            "publishable_key__client_secret": []
          }
        ]
      }
    },
    "/v1/payment-method-sessions/{id}": {
      "get": {
        "tags": [
          "Payment Method Session"
        ],
        "summary": "Payment Method Session - Retrieve",
        "description": "Retrieve the payment method session",
        "operationId": "Retrieve the payment method session",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method Session",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method session",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "The payment method session is retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodSessionResponse"
                }
              }
            }
          },
          "404": {
            "description": "The request is invalid"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Payment Method Session"
        ],
        "summary": "Payment Method Session - Delete a saved payment method",
        "description": "Delete a saved payment method from the given payment method session.",
        "operationId": "Delete a saved payment method",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method Session",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method session",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodSessionDeleteSavedPaymentMethod"
              },
              "examples": {
                "Update the card holder name": {
                  "value": {
                    "payment_method_token": "token_9wcXDRVkfEtLEsSnYKgQ"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The payment method has been deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodDeleteSessionResponse"
                }
              }
            }
          },
          "404": {
            "description": "The request is invalid"
          }
        },
        "security": [
          {
            "publishable_key__client_secret": []
          }
        ]
      }
    },
    "/v2/payment-method-sessions/{id}/list-payment-methods": {
      "get": {
        "tags": [
          "Payment Method Session"
        ],
        "summary": "Payment Method Session - List Payment Methods",
        "description": "List payment methods for the given payment method session.\nThis endpoint lists the enabled payment methods for the profile and the saved payment methods of the customer.",
        "operationId": "List Payment methods for a Payment Method Session",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method Session",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method session",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "The payment method session is retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodListResponseForSession"
                }
              }
            }
          },
          "404": {
            "description": "The request is invalid"
          }
        },
        "security": [
          {
            "publishable_key__client_secret": []
          }
        ]
      }
    },
    "/v1/payment-method-sessions/{id}/list-payment-methods": {
      "get": {
        "tags": [
          "Payment Method Session"
        ],
        "summary": "Payment Method Session - List Payment Methods",
        "description": "List payment methods for the given payment method session.\nThis endpoint lists the enabled payment methods for the profile and the saved payment methods of the customer.",
        "operationId": "List Payment methods for a Payment Method Session",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method Session",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method session",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "responses": {
          "200": {
            "description": "The payment method session is retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodListResponseForSession"
                }
              }
            }
          },
          "404": {
            "description": "The request is invalid"
          }
        },
        "security": [
          {
            "publishable_key__client_secret": []
          }
        ]
      }
    },
    "/v2/payment-method-sessions/{id}/update-saved-payment-method": {
      "put": {
        "tags": [
          "Payment Method Session"
        ],
        "summary": "Payment Method Session - Update a saved payment method",
        "description": "Update a saved payment method from the given payment method session.",
        "operationId": "Update a saved payment method",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method Session",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method session",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodSessionUpdateSavedPaymentMethod"
              },
              "examples": {
                "Update the card holder name": {
                  "value": {
                    "payment_method_data": {
                      "card": {
                        "card_cvc": "456",
                        "card_holder_name": "Narayan Bhat"
                      }
                    },
                    "payment_method_token": "token_9wcXDRVkfEtLEsSnYKgQ"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The payment method has been updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodSessionResponse"
                }
              }
            }
          },
          "404": {
            "description": "The request is invalid"
          }
        },
        "security": [
          {
            "publishable_key__client_secret": []
          }
        ]
      }
    },
    "/v1/payment-method-sessions/{id}/update-saved-payment-method": {
      "put": {
        "tags": [
          "Payment Method Session"
        ],
        "summary": "Payment Method Session - Update a saved payment method",
        "description": "Update a saved payment method from the given payment method session.",
        "operationId": "Update a saved payment method",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method Session",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment method session",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodSessionUpdateSavedPaymentMethod"
              },
              "examples": {
                "Update the card holder name": {
                  "value": {
                    "payment_method_data": {
                      "card": {
                        "card_cvc": "456",
                        "card_holder_name": "Narayan Bhat"
                      }
                    },
                    "payment_method_token": "token_9wcXDRVkfEtLEsSnYKgQ"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The payment method has been updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodSessionResponse"
                }
              }
            }
          },
          "404": {
            "description": "The request is invalid"
          }
        },
        "security": [
          {
            "publishable_key__client_secret": []
          }
        ]
      }
    },
    "/v2/payment-method-sessions/{id}/confirm": {
      "post": {
        "tags": [
          "Payment Method Session"
        ],
        "summary": "Payment Method Session - Confirm a payment method session",
        "description": "**Confirms a payment method session object with the payment method data**",
        "operationId": "Confirm the payment method session",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method Session",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment intent",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodSessionConfirmRequest"
              },
              "examples": {
                "Confirm the payment method session with card details": {
                  "value": {
                    "payment_method_data": {
                      "card": {
                        "card_cvc": "123",
                        "card_exp_month": "10",
                        "card_exp_year": "30",
                        "card_number": "4242424242424242"
                      }
                    },
                    "payment_method_subtype": "credit",
                    "payment_method_type": "card"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment Method created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodSessionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields"
          }
        },
        "security": [
          {
            "publishable_key__client_secret": []
          }
        ]
      }
    },
    "/v1/payment-method-sessions/{id}/confirm": {
      "post": {
        "tags": [
          "Payment Method Session"
        ],
        "summary": "Payment Method Session - Confirm a payment method session",
        "description": "**Confirms a payment method session object with the payment method data**",
        "operationId": "Confirm the payment method session",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the Payment Method Session",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID associated to the payment intent",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "pro_abcdefghijklmnop"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodSessionConfirmRequest"
              },
              "examples": {
                "Confirm the payment method session with card details": {
                  "value": {
                    "payment_method_data": {
                      "card": {
                        "card_cvc": "123",
                        "card_exp_month": "10",
                        "card_exp_year": "30",
                        "card_number": "4242424242424242"
                      }
                    },
                    "payment_method_subtype": "credit",
                    "payment_method_type": "card"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment Method created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodSessionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields"
          }
        },
        "security": [
          {
            "publishable_key__client_secret": []
          }
        ]
      }
    },
    "/v2/refunds": {
      "post": {
        "tags": [
          "Refunds"
        ],
        "summary": "Refunds - Create",
        "description": "Creates a refund against an already processed payment. In case of some processors, you can even opt to refund only a partial amount multiple times until the original charge amount has been refunded",
        "operationId": "Create a Refund",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefundsCreateRequest"
              },
              "examples": {
                "Create an instant refund to refund partial amount": {
                  "value": {
                    "amount": 654,
                    "merchant_reference_id": "ref_123",
                    "payment_id": "{{payment_id}}",
                    "refund_type": "instant"
                  }
                },
                "Create an instant refund to refund the whole amount": {
                  "value": {
                    "merchant_reference_id": "ref_123",
                    "payment_id": "{{payment_id}}",
                    "refund_type": "instant"
                  }
                },
                "Create an instant refund with reason": {
                  "value": {
                    "amount": 6540,
                    "merchant_reference_id": "ref_123",
                    "payment_id": "{{payment_id}}",
                    "reason": "Customer returned product",
                    "refund_type": "instant"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Refund created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/refunds/{id}/update-metadata": {
      "put": {
        "tags": [
          "Refunds"
        ],
        "summary": "Refunds - Metadata Update",
        "description": "Updates the properties of a Refund object. This API can be used to attach a reason for the refund or metadata fields",
        "operationId": "Update Refund Metadata and Reason",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for refund",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefundMetadataUpdateRequest"
              },
              "examples": {
                "Update refund reason": {
                  "value": {
                    "reason": "Paid by mistake"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Refund updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/refunds/{id}": {
      "get": {
        "tags": [
          "Refunds"
        ],
        "summary": "Refunds - Retrieve",
        "description": "Retrieves a Refund. This may be used to get the status of a previously initiated refund",
        "operationId": "Retrieve a Refund",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for refund",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Refund retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "404": {
            "description": "Refund does not exist in our records"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/refunds/list": {
      "post": {
        "tags": [
          "Refunds"
        ],
        "summary": "Refunds - List",
        "description": "To list the refunds associated with a payment_id or with the merchant, if payment_id is not provided",
        "operationId": "List all Refunds",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefundListRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "List of refunds",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundListResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/process-trackers/revenue-recovery-workflow/{revenue_recovery_id}": {
      "get": {
        "tags": [
          "Revenue Recovery"
        ],
        "summary": "Revenue Recovery - Retrieve",
        "description": "Retrieve the Revenue Recovery Payment Info",
        "operationId": "Retrieve Revenue Recovery Info",
        "parameters": [
          {
            "name": "recovery_recovery_id",
            "in": "path",
            "description": "The payment intent id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Revenue Recovery Info Retrieved Successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevenueRecoveryResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource missing"
          },
          "422": {
            "description": "Unprocessable request"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/v2/proxy": {
      "post": {
        "tags": [
          "Proxy"
        ],
        "summary": "Proxy",
        "description": "Create a proxy request",
        "operationId": "Proxy Request",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID for authentication",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProxyRequest"
              },
              "examples": {
                "Create a proxy request": {
                  "value": {
                    "destination_url": "https://api.example.com/payments",
                    "headers": {
                      "Authorization": "Bearer sk_test_example",
                      "Content-Type": "application/json"
                    },
                    "method": "POST",
                    "request_body": {
                      "amount": 6540,
                      "capture": true,
                      "currency": "USD",
                      "reference": "ORD-5023-4E89",
                      "source": {
                        "billing_address": {
                          "address_line1": "123 High St.",
                          "city": "London",
                          "country": "GB"
                        },
                        "expiry_month": "{{$card_exp_month}}",
                        "expiry_year": "{{$card_exp_year}}",
                        "number": "{{$card_number}}",
                        "type": "card"
                      }
                    },
                    "token": "pm_0196ea5a42a67583863d5b1253d62931",
                    "token_type": "PaymentMethodId"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Proxy request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProxyResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v1/proxy": {
      "post": {
        "tags": [
          "Proxy"
        ],
        "summary": "Proxy",
        "description": "Create a proxy request",
        "operationId": "Proxy Request",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID for authentication",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProxyRequest"
              },
              "examples": {
                "Create a proxy request": {
                  "value": {
                    "destination_url": "https://api.example.com/payments",
                    "headers": {
                      "Authorization": "Bearer sk_test_example",
                      "Content-Type": "application/json"
                    },
                    "method": "POST",
                    "request_body": {
                      "amount": 6540,
                      "capture": true,
                      "currency": "USD",
                      "reference": "ORD-5023-4E89",
                      "source": {
                        "billing_address": {
                          "address_line1": "123 High St.",
                          "city": "London",
                          "country": "GB"
                        },
                        "expiry_month": "{{$card_exp_month}}",
                        "expiry_year": "{{$card_exp_year}}",
                        "number": "{{$card_number}}",
                        "type": "card"
                      }
                    },
                    "token": "pm_0196ea5a42a67583863d5b1253d62931",
                    "token_type": "PaymentMethodId"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Proxy request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProxyResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/tokenize": {
      "post": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Tokenization - Create",
        "description": "Create a token with customer_id",
        "operationId": "create_token_vault_api",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenericTokenizationRequest"
              },
              "examples": {
                "Create a token with customer_id": {
                  "value": {
                    "customer_id": "0a_cus_0196d94b9c207333a297cbcf31f2e8c8",
                    "token_request": {
                      "payment_method_data": {
                        "card": {
                          "card_holder_name": "test name"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Token created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericTokenizationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "ephemeral_key": []
          },
          {
            "api_key": []
          }
        ]
      }
    },
    "/v2/tokenize/{id}": {
      "delete": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Tokenization - Delete",
        "description": "Delete a token entry with customer_id and session_id",
        "operationId": "delete_tokenized_data_api",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteTokenDataRequest"
              },
              "examples": {
                "Delete a token entry with customer_id and session_id": {
                  "value": {
                    "customer_id": "0a_cus_0196d94b9c207333a297cbcf31f2e8c8",
                    "session_id": "0a_pms_01926c58bc6e77c09e809964e72af8c8"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Token deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteTokenDataResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "ephemeral_key": []
          },
          {
            "api_key": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AcceptanceType": {
        "type": "string",
        "description": "This is used to indicate if the mandate was accepted online or offline",
        "enum": [
          "online",
          "offline"
        ]
      },
      "AcceptedCountries": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type",
              "list"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "enable_only"
                ]
              },
              "list": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CountryAlpha2"
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "list"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "disable_only"
                ]
              },
              "list": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CountryAlpha2"
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "all_accepted"
                ]
              }
            }
          }
        ],
        "description": "Object to filter the customer countries for which the payment method is displayed",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "AcceptedCurrencies": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type",
              "list"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "enable_only"
                ]
              },
              "list": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Currency"
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "list"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "disable_only"
                ]
              },
              "list": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Currency"
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "all_accepted"
                ]
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "AccountType": {
        "type": "string",
        "description": "Account type for Santander Pix Automatico recurring charges",
        "enum": [
          "current",
          "savings",
          "payment"
        ]
      },
      "AchBankDebitAdditionalData": {
        "type": "object",
        "required": [
          "account_number",
          "routing_number"
        ],
        "properties": {
          "account_number": {
            "type": "string",
            "description": "Partially masked account number for ach bank debit payment",
            "example": "0001****3456"
          },
          "routing_number": {
            "type": "string",
            "description": "Partially masked routing number for ach bank debit payment",
            "example": "110***000"
          },
          "bank_account_holder_name": {
            "type": "string",
            "description": "Bank account's owner name",
            "example": "John Doe",
            "nullable": true
          },
          "bank_name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BankNames"
              }
            ],
            "nullable": true
          },
          "bank_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BankType"
              }
            ],
            "nullable": true
          },
          "bank_holder_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BankHolderType"
              }
            ],
            "nullable": true
          }
        }
      },
      "AchBankTransfer": {
        "type": "object",
        "required": [
          "bank_account_number",
          "bank_routing_number"
        ],
        "properties": {
          "bank_name": {
            "type": "string",
            "description": "Bank name",
            "example": "Deutsche Bank",
            "nullable": true
          },
          "bank_country_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "bank_city": {
            "type": "string",
            "description": "Bank city",
            "example": "California",
            "nullable": true
          },
          "bank_account_number": {
            "type": "string",
            "description": "Bank account number is an unique identifier assigned by a bank to a customer.",
            "example": "000123456"
          },
          "bank_routing_number": {
            "type": "string",
            "description": "[9 digits] Routing number - used in USA for identifying a specific bank.",
            "example": "110000000"
          },
          "account_holder_name": {
            "type": "string",
            "description": "Account holder name",
            "example": "John Doe",
            "nullable": true
          }
        }
      },
      "AchBankTransferAdditionalData": {
        "type": "object",
        "description": "Masked payout method details for ach bank transfer payout method",
        "required": [
          "bank_account_number",
          "bank_routing_number"
        ],
        "properties": {
          "bank_account_number": {
            "type": "string",
            "description": "Partially masked account number for ach bank debit payment",
            "example": "0001****3456"
          },
          "bank_routing_number": {
            "type": "string",
            "description": "Partially masked routing number for ach bank debit payment",
            "example": "110***000"
          },
          "bank_name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BankNames"
              }
            ],
            "nullable": true
          },
          "bank_country_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "bank_city": {
            "type": "string",
            "description": "Bank city",
            "example": "California",
            "nullable": true
          },
          "account_holder_name": {
            "type": "string",
            "description": "Account holder name",
            "example": "John Doe",
            "nullable": true
          }
        }
      },
      "AchBillingDetails": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "The Email ID for ACH billing",
            "example": "example@me.com",
            "nullable": true
          }
        }
      },
      "AchTransfer": {
        "type": "object",
        "required": [
          "account_number",
          "bank_name",
          "routing_number",
          "swift_code"
        ],
        "properties": {
          "account_number": {
            "type": "string",
            "example": "122385736258"
          },
          "bank_name": {
            "type": "string"
          },
          "routing_number": {
            "type": "string",
            "example": "012"
          },
          "swift_code": {
            "type": "string",
            "example": "234"
          }
        }
      },
      "AcknowledgementStatus": {
        "type": "string",
        "enum": [
          "authenticated",
          "failed"
        ]
      },
      "AdditionalMerchantData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "open_banking_recipient_data"
            ],
            "properties": {
              "open_banking_recipient_data": {
                "$ref": "#/components/schemas/MerchantRecipientData"
              }
            }
          }
        ]
      },
      "AdditionalPayoutMethodData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "Card"
            ],
            "properties": {
              "Card": {
                "$ref": "#/components/schemas/CardAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "Bank"
            ],
            "properties": {
              "Bank": {
                "$ref": "#/components/schemas/BankAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "Wallet"
            ],
            "properties": {
              "Wallet": {
                "$ref": "#/components/schemas/WalletAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "BankRedirect"
            ],
            "properties": {
              "BankRedirect": {
                "$ref": "#/components/schemas/BankRedirectAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "Passthrough"
            ],
            "properties": {
              "Passthrough": {
                "$ref": "#/components/schemas/PassthroughAdditionalData"
              }
            }
          }
        ],
        "description": "Masked payout method details for storing in db"
      },
      "Address": {
        "type": "object",
        "properties": {
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDetails"
              }
            ],
            "nullable": true
          },
          "phone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneDetails"
              }
            ],
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "AddressDetails": {
        "type": "object",
        "description": "Address details",
        "properties": {
          "city": {
            "type": "string",
            "description": "The city, district, suburb, town, or village of the address.",
            "example": "New York",
            "nullable": true,
            "maxLength": 50
          },
          "country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "line1": {
            "type": "string",
            "description": "The first line of the street address or P.O. Box.",
            "example": "123, King Street",
            "nullable": true,
            "maxLength": 200
          },
          "line2": {
            "type": "string",
            "description": "The second line of the street address or P.O. Box (e.g., apartment, suite, unit, or building).",
            "example": "Powelson Avenue",
            "nullable": true,
            "maxLength": 50
          },
          "line3": {
            "type": "string",
            "description": "The third line of the street address, if applicable.",
            "example": "Bridgewater",
            "nullable": true,
            "maxLength": 50
          },
          "zip": {
            "type": "string",
            "description": "The zip/postal code for the address",
            "example": "08807",
            "nullable": true,
            "maxLength": 50
          },
          "state": {
            "type": "string",
            "description": "The address state",
            "example": "New York",
            "nullable": true
          },
          "first_name": {
            "type": "string",
            "description": "The first name for the address",
            "example": "John",
            "nullable": true,
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "description": "The last name for the address",
            "example": "Doe",
            "nullable": true,
            "maxLength": 255
          },
          "origin_zip": {
            "type": "string",
            "description": "The zip/postal code of the origin",
            "example": "08807",
            "nullable": true,
            "maxLength": 50
          }
        }
      },
      "AdyenConnectorMetadata": {
        "type": "object",
        "required": [
          "testing"
        ],
        "properties": {
          "testing": {
            "$ref": "#/components/schemas/AdyenTestingData"
          }
        }
      },
      "AdyenSplitData": {
        "type": "object",
        "description": "Fee information for Split Payments to be charged on the payment being collected for Adyen",
        "required": [
          "split_items"
        ],
        "properties": {
          "store": {
            "type": "string",
            "description": "The store identifier",
            "nullable": true
          },
          "split_items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdyenSplitItem"
            },
            "description": "Data for the split items"
          }
        },
        "additionalProperties": false
      },
      "AdyenSplitItem": {
        "type": "object",
        "description": "Data for the split items",
        "required": [
          "amount",
          "split_type",
          "reference"
        ],
        "properties": {
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The amount of the split item",
            "example": 6540
          },
          "split_type": {
            "$ref": "#/components/schemas/AdyenSplitType"
          },
          "account": {
            "type": "string",
            "description": "The unique identifier of the account to which the split amount is allocated.",
            "nullable": true
          },
          "reference": {
            "type": "string",
            "description": "Unique Identifier for the split item"
          },
          "description": {
            "type": "string",
            "description": "Description for the part of the payment that will be allocated to the specified account.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AdyenSplitType": {
        "type": "string",
        "enum": [
          "BalanceAccount",
          "AcquiringFees",
          "PaymentFee",
          "AdyenFees",
          "AdyenCommission",
          "AdyenMarkup",
          "Interchange",
          "SchemeFee",
          "Commission",
          "TopUp",
          "Vat"
        ]
      },
      "AdyenTestingData": {
        "type": "object",
        "required": [
          "holder_name"
        ],
        "properties": {
          "holder_name": {
            "type": "string",
            "description": "Holder name to be sent to Adyen for a card payment(CIT) or a generic payment(MIT). This value overrides the values for card.card_holder_name and applies during both CIT and MIT payment transactions."
          }
        }
      },
      "AirwallexData": {
        "type": "object",
        "properties": {
          "payload": {
            "type": "string",
            "description": "payload required by airwallex",
            "nullable": true
          }
        }
      },
      "AlfamartVoucherData": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "description": "The billing first name for Alfamart",
            "example": "Jane",
            "nullable": true
          },
          "last_name": {
            "type": "string",
            "description": "The billing second name for Alfamart",
            "example": "Doe",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The Email ID for Alfamart",
            "example": "example@me.com",
            "nullable": true
          }
        }
      },
      "AliPayHkRedirection": {
        "type": "object"
      },
      "AliPayQr": {
        "type": "object"
      },
      "AliPayRedirection": {
        "type": "object"
      },
      "AmazonPayDeliveryOptions": {
        "type": "object",
        "required": [
          "id",
          "price",
          "shipping_method",
          "is_default"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Delivery Option identifier"
          },
          "price": {
            "$ref": "#/components/schemas/AmazonPayDeliveryPrice"
          },
          "shipping_method": {
            "$ref": "#/components/schemas/AmazonPayShippingMethod"
          },
          "is_default": {
            "type": "boolean",
            "description": "Specifies if this delivery option is the default"
          }
        }
      },
      "AmazonPayDeliveryPrice": {
        "type": "object",
        "required": [
          "amount",
          "currency_code"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "currency_code": {
            "$ref": "#/components/schemas/Currency"
          }
        }
      },
      "AmazonPayMerchantCredentials": {
        "type": "object",
        "required": [
          "merchant_id",
          "store_id"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "Amazon Pay merchant account identifier"
          },
          "store_id": {
            "type": "string",
            "description": "Amazon Pay store ID"
          }
        }
      },
      "AmazonPayPaymentIntent": {
        "type": "string",
        "enum": [
          "Confirm",
          "Authorize",
          "AuthorizeWithCapture"
        ]
      },
      "AmazonPayRedirectData": {
        "type": "object"
      },
      "AmazonPaySessionTokenData": {
        "type": "object",
        "required": [
          "amazon_pay"
        ],
        "properties": {
          "amazon_pay": {
            "$ref": "#/components/schemas/AmazonPayMerchantCredentials"
          }
        }
      },
      "AmazonPaySessionTokenResponse": {
        "type": "object",
        "required": [
          "merchant_id",
          "ledger_currency",
          "store_id",
          "payment_intent",
          "total_shipping_amount",
          "total_tax_amount",
          "total_base_amount",
          "delivery_options"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "Amazon Pay merchant account identifier"
          },
          "ledger_currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "store_id": {
            "type": "string",
            "description": "Amazon Pay store ID"
          },
          "payment_intent": {
            "$ref": "#/components/schemas/AmazonPayPaymentIntent"
          },
          "total_shipping_amount": {
            "type": "string",
            "description": "The total shipping costs"
          },
          "total_tax_amount": {
            "type": "string",
            "description": "The total tax amount for the order"
          },
          "total_base_amount": {
            "type": "string",
            "description": "The total amount for items in the cart"
          },
          "delivery_options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AmazonPayDeliveryOptions"
            },
            "description": "The delivery options available for the provided address"
          }
        }
      },
      "AmazonPayShippingMethod": {
        "type": "object",
        "required": [
          "shipping_method_name",
          "shipping_method_code"
        ],
        "properties": {
          "shipping_method_name": {
            "type": "string",
            "description": "Name of the shipping method"
          },
          "shipping_method_code": {
            "type": "string",
            "description": "Code of the shipping method"
          }
        }
      },
      "AmazonPayWalletData": {
        "type": "object",
        "required": [
          "checkout_session_id"
        ],
        "properties": {
          "checkout_session_id": {
            "type": "string",
            "description": "Checkout Session identifier"
          }
        }
      },
      "AmountDetails": {
        "type": "object",
        "required": [
          "currency"
        ],
        "properties": {
          "order_amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payment amount. Amount for the payment in the lowest denomination of the currency, (i.e) in cents for USD denomination, in yen for JPY denomination etc. E.g., Pass 100 to charge $1.00 and 1 for 1¥ since ¥ is a zero-decimal currency. Read more about [the Decimal and Non-Decimal Currencies](https://github.com/juspay/hyperswitch/wiki/Decimal-and-Non%E2%80%90Decimal-Currencies)",
            "example": 6540,
            "minimum": 0
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "shipping_cost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "order_tax_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "skip_external_tax_calculation": {
            "$ref": "#/components/schemas/TaxCalculationOverride"
          },
          "skip_surcharge_calculation": {
            "$ref": "#/components/schemas/SurchargeCalculationOverride"
          },
          "surcharge_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "tax_on_surcharge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          }
        }
      },
      "AmountDetailsResponse": {
        "type": "object",
        "required": [
          "order_amount",
          "currency",
          "external_tax_calculation",
          "surcharge_calculation"
        ],
        "properties": {
          "order_amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payment amount. Amount for the payment in the lowest denomination of the currency, (i.e) in cents for USD denomination, in yen for JPY denomination etc. E.g., Pass 100 to charge $1.00 and 1 for 1¥ since ¥ is a zero-decimal currency. Read more about [the Decimal and Non-Decimal Currencies](https://github.com/juspay/hyperswitch/wiki/Decimal-and-Non%E2%80%90Decimal-Currencies)",
            "example": 6540,
            "minimum": 0
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "shipping_cost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "order_tax_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "external_tax_calculation": {
            "$ref": "#/components/schemas/TaxCalculationOverride"
          },
          "surcharge_calculation": {
            "$ref": "#/components/schemas/SurchargeCalculationOverride"
          },
          "surcharge_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "tax_on_surcharge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "amount_captured": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          }
        }
      },
      "AmountDetailsUpdate": {
        "type": "object",
        "properties": {
          "order_amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payment amount. Amount for the payment in the lowest denomination of the currency, (i.e) in cents for USD denomination, in yen for JPY denomination etc. E.g., Pass 100 to charge $1.00 and 1 for 1¥ since ¥ is a zero-decimal currency. Read more about [the Decimal and Non-Decimal Currencies](https://github.com/juspay/hyperswitch/wiki/Decimal-and-Non%E2%80%90Decimal-Currencies)",
            "example": 6540,
            "nullable": true,
            "minimum": 0
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ],
            "nullable": true
          },
          "shipping_cost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "order_tax_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "skip_external_tax_calculation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TaxCalculationOverride"
              }
            ],
            "nullable": true
          },
          "skip_surcharge_calculation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SurchargeCalculationOverride"
              }
            ],
            "nullable": true
          },
          "surcharge_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "tax_on_surcharge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          }
        }
      },
      "AmountFilter": {
        "type": "object",
        "properties": {
          "start_amount": {
            "type": "integer",
            "format": "int64",
            "description": "The start amount to filter list of transactions which are greater than or equal to the start amount",
            "nullable": true
          },
          "end_amount": {
            "type": "integer",
            "format": "int64",
            "description": "The end amount to filter list of transactions which are less than or equal to the end amount",
            "nullable": true
          }
        }
      },
      "AmountInfo": {
        "type": "object",
        "required": [
          "label",
          "amount"
        ],
        "properties": {
          "label": {
            "type": "string",
            "description": "The label must be the name of the merchant."
          },
          "type": {
            "type": "string",
            "description": "A value that indicates whether the line item(Ex: total, tax, discount, or grand total) is final or pending.",
            "nullable": true
          },
          "amount": {
            "type": "string",
            "description": "The total amount for the payment in majot unit string (Ex: 38.02)",
            "example": "38.02"
          }
        }
      },
      "ApiKeyExpiration": {
        "oneOf": [
          {
            "type": "string",
            "enum": [
              "never"
            ]
          },
          {
            "type": "string",
            "format": "date-time"
          }
        ]
      },
      "ApplePayAddressParameters": {
        "type": "string",
        "enum": [
          "postalAddress",
          "phone",
          "email"
        ]
      },
      "ApplePayBillingContactFields": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ApplePayAddressParameters"
        }
      },
      "ApplePayCryptogramData": {
        "type": "object",
        "description": "This struct represents the cryptogram data for Apple Pay transactions",
        "required": [
          "online_payment_cryptogram",
          "eci_indicator"
        ],
        "properties": {
          "online_payment_cryptogram": {
            "type": "string",
            "description": "The online payment cryptogram",
            "example": "A1B2C3D4E5F6G7H8"
          },
          "eci_indicator": {
            "type": "string",
            "description": "The ECI (Electronic Commerce Indicator) value",
            "example": "05"
          }
        }
      },
      "ApplePayDecrypt": {
        "type": "object",
        "required": [
          "dpan",
          "expiry_month",
          "expiry_year",
          "card_holder_name"
        ],
        "properties": {
          "dpan": {
            "type": "string",
            "description": "The dpan number associated with card number",
            "example": "4242424242424242"
          },
          "expiry_month": {
            "type": "string",
            "description": "The card's expiry month"
          },
          "expiry_year": {
            "type": "string",
            "description": "The card's expiry year"
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Doe"
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          }
        }
      },
      "ApplePayDecryptAdditionalData": {
        "type": "object",
        "description": "Masked payout method details for Apple pay decrypt wallet payout method",
        "required": [
          "card_exp_month",
          "card_exp_year",
          "card_holder_name"
        ],
        "properties": {
          "card_exp_month": {
            "type": "string",
            "description": "Card expiry month",
            "example": "01"
          },
          "card_exp_year": {
            "type": "string",
            "description": "Card expiry year",
            "example": "2026"
          },
          "card_holder_name": {
            "type": "string",
            "description": "Card holder name",
            "example": "John Doe"
          }
        }
      },
      "ApplePayPaymentData": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/ApplePayPredecryptData"
          },
          {
            "type": "string",
            "description": "This variant contains the encrypted Apple Pay payment data as a string."
          }
        ],
        "description": "This enum is used to represent the Apple Pay payment data, which can either be encrypted or decrypted."
      },
      "ApplePayPaymentRequest": {
        "type": "object",
        "required": [
          "country_code",
          "currency_code",
          "total"
        ],
        "properties": {
          "country_code": {
            "$ref": "#/components/schemas/CountryAlpha2"
          },
          "currency_code": {
            "$ref": "#/components/schemas/Currency"
          },
          "total": {
            "$ref": "#/components/schemas/AmountInfo"
          },
          "merchant_capabilities": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The list of merchant capabilities(ex: whether capable of 3ds or no-3ds)",
            "nullable": true
          },
          "supported_networks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The list of supported networks",
            "nullable": true
          },
          "merchant_identifier": {
            "type": "string",
            "nullable": true
          },
          "required_billing_contact_fields": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplePayBillingContactFields"
              }
            ],
            "nullable": true
          },
          "required_shipping_contact_fields": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplePayShippingContactFields"
              }
            ],
            "nullable": true
          },
          "recurring_payment_request": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplePayRecurringPaymentRequest"
              }
            ],
            "nullable": true
          }
        }
      },
      "ApplePayPaymentTiming": {
        "type": "string",
        "enum": [
          "immediate",
          "recurring"
        ]
      },
      "ApplePayPredecryptData": {
        "type": "object",
        "description": "This struct represents the decrypted Apple Pay payment data",
        "required": [
          "application_primary_account_number",
          "application_expiration_month",
          "application_expiration_year",
          "payment_data"
        ],
        "properties": {
          "application_primary_account_number": {
            "type": "string",
            "description": "The primary account number",
            "example": "4242424242424242"
          },
          "application_expiration_month": {
            "type": "string",
            "description": "The application expiration date (PAN expiry month)",
            "example": "12"
          },
          "application_expiration_year": {
            "type": "string",
            "description": "The application expiration date (PAN expiry year)",
            "example": "24"
          },
          "payment_data": {
            "$ref": "#/components/schemas/ApplePayCryptogramData"
          }
        }
      },
      "ApplePayRecurringDetails": {
        "type": "object",
        "required": [
          "payment_description",
          "regular_billing",
          "management_url"
        ],
        "properties": {
          "payment_description": {
            "type": "string",
            "description": "A description of the recurring payment that Apple Pay displays to the user in the payment sheet"
          },
          "regular_billing": {
            "$ref": "#/components/schemas/ApplePayRegularBillingDetails"
          },
          "billing_agreement": {
            "type": "string",
            "description": "A localized billing agreement that the payment sheet displays to the user before the user authorizes the payment",
            "nullable": true
          },
          "management_url": {
            "type": "string",
            "description": "A URL to a web page where the user can update or delete the payment method for the recurring payment",
            "example": "https://hyperswitch.io"
          }
        }
      },
      "ApplePayRecurringPaymentRequest": {
        "type": "object",
        "required": [
          "payment_description",
          "regular_billing",
          "management_u_r_l"
        ],
        "properties": {
          "payment_description": {
            "type": "string",
            "description": "A description of the recurring payment that Apple Pay displays to the user in the payment sheet"
          },
          "regular_billing": {
            "$ref": "#/components/schemas/ApplePayRegularBillingRequest"
          },
          "billing_agreement": {
            "type": "string",
            "description": "A localized billing agreement that the payment sheet displays to the user before the user authorizes the payment",
            "nullable": true
          },
          "management_u_r_l": {
            "type": "string",
            "description": "A URL to a web page where the user can update or delete the payment method for the recurring payment",
            "example": "https://hyperswitch.io"
          }
        }
      },
      "ApplePayRedirectData": {
        "type": "object"
      },
      "ApplePayRegularBillingDetails": {
        "type": "object",
        "required": [
          "label"
        ],
        "properties": {
          "label": {
            "type": "string",
            "description": "The label that Apple Pay displays to the user in the payment sheet with the recurring details"
          },
          "recurring_payment_start_date": {
            "type": "string",
            "format": "date-time",
            "description": "The date of the first payment",
            "example": "2023-09-10T23:59:59Z",
            "nullable": true
          },
          "recurring_payment_end_date": {
            "type": "string",
            "format": "date-time",
            "description": "The date of the final payment",
            "example": "2023-09-10T23:59:59Z",
            "nullable": true
          },
          "recurring_payment_interval_unit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecurringPaymentIntervalUnit"
              }
            ],
            "nullable": true
          },
          "recurring_payment_interval_count": {
            "type": "integer",
            "format": "int32",
            "description": "The number of interval units that make up the total payment interval",
            "nullable": true
          }
        }
      },
      "ApplePayRegularBillingRequest": {
        "type": "object",
        "required": [
          "amount",
          "label",
          "payment_timing"
        ],
        "properties": {
          "amount": {
            "type": "string",
            "description": "The amount of the recurring payment",
            "example": "38.02"
          },
          "label": {
            "type": "string",
            "description": "The label that Apple Pay displays to the user in the payment sheet with the recurring details"
          },
          "payment_timing": {
            "$ref": "#/components/schemas/ApplePayPaymentTiming"
          },
          "recurring_payment_start_date": {
            "type": "string",
            "format": "date-time",
            "description": "The date of the first payment",
            "nullable": true
          },
          "recurring_payment_end_date": {
            "type": "string",
            "format": "date-time",
            "description": "The date of the final payment",
            "nullable": true
          },
          "recurring_payment_interval_unit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecurringPaymentIntervalUnit"
              }
            ],
            "nullable": true
          },
          "recurring_payment_interval_count": {
            "type": "integer",
            "format": "int32",
            "description": "The number of interval units that make up the total payment interval",
            "nullable": true
          }
        }
      },
      "ApplePaySessionResponse": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/ThirdPartySdkSessionResponse"
          },
          {
            "description": "We get this session response, when there is no involvement of third party sdk\nThis is the common response most of the times"
          },
          {
            "$ref": "#/components/schemas/NullObject"
          }
        ]
      },
      "ApplePayShippingContactFields": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ApplePayAddressParameters"
        }
      },
      "ApplePayThirdPartySdkData": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ApplePayWalletData": {
        "type": "object",
        "required": [
          "payment_data",
          "payment_method",
          "transaction_identifier"
        ],
        "properties": {
          "payment_data": {
            "$ref": "#/components/schemas/ApplePayPaymentData"
          },
          "payment_method": {
            "$ref": "#/components/schemas/ApplepayPaymentMethod"
          },
          "transaction_identifier": {
            "type": "string",
            "description": "The unique identifier for the transaction"
          }
        }
      },
      "ApplepayConnectorMetadataRequest": {
        "type": "object",
        "properties": {
          "session_token_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionTokenInfo"
              }
            ],
            "nullable": true
          }
        }
      },
      "ApplepayInitiative": {
        "type": "string",
        "enum": [
          "web",
          "ios"
        ]
      },
      "ApplepayPaymentMethod": {
        "type": "object",
        "required": [
          "display_name",
          "network",
          "type"
        ],
        "properties": {
          "display_name": {
            "type": "string",
            "description": "The name to be displayed on Apple Pay button"
          },
          "network": {
            "type": "string",
            "description": "The network of the Apple pay payment method"
          },
          "type": {
            "type": "string",
            "description": "The type of the payment method"
          },
          "card_exp_month": {
            "type": "string",
            "description": "The card's expiry month",
            "example": "12",
            "nullable": true
          },
          "card_exp_year": {
            "type": "string",
            "description": "The card's expiry year",
            "example": "003925",
            "nullable": true
          },
          "auth_code": {
            "type": "string",
            "description": "Unique authorisation code generated for the payment",
            "nullable": true
          }
        }
      },
      "ApplepaySessionTokenResponse": {
        "type": "object",
        "required": [
          "connector",
          "delayed_session_token",
          "sdk_next_action"
        ],
        "properties": {
          "session_token_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplePaySessionResponse"
              }
            ],
            "nullable": true
          },
          "payment_request_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplePayPaymentRequest"
              }
            ],
            "nullable": true
          },
          "connector": {
            "type": "string",
            "description": "The session token is w.r.t this connector"
          },
          "delayed_session_token": {
            "type": "boolean",
            "description": "Identifier for the delayed session response"
          },
          "sdk_next_action": {
            "$ref": "#/components/schemas/SdkNextAction"
          },
          "connector_reference_id": {
            "type": "string",
            "description": "The connector transaction id",
            "nullable": true
          },
          "connector_sdk_public_key": {
            "type": "string",
            "description": "The public key id is to invoke third party sdk",
            "nullable": true
          },
          "connector_merchant_id": {
            "type": "string",
            "description": "The connector merchant id",
            "nullable": true
          }
        }
      },
      "ApplyPaymentMethodDataRequest": {
        "type": "object",
        "required": [
          "payment_methods"
        ],
        "properties": {
          "payment_methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BalanceCheckPaymentMethodData"
            }
          }
        }
      },
      "ApplyPaymentMethodDataSurchargeResponseItem": {
        "type": "object",
        "required": [
          "payment_method_type",
          "payment_method_subtype"
        ],
        "properties": {
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "$ref": "#/components/schemas/PaymentMethodType"
          },
          "surcharge_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SurchargeDetailsResponse"
              }
            ],
            "nullable": true
          }
        }
      },
      "AssociatedPaymentMethodTokenType": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "payment_method_session_token"
                ]
              },
              "data": {
                "type": "string",
                "description": "Payment Method Session Token",
                "example": "token_9wcXDRVkfEtLEsSnYKgQ"
              }
            }
          }
        ],
        "description": "Token type for Payment Method Session associated payment methods",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "AssociatedPaymentMethods": {
        "type": "object",
        "description": "Details of associated payment methods for Payment Methods Session",
        "required": [
          "payment_method_token"
        ],
        "properties": {
          "payment_method_token": {
            "$ref": "#/components/schemas/AssociatedPaymentMethodTokenType"
          }
        }
      },
      "AttemptStatus": {
        "type": "string",
        "description": "The status of the attempt",
        "enum": [
          "started",
          "authentication_failed",
          "router_declined",
          "authentication_pending",
          "authentication_successful",
          "authorized",
          "authorization_failed",
          "charged",
          "authorizing",
          "cod_initiated",
          "voided",
          "voided_post_charge",
          "void_initiated",
          "capture_initiated",
          "capture_failed",
          "void_failed",
          "auto_refunded",
          "partial_charged",
          "partially_authorized",
          "partial_charged_and_chargeable",
          "unresolved",
          "pending",
          "failure",
          "payment_method_awaited",
          "confirmation_awaited",
          "device_data_collection_pending",
          "integrity_failure",
          "expired",
          "capture_review"
        ]
      },
      "AuthenticationConnectorDetails": {
        "type": "object",
        "required": [
          "authentication_connectors",
          "three_ds_requestor_url"
        ],
        "properties": {
          "authentication_connectors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuthenticationConnectors"
            },
            "description": "List of authentication connectors"
          },
          "three_ds_requestor_url": {
            "type": "string",
            "description": "URL of the (customer service) website that will be shown to the shopper in case of technical errors during the 3D Secure 2 process."
          },
          "three_ds_requestor_app_url": {
            "type": "string",
            "description": "Merchant app declaring their URL within the CReq message so that the Authentication app can call the Merchant app after OOB authentication has occurred.",
            "nullable": true
          }
        }
      },
      "AuthenticationConnectors": {
        "type": "string",
        "enum": [
          "threedsecureio",
          "netcetera",
          "gpayments",
          "ctp_mastercard",
          "unified_authentication_service",
          "juspaythreedsserver",
          "ctp_visa",
          "cardinal"
        ]
      },
      "AuthenticationDetails": {
        "type": "object",
        "required": [
          "status"
        ],
        "properties": {
          "status": {
            "$ref": "#/components/schemas/IntentStatus"
          },
          "error": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ErrorDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "AuthenticationStatus": {
        "type": "string",
        "enum": [
          "started",
          "pending",
          "success",
          "failed"
        ]
      },
      "AuthenticationType": {
        "type": "string",
        "description": "Specifies the type of cardholder authentication to be applied for a payment.\n\n- `ThreeDs`: Requests 3D Secure (3DS) authentication. If the card is enrolled, 3DS authentication will be activated, potentially shifting chargeback liability to the issuer.\n- `NoThreeDs`: Indicates that 3D Secure authentication should not be performed. The liability for chargebacks typically remains with the merchant. This is often the default if not specified.\n\nNote: The actual authentication behavior can also be influenced by merchant configuration and specific connector defaults. Some connectors might still enforce 3DS or bypass it regardless of this parameter.",
        "enum": [
          "three_ds",
          "no_three_ds"
        ]
      },
      "AuthorizationStatus": {
        "type": "string",
        "enum": [
          "success",
          "failure",
          "processing",
          "unresolved"
        ]
      },
      "BHNGiftCardDetails": {
        "type": "object",
        "required": [
          "account_number",
          "pin",
          "cvv2",
          "expiration_date"
        ],
        "properties": {
          "account_number": {
            "type": "string",
            "description": "The gift card or account number"
          },
          "pin": {
            "type": "string",
            "description": "The security PIN for gift cards requiring it"
          },
          "cvv2": {
            "type": "string",
            "description": "The CVV2 code for Open Loop/VPLN products"
          },
          "expiration_date": {
            "type": "string",
            "description": "The expiration date in MMYYYY format for Open Loop/VPLN products"
          }
        }
      },
      "BacsBankDebitAdditionalData": {
        "type": "object",
        "required": [
          "account_number",
          "sort_code"
        ],
        "properties": {
          "account_number": {
            "type": "string",
            "description": "Partially masked account number for Bacs payment method",
            "example": "0001****3456"
          },
          "sort_code": {
            "type": "string",
            "description": "Partially masked sort code for Bacs payment method",
            "example": "108800"
          },
          "bank_account_holder_name": {
            "type": "string",
            "description": "Bank account's owner name",
            "example": "John Doe",
            "nullable": true
          }
        }
      },
      "BacsBankTransfer": {
        "type": "object",
        "required": [
          "bank_account_number",
          "bank_sort_code"
        ],
        "properties": {
          "bank_name": {
            "type": "string",
            "description": "Bank name",
            "example": "Deutsche Bank",
            "nullable": true
          },
          "bank_country_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "bank_city": {
            "type": "string",
            "description": "Bank city",
            "example": "California",
            "nullable": true
          },
          "bank_account_number": {
            "type": "string",
            "description": "Bank account number is an unique identifier assigned by a bank to a customer.",
            "example": "000123456"
          },
          "bank_sort_code": {
            "type": "string",
            "description": "[6 digits] Sort Code - used in UK and Ireland for identifying a bank and it's branches.",
            "example": "98-76-54"
          },
          "account_holder_name": {
            "type": "string",
            "description": "Account holder name",
            "example": "John Doe",
            "nullable": true
          }
        }
      },
      "BacsBankTransferAdditionalData": {
        "type": "object",
        "description": "Masked payout method details for bacs bank transfer payout method",
        "required": [
          "bank_sort_code",
          "bank_account_number"
        ],
        "properties": {
          "bank_sort_code": {
            "type": "string",
            "description": "Partially masked sort code for Bacs payment method",
            "example": "108800"
          },
          "bank_account_number": {
            "type": "string",
            "description": "Bank account's owner name",
            "example": "0001****3456"
          },
          "bank_name": {
            "type": "string",
            "description": "Bank name",
            "example": "Deutsche Bank",
            "nullable": true
          },
          "bank_country_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "bank_city": {
            "type": "string",
            "description": "Bank city",
            "example": "California",
            "nullable": true
          },
          "account_holder_name": {
            "type": "string",
            "description": "Account holder name",
            "example": "John Doe",
            "nullable": true
          }
        }
      },
      "BacsBankTransferInstructions": {
        "type": "object",
        "required": [
          "account_holder_name",
          "account_number",
          "sort_code"
        ],
        "properties": {
          "account_holder_name": {
            "type": "string",
            "example": "Jane Doe"
          },
          "account_number": {
            "type": "string",
            "example": "10244123908"
          },
          "sort_code": {
            "type": "string",
            "example": "012"
          }
        }
      },
      "BalanceCheckPaymentMethodData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "gift_card"
            ],
            "properties": {
              "gift_card": {
                "$ref": "#/components/schemas/GiftCardData"
              }
            }
          }
        ]
      },
      "BancontactBankRedirectAdditionalData": {
        "type": "object",
        "properties": {
          "last4": {
            "type": "string",
            "description": "Last 4 digits of the card number",
            "example": "4242",
            "nullable": true
          },
          "card_exp_month": {
            "type": "string",
            "description": "The card's expiry month",
            "example": "12",
            "nullable": true
          },
          "card_exp_year": {
            "type": "string",
            "description": "The card's expiry year",
            "example": "24",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test",
            "nullable": true
          }
        }
      },
      "Bank": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/AchBankTransfer"
          },
          {
            "$ref": "#/components/schemas/BacsBankTransfer"
          },
          {
            "$ref": "#/components/schemas/TrustlyBankTransfer"
          },
          {
            "$ref": "#/components/schemas/SepaBankTransfer"
          },
          {
            "$ref": "#/components/schemas/PixBankTransfer"
          },
          {
            "$ref": "#/components/schemas/OpenBanking"
          }
        ],
        "description": "Deprecated - Use `BankTransfer` instead"
      },
      "BankAdditionalData": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/AchBankTransferAdditionalData"
          },
          {
            "$ref": "#/components/schemas/BacsBankTransferAdditionalData"
          },
          {
            "$ref": "#/components/schemas/TrustlyBankTransferAdditionalData"
          },
          {
            "$ref": "#/components/schemas/SepaBankTransferAdditionalData"
          },
          {
            "$ref": "#/components/schemas/PixBankTransferAdditionalData"
          },
          {
            "$ref": "#/components/schemas/OpenBankingAdditionalData"
          }
        ],
        "description": "Masked payout method details for bank payout method"
      },
      "BankCodeResponse": {
        "type": "object",
        "required": [
          "bank_name",
          "eligible_connectors"
        ],
        "properties": {
          "bank_name": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BankNames"
            }
          },
          "eligible_connectors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "BankDebitAdditionalData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "ach"
            ],
            "properties": {
              "ach": {
                "$ref": "#/components/schemas/AchBankDebitAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bacs"
            ],
            "properties": {
              "bacs": {
                "$ref": "#/components/schemas/BacsBankDebitAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "becs"
            ],
            "properties": {
              "becs": {
                "$ref": "#/components/schemas/BecsBankDebitAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "sepa"
            ],
            "properties": {
              "sepa": {
                "$ref": "#/components/schemas/SepaBankDebitAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "sepa_guarenteed_debit"
            ],
            "properties": {
              "sepa_guarenteed_debit": {
                "$ref": "#/components/schemas/SepaBankDebitAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "eft_debit_order"
            ],
            "properties": {
              "eft_debit_order": {
                "$ref": "#/components/schemas/EftDebitOrderAdditionalData"
              }
            }
          }
        ]
      },
      "BankDebitBilling": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The billing name for bank debits",
            "example": "John Doe",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The billing email for bank debits",
            "example": "example@example.com",
            "nullable": true
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "BankDebitData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "ach_bank_debit"
            ],
            "properties": {
              "ach_bank_debit": {
                "type": "object",
                "description": "Payment Method data for Ach bank debit",
                "required": [
                  "account_number",
                  "routing_number",
                  "bank_account_holder_name",
                  "bank_name",
                  "bank_type",
                  "bank_holder_type"
                ],
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankDebitBilling"
                      }
                    ],
                    "nullable": true
                  },
                  "account_number": {
                    "type": "string",
                    "description": "Account number for ach bank debit payment",
                    "example": "000123456789"
                  },
                  "routing_number": {
                    "type": "string",
                    "description": "Routing number for ach bank debit payment",
                    "example": "110000000"
                  },
                  "bank_account_holder_name": {
                    "type": "string",
                    "example": "John Doe"
                  },
                  "bank_name": {
                    "type": "string",
                    "example": "ACH"
                  },
                  "bank_type": {
                    "type": "string",
                    "example": "Checking"
                  },
                  "bank_holder_type": {
                    "type": "string",
                    "example": "Personal"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "sepa_bank_debit"
            ],
            "properties": {
              "sepa_bank_debit": {
                "type": "object",
                "required": [
                  "iban",
                  "bank_account_holder_name"
                ],
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankDebitBilling"
                      }
                    ],
                    "nullable": true
                  },
                  "iban": {
                    "type": "string",
                    "description": "International bank account number (iban) for SEPA",
                    "example": "DE89370400440532013000"
                  },
                  "bank_account_holder_name": {
                    "type": "string",
                    "description": "Owner name for bank debit",
                    "example": "A. Schneider"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "sepa_guarenteed_bank_debit"
            ],
            "properties": {
              "sepa_guarenteed_bank_debit": {
                "type": "object",
                "required": [
                  "iban",
                  "bank_account_holder_name"
                ],
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankDebitBilling"
                      }
                    ],
                    "nullable": true
                  },
                  "iban": {
                    "type": "string",
                    "description": "International bank account number (iban) for SEPA",
                    "example": "DE89370400440532013000"
                  },
                  "bank_account_holder_name": {
                    "type": "string",
                    "description": "Owner name for bank debit",
                    "example": "A. Schneider"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "becs_bank_debit"
            ],
            "properties": {
              "becs_bank_debit": {
                "type": "object",
                "required": [
                  "account_number",
                  "bsb_number"
                ],
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankDebitBilling"
                      }
                    ],
                    "nullable": true
                  },
                  "account_number": {
                    "type": "string",
                    "description": "Account number for Becs payment method",
                    "example": "000123456"
                  },
                  "bsb_number": {
                    "type": "string",
                    "description": "Bank-State-Branch (bsb) number",
                    "example": "000000"
                  },
                  "bank_account_holder_name": {
                    "type": "string",
                    "description": "Owner name for bank debit",
                    "example": "A. Schneider",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bacs_bank_debit"
            ],
            "properties": {
              "bacs_bank_debit": {
                "type": "object",
                "required": [
                  "account_number",
                  "sort_code",
                  "bank_account_holder_name"
                ],
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankDebitBilling"
                      }
                    ],
                    "nullable": true
                  },
                  "account_number": {
                    "type": "string",
                    "description": "Account number for Bacs payment method",
                    "example": "00012345"
                  },
                  "sort_code": {
                    "type": "string",
                    "description": "Sort code for Bacs payment method",
                    "example": "108800"
                  },
                  "bank_account_holder_name": {
                    "type": "string",
                    "description": "holder name for bank debit",
                    "example": "A. Schneider"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "eft_debit_order"
            ],
            "properties": {
              "eft_debit_order": {
                "type": "object",
                "required": [
                  "account_number"
                ],
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankDebitBilling"
                      }
                    ],
                    "nullable": true
                  },
                  "account_number": {
                    "type": "string",
                    "description": "Account number for eft bank debit payment",
                    "example": "000123456789"
                  },
                  "branch_code": {
                    "type": "string",
                    "description": "Branch code for eft bank debit payment",
                    "example": "110000000",
                    "nullable": true
                  },
                  "bank_account_holder_name": {
                    "type": "string",
                    "example": "John Doe",
                    "nullable": true
                  },
                  "bank_name": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankNames"
                      }
                    ],
                    "nullable": true
                  },
                  "bank_type": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankType"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          }
        ]
      },
      "BankDebitDetail": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "ach"
            ],
            "properties": {
              "ach": {
                "type": "object",
                "required": [
                  "account_number",
                  "routing_number"
                ],
                "properties": {
                  "account_number": {
                    "type": "string"
                  },
                  "routing_number": {
                    "type": "string"
                  },
                  "bank_account_holder_name": {
                    "type": "string",
                    "nullable": true
                  },
                  "bank_type": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankType"
                      }
                    ],
                    "nullable": true
                  },
                  "bank_holder_type": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankHolderType"
                      }
                    ],
                    "nullable": true
                  },
                  "bank_name": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankNames"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          }
        ]
      },
      "BankDebitDetailUpdate": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "ach"
            ],
            "properties": {
              "ach": {
                "type": "object",
                "properties": {
                  "bank_account_holder_name": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          }
        ]
      },
      "BankDebitDetailsPaymentMethod": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "ach_bank_debit"
            ],
            "properties": {
              "ach_bank_debit": {
                "type": "object",
                "required": [
                  "account_number_last4_digits",
                  "routing_number_last4_digits",
                  "bank_name",
                  "bank_type",
                  "bank_holder_type"
                ],
                "properties": {
                  "account_number_last4_digits": {
                    "type": "string"
                  },
                  "routing_number_last4_digits": {
                    "type": "string"
                  },
                  "bank_account_holder_name": {
                    "type": "string",
                    "nullable": true
                  },
                  "bank_name": {
                    "type": "string",
                    "example": "ach"
                  },
                  "bank_type": {
                    "type": "string",
                    "example": "checking"
                  },
                  "bank_holder_type": {
                    "type": "string",
                    "example": "personal"
                  }
                }
              }
            }
          }
        ]
      },
      "BankDebitResponse": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/BankDebitAdditionalData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ]
      },
      "BankDebitTypes": {
        "type": "object",
        "required": [
          "eligible_connectors"
        ],
        "properties": {
          "eligible_connectors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "BankHolderType": {
        "type": "string",
        "enum": [
          "personal",
          "business"
        ]
      },
      "BankNames": {
        "type": "string",
        "description": "Name of banks supported by Hyperswitch",
        "enum": [
          "absa",
          "american_express",
          "affin_bank",
          "agro_bank",
          "alliance_bank",
          "am_bank",
          "bank_of_america",
          "bank_of_china",
          "bank_islam",
          "bank_muamalat",
          "bank_rakyat",
          "bank_simpanan_nasional",
          "barclays",
          "blik_p_s_p",
          "capital_one",
          "chase",
          "citi",
          "cimb_bank",
          "discover",
          "navy_federal_credit_union",
          "pentagon_federal_credit_union",
          "synchrony_bank",
          "wells_fargo",
          "abn_amro",
          "asn_bank",
          "bunq",
          "handelsbanken",
          "hong_leong_bank",
          "hsbc_bank",
          "ing",
          "knab",
          "kuwait_finance_house",
          "moneyou",
          "rabobank",
          "regiobank",
          "revolut",
          "sns_bank",
          "triodos_bank",
          "van_lanschot",
          "arzte_und_apotheker_bank",
          "austrian_anadi_bank_ag",
          "bank_austria",
          "bank99_ag",
          "bankhaus_carl_spangler",
          "bankhaus_schelhammer_und_schattera_ag",
          "bank_millennium",
          "bank_p_e_k_a_o_s_a",
          "bawag_psk_ag",
          "bks_bank_ag",
          "brull_kallmus_bank_ag",
          "btv_vier_lander_bank",
          "capital_bank_grawe_gruppe_ag",
          "ceska_sporitelna",
          "dolomitenbank",
          "easybank_ag",
          "e_platby_v_u_b",
          "erste_bank_und_sparkassen",
          "friesland_bank",
          "hypo_alpeadriabank_international_ag",
          "hypo_noe_lb_fur_niederosterreich_u_wien",
          "hypo_oberosterreich_salzburg_steiermark",
          "hypo_tirol_bank_ag",
          "hypo_vorarlberg_bank_ag",
          "hypo_bank_burgenland_aktiengesellschaft",
          "komercni_banka",
          "m_bank",
          "marchfelder_bank",
          "maybank",
          "oberbank_ag",
          "osterreichische_arzte_und_apothekerbank",
          "ocbc_bank",
          "pay_with_i_n_g",
          "place_z_i_p_k_o",
          "platnosc_online_karta_platnicza",
          "posojilnica_bank_e_gen",
          "postova_banka",
          "public_bank",
          "raiffeisen_bankengruppe_osterreich",
          "rhb_bank",
          "schelhammer_capital_bank_ag",
          "standard_chartered_bank",
          "schoellerbank_ag",
          "sparda_bank_wien",
          "sporo_pay",
          "santander_przelew24",
          "tatra_pay",
          "viamo",
          "volksbank_gruppe",
          "volkskreditbank_ag",
          "vr_bank_braunau",
          "uob_bank",
          "pay_with_alior_bank",
          "banki_spoldzielcze",
          "pay_with_inteligo",
          "b_n_p_paribas_poland",
          "bank_nowy_s_a",
          "credit_agricole",
          "pay_with_b_o_s",
          "pay_with_citi_handlowy",
          "pay_with_plus_bank",
          "toyota_bank",
          "velo_bank",
          "e_transfer_pocztowy24",
          "plus_bank",
          "etransfer_pocztowy24",
          "banki_spbdzielcze",
          "bank_nowy_bfg_sa",
          "getin_bank",
          "blik",
          "noble_pay",
          "idea_bank",
          "envelo_bank",
          "nest_przelew",
          "mbank_mtransfer",
          "inteligo",
          "pbac_z_ipko",
          "bnp_paribas",
          "bank_pekao_sa",
          "volkswagen_bank",
          "alior_bank",
          "boz",
          "bangkok_bank",
          "krungsri_bank",
          "krung_thai_bank",
          "the_siam_commercial_bank",
          "kasikorn_bank",
          "open_bank_success",
          "open_bank_failure",
          "open_bank_cancelled",
          "aib",
          "bank_of_scotland",
          "danske_bank",
          "first_direct",
          "first_trust",
          "halifax",
          "lloyds",
          "monzo",
          "nat_west",
          "nationwide_bank",
          "royal_bank_of_scotland",
          "starling",
          "tsb_bank",
          "tesco_bank",
          "ulster_bank",
          "yoursafe",
          "n26",
          "nationale_nederlanden"
        ]
      },
      "BankRedirect": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "interac"
            ],
            "properties": {
              "interac": {
                "$ref": "#/components/schemas/Interac"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "open_banking_uk"
            ],
            "properties": {
              "open_banking_uk": {
                "$ref": "#/components/schemas/OpenBankingUk"
              }
            }
          }
        ]
      },
      "BankRedirectAdditionalData": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/OpenBankingUkAdditionalData"
          },
          {
            "$ref": "#/components/schemas/InteracAdditionalData"
          }
        ],
        "description": "Masked payout method details for wallet payout method"
      },
      "BankRedirectBilling": {
        "type": "object",
        "required": [
          "billing_name",
          "email"
        ],
        "properties": {
          "billing_name": {
            "type": "string",
            "description": "The name for which billing is issued",
            "example": "John Doe"
          },
          "email": {
            "type": "string",
            "description": "The billing email for bank redirect",
            "example": "example@example.com"
          }
        }
      },
      "BankRedirectData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "bancontact_card"
            ],
            "properties": {
              "bancontact_card": {
                "type": "object",
                "required": [
                  "card_number",
                  "card_exp_month",
                  "card_exp_year",
                  "card_holder_name"
                ],
                "properties": {
                  "card_number": {
                    "type": "string",
                    "description": "The card number",
                    "example": "4242424242424242"
                  },
                  "card_exp_month": {
                    "type": "string",
                    "description": "The card's expiry month",
                    "example": "24"
                  },
                  "card_exp_year": {
                    "type": "string",
                    "description": "The card's expiry year",
                    "example": "24"
                  },
                  "card_holder_name": {
                    "type": "string",
                    "description": "The card holder's name",
                    "example": "John Test"
                  },
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankRedirectBilling"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bizum"
            ],
            "properties": {
              "bizum": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "blik"
            ],
            "properties": {
              "blik": {
                "type": "object",
                "properties": {
                  "blik_code": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "eps"
            ],
            "properties": {
              "eps": {
                "type": "object",
                "required": [
                  "bank_name",
                  "country"
                ],
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankRedirectBilling"
                      }
                    ],
                    "nullable": true
                  },
                  "bank_name": {
                    "$ref": "#/components/schemas/BankNames"
                  },
                  "country": {
                    "$ref": "#/components/schemas/CountryAlpha2"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "giropay"
            ],
            "properties": {
              "giropay": {
                "type": "object",
                "required": [
                  "country"
                ],
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankRedirectBilling"
                      }
                    ],
                    "nullable": true
                  },
                  "bank_account_bic": {
                    "type": "string",
                    "description": "Bank account bic code",
                    "nullable": true
                  },
                  "bank_account_iban": {
                    "type": "string",
                    "description": "Bank account iban",
                    "nullable": true
                  },
                  "country": {
                    "$ref": "#/components/schemas/CountryAlpha2"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "ideal"
            ],
            "properties": {
              "ideal": {
                "type": "object",
                "required": [
                  "bank_name",
                  "country"
                ],
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankRedirectBilling"
                      }
                    ],
                    "nullable": true
                  },
                  "bank_name": {
                    "$ref": "#/components/schemas/BankNames"
                  },
                  "country": {
                    "$ref": "#/components/schemas/CountryAlpha2"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "interac"
            ],
            "properties": {
              "interac": {
                "type": "object",
                "properties": {
                  "country": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/CountryAlpha2"
                      }
                    ],
                    "nullable": true
                  },
                  "email": {
                    "type": "string",
                    "example": "john.doe@example.com",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "online_banking_czech_republic"
            ],
            "properties": {
              "online_banking_czech_republic": {
                "type": "object",
                "required": [
                  "issuer"
                ],
                "properties": {
                  "issuer": {
                    "$ref": "#/components/schemas/BankNames"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "online_banking_finland"
            ],
            "properties": {
              "online_banking_finland": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "online_banking_poland"
            ],
            "properties": {
              "online_banking_poland": {
                "type": "object",
                "required": [
                  "issuer"
                ],
                "properties": {
                  "issuer": {
                    "$ref": "#/components/schemas/BankNames"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "online_banking_slovakia"
            ],
            "properties": {
              "online_banking_slovakia": {
                "type": "object",
                "required": [
                  "issuer"
                ],
                "properties": {
                  "issuer": {
                    "$ref": "#/components/schemas/BankNames"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "open_banking_uk"
            ],
            "properties": {
              "open_banking_uk": {
                "type": "object",
                "required": [
                  "issuer",
                  "country"
                ],
                "properties": {
                  "issuer": {
                    "$ref": "#/components/schemas/BankNames"
                  },
                  "country": {
                    "$ref": "#/components/schemas/CountryAlpha2"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "przelewy24"
            ],
            "properties": {
              "przelewy24": {
                "type": "object",
                "properties": {
                  "bank_name": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankNames"
                      }
                    ],
                    "nullable": true
                  },
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankRedirectBilling"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "sofort"
            ],
            "properties": {
              "sofort": {
                "type": "object",
                "required": [
                  "country"
                ],
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankRedirectBilling"
                      }
                    ],
                    "nullable": true
                  },
                  "country": {
                    "$ref": "#/components/schemas/CountryAlpha2"
                  },
                  "preferred_language": {
                    "type": "string",
                    "description": "The preferred language",
                    "example": "en",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "trustly"
            ],
            "properties": {
              "trustly": {
                "type": "object",
                "properties": {
                  "country": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/CountryAlpha2"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "online_banking_fpx"
            ],
            "properties": {
              "online_banking_fpx": {
                "type": "object",
                "required": [
                  "issuer"
                ],
                "properties": {
                  "issuer": {
                    "$ref": "#/components/schemas/BankNames"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "online_banking_thailand"
            ],
            "properties": {
              "online_banking_thailand": {
                "type": "object",
                "required": [
                  "issuer"
                ],
                "properties": {
                  "issuer": {
                    "$ref": "#/components/schemas/BankNames"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "local_bank_redirect"
            ],
            "properties": {
              "local_bank_redirect": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "eft"
            ],
            "properties": {
              "eft": {
                "type": "object",
                "required": [
                  "provider"
                ],
                "properties": {
                  "provider": {
                    "type": "string",
                    "description": "The preferred eft provider",
                    "example": "ozow"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "open_banking"
            ],
            "properties": {
              "open_banking": {
                "type": "object"
              }
            }
          }
        ]
      },
      "BankRedirectDetail": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "bancontact_card"
            ],
            "properties": {
              "bancontact_card": {
                "type": "object"
              }
            }
          }
        ]
      },
      "BankRedirectDetails": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "BancontactCard"
            ],
            "properties": {
              "BancontactCard": {
                "$ref": "#/components/schemas/BancontactBankRedirectAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "Blik"
            ],
            "properties": {
              "Blik": {
                "$ref": "#/components/schemas/BlikBankRedirectAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "Giropay"
            ],
            "properties": {
              "Giropay": {
                "$ref": "#/components/schemas/GiropayBankRedirectAdditionalData"
              }
            }
          }
        ]
      },
      "BankRedirectResponse": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/BankRedirectDetails"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "properties": {
              "bank_name": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BankNames"
                  }
                ],
                "nullable": true
              },
              "interac": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InteracPaymentMethod"
                  }
                ],
                "nullable": true
              }
            }
          }
        ]
      },
      "BankTransfer": {
        "oneOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/AchBankTransfer"
              },
              {
                "type": "object",
                "required": [
                  "payout_method_type"
                ],
                "properties": {
                  "payout_method_type": {
                    "type": "string",
                    "enum": [
                      "ach"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/BacsBankTransfer"
              },
              {
                "type": "object",
                "required": [
                  "payout_method_type"
                ],
                "properties": {
                  "payout_method_type": {
                    "type": "string",
                    "enum": [
                      "bacs"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/SepaBankTransfer"
              },
              {
                "type": "object",
                "required": [
                  "payout_method_type"
                ],
                "properties": {
                  "payout_method_type": {
                    "type": "string",
                    "enum": [
                      "sepa"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PixAccountBankTransfer"
              },
              {
                "type": "object",
                "required": [
                  "payout_method_type"
                ],
                "properties": {
                  "payout_method_type": {
                    "type": "string",
                    "enum": [
                      "pix"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PixKeyBankTransfer"
              },
              {
                "type": "object",
                "required": [
                  "payout_method_type"
                ],
                "properties": {
                  "payout_method_type": {
                    "type": "string",
                    "enum": [
                      "pix_key"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PixEmvBankTransfer"
              },
              {
                "type": "object",
                "required": [
                  "payout_method_type"
                ],
                "properties": {
                  "payout_method_type": {
                    "type": "string",
                    "enum": [
                      "pix_emv"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/TrustlyBankTransferData"
              },
              {
                "type": "object",
                "required": [
                  "payout_method_type"
                ],
                "properties": {
                  "payout_method_type": {
                    "type": "string",
                    "enum": [
                      "trustly"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/OpenBanking"
              },
              {
                "type": "object",
                "required": [
                  "payout_method_type"
                ],
                "properties": {
                  "payout_method_type": {
                    "type": "string",
                    "enum": [
                      "open_banking"
                    ]
                  }
                }
              }
            ]
          }
        ],
        "discriminator": {
          "propertyName": "payout_method_type"
        }
      },
      "BankTransferAdditionalData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "ach"
            ],
            "properties": {
              "ach": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "sepa"
            ],
            "properties": {
              "sepa": {
                "$ref": "#/components/schemas/SepaBankTransferPaymentAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bacs"
            ],
            "properties": {
              "bacs": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "multibanco"
            ],
            "properties": {
              "multibanco": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "permata"
            ],
            "properties": {
              "permata": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bca"
            ],
            "properties": {
              "bca": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bni_va"
            ],
            "properties": {
              "bni_va": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bri_va"
            ],
            "properties": {
              "bri_va": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "cimb_va"
            ],
            "properties": {
              "cimb_va": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "danamon_va"
            ],
            "properties": {
              "danamon_va": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "mandiri_va"
            ],
            "properties": {
              "mandiri_va": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pix"
            ],
            "properties": {
              "pix": {
                "$ref": "#/components/schemas/PixBankTransferAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pix_emv"
            ],
            "properties": {
              "pix_emv": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pix_qr"
            ],
            "properties": {
              "pix_qr": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pix_automatico_push"
            ],
            "properties": {
              "pix_automatico_push": {
                "$ref": "#/components/schemas/PixAutomaticoPushAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pix_automatico_qr"
            ],
            "properties": {
              "pix_automatico_qr": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pse"
            ],
            "properties": {
              "pse": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "local_bank_transfer"
            ],
            "properties": {
              "local_bank_transfer": {
                "$ref": "#/components/schemas/LocalBankTransferAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "instant_bank_transfer"
            ],
            "properties": {
              "instant_bank_transfer": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "instant_bank_transfer_finland"
            ],
            "properties": {
              "instant_bank_transfer_finland": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "instant_bank_transfer_poland"
            ],
            "properties": {
              "instant_bank_transfer_poland": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "indonesian_bank_transfer"
            ],
            "properties": {
              "indonesian_bank_transfer": {
                "type": "object",
                "properties": {
                  "bank_name": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankNames"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          }
        ]
      },
      "BankTransferData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "ach_bank_transfer"
            ],
            "properties": {
              "ach_bank_transfer": {
                "type": "object",
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/AchBillingDetails"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "sepa_bank_transfer"
            ],
            "properties": {
              "sepa_bank_transfer": {
                "type": "object",
                "required": [
                  "country"
                ],
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/SepaAndBacsBillingDetails"
                      }
                    ],
                    "nullable": true
                  },
                  "country": {
                    "$ref": "#/components/schemas/CountryAlpha2"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bacs_bank_transfer"
            ],
            "properties": {
              "bacs_bank_transfer": {
                "type": "object",
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/SepaAndBacsBillingDetails"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "multibanco_bank_transfer"
            ],
            "properties": {
              "multibanco_bank_transfer": {
                "type": "object",
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/MultibancoBillingDetails"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "permata_bank_transfer"
            ],
            "properties": {
              "permata_bank_transfer": {
                "type": "object",
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/DokuBillingDetails"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bca_bank_transfer"
            ],
            "properties": {
              "bca_bank_transfer": {
                "type": "object",
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/DokuBillingDetails"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bni_va_bank_transfer"
            ],
            "properties": {
              "bni_va_bank_transfer": {
                "type": "object",
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/DokuBillingDetails"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bri_va_bank_transfer"
            ],
            "properties": {
              "bri_va_bank_transfer": {
                "type": "object",
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/DokuBillingDetails"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "cimb_va_bank_transfer"
            ],
            "properties": {
              "cimb_va_bank_transfer": {
                "type": "object",
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/DokuBillingDetails"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "danamon_va_bank_transfer"
            ],
            "properties": {
              "danamon_va_bank_transfer": {
                "type": "object",
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/DokuBillingDetails"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "mandiri_va_bank_transfer"
            ],
            "properties": {
              "mandiri_va_bank_transfer": {
                "type": "object",
                "properties": {
                  "billing_details": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/DokuBillingDetails"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pix"
            ],
            "properties": {
              "pix": {
                "type": "object",
                "properties": {
                  "pix_key": {
                    "type": "string",
                    "description": "Unique key for pix transfer",
                    "example": "a1f4102e-a446-4a57-bcce-6fa48899c1d1",
                    "nullable": true
                  },
                  "cpf": {
                    "type": "string",
                    "description": "CPF is a Brazilian tax identification number",
                    "example": "10599054689",
                    "nullable": true
                  },
                  "cnpj": {
                    "type": "string",
                    "description": "CNPJ is a Brazilian company tax identification number",
                    "example": "74469027417312",
                    "nullable": true
                  },
                  "source_bank_account_id": {
                    "type": "string",
                    "description": "Source bank account number",
                    "example": "8b******-****-****-****-*******08bc5",
                    "nullable": true
                  },
                  "destination_bank_account_id": {
                    "type": "string",
                    "description": "Partially masked destination bank account number _Deprecated: Will be removed in next stable release._",
                    "deprecated": true,
                    "example": "********-****-460b-****-f23b4e71c97b",
                    "nullable": true
                  },
                  "expiry_date": {
                    "type": "string",
                    "description": "The expiration date and time for the Pix QR code in ISO 8601 format",
                    "example": "2025-09-10T10:11:12Z",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pix_emv"
            ],
            "properties": {
              "pix_emv": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pix_qr"
            ],
            "properties": {
              "pix_qr": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pix_automatico_qr"
            ],
            "properties": {
              "pix_automatico_qr": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pix_automatico_push"
            ],
            "properties": {
              "pix_automatico_push": {
                "type": "object",
                "properties": {
                  "account_number": {
                    "type": "string",
                    "description": "Account number for Pix Automatico Push payment method",
                    "example": "550689",
                    "nullable": true
                  },
                  "branch_code": {
                    "type": "string",
                    "description": "Branch code for Pix Automatico Push payment method",
                    "example": "2569",
                    "nullable": true
                  },
                  "bank_identifier": {
                    "type": "string",
                    "description": "Bank identifier for Pix Automatico Push payment method",
                    "example": "91193552",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pse"
            ],
            "properties": {
              "pse": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "local_bank_transfer"
            ],
            "properties": {
              "local_bank_transfer": {
                "type": "object",
                "properties": {
                  "bank_code": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "instant_bank_transfer"
            ],
            "properties": {
              "instant_bank_transfer": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "instant_bank_transfer_finland"
            ],
            "properties": {
              "instant_bank_transfer_finland": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "instant_bank_transfer_poland"
            ],
            "properties": {
              "instant_bank_transfer_poland": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "indonesian_bank_transfer"
            ],
            "properties": {
              "indonesian_bank_transfer": {
                "type": "object",
                "properties": {
                  "bank_name": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BankNames"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          }
        ]
      },
      "BankTransferInstructions": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "doku_bank_transfer_instructions"
            ],
            "properties": {
              "doku_bank_transfer_instructions": {
                "$ref": "#/components/schemas/DokuBankTransferInstructions"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "ach_credit_transfer"
            ],
            "properties": {
              "ach_credit_transfer": {
                "$ref": "#/components/schemas/AchTransfer"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "sepa_bank_instructions"
            ],
            "properties": {
              "sepa_bank_instructions": {
                "$ref": "#/components/schemas/SepaBankTransferInstructions"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bacs_bank_instructions"
            ],
            "properties": {
              "bacs_bank_instructions": {
                "$ref": "#/components/schemas/BacsBankTransferInstructions"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "multibanco"
            ],
            "properties": {
              "multibanco": {
                "$ref": "#/components/schemas/MultibancoTransferInstructions"
              }
            }
          }
        ]
      },
      "BankTransferNextStepsData": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BankTransferInstructions"
          },
          {
            "type": "object",
            "properties": {
              "receiver": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ReceiverDetails"
                  }
                ],
                "nullable": true
              }
            }
          }
        ]
      },
      "BankTransferResponse": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/BankTransferAdditionalData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ]
      },
      "BankTransferTypes": {
        "type": "object",
        "required": [
          "eligible_connectors"
        ],
        "properties": {
          "eligible_connectors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The list of eligible connectors for a given payment experience",
            "example": [
              "stripe",
              "adyen"
            ]
          }
        }
      },
      "BankType": {
        "type": "string",
        "enum": [
          "checking",
          "savings"
        ]
      },
      "BecsBankDebitAdditionalData": {
        "type": "object",
        "required": [
          "account_number",
          "bsb_number"
        ],
        "properties": {
          "account_number": {
            "type": "string",
            "description": "Partially masked account number for Becs payment method",
            "example": "0001****3456"
          },
          "bsb_number": {
            "type": "string",
            "description": "Bank-State-Branch (bsb) number",
            "example": "000000"
          },
          "bank_account_holder_name": {
            "type": "string",
            "description": "Bank account's owner name",
            "example": "John Doe",
            "nullable": true
          }
        }
      },
      "BeneficiaryDetails": {
        "type": "object",
        "description": "Represents the end-recipient of a payout or fund transfer.",
        "properties": {
          "name": {
            "type": "string",
            "description": "The full legal name of the individual or entity receiving the funds.",
            "example": "João da Silva",
            "nullable": true
          },
          "document_number": {
            "type": "string",
            "description": "The customer's unique identification number (e.g., Tax ID, SSN, Passport Number).\nUsed by processors to verify the identity of the recipient and prevent fraud.\nLength of the document number depends upon the document_type.\nFor CPF/CNPJ it is typically 11/14 digits long.",
            "example": "9615865832",
            "nullable": true
          },
          "document_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentKind"
              }
            ],
            "nullable": true
          }
        }
      },
      "BillingConnectorAdditionalCardInfo": {
        "type": "object",
        "required": [
          "card_network"
        ],
        "properties": {
          "card_network": {
            "$ref": "#/components/schemas/CardNetwork"
          },
          "card_issuer": {
            "type": "string",
            "description": "Card Issuer",
            "example": "JP MORGAN CHASE",
            "nullable": true
          }
        }
      },
      "BillingConnectorPaymentDetails": {
        "type": "object",
        "required": [
          "payment_processor_token",
          "connector_customer_id"
        ],
        "properties": {
          "payment_processor_token": {
            "type": "string",
            "description": "Payment Processor Token to process the Revenue Recovery Payment"
          },
          "connector_customer_id": {
            "type": "string",
            "description": "Billing Connector's Customer Id"
          }
        }
      },
      "BillingConnectorPaymentMethodDetails": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "card"
                ]
              },
              "value": {
                "$ref": "#/components/schemas/BillingConnectorAdditionalCardInfo"
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "BlikBankRedirectAdditionalData": {
        "type": "object",
        "properties": {
          "blik_code": {
            "type": "string",
            "example": "3GD9MO",
            "nullable": true
          }
        }
      },
      "BlockReasonCode": {
        "type": "string",
        "description": "A stable, machine-readable identifier for the reason a payment was blocked.",
        "enum": [
          "blocked_bin",
          "blocked_card_info_unavailable",
          "blocked_card_type",
          "blocked_card_network",
          "blocked_funding_source",
          "blocked_card_subtype",
          "blocked_card_segment_type",
          "blocked_virtual_card",
          "blocked_non_reloadable_prepaid_card",
          "blocked_gambling_card",
          "blocked_issuer_country",
          "blocked_issuer"
        ]
      },
      "BlocklistDataKind": {
        "type": "string",
        "enum": [
          "payment_method",
          "card_bin",
          "extended_card_bin"
        ]
      },
      "BlocklistRequest": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "card_bin"
                ]
              },
              "data": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "fingerprint"
                ]
              },
              "data": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "extended_card_bin"
                ]
              },
              "data": {
                "type": "string"
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "BlocklistResponse": {
        "type": "object",
        "required": [
          "fingerprint_id",
          "data_kind",
          "created_at"
        ],
        "properties": {
          "fingerprint_id": {
            "type": "string"
          },
          "data_kind": {
            "$ref": "#/components/schemas/BlocklistDataKind"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BoletoAdditionalDetails": {
        "type": "object",
        "properties": {
          "due_date": {
            "type": "string",
            "description": "Due Date for the Boleto",
            "example": "2026-12-31",
            "nullable": true
          },
          "document_kind": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoletoDocumentKind"
              }
            ],
            "nullable": true
          },
          "payment_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoletoPaymentType"
              }
            ],
            "nullable": true
          },
          "covenant_code": {
            "type": "string",
            "example": "3568253",
            "nullable": true
          },
          "pix_key": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PixKey"
              }
            ],
            "nullable": true
          },
          "discount_rules": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SantanderPaymentDiscountRules"
              }
            ],
            "nullable": true
          },
          "penalties": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PenaltyRules"
              }
            ],
            "nullable": true
          },
          "collection_actions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CollectionActions"
              }
            ],
            "nullable": true
          },
          "payment_constraints": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoletoPaymentTypeConstraints"
              }
            ],
            "nullable": true
          },
          "beneficiary": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BeneficiaryDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "BoletoDocumentKind": {
        "type": "string",
        "enum": [
          "commercial_invoice",
          "service_invoice",
          "promissory_note",
          "rural_promissory_note",
          "receipt",
          "insurance_policy",
          "credit_card_invoice",
          "proposal",
          "deposit_or_funding",
          "cheque",
          "direct_promissory_note",
          "other"
        ]
      },
      "BoletoPaymentType": {
        "type": "string",
        "enum": [
          "fixed_amount",
          "flexible_amount",
          "installment"
        ]
      },
      "BoletoPaymentTypeConstraints": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "fixed_amount"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "details"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "flexible_amount"
                ]
              },
              "details": {
                "$ref": "#/components/schemas/FlexibleAmountDetails"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "details"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "installment"
                ]
              },
              "details": {
                "$ref": "#/components/schemas/InstallmentDetails"
              }
            }
          }
        ],
        "description": "Represents the rules for legal protest (official debt registration) for non-payment, including the type of protest and the number of days after which the protest is initiated.",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "BoletoVoucherData": {
        "type": "object",
        "properties": {
          "social_security_number": {
            "type": "string",
            "description": "The shopper's social security number (CPF or CNPJ)",
            "nullable": true
          },
          "bank_number": {
            "type": "string",
            "description": "The shopper's bank account number associated with the boleto",
            "nullable": true
          },
          "document_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentKind"
              }
            ],
            "nullable": true
          },
          "fine_percentage": {
            "type": "string",
            "description": "The fine percentage charged if payment is overdue",
            "nullable": true
          },
          "fine_quantity_days": {
            "type": "string",
            "description": "The number of days after the due date when the fine is applied",
            "nullable": true
          },
          "interest_percentage": {
            "type": "string",
            "description": "The interest percentage charged on late payments",
            "nullable": true
          },
          "write_off_quantity_days": {
            "type": "string",
            "description": "The number of days after which the boleto is written off (canceled)",
            "nullable": true
          },
          "messages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Custom messages or instructions to display on the boleto",
            "nullable": true
          },
          "due_date": {
            "type": "string",
            "format": "date",
            "example": "2025-08-22",
            "nullable": true
          }
        }
      },
      "BraintreeData": {
        "type": "object",
        "required": [
          "merchant_account_id",
          "merchant_config_currency"
        ],
        "properties": {
          "merchant_account_id": {
            "type": "string",
            "description": "Information about the merchant_account_id that merchant wants to specify at connector level."
          },
          "merchant_config_currency": {
            "type": "string",
            "description": "Information about the merchant_config_currency that merchant wants to specify at connector level."
          }
        }
      },
      "BrowserInformation": {
        "type": "object",
        "description": "Browser information to be used for 3DS 2.0",
        "properties": {
          "color_depth": {
            "type": "integer",
            "format": "int32",
            "description": "Color depth supported by the browser",
            "nullable": true,
            "minimum": 0
          },
          "java_enabled": {
            "type": "boolean",
            "description": "Whether java is enabled in the browser",
            "nullable": true
          },
          "java_script_enabled": {
            "type": "boolean",
            "description": "Whether javascript is enabled in the browser",
            "nullable": true
          },
          "language": {
            "type": "string",
            "description": "Language supported",
            "nullable": true
          },
          "screen_height": {
            "type": "integer",
            "format": "int32",
            "description": "The screen height in pixels",
            "nullable": true,
            "minimum": 0
          },
          "screen_width": {
            "type": "integer",
            "format": "int32",
            "description": "The screen width in pixels",
            "nullable": true,
            "minimum": 0
          },
          "time_zone": {
            "type": "integer",
            "format": "int32",
            "description": "Time zone of the client",
            "nullable": true
          },
          "ip_address": {
            "type": "string",
            "description": "Ip address of the client",
            "nullable": true
          },
          "accept_header": {
            "type": "string",
            "description": "List of headers that are accepted",
            "example": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
            "nullable": true
          },
          "user_agent": {
            "type": "string",
            "description": "User-agent of the browser",
            "nullable": true
          },
          "os_type": {
            "type": "string",
            "description": "The os type of the client device",
            "nullable": true
          },
          "os_version": {
            "type": "string",
            "description": "The os version of the client device",
            "nullable": true
          },
          "device_model": {
            "type": "string",
            "description": "The device model of the client",
            "nullable": true
          },
          "accept_language": {
            "type": "string",
            "description": "Accept-language of the browser",
            "nullable": true
          },
          "referer": {
            "type": "string",
            "description": "Identifier of the source that initiated the request.",
            "nullable": true
          }
        }
      },
      "BusinessCollectLinkConfig": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BusinessGenericLinkConfig"
          },
          {
            "type": "object",
            "required": [
              "enabled_payment_methods"
            ],
            "properties": {
              "enabled_payment_methods": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EnabledPaymentMethod"
                },
                "description": "List of payment methods shown on collect UI",
                "example": "[{\"payment_method\": \"bank_transfer\", \"payment_method_types\": [\"ach\", \"bacs\", \"sepa\"]}]"
              }
            }
          }
        ]
      },
      "BusinessGenericLinkConfig": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GenericLinkUiConfig"
          },
          {
            "type": "object",
            "required": [
              "allowed_domains"
            ],
            "properties": {
              "domain_name": {
                "type": "string",
                "description": "Custom domain name to be used for hosting the link",
                "nullable": true
              },
              "allowed_domains": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "A list of allowed domains (glob patterns) where this link can be embedded / opened from",
                "uniqueItems": true
              }
            }
          }
        ]
      },
      "BusinessPaymentLinkConfig": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentLinkConfigRequest"
          },
          {
            "type": "object",
            "properties": {
              "domain_name": {
                "type": "string",
                "description": "Custom domain name to be used for hosting the link in your own domain",
                "nullable": true
              },
              "business_specific_configs": {
                "type": "object",
                "description": "list of configs for multi theme setup",
                "additionalProperties": {
                  "$ref": "#/components/schemas/PaymentLinkConfigRequest"
                },
                "nullable": true
              },
              "allowed_domains": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "A list of allowed domains (glob patterns) where this link can be embedded / opened from",
                "uniqueItems": true,
                "nullable": true
              },
              "branding_visibility": {
                "type": "boolean",
                "description": "Toggle for HyperSwitch branding visibility",
                "nullable": true
              }
            }
          }
        ]
      },
      "BusinessPayoutLinkConfig": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BusinessGenericLinkConfig"
          },
          {
            "type": "object",
            "properties": {
              "form_layout": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UIWidgetFormLayout"
                  }
                ],
                "nullable": true
              },
              "payout_test_mode": {
                "type": "boolean",
                "description": "Allows for removing any validations / pre-requisites which are necessary in a production environment",
                "default": false,
                "nullable": true
              }
            }
          }
        ]
      },
      "CalculationType": {
        "type": "string",
        "description": "Defines how the payment amount is calculated for penalties or discounts, either as a percentage or as a flat amount.",
        "enum": [
          "percentage",
          "flat_amount"
        ]
      },
      "CaptureMethod": {
        "type": "string",
        "description": "Specifies how the payment is captured.\n- `automatic`: Funds are captured immediately after successful authorization. This is the default behavior if the field is omitted.\n- `manual`: Funds are authorized but not captured. A separate request to the `/payments/{payment_id}/capture` endpoint is required to capture the funds.",
        "enum": [
          "automatic",
          "manual",
          "manual_multiple",
          "scheduled",
          "sequential_automatic"
        ]
      },
      "CaptureResponse": {
        "type": "object",
        "required": [
          "capture_id",
          "status",
          "amount",
          "connector",
          "authorized_attempt_id",
          "capture_sequence"
        ],
        "properties": {
          "capture_id": {
            "type": "string",
            "description": "A unique identifier for this specific capture operation."
          },
          "status": {
            "$ref": "#/components/schemas/CaptureStatus"
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The capture amount. Amount for the payment in lowest denomination of the currency. (i.e) in cents for USD denomination, in paisa for INR denomination etc.,",
            "example": 6540
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ],
            "nullable": true
          },
          "connector": {
            "type": "string",
            "description": "The name of the payment connector that processed this capture."
          },
          "authorized_attempt_id": {
            "type": "string",
            "description": "The ID of the payment attempt that was successfully authorized and subsequently captured by this operation."
          },
          "connector_capture_id": {
            "type": "string",
            "description": "A unique identifier for this capture provided by the connector",
            "nullable": true
          },
          "capture_sequence": {
            "type": "integer",
            "format": "int32",
            "description": "Sequence number of this capture, in the series of captures made for the parent attempt"
          },
          "error_message": {
            "type": "string",
            "description": "A human-readable message from the connector explaining why this capture operation failed, if applicable.",
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "description": "The error code returned by the connector if this capture operation failed. This code is connector-specific.",
            "nullable": true
          },
          "error_reason": {
            "type": "string",
            "description": "A more detailed reason from the connector explaining the capture failure, if available.",
            "nullable": true
          },
          "reference_id": {
            "type": "string",
            "description": "The connector's own reference or transaction ID for this specific capture operation. Useful for reconciliation.",
            "nullable": true
          }
        }
      },
      "CaptureStatus": {
        "type": "string",
        "enum": [
          "started",
          "charged",
          "pending",
          "failed"
        ]
      },
      "Card": {
        "type": "object",
        "required": [
          "card_number",
          "card_exp_month",
          "card_exp_year",
          "card_holder_name",
          "card_cvc"
        ],
        "properties": {
          "card_number": {
            "type": "string",
            "description": "The card number",
            "example": "4242424242424242"
          },
          "card_exp_month": {
            "type": "string",
            "description": "The card's expiry month",
            "example": "24"
          },
          "card_exp_year": {
            "type": "string",
            "description": "The card's expiry year",
            "example": "24"
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test"
          },
          "card_cvc": {
            "type": "string",
            "description": "The CVC number for the card",
            "example": "242"
          },
          "card_issuer": {
            "type": "string",
            "description": "The name of the issuer of card",
            "example": "chase",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "example": "CREDIT",
            "nullable": true
          },
          "card_issuing_country": {
            "type": "string",
            "example": "INDIA",
            "nullable": true
          },
          "card_issuing_country_code": {
            "type": "string",
            "example": "IN",
            "nullable": true
          },
          "bank_code": {
            "type": "string",
            "example": "JP_AMEX",
            "nullable": true
          },
          "nick_name": {
            "type": "string",
            "description": "The card holder's nick name",
            "example": "John Test",
            "nullable": true
          }
        }
      },
      "CardAdditionalData": {
        "type": "object",
        "description": "Masked payout method details for card payout method",
        "required": [
          "card_exp_month",
          "card_exp_year",
          "card_holder_name"
        ],
        "properties": {
          "card_issuer": {
            "type": "string",
            "description": "Issuer of the card",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "description": "Card type, can be either `credit` or `debit`",
            "nullable": true
          },
          "card_issuing_country": {
            "type": "string",
            "description": "Card issuing country",
            "nullable": true
          },
          "bank_code": {
            "type": "string",
            "description": "Code for Card issuing bank",
            "nullable": true
          },
          "last4": {
            "type": "string",
            "description": "Last 4 digits of the card number",
            "nullable": true
          },
          "card_isin": {
            "type": "string",
            "description": "The ISIN of the card",
            "nullable": true
          },
          "card_extended_bin": {
            "type": "string",
            "description": "Extended bin of card, contains the first 8 digits of card number",
            "nullable": true
          },
          "card_exp_month": {
            "type": "string",
            "description": "Card expiry month",
            "example": "01"
          },
          "card_exp_year": {
            "type": "string",
            "description": "Card expiry year",
            "example": "2026"
          },
          "card_holder_name": {
            "type": "string",
            "description": "Card holder name",
            "example": "John Doe"
          }
        }
      },
      "CardCVCTokenStorageDetails": {
        "type": "object",
        "required": [
          "is_stored"
        ],
        "properties": {
          "is_stored": {
            "type": "boolean",
            "description": "Indicates whether the card cvc is stored or not",
            "example": true
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "description": "A timestamp (ISO 8601 code) that determines expiry for stored card cvc token",
            "example": "2024-02-24T11:04:09.922Z",
            "nullable": true
          }
        }
      },
      "CardDetail": {
        "type": "object",
        "required": [
          "card_number",
          "card_exp_month",
          "card_exp_year",
          "card_holder_name",
          "card_issuing_country",
          "card_cvc"
        ],
        "properties": {
          "card_number": {
            "type": "string",
            "description": "Card Number",
            "example": "4111111145551142"
          },
          "card_exp_month": {
            "type": "string",
            "description": "Card Expiry Month",
            "example": "10"
          },
          "card_exp_year": {
            "type": "string",
            "description": "Card Expiry Year",
            "example": "25"
          },
          "card_holder_name": {
            "type": "string",
            "description": "Card Holder Name",
            "example": "John Doe"
          },
          "nick_name": {
            "type": "string",
            "description": "Card Holder's Nick Name",
            "example": "John Doe",
            "nullable": true
          },
          "card_issuing_country": {
            "$ref": "#/components/schemas/CountryAlpha2"
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_issuer": {
            "type": "string",
            "description": "Issuer Bank for Card",
            "nullable": true
          },
          "card_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardType"
              }
            ],
            "nullable": true
          },
          "card_cvc": {
            "type": "string",
            "description": "The CVC number for the card\nThis is optional in case the card needs to be vaulted",
            "example": "242"
          }
        }
      },
      "CardDetailFromLocker": {
        "type": "object",
        "required": [
          "saved_to_locker"
        ],
        "properties": {
          "issuer_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "last4_digits": {
            "type": "string",
            "example": "4242",
            "nullable": true
          },
          "expiry_month": {
            "type": "string",
            "example": "10",
            "nullable": true
          },
          "expiry_year": {
            "type": "string",
            "example": "25",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "example": "John Doe",
            "nullable": true
          },
          "card_fingerprint": {
            "type": "string",
            "example": "fingerprint_12345",
            "nullable": true
          },
          "nick_name": {
            "type": "string",
            "example": "Card",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_isin": {
            "type": "string",
            "example": "4567890",
            "nullable": true
          },
          "card_issuer": {
            "type": "string",
            "example": "Issuer Bank",
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "example": "Credit",
            "nullable": true
          },
          "saved_to_locker": {
            "type": "boolean",
            "example": true
          }
        }
      },
      "CardDetailUpdate": {
        "type": "object",
        "required": [
          "card_holder_name"
        ],
        "properties": {
          "card_holder_name": {
            "type": "string",
            "description": "Card Holder Name",
            "example": "John Doe"
          },
          "nick_name": {
            "type": "string",
            "description": "Card Holder's Nick Name",
            "example": "John Doe",
            "nullable": true
          },
          "card_cvc": {
            "type": "string",
            "description": "The CVC number for the card",
            "example": "242",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CardNetwork": {
        "type": "string",
        "description": "Indicates the card network.",
        "enum": [
          "Visa",
          "Mastercard",
          "AmericanExpress",
          "JCB",
          "DinersClub",
          "Discover",
          "CartesBancaires",
          "UnionPay",
          "Interac",
          "RuPay",
          "Maestro",
          "Star",
          "Pulse",
          "Accel",
          "Nyce",
          "Prop",
          "PrivateLabel",
          "Dinacard"
        ]
      },
      "CardNetworkTokenizeRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TokenizeDataRequest"
          },
          {
            "type": "object",
            "required": [
              "merchant_id",
              "customer"
            ],
            "properties": {
              "merchant_id": {
                "type": "string",
                "description": "Merchant ID associated with the tokenization request",
                "example": "merchant_1671528864"
              },
              "customer": {
                "$ref": "#/components/schemas/CustomerDetails"
              },
              "billing": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "nullable": true
              },
              "metadata": {
                "type": "object",
                "description": "You can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.",
                "nullable": true
              },
              "payment_method_issuer": {
                "type": "string",
                "description": "The name of the bank/ provider issuing the payment method to the end user",
                "nullable": true
              }
            }
          }
        ]
      },
      "CardNetworkTokenizeResponse": {
        "type": "object",
        "required": [
          "customer",
          "card_tokenized"
        ],
        "properties": {
          "payment_method_response": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodResponse"
              }
            ],
            "nullable": true
          },
          "customer": {
            "$ref": "#/components/schemas/CustomerDetails"
          },
          "card_tokenized": {
            "type": "boolean",
            "description": "Card network tokenization status"
          },
          "error_code": {
            "type": "string",
            "description": "Error code",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "description": "Error message",
            "nullable": true
          },
          "tokenization_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TokenizeDataRequest"
              }
            ],
            "nullable": true
          }
        }
      },
      "CardNetworkTypes": {
        "type": "object",
        "required": [
          "eligible_connectors"
        ],
        "properties": {
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "surcharge_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SurchargeDetailsResponse"
              }
            ],
            "nullable": true
          },
          "eligible_connectors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The list of eligible connectors for a given card network",
            "example": [
              "stripe",
              "adyen"
            ]
          }
        }
      },
      "CardPayout": {
        "type": "object",
        "required": [
          "card_number",
          "expiry_month",
          "expiry_year",
          "card_holder_name"
        ],
        "properties": {
          "card_number": {
            "type": "string",
            "description": "The card number",
            "example": "4242424242424242"
          },
          "expiry_month": {
            "type": "string",
            "description": "The card's expiry month"
          },
          "expiry_year": {
            "type": "string",
            "description": "The card's expiry year"
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Doe"
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          }
        }
      },
      "CardRedirectData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "knet"
            ],
            "properties": {
              "knet": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "benefit"
            ],
            "properties": {
              "benefit": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "momo_atm"
            ],
            "properties": {
              "momo_atm": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "card_redirect"
            ],
            "properties": {
              "card_redirect": {
                "type": "object"
              }
            }
          }
        ]
      },
      "CardRedirectResponse": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardRedirectData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ]
      },
      "CardResponse": {
        "type": "object",
        "properties": {
          "last4": {
            "type": "string",
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_issuer": {
            "type": "string",
            "nullable": true
          },
          "card_issuing_country": {
            "type": "string",
            "nullable": true
          },
          "card_isin": {
            "type": "string",
            "nullable": true
          },
          "card_extended_bin": {
            "type": "string",
            "nullable": true
          },
          "card_exp_month": {
            "type": "string",
            "nullable": true
          },
          "card_exp_year": {
            "type": "string",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "nullable": true
          },
          "payment_checks": {
            "nullable": true
          },
          "authentication_data": {
            "nullable": true
          },
          "auth_code": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CardSpecificFeatures": {
        "type": "object",
        "required": [
          "three_ds",
          "no_three_ds",
          "supported_card_networks"
        ],
        "properties": {
          "three_ds": {
            "$ref": "#/components/schemas/FeatureStatus"
          },
          "no_three_ds": {
            "$ref": "#/components/schemas/FeatureStatus"
          },
          "supported_card_networks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardNetwork"
            },
            "description": "List of supported card networks"
          }
        }
      },
      "CardTestingGuardConfig": {
        "type": "object",
        "required": [
          "card_ip_blocking_status",
          "card_ip_blocking_threshold",
          "guest_user_card_blocking_status",
          "guest_user_card_blocking_threshold",
          "customer_id_blocking_status",
          "customer_id_blocking_threshold",
          "card_testing_guard_expiry"
        ],
        "properties": {
          "card_ip_blocking_status": {
            "$ref": "#/components/schemas/CardTestingGuardStatus"
          },
          "card_ip_blocking_threshold": {
            "type": "integer",
            "format": "int32",
            "description": "Determines the unsuccessful payment threshold for Card IP Blocking for profile"
          },
          "guest_user_card_blocking_status": {
            "$ref": "#/components/schemas/CardTestingGuardStatus"
          },
          "guest_user_card_blocking_threshold": {
            "type": "integer",
            "format": "int32",
            "description": "Determines the unsuccessful payment threshold for Guest User Card Blocking for profile"
          },
          "customer_id_blocking_status": {
            "$ref": "#/components/schemas/CardTestingGuardStatus"
          },
          "customer_id_blocking_threshold": {
            "type": "integer",
            "format": "int32",
            "description": "Determines the unsuccessful payment threshold for Customer Id Blocking for profile"
          },
          "card_testing_guard_expiry": {
            "type": "integer",
            "format": "int32",
            "description": "Determines Redis Expiry for Card Testing Guard for profile"
          },
          "guest_ip_blocking_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTestingGuardStatus"
              }
            ],
            "nullable": true
          },
          "guest_ip_blocking_threshold": {
            "type": "integer",
            "format": "int32",
            "description": "Determines the unsuccessful payment threshold for Guest IP Blocking for profile",
            "default": 10,
            "nullable": true
          }
        }
      },
      "CardTestingGuardStatus": {
        "type": "string",
        "enum": [
          "enabled",
          "disabled"
        ]
      },
      "CardToken": {
        "type": "object",
        "required": [
          "card_holder_name"
        ],
        "properties": {
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test"
          },
          "card_cvc": {
            "type": "string",
            "description": "The CVC number for the card",
            "nullable": true
          },
          "card_cvc_token": {
            "type": "string",
            "description": "Token referencing a CVC vaulted in the hyperswitch (self-hosted) vault. Used by the\nself-hosted default-vault repeat-customer flow, where the card is referenced by the\ntop-level `payment_token` and the freshly-tokenized CVC arrives as this token; the server\nresolves it to the raw CVC. Not used by the external vault proxy flow.",
            "nullable": true
          }
        }
      },
      "CardTokenAdditionalData": {
        "type": "object",
        "required": [
          "card_holder_name"
        ],
        "properties": {
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test"
          }
        }
      },
      "CardTokenResponse": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTokenAdditionalData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ]
      },
      "CardType": {
        "type": "string",
        "enum": [
          "credit",
          "debit"
        ]
      },
      "CardWithLimitedData": {
        "type": "object",
        "required": [
          "card_number"
        ],
        "properties": {
          "card_number": {
            "type": "string",
            "description": "The card number",
            "example": "4242424242424242"
          },
          "card_exp_month": {
            "type": "string",
            "description": "The card's expiry month",
            "example": "24",
            "nullable": true
          },
          "card_exp_year": {
            "type": "string",
            "description": "The card's expiry year",
            "example": "24",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test",
            "nullable": true
          },
          "eci": {
            "type": "string",
            "description": "The ECI(Electronic Commerce Indicator) value for this authentication.",
            "nullable": true
          },
          "network_transaction_id": {
            "type": "string",
            "description": "The network transaction ID provided by the card network during a CIT (Customer Initiated Transaction),\nwhen `setup_future_usage` is set to `off_session`.",
            "nullable": true
          },
          "transaction_link_id": {
            "type": "string",
            "description": "The Mastercard Transaction Link Identifier (TLID) provided by the card network during a CIT (Customer Initiated Transaction),\nwhen `setup_future_usage` is set to `off_session`.",
            "nullable": true
          }
        }
      },
      "CardWithNoCVC": {
        "type": "object",
        "required": [
          "card_number",
          "card_exp_month",
          "card_exp_year",
          "card_holder_name"
        ],
        "properties": {
          "card_number": {
            "type": "string",
            "description": "The card number",
            "example": "4242424242424242"
          },
          "card_exp_month": {
            "type": "string",
            "description": "The card's expiry month",
            "example": "24"
          },
          "card_exp_year": {
            "type": "string",
            "description": "The card's expiry year",
            "example": "24"
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test"
          },
          "card_issuer": {
            "type": "string",
            "description": "The name of the issuer of card",
            "example": "chase",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "example": "CREDIT",
            "nullable": true
          },
          "card_issuing_country": {
            "type": "string",
            "example": "INDIA",
            "nullable": true
          },
          "card_issuing_country_code": {
            "type": "string",
            "example": "IN",
            "nullable": true
          },
          "bank_code": {
            "type": "string",
            "example": "JP_AMEX",
            "nullable": true
          },
          "nick_name": {
            "type": "string",
            "description": "The card holder's nick name",
            "example": "John Test",
            "nullable": true
          }
        }
      },
      "CartesBancairesParams": {
        "type": "object",
        "description": "Represents network-specific parameters for the Cartes Bancaires 3DS process.",
        "required": [
          "cb_exemption",
          "cb_score"
        ],
        "properties": {
          "cavv_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CavvAlgorithm"
              }
            ],
            "nullable": true
          },
          "cb_exemption": {
            "type": "string",
            "description": "Exemption indicator specific to Cartes Bancaires network (e.g., \"low_value\", \"trusted_merchant\")"
          },
          "cb_score": {
            "type": "integer",
            "format": "int32",
            "description": "Cartes Bancaires risk score assigned during 3DS authentication."
          }
        }
      },
      "CashappQr": {
        "type": "object"
      },
      "CavvAlgorithm": {
        "type": "string",
        "description": "This is typically provided by the card network or Access Control Server (ACS)",
        "enum": [
          "00",
          "01",
          "02",
          "03",
          "04",
          "A"
        ]
      },
      "ChargeRefunds": {
        "type": "object",
        "description": "Charge specific fields for controlling the revert of funds from either platform or connected account. Check sub-fields for more details.",
        "required": [
          "charge_id"
        ],
        "properties": {
          "charge_id": {
            "type": "string",
            "description": "Identifier for charge created for the payment"
          },
          "revert_platform_fee": {
            "type": "boolean",
            "description": "Toggle for reverting the application fee that was collected for the payment.\nIf set to false, the funds are pulled from the destination account.",
            "nullable": true
          },
          "revert_transfer": {
            "type": "boolean",
            "description": "Toggle for reverting the transfer that was made during the charge.\nIf set to false, the funds are pulled from the main platform's account.",
            "nullable": true
          }
        }
      },
      "CheckAndApplyPaymentMethodDataResponse": {
        "type": "object",
        "required": [
          "balances",
          "remaining_amount",
          "currency",
          "requires_additional_pm_data"
        ],
        "properties": {
          "balances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EligibilityBalanceCheckResponseItem"
            }
          },
          "remaining_amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "requires_additional_pm_data": {
            "type": "boolean",
            "description": "Whether the applied payment method balance is enough for the order amount or additional PM is required"
          },
          "surcharge_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplyPaymentMethodDataSurchargeResponseItem"
            },
            "nullable": true
          }
        }
      },
      "ClickToPaySessionResponse": {
        "type": "object",
        "required": [
          "dpa_id",
          "dpa_name",
          "locale",
          "card_brands",
          "acquirer_bin",
          "acquirer_merchant_id",
          "merchant_country_code",
          "transaction_amount",
          "transaction_currency_code"
        ],
        "properties": {
          "dpa_id": {
            "type": "string"
          },
          "dpa_name": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "card_brands": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardNetwork"
            },
            "example": "[Visa, Mastercard]"
          },
          "acquirer_bin": {
            "type": "string"
          },
          "acquirer_merchant_id": {
            "type": "string"
          },
          "merchant_category_code": {
            "type": "string",
            "nullable": true
          },
          "merchant_country_code": {
            "type": "string"
          },
          "transaction_amount": {
            "type": "string",
            "example": "38.02"
          },
          "transaction_currency_code": {
            "$ref": "#/components/schemas/Currency"
          },
          "phone_number": {
            "type": "string",
            "example": "9123456789",
            "nullable": true,
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "example": "johntest@test.com",
            "nullable": true,
            "maxLength": 255
          },
          "phone_country_code": {
            "type": "string",
            "nullable": true
          },
          "provider": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CtpServiceProvider"
              }
            ],
            "nullable": true
          },
          "dpa_client_id": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ClientSecretResponse": {
        "type": "object",
        "description": "client_secret for the resource_id mentioned",
        "required": [
          "id",
          "resource_id",
          "created_at",
          "expires",
          "secret"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Client Secret id",
            "maxLength": 32,
            "minLength": 1
          },
          "resource_id": {
            "$ref": "#/components/schemas/ResourceId"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "time at which this client secret was created"
          },
          "expires": {
            "type": "string",
            "format": "date-time",
            "description": "time at which this client secret would expire"
          },
          "secret": {
            "type": "string",
            "description": "client secret"
          }
        }
      },
      "CollectionActions": {
        "type": "object",
        "description": "Represents the legal or administrative actions that may be taken for non-payment, such as protest rules and automatic write-off timelines.",
        "properties": {
          "legal_protest": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProtestRules"
              }
            ],
            "nullable": true
          },
          "auto_write_off_days": {
            "type": "integer",
            "format": "int32",
            "description": "Days after which the bill is automatically cancelled/written off",
            "example": 60,
            "nullable": true,
            "minimum": 0
          }
        }
      },
      "Comparison": {
        "type": "object",
        "description": "Represents a single comparison condition.",
        "required": [
          "lhs",
          "comparison",
          "value",
          "metadata"
        ],
        "properties": {
          "lhs": {
            "type": "string",
            "description": "The left hand side which will always be a domain input identifier like \"payment.method.cardtype\""
          },
          "comparison": {
            "$ref": "#/components/schemas/ComparisonType"
          },
          "value": {
            "$ref": "#/components/schemas/ValueType"
          },
          "metadata": {
            "type": "object",
            "description": "Additional metadata that the Static Analyzer and Backend does not touch.\nThis can be used to store useful information for the frontend and is required for communication\nbetween the static analyzer and the frontend.",
            "additionalProperties": {}
          }
        }
      },
      "ComparisonType": {
        "type": "string",
        "description": "Conditional comparison type",
        "enum": [
          "equal",
          "not_equal",
          "less_than",
          "less_than_equal",
          "greater_than",
          "greater_than_equal"
        ]
      },
      "Connector": {
        "type": "string",
        "enum": [
          "absa_sanlam",
          "authipay",
          "adyenplatform",
          "stripe_billing_test",
          "phonypay",
          "fauxpay",
          "pretendpay",
          "stripe_test",
          "adyen_test",
          "checkout_test",
          "paypal_test",
          "aci",
          "adyen",
          "affirm",
          "airwallex",
          "amazonpay",
          "archipel",
          "authorizedotnet",
          "bambora",
          "bamboraapac",
          "bankofamerica",
          "barclaycard",
          "billwerk",
          "bitpay",
          "bluesnap",
          "blackhawknetwork",
          "calida",
          "boku",
          "braintree",
          "breadpay",
          "cardinal",
          "cashtocode",
          "celero",
          "chargebee",
          "checkbook",
          "checkout",
          "coinbase",
          "coingate",
          "custombilling",
          "cryptopay",
          "ctp_mastercard",
          "ctp_visa",
          "cybersource",
          "cybersourcedecisionmanager",
          "datatrans",
          "deutschebank",
          "digitalvirgo",
          "dlocal",
          "dwolla",
          "ebanx",
          "envoy",
          "elavon",
          "facilitapay",
          "finix",
          "fiserv",
          "fiservemea",
          "fiservcommercehub",
          "fiuu",
          "flexiti",
          "forte",
          "getnet",
          "gigadat",
          "givepayments",
          "globalpay",
          "globepay",
          "gocardless",
          "gpayments",
          "hipay",
          "helcim",
          "hyperpg",
          "hyperswitch_vault",
          "interpayments",
          "inespay",
          "iatapay",
          "imerchantsolutions",
          "itaubank",
          "jpmorgan",
          "juspaythreedsserver",
          "klarna",
          "loonio",
          "mifinity",
          "mollie",
          "moneris",
          "multisafepay",
          "netcetera",
          "nexinets",
          "nexixpay",
          "nmi",
          "nomupay",
          "noon",
          "nordea",
          "novalnet",
          "nuvei",
          "opennode",
          "paybox",
          "payload",
          "payme",
          "payone",
          "paypal",
          "paysafe",
          "paystack",
          "paytm",
          "payconex",
          "payu",
          "peachpayments",
          "payjustnow",
          "payjustnowinstore",
          "phonepe",
          "placetopay",
          "powertranz",
          "prophetpay",
          "rapyd",
          "razorpay",
          "recurly",
          "redsys",
          "revolv3",
          "santander",
          "shift4",
          "silverflow",
          "square",
          "stax",
          "stripe",
          "stripebilling",
          "taxjar",
          "threedsecureio",
          "tesouro",
          "tokenex",
          "tokenio",
          "trustly",
          "truelayer",
          "trustpay",
          "trustpayments",
          "tsys",
          "tsys_transit",
          "vgs",
          "volt",
          "wellsfargo",
          "wise",
          "worldline",
          "worldpay",
          "worldpayvantiv",
          "worldpayxml",
          "worldpaymodular",
          "signifyd",
          "plaid",
          "riskified",
          "xendit",
          "zen",
          "zift",
          "zsl"
        ]
      },
      "ConnectorChargeResponseData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "stripe_split_payment"
            ],
            "properties": {
              "stripe_split_payment": {
                "$ref": "#/components/schemas/StripeChargeResponseData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "adyen_split_payment"
            ],
            "properties": {
              "adyen_split_payment": {
                "$ref": "#/components/schemas/AdyenSplitData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "xendit_split_payment"
            ],
            "properties": {
              "xendit_split_payment": {
                "$ref": "#/components/schemas/XenditChargeResponseData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "payload_split_payment"
            ],
            "properties": {
              "payload_split_payment": {
                "$ref": "#/components/schemas/PayloadSplitPaymentRequest"
              }
            }
          }
        ],
        "description": "Charge Information"
      },
      "ConnectorFeatureMatrixResponse": {
        "type": "object",
        "required": [
          "name",
          "display_name",
          "description",
          "category",
          "integration_status"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the connector"
          },
          "display_name": {
            "type": "string",
            "description": "The display name of the connector"
          },
          "description": {
            "type": "string",
            "description": "The description of the connector"
          },
          "base_url": {
            "type": "string",
            "description": "The base url of the connector",
            "nullable": true
          },
          "category": {
            "$ref": "#/components/schemas/HyperswitchConnectorCategory"
          },
          "integration_status": {
            "$ref": "#/components/schemas/ConnectorIntegrationStatus"
          },
          "supported_payment_methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportedPaymentMethod"
            },
            "description": "The list of payment methods supported by the connector",
            "nullable": true
          },
          "supported_webhook_flows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventClass"
            },
            "description": "The list of webhook flows supported by the connector",
            "nullable": true
          }
        }
      },
      "ConnectorIntegrationStatus": {
        "type": "string",
        "description": "Connector Integration Status",
        "enum": [
          "live",
          "sandbox",
          "beta",
          "alpha"
        ]
      },
      "ConnectorMetadata": {
        "type": "object",
        "description": "Some connectors like Apple Pay, Airwallex and Noon might require some additional information, find specific details in the child attributes below.",
        "properties": {
          "apple_pay": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplepayConnectorMetadataRequest"
              }
            ],
            "nullable": true
          },
          "airwallex": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AirwallexData"
              }
            ],
            "nullable": true
          },
          "noon": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NoonData"
              }
            ],
            "nullable": true
          },
          "braintree": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BraintreeData"
              }
            ],
            "nullable": true
          },
          "adyen": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AdyenConnectorMetadata"
              }
            ],
            "nullable": true
          },
          "peachpayments": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PeachpaymentsData"
              }
            ],
            "nullable": true
          },
          "santander": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SantanderConnectorMetadataData"
              }
            ],
            "nullable": true
          }
        }
      },
      "ConnectorMetadataResponse": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "santander"
            ],
            "properties": {
              "santander": {
                "$ref": "#/components/schemas/SantanderData"
              }
            }
          }
        ]
      },
      "ConnectorSelection": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "priority"
                ]
              },
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RoutableConnectorChoice"
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "volume_split"
                ]
              },
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConnectorVolumeSplit"
                }
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "ConnectorStatus": {
        "type": "string",
        "enum": [
          "inactive",
          "active"
        ]
      },
      "ConnectorTokenDetails": {
        "type": "object",
        "description": "Token information that can be used to initiate transactions by the merchant.",
        "required": [
          "token"
        ],
        "properties": {
          "token": {
            "type": "string",
            "description": "A token that can be used to make payments directly with the connector.",
            "example": "pm_9UhMqBMEOooRIvJFFdeW"
          },
          "connector_token_request_reference_id": {
            "type": "string",
            "description": "The reference id sent to the connector when creating the token",
            "nullable": true
          }
        }
      },
      "ConnectorType": {
        "type": "string",
        "description": "Type of the Connector for the financial use case. Could range from Payments to Accounting to Banking.",
        "enum": [
          "payment_processor",
          "payment_vas",
          "fin_operations",
          "fiz_operations",
          "networks",
          "banking_entities",
          "non_banking_finance",
          "payout_processor",
          "payment_method_auth",
          "authentication_processor",
          "tax_processor",
          "surcharge_processor",
          "billing_processor",
          "vault_processor"
        ]
      },
      "ConnectorVolumeSplit": {
        "type": "object",
        "required": [
          "connector",
          "split"
        ],
        "properties": {
          "connector": {
            "$ref": "#/components/schemas/RoutableConnectorChoice"
          },
          "split": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          }
        }
      },
      "ConnectorWalletDetails": {
        "type": "object",
        "properties": {
          "apple_pay_combined": {
            "type": "object",
            "description": "This field contains the Apple Pay certificates and credentials for iOS and Web Apple Pay flow",
            "nullable": true
          },
          "apple_pay": {
            "type": "object",
            "description": "This field is for our legacy Apple Pay flow that contains the Apple Pay certificates and credentials for only iOS Apple Pay flow",
            "nullable": true
          },
          "amazon_pay": {
            "type": "object",
            "description": "This field contains the Amazon Pay certificates and credentials",
            "nullable": true
          },
          "samsung_pay": {
            "type": "object",
            "description": "This field contains the Samsung Pay certificates and credentials",
            "nullable": true
          },
          "paze": {
            "type": "object",
            "description": "This field contains the Paze certificates and credentials",
            "nullable": true
          },
          "google_pay": {
            "type": "object",
            "description": "This field contains the Google Pay certificates and credentials",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConnectorWebhookScope": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "not_specific"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "value",
              "type"
            ],
            "properties": {
              "value": {
                "$ref": "#/components/schemas/PaymentMethodType"
              },
              "type": {
                "type": "string",
                "enum": [
                  "payment_method_type"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "value",
              "type"
            ],
            "properties": {
              "value": {
                "$ref": "#/components/schemas/EventType"
              },
              "type": {
                "type": "string",
                "enum": [
                  "event_type"
                ]
              }
            }
          }
        ],
        "description": "Scope of a single registered connector webhook.",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "ContractBasedRoutingConfig": {
        "type": "object",
        "properties": {
          "config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ContractBasedRoutingConfigBody"
              }
            ],
            "nullable": true
          },
          "label_info": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelInformation"
            },
            "nullable": true
          }
        }
      },
      "ContractBasedRoutingConfigBody": {
        "type": "object",
        "properties": {
          "constants": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "nullable": true
          },
          "time_scale": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ContractBasedTimeScale"
              }
            ],
            "nullable": true
          }
        }
      },
      "ContractBasedTimeScale": {
        "type": "string",
        "enum": [
          "day",
          "month"
        ]
      },
      "CountryAlpha2": {
        "type": "string",
        "enum": [
          "AF",
          "AX",
          "AL",
          "DZ",
          "AS",
          "AD",
          "AO",
          "AI",
          "AQ",
          "AG",
          "AR",
          "AM",
          "AW",
          "AU",
          "AT",
          "AZ",
          "BS",
          "BH",
          "BD",
          "BB",
          "BY",
          "BE",
          "BZ",
          "BJ",
          "BM",
          "BT",
          "BO",
          "BQ",
          "BA",
          "BW",
          "BV",
          "BR",
          "IO",
          "BN",
          "BG",
          "BF",
          "BI",
          "KH",
          "CM",
          "CA",
          "CV",
          "KY",
          "CF",
          "TD",
          "CL",
          "CN",
          "CX",
          "CC",
          "CO",
          "KM",
          "CG",
          "CD",
          "CK",
          "CR",
          "CI",
          "HR",
          "CU",
          "CW",
          "CY",
          "CZ",
          "DK",
          "DJ",
          "DM",
          "DO",
          "EC",
          "EG",
          "SV",
          "GQ",
          "ER",
          "EE",
          "ET",
          "FK",
          "FO",
          "FJ",
          "FI",
          "FR",
          "GF",
          "PF",
          "TF",
          "GA",
          "GM",
          "GE",
          "DE",
          "GH",
          "GI",
          "GR",
          "GL",
          "GD",
          "GP",
          "GU",
          "GT",
          "GG",
          "GN",
          "GW",
          "GY",
          "HT",
          "HM",
          "VA",
          "HN",
          "HK",
          "HU",
          "IS",
          "IN",
          "ID",
          "IR",
          "IQ",
          "IE",
          "IM",
          "IL",
          "IT",
          "JM",
          "JP",
          "JE",
          "JO",
          "KZ",
          "KE",
          "KI",
          "KP",
          "KR",
          "KW",
          "KG",
          "LA",
          "LV",
          "LB",
          "LS",
          "LR",
          "LY",
          "LI",
          "LT",
          "LU",
          "MO",
          "MK",
          "MG",
          "MW",
          "MY",
          "MV",
          "ML",
          "MT",
          "MH",
          "MQ",
          "MR",
          "MU",
          "YT",
          "MX",
          "FM",
          "MD",
          "MC",
          "MN",
          "ME",
          "MS",
          "MA",
          "MZ",
          "MM",
          "NA",
          "NR",
          "NP",
          "NL",
          "NC",
          "NZ",
          "NI",
          "NE",
          "NG",
          "NU",
          "NF",
          "MP",
          "NO",
          "OM",
          "PK",
          "PW",
          "PS",
          "PA",
          "PG",
          "PY",
          "PE",
          "PH",
          "PN",
          "PL",
          "PT",
          "PR",
          "QA",
          "RE",
          "RO",
          "RU",
          "RW",
          "BL",
          "SH",
          "KN",
          "LC",
          "MF",
          "PM",
          "VC",
          "WS",
          "SM",
          "ST",
          "SA",
          "SN",
          "RS",
          "SC",
          "SL",
          "SG",
          "SX",
          "SK",
          "SI",
          "SB",
          "SO",
          "ZA",
          "GS",
          "SS",
          "ES",
          "LK",
          "SD",
          "SR",
          "SJ",
          "SZ",
          "SE",
          "CH",
          "SY",
          "TW",
          "TJ",
          "TZ",
          "TH",
          "TL",
          "TG",
          "TK",
          "TO",
          "TT",
          "TN",
          "TR",
          "TM",
          "TC",
          "TV",
          "UG",
          "UA",
          "AE",
          "GB",
          "UM",
          "UY",
          "UZ",
          "VU",
          "VE",
          "VN",
          "VG",
          "VI",
          "WF",
          "EH",
          "YE",
          "ZM",
          "ZW",
          "US"
        ]
      },
      "CountryAlpha3": {
        "type": "string",
        "enum": [
          "AFG",
          "ALA",
          "ALB",
          "DZA",
          "ASM",
          "AND",
          "AGO",
          "AIA",
          "ATA",
          "ATG",
          "ARG",
          "ARM",
          "ABW",
          "AUS",
          "AUT",
          "AZE",
          "BHS",
          "BHR",
          "BGD",
          "BRB",
          "BLR",
          "BEL",
          "BLZ",
          "BEN",
          "BMU",
          "BTN",
          "BOL",
          "BES",
          "BIH",
          "BWA",
          "BVT",
          "BRA",
          "IOT",
          "BRN",
          "BGR",
          "BFA",
          "BDI",
          "CPV",
          "KHM",
          "CMR",
          "CAN",
          "CYM",
          "CAF",
          "TCD",
          "CHL",
          "CHN",
          "CXR",
          "CCK",
          "COL",
          "COM",
          "COG",
          "COD",
          "COK",
          "CRI",
          "CIV",
          "HRV",
          "CUB",
          "CUW",
          "CYP",
          "CZE",
          "DNK",
          "DJI",
          "DMA",
          "DOM",
          "ECU",
          "EGY",
          "SLV",
          "GNQ",
          "ERI",
          "EST",
          "ETH",
          "FLK",
          "FRO",
          "FJI",
          "FIN",
          "FRA",
          "GUF",
          "PYF",
          "ATF",
          "GAB",
          "GMB",
          "GEO",
          "DEU",
          "GHA",
          "GIB",
          "GRC",
          "GRL",
          "GRD",
          "GLP",
          "GUM",
          "GTM",
          "GGY",
          "GIN",
          "GNB",
          "GUY",
          "HTI",
          "HMD",
          "VAT",
          "HND",
          "HKG",
          "HUN",
          "ISL",
          "IND",
          "IDN",
          "IRN",
          "IRQ",
          "IRL",
          "IMN",
          "ISR",
          "ITA",
          "JAM",
          "JPN",
          "JEY",
          "JOR",
          "KAZ",
          "KEN",
          "KIR",
          "PRK",
          "KOR",
          "KWT",
          "KGZ",
          "LAO",
          "LVA",
          "LBN",
          "LSO",
          "LBR",
          "LBY",
          "LIE",
          "LTU",
          "LUX",
          "MAC",
          "MKD",
          "MDG",
          "MWI",
          "MYS",
          "MDV",
          "MLI",
          "MLT",
          "MHL",
          "MTQ",
          "MRT",
          "MUS",
          "MYT",
          "MEX",
          "FSM",
          "MDA",
          "MCO",
          "MNG",
          "MNE",
          "MSR",
          "MAR",
          "MOZ",
          "MMR",
          "NAM",
          "NRU",
          "NPL",
          "NLD",
          "NCL",
          "NZL",
          "NIC",
          "NER",
          "NGA",
          "NIU",
          "NFK",
          "MNP",
          "NOR",
          "OMN",
          "PAK",
          "PLW",
          "PSE",
          "PAN",
          "PNG",
          "PRY",
          "PER",
          "PHL",
          "PCN",
          "POL",
          "PRT",
          "PRI",
          "QAT",
          "REU",
          "ROU",
          "RUS",
          "RWA",
          "BLM",
          "SHN",
          "KNA",
          "LCA",
          "MAF",
          "SPM",
          "VCT",
          "WSM",
          "SMR",
          "STP",
          "SAU",
          "SEN",
          "SRB",
          "SYC",
          "SLE",
          "SGP",
          "SXM",
          "SVK",
          "SVN",
          "SLB",
          "SOM",
          "ZAF",
          "SGS",
          "SSD",
          "ESP",
          "LKA",
          "SDN",
          "SUR",
          "SJM",
          "SWZ",
          "SWE",
          "CHE",
          "SYR",
          "TWN",
          "TJK",
          "TZA",
          "THA",
          "TLS",
          "TGO",
          "TKL",
          "TON",
          "TTO",
          "TUN",
          "TUR",
          "TKM",
          "TCA",
          "TUV",
          "UGA",
          "UKR",
          "ARE",
          "GBR",
          "USA",
          "UMI",
          "URY",
          "UZB",
          "VUT",
          "VEN",
          "VNM",
          "VGB",
          "VIR",
          "WLF",
          "ESH",
          "YEM",
          "ZMB",
          "ZWE"
        ]
      },
      "CreateApiKeyRequest": {
        "type": "object",
        "description": "The request body for creating an API Key.",
        "required": [
          "name",
          "expiration"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "A unique name for the API Key to help you identify it.",
            "example": "Sandbox integration key",
            "maxLength": 64
          },
          "description": {
            "type": "string",
            "description": "A description to provide more context about the API Key.",
            "example": "Key used by our developers to integrate with the sandbox environment",
            "nullable": true,
            "maxLength": 256
          },
          "expiration": {
            "$ref": "#/components/schemas/ApiKeyExpiration"
          }
        },
        "additionalProperties": false
      },
      "CreateApiKeyResponse": {
        "type": "object",
        "description": "The response body for creating an API Key.",
        "required": [
          "key_id",
          "merchant_id",
          "name",
          "api_key",
          "created",
          "expiration"
        ],
        "properties": {
          "key_id": {
            "type": "string",
            "description": "The identifier for the API Key.",
            "example": "5hEEqkgJUyuxgSKGArHA4mWSnX",
            "maxLength": 64
          },
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account.",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64
          },
          "name": {
            "type": "string",
            "description": "The unique name for the API Key to help you identify it.",
            "example": "Sandbox integration key",
            "maxLength": 64
          },
          "description": {
            "type": "string",
            "description": "The description to provide more context about the API Key.",
            "example": "Key used by our developers to integrate with the sandbox environment",
            "nullable": true,
            "maxLength": 256
          },
          "api_key": {
            "type": "string",
            "description": "The plaintext API Key used for server-side API access. Ensure you store the API Key\nsecurely as you will not be able to see it again.",
            "maxLength": 128
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "The time at which the API Key was created.",
            "example": "2022-09-10T10:11:12Z"
          },
          "expiration": {
            "$ref": "#/components/schemas/ApiKeyExpiration"
          }
        }
      },
      "CryptoData": {
        "type": "object",
        "properties": {
          "pay_currency": {
            "type": "string",
            "nullable": true
          },
          "network": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CryptoResponse": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/CryptoData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ]
      },
      "Cryptogram": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "cavv"
            ],
            "properties": {
              "cavv": {
                "type": "object",
                "description": "Cardholder Authentication Verification Value (CAVV) cryptogram.",
                "properties": {
                  "authentication_cryptogram": {
                    "type": "string",
                    "description": "The authentication cryptogram provided by the issuer or ACS.",
                    "nullable": true
                  }
                }
              }
            }
          }
        ],
        "description": "Represents the 3DS cryptogram data returned after authentication."
      },
      "CtpServiceDetails": {
        "type": "object",
        "properties": {
          "merchant_transaction_id": {
            "type": "string",
            "description": "merchant transaction id",
            "nullable": true
          },
          "correlation_id": {
            "type": "string",
            "description": "network transaction correlation id",
            "nullable": true
          },
          "x_src_flow_id": {
            "type": "string",
            "description": "session transaction flow id",
            "nullable": true
          },
          "provider": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CtpServiceProvider"
              }
            ],
            "nullable": true
          },
          "encrypted_payload": {
            "type": "string",
            "description": "Encrypted payload",
            "nullable": true
          }
        }
      },
      "CtpServiceProvider": {
        "type": "string",
        "enum": [
          "visa",
          "mastercard"
        ]
      },
      "Currency": {
        "type": "string",
        "description": "The three-letter ISO 4217 currency code (e.g., \"USD\", \"EUR\") for the payment amount. This field is mandatory for creating a payment.",
        "enum": [
          "AED",
          "AFN",
          "ALL",
          "AMD",
          "ANG",
          "AOA",
          "ARS",
          "AUD",
          "AWG",
          "AZN",
          "BAM",
          "BBD",
          "BDT",
          "BGN",
          "BHD",
          "BIF",
          "BMD",
          "BND",
          "BOB",
          "BRL",
          "BSD",
          "BTN",
          "BWP",
          "BYN",
          "BZD",
          "CAD",
          "CDF",
          "CHF",
          "CLF",
          "CLP",
          "CNY",
          "COP",
          "CRC",
          "CUC",
          "CUP",
          "CVE",
          "CZK",
          "DJF",
          "DKK",
          "DOP",
          "DZD",
          "EGP",
          "ERN",
          "ETB",
          "EUR",
          "FJD",
          "FKP",
          "GBP",
          "GEL",
          "GHS",
          "GIP",
          "GMD",
          "GNF",
          "GTQ",
          "GYD",
          "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",
          "LYD",
          "MAD",
          "MDL",
          "MGA",
          "MKD",
          "MMK",
          "MNT",
          "MOP",
          "MRU",
          "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",
          "SLE",
          "SLL",
          "SOS",
          "SRD",
          "SSP",
          "STD",
          "STN",
          "SVC",
          "SYP",
          "SZL",
          "THB",
          "TJS",
          "TMT",
          "TND",
          "TOP",
          "TRY",
          "TTD",
          "TWD",
          "TZS",
          "UAH",
          "UGX",
          "USD",
          "UYU",
          "UZS",
          "VES",
          "VND",
          "VUV",
          "WST",
          "XAF",
          "XCD",
          "XOF",
          "XPF",
          "YER",
          "ZAR",
          "ZMW",
          "ZWL"
        ]
      },
      "CurrentBlockThreshold": {
        "type": "object",
        "properties": {
          "duration_in_mins": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "minimum": 0
          },
          "max_total_count": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "minimum": 0
          }
        }
      },
      "CustomMessage": {
        "type": "object",
        "description": "Custom T&C message content and display mode",
        "required": [
          "value"
        ],
        "properties": {
          "value": {
            "type": "string",
            "description": "The text to be shown per payment method type",
            "example": "I authorize Novalnet AG to debit my account."
          },
          "display_mode": {
            "$ref": "#/components/schemas/SdkDisplayMode"
          }
        }
      },
      "CustomTerms": {
        "type": "object",
        "description": "Custom T&C message for a specific payment method type",
        "required": [
          "payment_method_type",
          "message"
        ],
        "properties": {
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethodType"
          },
          "message": {
            "$ref": "#/components/schemas/CustomMessage"
          }
        }
      },
      "CustomerAcceptance": {
        "type": "object",
        "description": "This \"CustomerAcceptance\" object is passed during Payments-Confirm request, it enlists the type, time, and mode of acceptance properties related to an acceptance done by the customer. The customer_acceptance sub object is usually passed by the SDK or client.",
        "required": [
          "acceptance_type"
        ],
        "properties": {
          "acceptance_type": {
            "$ref": "#/components/schemas/AcceptanceType"
          },
          "accepted_at": {
            "type": "string",
            "format": "date-time",
            "description": "Specifying when the customer acceptance was provided",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "online": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OnlineMandate"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerDefaultPaymentMethodResponse": {
        "type": "object",
        "required": [
          "default_payment_method_id",
          "customer_id",
          "payment_method_type"
        ],
        "properties": {
          "default_payment_method_id": {
            "type": "string",
            "description": "The unique identifier of the Payment method",
            "example": "card_rGK4Vi5iSW70MY7J2mIg"
          },
          "customer_id": {
            "type": "string",
            "description": "The unique identifier of the customer.",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64,
            "minLength": 1
          },
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          }
        }
      },
      "CustomerDeleteResponse": {
        "type": "object",
        "required": [
          "id",
          "merchant_reference_id",
          "customer_deleted",
          "address_deleted",
          "payment_methods_deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the customer",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8",
            "maxLength": 64,
            "minLength": 32
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "The identifier for the customer object",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 255
          },
          "customer_deleted": {
            "type": "boolean",
            "description": "Whether customer was deleted or not",
            "example": false
          },
          "address_deleted": {
            "type": "boolean",
            "description": "Whether address was deleted or not",
            "example": false
          },
          "payment_methods_deleted": {
            "type": "boolean",
            "description": "Whether payment methods deleted or not",
            "example": false
          }
        }
      },
      "CustomerDetails": {
        "type": "object",
        "description": "Passing this object creates a new customer or attaches an existing customer to the payment",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier for the customer.",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The customer's name",
            "example": "John Doe",
            "nullable": true,
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "description": "The customer's email address",
            "example": "johntest@test.com",
            "nullable": true,
            "maxLength": 255
          },
          "phone": {
            "type": "string",
            "description": "The customer's phone number",
            "example": "9123456789",
            "nullable": true,
            "maxLength": 10
          },
          "phone_country_code": {
            "type": "string",
            "description": "The country code for the customer's phone number",
            "example": "+1",
            "nullable": true,
            "maxLength": 2
          },
          "tax_registration_id": {
            "type": "string",
            "description": "The tax registration identifier of the customer.",
            "nullable": true,
            "maxLength": 255
          },
          "document_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDocumentDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "CustomerDetailsResponse": {
        "type": "object",
        "description": "Details of customer attached to this payment",
        "properties": {
          "name": {
            "type": "string",
            "description": "The customer's name",
            "example": "John Doe",
            "nullable": true,
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "description": "The customer's email address",
            "example": "johntest@test.com",
            "nullable": true,
            "maxLength": 255
          },
          "phone": {
            "type": "string",
            "description": "The customer's phone number",
            "example": "9123456789",
            "nullable": true,
            "maxLength": 10
          },
          "phone_country_code": {
            "type": "string",
            "description": "The country code for the customer's phone number",
            "example": "+1",
            "nullable": true,
            "maxLength": 2
          }
        }
      },
      "CustomerDocumentDetails": {
        "type": "object",
        "required": [
          "document_type",
          "document_number"
        ],
        "properties": {
          "document_type": {
            "$ref": "#/components/schemas/DocumentKind"
          },
          "document_number": {
            "type": "string",
            "description": "The customer's document number\nLength of the document number depends upon the document_type.\nFor CPF/CNPJ it is typically 11/14 digits long",
            "example": "12345678911",
            "maxLength": 255
          }
        }
      },
      "CustomerPaymentMethodResponseItem": {
        "type": "object",
        "required": [
          "payment_method_token",
          "customer_id",
          "payment_method_type",
          "payment_method_subtype",
          "recurring_enabled",
          "created",
          "requires_cvv",
          "last_used_at",
          "is_default"
        ],
        "properties": {
          "payment_method_token": {
            "type": "string",
            "description": "Temporary Token for payment method in vault which gets refreshed for every payment",
            "example": "7ebf443f-a050-4067-84e5-e6f6d4800aef"
          },
          "customer_id": {
            "type": "string",
            "description": "The unique identifier of the customer.",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8",
            "maxLength": 64,
            "minLength": 32
          },
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "$ref": "#/components/schemas/PaymentMethodType"
          },
          "recurring_enabled": {
            "type": "boolean",
            "description": "Indicates whether the payment method is eligible for recurring payments",
            "example": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodListData"
              }
            ],
            "nullable": true
          },
          "bank": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MaskedBankDetails"
              }
            ],
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "A timestamp (ISO 8601 code) that determines when the payment method was created",
            "example": "2023-01-18T11:04:09.922Z"
          },
          "requires_cvv": {
            "type": "boolean",
            "description": "Whether this payment method requires CVV to be collected",
            "example": true
          },
          "last_used_at": {
            "type": "string",
            "format": "date-time",
            "description": "A timestamp (ISO 8601 code) that determines when the payment method was last used",
            "example": "2024-02-24T11:04:09.922Z"
          },
          "is_default": {
            "type": "boolean",
            "description": "Indicates if the payment method has been set to default or not",
            "example": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          }
        }
      },
      "CustomerPaymentMethodsListResponse": {
        "type": "object",
        "required": [
          "customer_payment_methods"
        ],
        "properties": {
          "customer_payment_methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodResponseItem"
            },
            "description": "List of payment methods for customer"
          }
        }
      },
      "CustomerRequest": {
        "type": "object",
        "description": "The customer details",
        "required": [
          "name",
          "email"
        ],
        "properties": {
          "merchant_reference_id": {
            "type": "string",
            "description": "The merchant identifier for the customer object.",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "The customer's name",
            "example": "Jon Test",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "description": "The customer's email address",
            "example": "JonTest@test.com",
            "maxLength": 255
          },
          "phone": {
            "type": "string",
            "description": "The customer's phone number",
            "example": "9123456789",
            "nullable": true,
            "maxLength": 255
          },
          "description": {
            "type": "string",
            "description": "An arbitrary string that you can attach to a customer object.",
            "example": "First Customer",
            "nullable": true,
            "maxLength": 255
          },
          "phone_country_code": {
            "type": "string",
            "description": "The country code for the customer phone number",
            "example": "+65",
            "nullable": true,
            "maxLength": 255
          },
          "default_billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDetails"
              }
            ],
            "nullable": true
          },
          "default_shipping_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDetails"
              }
            ],
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "You can specify up to 50 keys, with key names up to 40 characters long and values up to 500\ncharacters long. Metadata is useful for storing additional, structured information on an\nobject.",
            "nullable": true
          },
          "tax_registration_id": {
            "type": "string",
            "description": "The customer's tax registration number.",
            "example": "123456789",
            "nullable": true,
            "maxLength": 255
          },
          "document_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDocumentDetails"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerResponse": {
        "type": "object",
        "required": [
          "id",
          "merchant_reference_id",
          "created_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the customer",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8",
            "maxLength": 64,
            "minLength": 32
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "The identifier for the customer object",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64,
            "minLength": 1
          },
          "connector_customer_ids": {
            "type": "object",
            "description": "Connector specific customer reference ids",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The customer's name",
            "example": "Jon Test",
            "nullable": true,
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "description": "The customer's email address",
            "example": "JonTest@test.com",
            "nullable": true,
            "maxLength": 255
          },
          "phone": {
            "type": "string",
            "description": "The customer's phone number",
            "example": "9123456789",
            "nullable": true,
            "maxLength": 255
          },
          "phone_country_code": {
            "type": "string",
            "description": "The country code for the customer phone number",
            "example": "+65",
            "nullable": true,
            "maxLength": 255
          },
          "description": {
            "type": "string",
            "description": "An arbitrary string that you can attach to a customer object.",
            "example": "First Customer",
            "nullable": true,
            "maxLength": 255
          },
          "default_billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDetails"
              }
            ],
            "nullable": true
          },
          "default_shipping_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDetails"
              }
            ],
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "A timestamp (ISO 8601 code) that determines when the customer was created",
            "example": "2023-01-18T11:04:09.922Z"
          },
          "metadata": {
            "type": "object",
            "description": "You can specify up to 50 keys, with key names up to 40 characters long and values up to 500\ncharacters long. Metadata is useful for storing additional, structured information on an\nobject.",
            "nullable": true
          },
          "default_payment_method_id": {
            "type": "string",
            "description": "The identifier for the default payment method.",
            "example": "0a_pm_01926c58bc6e77c09e809964e72af8c8",
            "nullable": true,
            "maxLength": 64
          },
          "tax_registration_id": {
            "type": "string",
            "description": "The customer's tax registration number.",
            "example": "123456789",
            "nullable": true,
            "maxLength": 255
          },
          "document_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDocumentDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "CustomerUpdateRequest": {
        "type": "object",
        "required": [
          "name",
          "email"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The customer's name",
            "example": "Jon Test",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "description": "The customer's email address",
            "example": "JonTest@test.com",
            "maxLength": 255
          },
          "phone": {
            "type": "string",
            "description": "The customer's phone number",
            "example": "9123456789",
            "nullable": true,
            "maxLength": 255
          },
          "description": {
            "type": "string",
            "description": "An arbitrary string that you can attach to a customer object.",
            "example": "First Customer",
            "nullable": true,
            "maxLength": 255
          },
          "phone_country_code": {
            "type": "string",
            "description": "The country code for the customer phone number",
            "example": "+65",
            "nullable": true,
            "maxLength": 255
          },
          "default_billing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDetails"
              }
            ],
            "nullable": true
          },
          "default_shipping_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDetails"
              }
            ],
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "You can specify up to 50 keys, with key names up to 40 characters long and values up to 500\ncharacters long. Metadata is useful for storing additional, structured information on an\nobject.",
            "nullable": true
          },
          "default_payment_method_id": {
            "type": "string",
            "description": "The unique identifier of the payment method",
            "example": "0a_pm_01926c58bc6e77c09e809964e72af8c8",
            "nullable": true
          },
          "tax_registration_id": {
            "type": "string",
            "description": "The customer's tax registration number.",
            "example": "123456789",
            "nullable": true,
            "maxLength": 255
          },
          "document_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDocumentDetails"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DDCData": {
        "type": "object",
        "required": [
          "iframe_url"
        ],
        "properties": {
          "iframe_url": {
            "type": "string"
          },
          "timeout_ms": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "DecisionEngineEliminationData": {
        "type": "object",
        "required": [
          "threshold"
        ],
        "properties": {
          "threshold": {
            "type": "number",
            "format": "double",
            "description": "Threshold for elimination logic in gateway selection",
            "example": 0.3
          }
        }
      },
      "DecisionEngineGatewayWiseExtraScore": {
        "type": "object",
        "required": [
          "gatewayName",
          "gatewaySigmaFactor"
        ],
        "properties": {
          "gatewayName": {
            "type": "string"
          },
          "gatewaySigmaFactor": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "DecisionEngineSRSubLevelInputConfig": {
        "type": "object",
        "description": "Payment method level configuration for success rate based routing",
        "properties": {
          "paymentMethodType": {
            "type": "string",
            "description": "Payment method type (e.g., \"card\", \"wallet\")",
            "example": "card",
            "nullable": true
          },
          "paymentMethod": {
            "type": "string",
            "description": "Specific payment method (e.g., \"credit\", \"debit\")",
            "example": "credit",
            "nullable": true
          },
          "latencyThreshold": {
            "type": "number",
            "format": "double",
            "description": "Latency threshold in percentile for this payment method",
            "example": 90.0,
            "nullable": true
          },
          "bucketSize": {
            "type": "integer",
            "format": "int32",
            "description": "Number of transactions to consider for this payment method",
            "example": 100,
            "nullable": true
          },
          "hedgingPercent": {
            "type": "number",
            "format": "double",
            "description": "Percentage of traffic to route for exploration for this payment method",
            "example": 5.0,
            "nullable": true
          },
          "lowerResetFactor": {
            "type": "number",
            "format": "double",
            "description": "Lower reset factor for this payment method",
            "example": 0.5,
            "nullable": true
          },
          "upperResetFactor": {
            "type": "number",
            "format": "double",
            "description": "Upper reset factor for this payment method",
            "example": 1.5,
            "nullable": true
          },
          "gatewayExtraScore": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DecisionEngineGatewayWiseExtraScore"
            },
            "description": "Gateway-specific extra scoring factors for this payment method",
            "nullable": true
          }
        }
      },
      "DecisionEngineSuccessRateData": {
        "type": "object",
        "description": "Configuration for Decision Engine success rate based routing",
        "properties": {
          "defaultLatencyThreshold": {
            "type": "number",
            "format": "double",
            "description": "Default latency threshold in percentile for gateway selection",
            "example": 90.0,
            "nullable": true
          },
          "defaultBucketSize": {
            "type": "integer",
            "format": "int32",
            "description": "Default number of transactions to consider for success rate calculation",
            "example": 100,
            "nullable": true
          },
          "defaultHedgingPercent": {
            "type": "number",
            "format": "double",
            "description": "Default percentage of traffic to route for exploration/hedging",
            "example": 5.0,
            "nullable": true
          },
          "defaultLowerResetFactor": {
            "type": "number",
            "format": "double",
            "description": "Lower reset factor for adjusting gateway scores",
            "example": 0.5,
            "nullable": true
          },
          "defaultUpperResetFactor": {
            "type": "number",
            "format": "double",
            "description": "Upper reset factor for adjusting gateway scores",
            "example": 1.5,
            "nullable": true
          },
          "defaultGatewayExtraScore": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DecisionEngineGatewayWiseExtraScore"
            },
            "description": "Gateway-specific extra scoring factors",
            "nullable": true
          },
          "subLevelInputConfig": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DecisionEngineSRSubLevelInputConfig"
            },
            "description": "Payment method level specific configurations",
            "nullable": true
          }
        }
      },
      "DecoupledAuthenticationType": {
        "type": "string",
        "enum": [
          "challenge",
          "frictionless"
        ]
      },
      "DeleteTokenDataRequest": {
        "type": "object",
        "required": [
          "customer_id",
          "session_id"
        ],
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "Customer ID for which the tokenization is requested",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8"
          },
          "session_id": {
            "type": "string",
            "description": "Session ID associated with the tokenization request",
            "example": "0a_pms_01926c58bc6e77c09e809964e72af8c8"
          }
        }
      },
      "DeleteTokenDataResponse": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier returned by the tokenization service",
            "example": "0a_tok_01926c58bc6e77c09e809964e72af8c8"
          }
        }
      },
      "DeviceChannel": {
        "type": "string",
        "description": "Device Channel indicating whether request is coming from App or Browser",
        "enum": [
          "APP",
          "BRW"
        ]
      },
      "DeviceDetails": {
        "type": "object",
        "description": "Device details for collecting Device information",
        "properties": {
          "device_type": {
            "type": "string",
            "description": "Device type",
            "nullable": true
          },
          "device_brand": {
            "type": "string",
            "description": "Device brand",
            "nullable": true
          },
          "device_os": {
            "type": "string",
            "description": "Device OS",
            "nullable": true
          },
          "device_display": {
            "type": "string",
            "description": "Device display",
            "nullable": true
          }
        }
      },
      "DiscountTier": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "description": "The discount value (e.g., \"5.50\").",
            "example": "5.50",
            "nullable": true
          },
          "end_date": {
            "type": "string",
            "description": "The ISO-8601 date until which this discount is valid",
            "example": "2027-12-31",
            "nullable": true
          }
        }
      },
      "DiscountType": {
        "type": "string",
        "description": "Defines the type of discount applied to a payment, such as whether it's a fixed date discount, a daily calendar discount, or a daily business discount.",
        "enum": [
          "standard",
          "fixed_date",
          "daily_calendar",
          "daily_business"
        ]
      },
      "DisplayAmountOnSdk": {
        "type": "object",
        "required": [
          "net_amount",
          "order_tax_amount",
          "shipping_cost"
        ],
        "properties": {
          "net_amount": {
            "type": "string",
            "description": "net amount = amount + order_tax_amount + shipping_cost"
          },
          "order_tax_amount": {
            "type": "string",
            "description": "order tax amount calculated by tax connectors"
          },
          "shipping_cost": {
            "type": "string",
            "description": "shipping cost for the order"
          }
        }
      },
      "DisputeResponse": {
        "type": "object",
        "required": [
          "dispute_id",
          "payment_id",
          "attempt_id",
          "amount",
          "currency",
          "dispute_stage",
          "dispute_status",
          "connector",
          "connector_status",
          "connector_dispute_id",
          "created_at",
          "is_already_refunded"
        ],
        "properties": {
          "dispute_id": {
            "type": "string",
            "description": "The identifier for dispute"
          },
          "payment_id": {
            "type": "string",
            "description": "The identifier for payment_intent"
          },
          "attempt_id": {
            "type": "string",
            "description": "The identifier for payment_attempt"
          },
          "amount": {
            "$ref": "#/components/schemas/StringMinorUnit"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "dispute_stage": {
            "$ref": "#/components/schemas/DisputeStage"
          },
          "dispute_status": {
            "$ref": "#/components/schemas/DisputeStatus"
          },
          "connector": {
            "type": "string",
            "description": "connector to which dispute is associated with"
          },
          "connector_status": {
            "type": "string",
            "description": "Status of the dispute sent by connector"
          },
          "connector_dispute_id": {
            "type": "string",
            "description": "Dispute id sent by connector"
          },
          "connector_reason": {
            "type": "string",
            "description": "Reason of dispute sent by connector",
            "nullable": true
          },
          "connector_reason_code": {
            "type": "string",
            "description": "Reason code of dispute sent by connector",
            "nullable": true
          },
          "challenge_required_by": {
            "type": "string",
            "format": "date-time",
            "description": "Evidence deadline of dispute sent by connector",
            "nullable": true
          },
          "connector_created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Dispute created time sent by connector",
            "nullable": true
          },
          "connector_updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Dispute updated time sent by connector",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time at which dispute is received"
          },
          "profile_id": {
            "type": "string",
            "description": "The `profile_id` associated with the dispute",
            "nullable": true
          },
          "merchant_connector_id": {
            "type": "string",
            "description": "The `merchant_connector_id` of the connector / processor through which the dispute was processed",
            "nullable": true
          },
          "is_already_refunded": {
            "type": "boolean",
            "description": "Shows if the disputed amount(dispute_lost statuses only) + refunded amount is greater than captured amount"
          }
        }
      },
      "DisputeResponsePaymentsRetrieve": {
        "type": "object",
        "required": [
          "dispute_id",
          "amount",
          "dispute_stage",
          "dispute_status",
          "connector_status",
          "connector_dispute_id",
          "created_at"
        ],
        "properties": {
          "dispute_id": {
            "type": "string",
            "description": "The identifier for dispute"
          },
          "amount": {
            "$ref": "#/components/schemas/StringMinorUnit"
          },
          "dispute_stage": {
            "$ref": "#/components/schemas/DisputeStage"
          },
          "dispute_status": {
            "$ref": "#/components/schemas/DisputeStatus"
          },
          "connector_status": {
            "type": "string",
            "description": "Status of the dispute sent by connector"
          },
          "connector_dispute_id": {
            "type": "string",
            "description": "Dispute id sent by connector"
          },
          "connector_reason": {
            "type": "string",
            "description": "Reason of dispute sent by connector",
            "nullable": true
          },
          "connector_reason_code": {
            "type": "string",
            "description": "Reason code of dispute sent by connector",
            "nullable": true
          },
          "challenge_required_by": {
            "type": "string",
            "format": "date-time",
            "description": "Evidence deadline of dispute sent by connector",
            "nullable": true
          },
          "connector_created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Dispute created time sent by connector",
            "nullable": true
          },
          "connector_updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Dispute updated time sent by connector",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time at which dispute is received"
          }
        }
      },
      "DisputeStage": {
        "type": "string",
        "description": "Stage of the dispute",
        "enum": [
          "pre_dispute",
          "dispute",
          "pre_arbitration",
          "arbitration",
          "dispute_reversal"
        ]
      },
      "DisputeStatus": {
        "type": "string",
        "description": "Status of the dispute",
        "enum": [
          "dispute_opened",
          "dispute_expired",
          "dispute_accepted",
          "dispute_cancelled",
          "dispute_challenged",
          "dispute_won",
          "dispute_lost"
        ]
      },
      "DocumentDetails": {
        "type": "object",
        "required": [
          "document_number"
        ],
        "properties": {
          "document_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentKind"
              }
            ],
            "nullable": true
          },
          "document_number": {
            "type": "string",
            "description": "Cpf or Cnpj number",
            "example": "20201210000155"
          }
        }
      },
      "DocumentKind": {
        "type": "string",
        "description": "Represents the type of identification document used for validation.",
        "enum": [
          "cpf",
          "cnpj",
          "psn",
          "other"
        ]
      },
      "DokuBankTransferInstructions": {
        "type": "object",
        "required": [
          "expires_at",
          "reference",
          "instructions_url"
        ],
        "properties": {
          "expires_at": {
            "type": "string",
            "example": "1707091200000"
          },
          "reference": {
            "type": "string",
            "example": "122385736258"
          },
          "instructions_url": {
            "type": "string"
          }
        }
      },
      "DokuBillingDetails": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "description": "The billing first name for Doku",
            "example": "Jane",
            "nullable": true
          },
          "last_name": {
            "type": "string",
            "description": "The billing second name for Doku",
            "example": "Doe",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The Email ID for Doku billing",
            "example": "example@me.com",
            "nullable": true
          }
        }
      },
      "DynamicRoutingAlgorithm": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/EliminationRoutingConfig"
          },
          {
            "$ref": "#/components/schemas/SuccessBasedRoutingConfig"
          },
          {
            "$ref": "#/components/schemas/ContractBasedRoutingConfig"
          }
        ]
      },
      "DynamicRoutingConfigParams": {
        "type": "string",
        "enum": [
          "PaymentMethod",
          "PaymentMethodType",
          "AuthenticationType",
          "Currency",
          "Country",
          "CardNetwork",
          "CardBin"
        ]
      },
      "EftDebitOrderAdditionalData": {
        "type": "object",
        "required": [
          "account_number"
        ],
        "properties": {
          "account_number": {
            "type": "string",
            "description": "Partially masked account number for eft bank debit payment",
            "example": "0001****3456"
          },
          "branch_code": {
            "type": "string",
            "description": "Partially masked branch code for eft bank debit payment",
            "example": "110***000",
            "nullable": true
          },
          "bank_account_holder_name": {
            "type": "string",
            "description": "Bank account's owner name",
            "example": "John Doe",
            "nullable": true
          },
          "bank_name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BankNames"
              }
            ],
            "nullable": true
          },
          "bank_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BankType"
              }
            ],
            "nullable": true
          }
        }
      },
      "ElementPosition": {
        "type": "string",
        "enum": [
          "left",
          "top left",
          "top",
          "top right",
          "right",
          "bottom right",
          "bottom",
          "bottom left",
          "center"
        ]
      },
      "ElementSize": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "Variants"
            ],
            "properties": {
              "Variants": {
                "$ref": "#/components/schemas/SizeVariants"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "Percentage"
            ],
            "properties": {
              "Percentage": {
                "type": "integer",
                "format": "int32",
                "minimum": 0
              }
            }
          },
          {
            "type": "object",
            "required": [
              "Pixels"
            ],
            "properties": {
              "Pixels": {
                "type": "integer",
                "format": "int32",
                "minimum": 0
              }
            }
          }
        ]
      },
      "EligibilityBalanceCheckResponseItem": {
        "type": "object",
        "required": [
          "payment_method_data",
          "eligibility"
        ],
        "properties": {
          "payment_method_data": {
            "$ref": "#/components/schemas/BalanceCheckPaymentMethodData"
          },
          "eligibility": {
            "$ref": "#/components/schemas/PMBalanceCheckEligibilityResponse"
          }
        }
      },
      "EliminationAnalyserConfig": {
        "type": "object",
        "properties": {
          "bucket_size": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "minimum": 0
          },
          "bucket_leak_interval_in_secs": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "minimum": 0
          }
        },
        "additionalProperties": false
      },
      "EliminationRoutingConfig": {
        "type": "object",
        "required": [
          "decision_engine_configs"
        ],
        "properties": {
          "params": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DynamicRoutingConfigParams"
            },
            "deprecated": true,
            "nullable": true
          },
          "elimination_analyser_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EliminationAnalyserConfig"
              }
            ],
            "nullable": true
          },
          "decision_engine_configs": {
            "$ref": "#/components/schemas/DecisionEngineEliminationData"
          }
        },
        "additionalProperties": false
      },
      "EnablePaymentLinkRequest": {
        "type": "string",
        "description": "Whether payment link is requested to be enabled or not for this transaction",
        "enum": [
          "Enable",
          "Skip"
        ]
      },
      "EnabledPaymentMethod": {
        "type": "object",
        "description": "Object for EnabledPaymentMethod",
        "required": [
          "payment_method",
          "payment_method_types"
        ],
        "properties": {
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodType"
            },
            "description": "An array of associated payment method types",
            "uniqueItems": true
          }
        }
      },
      "ErrorCategory": {
        "type": "string",
        "enum": [
          "frm_decline",
          "processor_downtime",
          "processor_decline_unauthorized",
          "issue_with_payment_method",
          "processor_decline_incorrect_data",
          "hard_decline",
          "soft_decline"
        ]
      },
      "ErrorDetails": {
        "type": "object",
        "description": "Error details for the payment",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "The error code",
            "example": "card_declined"
          },
          "message": {
            "type": "string",
            "description": "The error message",
            "example": "The card was declined."
          },
          "reason": {
            "type": "string",
            "description": "The detailed error reason that was returned by the connector.",
            "example": "The card was declined.",
            "nullable": true
          },
          "unified_code": {
            "type": "string",
            "description": "The unified error code across all connectors.\nThis can be relied upon for taking decisions based on the error.",
            "example": "card_declined",
            "nullable": true
          },
          "unified_message": {
            "type": "string",
            "description": "The unified error message across all connectors.\nIf there is a translation available, this will have the translated message",
            "example": "The card was declined.",
            "nullable": true
          },
          "network_advice_code": {
            "type": "string",
            "description": "This field can be returned for both approved and refused Mastercard payments.\nThis code provides additional information about the type of transaction or the reason why the payment failed.\nIf the payment failed, the network advice code gives guidance on if and when you can retry the payment.",
            "example": "01",
            "nullable": true
          },
          "network_decline_code": {
            "type": "string",
            "description": "For card errors resulting from a card issuer decline, a brand specific 2, 3, or 4 digit code which indicates the reason the authorization failed.",
            "example": "05",
            "nullable": true
          },
          "network_error_message": {
            "type": "string",
            "description": "A string indicating how to proceed with an network error if payment gateway provide one. This is used to understand the network error code better.",
            "example": "Do not retry",
            "nullable": true
          }
        }
      },
      "EventClass": {
        "type": "string",
        "enum": [
          "payments",
          "refunds",
          "disputes",
          "mandates",
          "payouts",
          "subscriptions"
        ]
      },
      "EventListItemResponse": {
        "type": "object",
        "description": "The response body for each item when listing events.",
        "required": [
          "event_id",
          "merchant_id",
          "profile_id",
          "object_id",
          "event_type",
          "event_class",
          "initial_attempt_id",
          "created"
        ],
        "properties": {
          "event_id": {
            "type": "string",
            "description": "The identifier for the Event.",
            "example": "evt_018e31720d1b7a2b82677d3032cab959",
            "maxLength": 64
          },
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account.",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64
          },
          "profile_id": {
            "type": "string",
            "description": "The identifier for the Business Profile.",
            "example": "SqB0zwDGR5wHppWf0bx7GKr1f2",
            "maxLength": 64
          },
          "object_id": {
            "type": "string",
            "description": "The identifier for the object (Payment Intent ID, Refund ID, etc.)",
            "example": "QHrfd5LUDdZaKtAjdJmMu0dMa1",
            "maxLength": 64
          },
          "event_type": {
            "$ref": "#/components/schemas/EventType"
          },
          "event_class": {
            "$ref": "#/components/schemas/EventClass"
          },
          "is_delivery_successful": {
            "type": "boolean",
            "description": "Indicates whether the webhook was ultimately delivered or not.",
            "nullable": true
          },
          "initial_attempt_id": {
            "type": "string",
            "description": "The identifier for the initial delivery attempt. This will be the same as `event_id` for\nthe initial delivery attempt.",
            "example": "evt_018e31720d1b7a2b82677d3032cab959",
            "maxLength": 64
          },
          "processor_merchant_id": {
            "type": "string",
            "description": "The identifier for the Processor Merchant Account.",
            "nullable": true,
            "maxLength": 64
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "Time at which the event was created.",
            "example": "2022-09-10T10:11:12Z"
          }
        }
      },
      "EventRetrieveResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EventListItemResponse"
          },
          {
            "type": "object",
            "required": [
              "request",
              "response"
            ],
            "properties": {
              "request": {
                "$ref": "#/components/schemas/OutgoingWebhookRequestContent"
              },
              "response": {
                "$ref": "#/components/schemas/OutgoingWebhookResponseContent"
              },
              "delivery_attempt": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/WebhookDeliveryAttempt"
                  }
                ],
                "nullable": true
              }
            }
          }
        ],
        "description": "The response body for retrieving an event."
      },
      "EventType": {
        "type": "string",
        "enum": [
          "payment_succeeded",
          "payment_failed",
          "payment_processing",
          "payment_cancelled",
          "payment_cancelled_post_capture",
          "payment_authorized",
          "payment_partially_authorized",
          "payment_captured",
          "payment_expired",
          "action_required",
          "refund_succeeded",
          "refund_failed",
          "dispute_opened",
          "dispute_expired",
          "dispute_accepted",
          "dispute_cancelled",
          "dispute_challenged",
          "dispute_won",
          "dispute_lost",
          "mandate_active",
          "mandate_revoked",
          "payout_success",
          "payout_failed",
          "payout_initiated",
          "payout_processing",
          "payout_cancelled",
          "payout_expired",
          "payout_reversed",
          "invoice_paid",
          "surcharge_payment_succeeded",
          "surcharge_refund_succeeded"
        ]
      },
      "ExemptionIndicator": {
        "type": "string",
        "description": "Represents the exemption indicator used in a transaction under PSD2 SCA (Strong Customer Authentication) rules.",
        "enum": [
          "low_value",
          "secure_corporate_payment",
          "trusted_listing",
          "transaction_risk_assessment",
          "three_ds_outage",
          "sca_delegation",
          "out_of_sca_scope",
          "other",
          "low_risk_program",
          "recurring_operation"
        ]
      },
      "ExtendedCardInfo": {
        "type": "object",
        "required": [
          "card_number",
          "card_exp_month",
          "card_exp_year",
          "card_holder_name",
          "card_cvc"
        ],
        "properties": {
          "card_number": {
            "type": "string",
            "description": "The card number",
            "example": "4242424242424242"
          },
          "card_exp_month": {
            "type": "string",
            "description": "The card's expiry month",
            "example": "24"
          },
          "card_exp_year": {
            "type": "string",
            "description": "The card's expiry year",
            "example": "24"
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test"
          },
          "card_cvc": {
            "type": "string",
            "description": "The CVC number for the card",
            "example": "242"
          },
          "card_issuer": {
            "type": "string",
            "description": "The name of the issuer of card",
            "example": "chase",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "example": "CREDIT",
            "nullable": true
          },
          "card_issuing_country": {
            "type": "string",
            "example": "INDIA",
            "nullable": true
          },
          "bank_code": {
            "type": "string",
            "example": "JP_AMEX",
            "nullable": true
          }
        }
      },
      "ExtendedCardInfoConfig": {
        "type": "object",
        "required": [
          "public_key"
        ],
        "properties": {
          "public_key": {
            "type": "string",
            "description": "Merchant public key"
          },
          "ttl_in_secs": {
            "type": "integer",
            "format": "int32",
            "description": "TTL for extended card info",
            "default": 900,
            "maximum": 7200,
            "minimum": 0
          }
        }
      },
      "ExtendedCardInfoResponse": {
        "type": "object",
        "required": [
          "payload"
        ],
        "properties": {
          "payload": {
            "type": "string"
          }
        }
      },
      "External3dsAuthenticationRequest": {
        "type": "string",
        "description": "Whether 3ds authentication is requested or not",
        "enum": [
          "Enable",
          "Skip"
        ]
      },
      "ExternalAuthenticationDetailsResponse": {
        "type": "object",
        "description": "Details of external authentication",
        "required": [
          "status"
        ],
        "properties": {
          "authentication_flow": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DecoupledAuthenticationType"
              }
            ],
            "nullable": true
          },
          "electronic_commerce_indicator": {
            "type": "string",
            "description": "Electronic Commerce Indicator (eci)",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/AuthenticationStatus"
          },
          "ds_transaction_id": {
            "type": "string",
            "description": "DS Transaction ID",
            "nullable": true
          },
          "version": {
            "type": "string",
            "description": "Message Version",
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "description": "Error Code",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "description": "Error Message",
            "nullable": true
          },
          "challenge_cancel_code": {
            "type": "string",
            "description": "Challenge Cancel Code",
            "nullable": true
          },
          "trans_status_reason": {
            "type": "string",
            "description": "Trans Status Reason Code",
            "nullable": true
          }
        }
      },
      "ExternalSurchargeDetails": {
        "type": "object",
        "description": "External surcharge details from InterPayments (stored as JSONB)",
        "required": [
          "external_surcharge_id",
          "external_surcharge_amount",
          "sale_notified"
        ],
        "properties": {
          "external_surcharge_id": {
            "type": "string",
            "description": "sTxId from InterPayments (the last one received before confirm)"
          },
          "external_surcharge_amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "sale_notified": {
            "type": "boolean",
            "description": "Whether /v1/ch/sale has been successfully called"
          }
        }
      },
      "ExternalThreeDsData": {
        "type": "object",
        "description": "Represents external 3DS authentication data used in the payment flow.",
        "required": [
          "authentication_cryptogram",
          "ds_trans_id",
          "version",
          "eci",
          "transaction_status"
        ],
        "properties": {
          "authentication_cryptogram": {
            "$ref": "#/components/schemas/Cryptogram"
          },
          "ds_trans_id": {
            "type": "string",
            "description": "Directory Server Transaction ID generated during the 3DS process."
          },
          "version": {
            "type": "string",
            "description": "The version of the 3DS protocol used (e.g., \"2.1.0\" or \"2.2.0\")."
          },
          "eci": {
            "type": "string",
            "description": "Electronic Commerce Indicator (ECI) value representing the 3DS authentication result."
          },
          "transaction_status": {
            "$ref": "#/components/schemas/TransactionStatus"
          },
          "exemption_indicator": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExemptionIndicator"
              }
            ],
            "nullable": true
          },
          "network_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkParams"
              }
            ],
            "nullable": true
          }
        }
      },
      "ExternalVaultConnectorDetails": {
        "type": "object",
        "properties": {
          "vault_connector_id": {
            "type": "string",
            "description": "Merchant Connector id to be stored for vault connector",
            "nullable": true
          },
          "vault_sdk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VaultSdk"
              }
            ],
            "nullable": true
          },
          "vault_token_selector": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VaultTokenField"
            },
            "description": "Fields to tokenization in vault",
            "nullable": true
          }
        }
      },
      "FeatureMatrixListResponse": {
        "type": "object",
        "required": [
          "connector_count",
          "connectors"
        ],
        "properties": {
          "connector_count": {
            "type": "integer",
            "description": "The number of connectors included in the response",
            "minimum": 0
          },
          "connectors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectorFeatureMatrixResponse"
            }
          }
        }
      },
      "FeatureMatrixRequest": {
        "type": "object",
        "properties": {
          "connectors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Connector"
            },
            "nullable": true
          }
        }
      },
      "FeatureMetadata": {
        "type": "object",
        "description": "additional data that might be required by hyperswitch",
        "properties": {
          "redirect_response": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RedirectResponse"
              }
            ],
            "nullable": true
          },
          "search_tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Additional tags to be used for global search",
            "nullable": true
          },
          "apple_pay_recurring_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplePayRecurringDetails"
              }
            ],
            "nullable": true
          },
          "revenue_recovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentRevenueRecoveryMetadata"
              }
            ],
            "nullable": true
          },
          "pix_additional_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PixAdditionalDetails"
              }
            ],
            "nullable": true
          },
          "boleto_additional_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoletoAdditionalDetails"
              }
            ],
            "nullable": true
          },
          "pix_automatico_additional_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PixAutomaticoAdditionalDetails"
              }
            ],
            "nullable": true
          },
          "finix_additional_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FinixAdditionalDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "FeatureStatus": {
        "type": "string",
        "description": "The status of the feature",
        "enum": [
          "not_supported",
          "supported"
        ]
      },
      "FieldType": {
        "oneOf": [
          {
            "type": "string",
            "enum": [
              "user_card_number"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_gift_card_number"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_card_expiry_month"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_card_expiry_year"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_card_cvc"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_gift_card_pin"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_card_network"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_full_name"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_email_address"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_phone_number"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_phone_number_country_code"
            ]
          },
          {
            "type": "object",
            "required": [
              "user_country"
            ],
            "properties": {
              "user_country": {
                "type": "object",
                "required": [
                  "options"
                ],
                "properties": {
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "user_currency"
            ],
            "properties": {
              "user_currency": {
                "type": "object",
                "required": [
                  "options"
                ],
                "properties": {
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "type": "string",
            "enum": [
              "user_crypto_currency_network"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_billing_name"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_address_line1"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_address_line2"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_address_city"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_address_pincode"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_address_state"
            ]
          },
          {
            "type": "object",
            "required": [
              "user_address_country"
            ],
            "properties": {
              "user_address_country": {
                "type": "object",
                "required": [
                  "options"
                ],
                "properties": {
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "type": "string",
            "enum": [
              "user_shipping_name"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_shipping_address_line1"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_shipping_address_line2"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_shipping_address_city"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_shipping_address_pincode"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_shipping_address_state"
            ]
          },
          {
            "type": "object",
            "required": [
              "user_shipping_address_country"
            ],
            "properties": {
              "user_shipping_address_country": {
                "type": "object",
                "required": [
                  "options"
                ],
                "properties": {
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "user_document_type"
            ],
            "properties": {
              "user_document_type": {
                "type": "object",
                "required": [
                  "options"
                ],
                "properties": {
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "type": "string",
            "enum": [
              "user_social_security_number"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_blik_code"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_bank"
            ]
          },
          {
            "type": "object",
            "required": [
              "user_bank_options"
            ],
            "properties": {
              "user_bank_options": {
                "type": "object",
                "required": [
                  "options"
                ],
                "properties": {
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "type": "string",
            "enum": [
              "user_bank_account_number"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_source_bank_account_id"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_destination_bank_account_id"
            ]
          },
          {
            "type": "string",
            "enum": [
              "text"
            ]
          },
          {
            "type": "object",
            "required": [
              "drop_down"
            ],
            "properties": {
              "drop_down": {
                "type": "object",
                "required": [
                  "options"
                ],
                "properties": {
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "type": "string",
            "enum": [
              "user_date_of_birth"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_vpa_id"
            ]
          },
          {
            "type": "object",
            "required": [
              "language_preference"
            ],
            "properties": {
              "language_preference": {
                "type": "object",
                "required": [
                  "options"
                ],
                "properties": {
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "type": "string",
            "enum": [
              "user_pix_key"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_cpf"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_cnpj"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_iban"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_bsb_number"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_bank_sort_code"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_bank_routing_number"
            ]
          },
          {
            "type": "object",
            "required": [
              "user_bank_type"
            ],
            "properties": {
              "user_bank_type": {
                "type": "object",
                "required": [
                  "options"
                ],
                "properties": {
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "type": "string",
            "enum": [
              "user_bank_account_holder_name"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_msisdn"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_client_identifier"
            ]
          },
          {
            "type": "string",
            "enum": [
              "order_details_product_name"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_branch_code"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_bank_identifier"
            ]
          },
          {
            "type": "string",
            "enum": [
              "user_pix_account_number"
            ]
          }
        ],
        "description": "Possible field type of required fields in payment_method_data"
      },
      "FinixAdditionalDetails": {
        "type": "object",
        "properties": {
          "fraud_session_id": {
            "type": "string",
            "description": "The fraud session ID used for Finix fraud detection",
            "example": "1234567890abcdef",
            "nullable": true
          }
        }
      },
      "FlexibleAmountDetails": {
        "type": "object",
        "description": "Represents the rules for legal protest (official debt registration) for non-payment, including the type of protest and the number of days after which the protest is initiated.",
        "properties": {
          "min_value": {
            "type": "string",
            "description": "Minimum value allowed (e.g., \"10.00\")",
            "example": "38.02",
            "nullable": true
          },
          "max_value": {
            "type": "string",
            "description": "Maximum value allowed (e.g., \"5000.00\")",
            "example": "38.02",
            "nullable": true
          },
          "value_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CalculationType"
              }
            ],
            "nullable": true
          }
        }
      },
      "ForceSync": {
        "type": "string",
        "enum": [
          "true",
          "false"
        ]
      },
      "FrmAction": {
        "type": "string",
        "enum": [
          "cancel_txn",
          "auto_refund",
          "manual_review"
        ]
      },
      "FrmConfigs": {
        "type": "object",
        "description": "Details of FrmConfigs are mentioned here... it should be passed in payment connector create api call, and stored in merchant_connector_table",
        "required": [
          "gateway",
          "payment_methods"
        ],
        "properties": {
          "gateway": {
            "$ref": "#/components/schemas/ConnectorType"
          },
          "payment_methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FrmPaymentMethod"
            },
            "description": "payment methods that can be used in the payment"
          }
        },
        "additionalProperties": false
      },
      "FrmMessage": {
        "type": "object",
        "description": "frm message is an object sent inside the payments response...when frm is invoked, its value is Some(...), else its None",
        "required": [
          "frm_name"
        ],
        "properties": {
          "frm_name": {
            "type": "string"
          },
          "frm_transaction_id": {
            "type": "string",
            "nullable": true
          },
          "frm_transaction_type": {
            "type": "string",
            "nullable": true
          },
          "frm_status": {
            "type": "string",
            "nullable": true
          },
          "frm_score": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "frm_reason": {
            "nullable": true
          },
          "frm_error": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "FrmPaymentMethod": {
        "type": "object",
        "description": "Details of FrmPaymentMethod are mentioned here... it should be passed in payment connector create api call, and stored in merchant_connector_table",
        "required": [
          "payment_method"
        ],
        "properties": {
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FrmPaymentMethodType"
            },
            "description": "payment method types(credit, debit) that can be used in the payment. This field is deprecated. It has not been removed to provide backward compatibility.",
            "deprecated": true,
            "nullable": true
          },
          "flow": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FrmPreferredFlowTypes"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FrmPaymentMethodType": {
        "type": "object",
        "description": "Details of FrmPaymentMethodType are mentioned here... it should be passed in payment connector create api call, and stored in merchant_connector_table",
        "required": [
          "payment_method_type",
          "card_networks",
          "flow",
          "action"
        ],
        "properties": {
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethodType"
          },
          "card_networks": {
            "$ref": "#/components/schemas/CardNetwork"
          },
          "flow": {
            "$ref": "#/components/schemas/FrmPreferredFlowTypes"
          },
          "action": {
            "$ref": "#/components/schemas/FrmAction"
          }
        },
        "additionalProperties": false
      },
      "FrmPreferredFlowTypes": {
        "type": "string",
        "enum": [
          "pre",
          "post"
        ]
      },
      "FutureUsage": {
        "type": "string",
        "description": "Specifies how the payment method can be used for future payments.\n- `off_session`: The payment method can be used for future payments when the customer is not present.\n- `on_session`: The payment method is intended for use only when the customer is present during checkout.\nIf omitted, defaults to `on_session`.",
        "enum": [
          "off_session",
          "on_session"
        ]
      },
      "GPayPredecryptData": {
        "type": "object",
        "description": "This struct represents the decrypted Google Pay payment data",
        "required": [
          "card_exp_month",
          "card_exp_year",
          "application_primary_account_number",
          "cryptogram",
          "eci_indicator"
        ],
        "properties": {
          "card_exp_month": {
            "type": "string",
            "description": "The card's expiry month"
          },
          "card_exp_year": {
            "type": "string",
            "description": "The card's expiry year"
          },
          "application_primary_account_number": {
            "type": "string",
            "description": "The Primary Account Number (PAN) of the card",
            "example": "4242424242424242"
          },
          "cryptogram": {
            "type": "string",
            "description": "Cryptogram generated by the Network",
            "example": "AgAAAAAAAIR8CQrXcIhbQAAAAAA"
          },
          "eci_indicator": {
            "type": "string",
            "description": "Electronic Commerce Indicator",
            "example": "07"
          }
        }
      },
      "GcashRedirection": {
        "type": "object"
      },
      "GenericErrorResponseOpenApi": {
        "type": "object",
        "required": [
          "error_type",
          "message",
          "code"
        ],
        "properties": {
          "error_type": {
            "type": "string",
            "example": "invalid_request"
          },
          "message": {
            "type": "string",
            "example": "Missing required param: {param}"
          },
          "code": {
            "type": "string",
            "example": "IR_04"
          }
        }
      },
      "GenericLinkUiConfig": {
        "type": "object",
        "description": "Object for GenericLinkUiConfig",
        "properties": {
          "logo": {
            "type": "string",
            "description": "Merchant's display logo",
            "example": "https://hyperswitch.io/favicon.ico",
            "nullable": true,
            "maxLength": 255
          },
          "merchant_name": {
            "type": "string",
            "description": "Custom merchant name for the link",
            "example": "Hyperswitch",
            "nullable": true,
            "maxLength": 255
          },
          "theme": {
            "type": "string",
            "description": "Primary color to be used in the form represented in hex format",
            "example": "#4285F4",
            "nullable": true,
            "maxLength": 255
          }
        }
      },
      "GenericTokenizationRequest": {
        "type": "object",
        "required": [
          "customer_id",
          "token_request"
        ],
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "Customer ID for which the tokenization is requested",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8"
          },
          "token_request": {
            "type": "object",
            "description": "Request for tokenization which contains the data to be tokenized"
          }
        }
      },
      "GenericTokenizationResponse": {
        "type": "object",
        "required": [
          "id",
          "created_at",
          "flag"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier returned by the tokenization service",
            "example": "0a_tok_01926c58bc6e77c09e809964e72af8c8"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Created time of the tokenization id",
            "example": "2024-02-24T11:04:09.922Z"
          },
          "flag": {
            "type": "string",
            "description": "Status of the tokenization id created",
            "example": "enabled"
          }
        }
      },
      "GiftCardAdditionalData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "givex"
            ],
            "properties": {
              "givex": {
                "$ref": "#/components/schemas/GivexGiftCardAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pay_safe_card"
            ],
            "properties": {
              "pay_safe_card": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bhn_card_network"
            ],
            "properties": {
              "bhn_card_network": {
                "type": "object"
              }
            }
          }
        ]
      },
      "GiftCardData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "givex"
            ],
            "properties": {
              "givex": {
                "$ref": "#/components/schemas/GiftCardDetails"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pay_safe_card"
            ],
            "properties": {
              "pay_safe_card": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bhn_card_network"
            ],
            "properties": {
              "bhn_card_network": {
                "$ref": "#/components/schemas/BHNGiftCardDetails"
              }
            }
          }
        ]
      },
      "GiftCardDetails": {
        "type": "object",
        "required": [
          "number",
          "cvc"
        ],
        "properties": {
          "number": {
            "type": "string",
            "description": "The gift card number"
          },
          "cvc": {
            "type": "string",
            "description": "The card verification code."
          }
        }
      },
      "GiftCardResponse": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/GiftCardAdditionalData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ]
      },
      "GiropayBankRedirectAdditionalData": {
        "type": "object",
        "properties": {
          "bic": {
            "type": "string",
            "description": "Masked bank account bic code",
            "nullable": true
          },
          "iban": {
            "type": "string",
            "description": "Partially masked international bank account number (iban) for SEPA",
            "nullable": true
          },
          "country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          }
        }
      },
      "GivexGiftCardAdditionalData": {
        "type": "object",
        "required": [
          "last4"
        ],
        "properties": {
          "last4": {
            "type": "string",
            "description": "Last 4 digits of the gift card number",
            "example": "4242"
          }
        }
      },
      "GoPayRedirection": {
        "type": "object"
      },
      "GooglePayAssuranceDetails": {
        "type": "object",
        "required": [
          "card_holder_authenticated",
          "account_verified"
        ],
        "properties": {
          "card_holder_authenticated": {
            "type": "boolean",
            "description": "indicates that Cardholder possession validation has been performed"
          },
          "account_verified": {
            "type": "boolean",
            "description": "indicates that identification and verifications (ID&V) was performed"
          }
        }
      },
      "GooglePayCardFundingSource": {
        "type": "string",
        "enum": [
          "CREDIT",
          "DEBIT",
          "PREPAID",
          "UNKNOWN"
        ]
      },
      "GooglePayDecrypt": {
        "type": "object",
        "required": [
          "application_primary_account_number",
          "expiry_month",
          "expiry_year",
          "card_holder_name"
        ],
        "properties": {
          "application_primary_account_number": {
            "type": "string",
            "description": "The dpan number associated with card number",
            "example": "4242424242424242"
          },
          "expiry_month": {
            "type": "string",
            "description": "The card's expiry month"
          },
          "expiry_year": {
            "type": "string",
            "description": "The card's expiry year"
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Doe"
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          }
        }
      },
      "GooglePayDecryptAdditionalData": {
        "type": "object",
        "description": "Masked payout method details for Google pay decrypt wallet payout method",
        "required": [
          "card_exp_month",
          "card_exp_year",
          "card_holder_name"
        ],
        "properties": {
          "card_exp_month": {
            "type": "string",
            "description": "Card expiry month",
            "example": "01"
          },
          "card_exp_year": {
            "type": "string",
            "description": "Card expiry year",
            "example": "2026"
          },
          "card_holder_name": {
            "type": "string",
            "description": "Card holder name",
            "example": "John Doe"
          }
        }
      },
      "GooglePayPaymentMethodInfo": {
        "type": "object",
        "required": [
          "card_network",
          "card_details"
        ],
        "properties": {
          "card_network": {
            "type": "string",
            "description": "The name of the card network"
          },
          "card_details": {
            "type": "string",
            "description": "The details of the card"
          },
          "assurance_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GooglePayAssuranceDetails"
              }
            ],
            "nullable": true
          },
          "card_funding_source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GooglePayCardFundingSource"
              }
            ],
            "nullable": true
          }
        }
      },
      "GooglePayRedirectData": {
        "type": "object"
      },
      "GooglePaySessionResponse": {
        "type": "object",
        "required": [
          "merchant_info",
          "shipping_address_required",
          "email_required",
          "shipping_address_parameters",
          "allowed_payment_methods",
          "transaction_info",
          "delayed_session_token",
          "connector",
          "sdk_next_action"
        ],
        "properties": {
          "merchant_info": {
            "$ref": "#/components/schemas/GpayMerchantInfo"
          },
          "shipping_address_required": {
            "type": "boolean",
            "description": "Is shipping address required"
          },
          "email_required": {
            "type": "boolean",
            "description": "Is email required"
          },
          "shipping_address_parameters": {
            "$ref": "#/components/schemas/GpayShippingAddressParameters"
          },
          "allowed_payment_methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GpayAllowedPaymentMethods"
            },
            "description": "List of the allowed payment methods"
          },
          "transaction_info": {
            "$ref": "#/components/schemas/GpayTransactionInfo"
          },
          "delayed_session_token": {
            "type": "boolean",
            "description": "Identifier for the delayed session response"
          },
          "connector": {
            "type": "string",
            "description": "The name of the connector"
          },
          "sdk_next_action": {
            "$ref": "#/components/schemas/SdkNextAction"
          },
          "secrets": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SecretInfoToInitiateSdk"
              }
            ],
            "nullable": true
          }
        }
      },
      "GooglePayThirdPartySdk": {
        "type": "object",
        "required": [
          "delayed_session_token",
          "connector",
          "sdk_next_action"
        ],
        "properties": {
          "delayed_session_token": {
            "type": "boolean",
            "description": "Identifier for the delayed session response"
          },
          "connector": {
            "type": "string",
            "description": "The name of the connector"
          },
          "sdk_next_action": {
            "$ref": "#/components/schemas/SdkNextAction"
          }
        }
      },
      "GooglePayThirdPartySdkData": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GooglePayWalletData": {
        "type": "object",
        "required": [
          "type",
          "description",
          "info",
          "tokenization_data"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of payment method"
          },
          "description": {
            "type": "string",
            "description": "User-facing message to describe the payment method that funds this transaction."
          },
          "info": {
            "$ref": "#/components/schemas/GooglePayPaymentMethodInfo"
          },
          "tokenization_data": {
            "$ref": "#/components/schemas/GpayTokenizationData"
          }
        }
      },
      "GpayAllowedMethodsParameters": {
        "type": "object",
        "required": [
          "allowed_auth_methods",
          "allowed_card_networks"
        ],
        "properties": {
          "allowed_auth_methods": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The list of allowed auth methods (ex: 3DS, No3DS, PAN_ONLY etc)"
          },
          "allowed_card_networks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The list of allowed card networks (ex: AMEX,JCB etc)"
          },
          "billing_address_required": {
            "type": "boolean",
            "description": "Is billing address required",
            "nullable": true
          },
          "billing_address_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GpayBillingAddressParameters"
              }
            ],
            "nullable": true
          },
          "assurance_details_required": {
            "type": "boolean",
            "description": "Whether assurance details are required",
            "nullable": true
          },
          "allow_credit_cards": {
            "type": "boolean",
            "description": "Set to false if you don't want to allow credit cards",
            "nullable": true
          }
        }
      },
      "GpayAllowedPaymentMethods": {
        "type": "object",
        "required": [
          "type",
          "parameters",
          "tokenization_specification"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of payment method"
          },
          "parameters": {
            "$ref": "#/components/schemas/GpayAllowedMethodsParameters"
          },
          "tokenization_specification": {
            "$ref": "#/components/schemas/GpayTokenizationSpecification"
          }
        }
      },
      "GpayBillingAddressFormat": {
        "type": "string",
        "enum": [
          "FULL",
          "MIN"
        ]
      },
      "GpayBillingAddressParameters": {
        "type": "object",
        "required": [
          "phone_number_required",
          "format"
        ],
        "properties": {
          "phone_number_required": {
            "type": "boolean",
            "description": "Is billing phone number required"
          },
          "format": {
            "$ref": "#/components/schemas/GpayBillingAddressFormat"
          }
        }
      },
      "GpayEcryptedTokenizationData": {
        "type": "object",
        "description": "This struct represents the encrypted Gpay payment data",
        "required": [
          "type",
          "token"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the token"
          },
          "token": {
            "type": "string",
            "description": "Token generated for the wallet"
          }
        }
      },
      "GpayMerchantInfo": {
        "type": "object",
        "required": [
          "merchant_name"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The merchant Identifier that needs to be passed while invoking Gpay SDK",
            "nullable": true
          },
          "merchant_name": {
            "type": "string",
            "description": "The name of the merchant that needs to be displayed on Gpay PopUp"
          }
        }
      },
      "GpaySessionTokenResponse": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/GooglePayThirdPartySdk"
          },
          {
            "$ref": "#/components/schemas/GooglePaySessionResponse"
          }
        ]
      },
      "GpayShippingAddressParameters": {
        "type": "object",
        "required": [
          "phone_number_required"
        ],
        "properties": {
          "phone_number_required": {
            "type": "boolean",
            "description": "Is shipping phone number required"
          }
        }
      },
      "GpayTokenParameters": {
        "type": "object",
        "properties": {
          "gateway": {
            "type": "string",
            "description": "The name of the connector",
            "nullable": true
          },
          "gateway_merchant_id": {
            "type": "string",
            "description": "The merchant ID registered in the connector associated",
            "nullable": true
          },
          "stripe:version": {
            "type": "string",
            "nullable": true
          },
          "stripe:publishableKey": {
            "type": "string",
            "nullable": true
          },
          "protocol_version": {
            "type": "string",
            "description": "The protocol version for encryption",
            "nullable": true
          },
          "public_key": {
            "type": "string",
            "description": "The public key provided by the merchant",
            "nullable": true
          }
        }
      },
      "GpayTokenizationData": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/GPayPredecryptData"
          },
          {
            "$ref": "#/components/schemas/GpayEcryptedTokenizationData"
          }
        ],
        "description": "This enum is used to represent the Gpay payment data, which can either be encrypted or decrypted."
      },
      "GpayTokenizationSpecification": {
        "type": "object",
        "required": [
          "type",
          "parameters"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The token specification type(ex: PAYMENT_GATEWAY)"
          },
          "parameters": {
            "$ref": "#/components/schemas/GpayTokenParameters"
          }
        }
      },
      "GpayTransactionInfo": {
        "type": "object",
        "required": [
          "country_code",
          "currency_code",
          "total_price_status",
          "total_price"
        ],
        "properties": {
          "country_code": {
            "$ref": "#/components/schemas/CountryAlpha2"
          },
          "currency_code": {
            "$ref": "#/components/schemas/Currency"
          },
          "total_price_status": {
            "type": "string",
            "description": "The total price status (ex: 'FINAL')"
          },
          "total_price": {
            "type": "string",
            "description": "The total price",
            "example": "38.02"
          }
        }
      },
      "GsmCreateRequest": {
        "type": "object",
        "required": [
          "connector",
          "flow",
          "sub_flow",
          "code",
          "message",
          "status",
          "decision",
          "step_up_possible",
          "clear_pan_possible"
        ],
        "properties": {
          "connector": {
            "$ref": "#/components/schemas/Connector"
          },
          "flow": {
            "type": "string",
            "description": "The flow in which the code and message occurred for a connector"
          },
          "sub_flow": {
            "type": "string",
            "description": "The sub_flow in which the code and message occurred  for a connector"
          },
          "code": {
            "type": "string",
            "description": "code received from the connector"
          },
          "message": {
            "type": "string",
            "description": "message received from the connector"
          },
          "status": {
            "type": "string",
            "description": "status provided by the router"
          },
          "router_error": {
            "type": "string",
            "description": "optional error provided by the router",
            "nullable": true
          },
          "decision": {
            "$ref": "#/components/schemas/GsmDecision"
          },
          "step_up_possible": {
            "type": "boolean",
            "description": "indicates if step_up retry is possible\n**Deprecated**: This field is now included as part of `feature_data` under the `Retry` variant.",
            "deprecated": true
          },
          "unified_code": {
            "type": "string",
            "description": "error code unified across the connectors",
            "nullable": true
          },
          "unified_message": {
            "type": "string",
            "description": "error message unified across the connectors",
            "nullable": true
          },
          "error_category": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ErrorCategory"
              }
            ],
            "nullable": true
          },
          "clear_pan_possible": {
            "type": "boolean",
            "description": "indicates if retry with pan is possible\n**Deprecated**: This field is now included as part of `feature_data` under the `Retry` variant.",
            "deprecated": true
          },
          "feature": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GsmFeature"
              }
            ],
            "nullable": true
          },
          "feature_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GsmFeatureData"
              }
            ],
            "nullable": true
          },
          "standardised_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StandardisedCode"
              }
            ],
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A detailed description of the error intended for debugging, analytics, and support teams.",
            "nullable": true
          },
          "user_guidance_message": {
            "type": "string",
            "description": "A user-friendly message that can be safely displayed to the customer.\nThis message provides guidance on what the user should do to\nresolve the issue.",
            "nullable": true
          }
        }
      },
      "GsmDecision": {
        "type": "string",
        "enum": [
          "retry",
          "do_default"
        ]
      },
      "GsmDeleteRequest": {
        "type": "object",
        "required": [
          "connector",
          "flow",
          "sub_flow",
          "code",
          "message"
        ],
        "properties": {
          "connector": {
            "type": "string",
            "description": "The connector through which payment has gone through"
          },
          "flow": {
            "type": "string",
            "description": "The flow in which the code and message occurred for a connector"
          },
          "sub_flow": {
            "type": "string",
            "description": "The sub_flow in which the code and message occurred  for a connector"
          },
          "code": {
            "type": "string",
            "description": "code received from the connector"
          },
          "message": {
            "type": "string",
            "description": "message received from the connector"
          }
        }
      },
      "GsmDeleteResponse": {
        "type": "object",
        "required": [
          "gsm_rule_delete",
          "connector",
          "flow",
          "sub_flow",
          "code"
        ],
        "properties": {
          "gsm_rule_delete": {
            "type": "boolean"
          },
          "connector": {
            "type": "string",
            "description": "The connector through which payment has gone through"
          },
          "flow": {
            "type": "string",
            "description": "The flow in which the code and message occurred for a connector"
          },
          "sub_flow": {
            "type": "string",
            "description": "The sub_flow in which the code and message occurred  for a connector"
          },
          "code": {
            "type": "string",
            "description": "code received from the connector"
          }
        }
      },
      "GsmFeature": {
        "type": "string",
        "enum": [
          "retry"
        ]
      },
      "GsmFeatureData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "retry"
            ],
            "properties": {
              "retry": {
                "$ref": "#/components/schemas/RetryFeatureData"
              }
            }
          }
        ],
        "description": "Contains the data relevant to the specified GSM feature, if applicable.\nFor example, if the `feature` is `Retry`, this will include configuration\ndetails specific to the retry behavior."
      },
      "GsmResponse": {
        "type": "object",
        "required": [
          "connector",
          "flow",
          "sub_flow",
          "code",
          "message",
          "status",
          "decision",
          "step_up_possible",
          "clear_pan_possible",
          "feature",
          "feature_data"
        ],
        "properties": {
          "connector": {
            "type": "string",
            "description": "The connector through which payment has gone through"
          },
          "flow": {
            "type": "string",
            "description": "The flow in which the code and message occurred for a connector"
          },
          "sub_flow": {
            "type": "string",
            "description": "The sub_flow in which the code and message occurred  for a connector"
          },
          "code": {
            "type": "string",
            "description": "code received from the connector"
          },
          "message": {
            "type": "string",
            "description": "message received from the connector"
          },
          "status": {
            "type": "string",
            "description": "status provided by the router"
          },
          "router_error": {
            "type": "string",
            "description": "optional error provided by the router",
            "nullable": true
          },
          "decision": {
            "$ref": "#/components/schemas/GsmDecision"
          },
          "step_up_possible": {
            "type": "boolean",
            "description": "indicates if step_up retry is possible\n**Deprecated**: This field is now included as part of `feature_data` under the `Retry` variant.",
            "deprecated": true
          },
          "unified_code": {
            "type": "string",
            "description": "error code unified across the connectors",
            "nullable": true
          },
          "unified_message": {
            "type": "string",
            "description": "error message unified across the connectors",
            "nullable": true
          },
          "error_category": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ErrorCategory"
              }
            ],
            "nullable": true
          },
          "clear_pan_possible": {
            "type": "boolean",
            "description": "indicates if retry with pan is possible\n**Deprecated**: This field is now included as part of `feature_data` under the `Retry` variant.",
            "deprecated": true
          },
          "feature": {
            "$ref": "#/components/schemas/GsmFeature"
          },
          "feature_data": {
            "$ref": "#/components/schemas/GsmFeatureData"
          },
          "standardised_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StandardisedCode"
              }
            ],
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A detailed description of the error intended for debugging, analytics, and support teams.",
            "nullable": true
          },
          "user_guidance_message": {
            "type": "string",
            "description": "A user-friendly message that can be safely displayed to the customer.\nThis message provides guidance on what the user should do to\nresolve the issue.",
            "nullable": true
          }
        }
      },
      "GsmRetrieveRequest": {
        "type": "object",
        "required": [
          "connector",
          "flow",
          "sub_flow",
          "code",
          "message"
        ],
        "properties": {
          "connector": {
            "$ref": "#/components/schemas/Connector"
          },
          "flow": {
            "type": "string",
            "description": "The flow in which the code and message occurred for a connector"
          },
          "sub_flow": {
            "type": "string",
            "description": "The sub_flow in which the code and message occurred  for a connector"
          },
          "code": {
            "type": "string",
            "description": "code received from the connector"
          },
          "message": {
            "type": "string",
            "description": "message received from the connector"
          }
        }
      },
      "GsmUpdateRequest": {
        "type": "object",
        "required": [
          "connector",
          "flow",
          "sub_flow",
          "code",
          "message"
        ],
        "properties": {
          "connector": {
            "type": "string",
            "description": "The connector through which payment has gone through"
          },
          "flow": {
            "type": "string",
            "description": "The flow in which the code and message occurred for a connector"
          },
          "sub_flow": {
            "type": "string",
            "description": "The sub_flow in which the code and message occurred  for a connector"
          },
          "code": {
            "type": "string",
            "description": "code received from the connector"
          },
          "message": {
            "type": "string",
            "description": "message received from the connector"
          },
          "status": {
            "type": "string",
            "description": "status provided by the router",
            "nullable": true
          },
          "router_error": {
            "type": "string",
            "description": "optional error provided by the router",
            "nullable": true
          },
          "decision": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GsmDecision"
              }
            ],
            "nullable": true
          },
          "step_up_possible": {
            "type": "boolean",
            "description": "indicates if step_up retry is possible\n**Deprecated**: This field is now included as part of `feature_data` under the `Retry` variant.",
            "deprecated": true,
            "nullable": true
          },
          "unified_code": {
            "type": "string",
            "description": "error code unified across the connectors",
            "nullable": true
          },
          "unified_message": {
            "type": "string",
            "description": "error message unified across the connectors",
            "nullable": true
          },
          "error_category": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ErrorCategory"
              }
            ],
            "nullable": true
          },
          "clear_pan_possible": {
            "type": "boolean",
            "description": "indicates if retry with pan is possible\n**Deprecated**: This field is now included as part of `feature_data` under the `Retry` variant.",
            "deprecated": true,
            "nullable": true
          },
          "feature": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GsmFeature"
              }
            ],
            "nullable": true
          },
          "feature_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GsmFeatureData"
              }
            ],
            "nullable": true
          },
          "standardised_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StandardisedCode"
              }
            ],
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A detailed description of the error intended for debugging, analytics, and support teams.",
            "nullable": true
          },
          "user_guidance_message": {
            "type": "string",
            "description": "A user-friendly message that can be safely displayed to the customer.\nThis message provides guidance on what the user should do to\nresolve the issue.",
            "nullable": true
          }
        }
      },
      "HyperswitchConnectorCategory": {
        "type": "string",
        "description": "Connector Access Method",
        "enum": [
          "payment_gateway",
          "alternative_payment_method",
          "bank_acquirer",
          "payout_processor",
          "authentication_provider",
          "fraud_and_risk_management_provider",
          "tax_calculation_provider",
          "surcharge_calculation_provider",
          "revenue_growth_management_platform"
        ]
      },
      "HyperswitchVaultSessionDetails": {
        "type": "object",
        "required": [
          "sdk_authorization"
        ],
        "properties": {
          "sdk_authorization": {
            "type": "string",
            "description": "Base64-encoded SDK authorization token for the Hyperswitch Vault session"
          }
        }
      },
      "IfStatement": {
        "type": "object",
        "description": "Represents an IF statement with conditions and optional nested IF statements\n\n```text\npayment.method = card {\npayment.method.cardtype = (credit, debit) {\npayment.method.network = (amex, rupay, diners)\n}\n}\n```",
        "required": [
          "condition"
        ],
        "properties": {
          "condition": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Comparison"
            }
          },
          "nested": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IfStatement"
            },
            "nullable": true
          }
        }
      },
      "IframeData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "three_ds_method_url",
              "three_ds_method_data_submission",
              "directory_server_id",
              "method_key"
            ],
            "properties": {
              "three_ds_method_url": {
                "type": "string",
                "description": "ThreeDS method url"
              },
              "three_ds_method_data_submission": {
                "type": "boolean",
                "description": "Whether ThreeDS method data submission is required"
              },
              "three_ds_method_data": {
                "type": "string",
                "description": "ThreeDS method data",
                "nullable": true
              },
              "directory_server_id": {
                "type": "string",
                "description": "ThreeDS Server ID"
              },
              "message_version": {
                "type": "string",
                "description": "ThreeDS Protocol version",
                "nullable": true
              },
              "method_key": {
                "type": "string",
                "enum": [
                  "threeDSMethodData"
                ]
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "method_key"
        }
      },
      "ImmediateExpirationTime": {
        "type": "object",
        "required": [
          "time"
        ],
        "properties": {
          "time": {
            "type": "integer",
            "format": "int32",
            "description": "Expiration time in seconds",
            "minimum": 0
          },
          "pix_key": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PixKey"
              }
            ],
            "nullable": true
          }
        }
      },
      "IncrementalAuthorizationResponse": {
        "type": "object",
        "required": [
          "authorization_id",
          "amount",
          "status",
          "previously_authorized_amount"
        ],
        "properties": {
          "authorization_id": {
            "type": "string",
            "description": "The unique identifier of authorization"
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "Amount the authorization has been made for",
            "example": 6540
          },
          "status": {
            "$ref": "#/components/schemas/AuthorizationStatus"
          },
          "error_code": {
            "type": "string",
            "description": "Error code sent by the connector for authorization",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "description": "Error message sent by the connector for authorization",
            "nullable": true
          },
          "previously_authorized_amount": {
            "$ref": "#/components/schemas/MinorUnit"
          }
        }
      },
      "IndomaretVoucherData": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "description": "The billing first name for Alfamart",
            "example": "Jane",
            "nullable": true
          },
          "last_name": {
            "type": "string",
            "description": "The billing second name for Alfamart",
            "example": "Doe",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The Email ID for Alfamart",
            "example": "example@me.com",
            "nullable": true
          }
        }
      },
      "Initiator": {
        "type": "string",
        "description": "Represents the initiator context in platform-connected setups\nUsed in payment/refund/dispute responses to indicate who initiated the operation\nNone indicates a standard merchant flow / JWT flow / Admin flow or insufficient information",
        "enum": [
          "platform",
          "connected"
        ]
      },
      "InstallmentDetails": {
        "type": "object",
        "description": "Represents the rules for legal protest (official debt registration) for non-payment, including the type of protest and the number of days after which the protest is initiated.",
        "properties": {
          "max_partial_payments": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of partial payments allowed (Up to 99 for Santander).",
            "example": 99,
            "nullable": true,
            "minimum": 0
          },
          "value_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CalculationType"
              }
            ],
            "nullable": true
          }
        }
      },
      "IntentStatus": {
        "type": "string",
        "description": "Represents the overall status of a payment intent.\nThe status transitions through various states depending on the payment method, confirmation, capture method, and any subsequent actions (like customer authentication or manual capture).",
        "enum": [
          "succeeded",
          "failed",
          "cancelled",
          "cancelled_post_capture",
          "processing",
          "requires_customer_action",
          "requires_merchant_action",
          "requires_payment_method",
          "requires_confirmation",
          "requires_capture",
          "partially_captured",
          "partially_captured_and_capturable",
          "partially_authorized_and_requires_capture",
          "partially_captured_and_processing",
          "conflicted",
          "expired",
          "review"
        ]
      },
      "Interac": {
        "type": "object",
        "required": [
          "email"
        ],
        "properties": {
          "email": {
            "type": "string",
            "description": "Customer email linked with interac account",
            "example": "john.doe@example.com"
          }
        }
      },
      "InteracAdditionalData": {
        "type": "object",
        "description": "Masked payout method details for interac bank redirect payout method",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email linked with interac account",
            "example": "john.doe@example.com",
            "nullable": true
          }
        }
      },
      "InteracPaymentMethod": {
        "type": "object",
        "properties": {
          "customer_info": {
            "type": "object",
            "nullable": true
          }
        }
      },
      "InterestDetail": {
        "type": "object",
        "description": "Represents the rules for applying discounts to a payment, such as a percentage discount or a fixed amount discount, along with any applicable grace periods.",
        "properties": {
          "interest_percentage": {
            "type": "string",
            "description": "Percentage of Juros (Interest). Pattern: ^[0-9]{1,3}\\.[0-9]{2}$",
            "example": "5.00",
            "nullable": true
          },
          "iof_percentage": {
            "type": "string",
            "description": "Percentage of IOF (Financial Operations Tax). Pattern: \\d{3}$\\.\\d{5}\nOnly provided if the agreement is \"Cobra IOF na Barra ou Cadastro\"",
            "example": "32.45325",
            "nullable": true
          }
        }
      },
      "InternalVaultSessionDetails": {
        "type": "object",
        "description": "Internal vault details for SDK authorization",
        "required": [
          "sdk_authorization"
        ],
        "properties": {
          "sdk_authorization": {
            "type": "string",
            "description": "Base64-encoded SDK authorization token for the internal vault session"
          }
        }
      },
      "JCSVoucherData": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "description": "The billing first name for Japanese convenience stores",
            "example": "Jane",
            "nullable": true
          },
          "last_name": {
            "type": "string",
            "description": "The billing second name Japanese convenience stores",
            "example": "Doe",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The Email ID for Japanese convenience stores",
            "example": "example@me.com",
            "nullable": true
          },
          "phone_number": {
            "type": "string",
            "description": "The telephone number for Japanese convenience stores",
            "example": "9123456789",
            "nullable": true
          }
        }
      },
      "KakaoPayRedirection": {
        "type": "object"
      },
      "KlarnaSdkPaymentMethodResponse": {
        "type": "object",
        "properties": {
          "payment_type": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "KlarnaSessionTokenResponse": {
        "type": "object",
        "required": [
          "session_token",
          "session_id"
        ],
        "properties": {
          "session_token": {
            "type": "string",
            "description": "The session token for Klarna"
          },
          "session_id": {
            "type": "string",
            "description": "The identifier for the session"
          }
        }
      },
      "LabelInformation": {
        "type": "object",
        "required": [
          "label",
          "target_count",
          "target_time",
          "mca_id"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "target_count": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "target_time": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "mca_id": {
            "type": "string"
          }
        }
      },
      "LinkedRoutingConfigRetrieveResponse": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/RoutingRetrieveResponse"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutingDictionaryRecord"
            }
          }
        ]
      },
      "ListBlocklistQuery": {
        "type": "object",
        "required": [
          "data_kind"
        ],
        "properties": {
          "data_kind": {
            "$ref": "#/components/schemas/BlocklistDataKind"
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "offset": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "client_secret": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ListMethodsForPaymentMethodsRequest": {
        "type": "object",
        "properties": {
          "client_secret": {
            "type": "string",
            "description": "This is a 15 minute expiry token which shall be used from the client to authenticate and perform sessions from the SDK",
            "example": "secret_k2uj3he2893eiu2d",
            "nullable": true,
            "maxLength": 30,
            "minLength": 30
          },
          "accepted_countries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CountryAlpha2"
            },
            "description": "The two-letter ISO currency code",
            "example": [
              "US",
              "UK",
              "IN"
            ],
            "nullable": true
          },
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "accepted_currencies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Currency"
            },
            "description": "The three-letter ISO currency code",
            "example": [
              "USD",
              "EUR"
            ],
            "nullable": true
          },
          "recurring_enabled": {
            "type": "boolean",
            "description": "Indicates whether the payment method supports recurring payments. Optional.",
            "example": true,
            "nullable": true
          },
          "card_networks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardNetwork"
            },
            "description": "Indicates whether the payment method is eligible for card netwotks",
            "example": [
              "visa",
              "mastercard"
            ],
            "nullable": true
          },
          "limit": {
            "type": "integer",
            "format": "int64",
            "description": "Indicates the limit of last used payment methods",
            "example": 1,
            "nullable": true
          },
          "include_new": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LocalBankTransferAdditionalData": {
        "type": "object",
        "properties": {
          "bank_code": {
            "type": "string",
            "description": "Partially masked bank code",
            "example": "**** OA2312",
            "nullable": true
          }
        }
      },
      "MandateAmountData": {
        "type": "object",
        "required": [
          "amount",
          "currency"
        ],
        "properties": {
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The maximum amount to be debited for the mandate transaction",
            "example": 6540
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "start_date": {
            "type": "string",
            "format": "date-time",
            "description": "Specifying start date of the mandate",
            "example": "2022-09-10T00:00:00Z",
            "nullable": true
          },
          "end_date": {
            "type": "string",
            "format": "date-time",
            "description": "Specifying end date of the mandate",
            "example": "2023-09-10T23:59:59Z",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Additional details required by mandate",
            "nullable": true
          }
        }
      },
      "MandateCardDetails": {
        "type": "object",
        "properties": {
          "last4_digits": {
            "type": "string",
            "description": "The last 4 digits of card",
            "nullable": true
          },
          "card_exp_month": {
            "type": "string",
            "description": "The expiry month of card",
            "nullable": true
          },
          "card_exp_year": {
            "type": "string",
            "description": "The expiry year of card",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder name",
            "nullable": true
          },
          "card_token": {
            "type": "string",
            "description": "The token from card locker",
            "nullable": true
          },
          "scheme": {
            "type": "string",
            "description": "The card scheme network for the particular card",
            "nullable": true
          },
          "issuer_country": {
            "type": "string",
            "description": "The country code in in which the card was issued",
            "nullable": true
          },
          "card_fingerprint": {
            "type": "string",
            "description": "A unique identifier alias to identify a particular card",
            "nullable": true
          },
          "card_isin": {
            "type": "string",
            "description": "The first 6 digits of card",
            "nullable": true
          },
          "card_issuer": {
            "type": "string",
            "description": "The bank that issued the card",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "description": "The type of the payment card",
            "nullable": true
          },
          "nick_name": {
            "type": "string",
            "description": "The nick_name of the card holder",
            "nullable": true
          }
        }
      },
      "MandateData": {
        "type": "object",
        "description": "Passing this object during payments creates a mandate. The mandate_type sub object is passed by the server.",
        "properties": {
          "update_mandate_id": {
            "type": "string",
            "description": "A way to update the mandate's payment method details",
            "nullable": true
          },
          "customer_acceptance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerAcceptance"
              }
            ],
            "nullable": true
          },
          "mandate_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MandateType"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false,
        "deprecated": true
      },
      "MandateResponse": {
        "type": "object",
        "required": [
          "mandate_id",
          "status",
          "payment_method_id",
          "payment_method"
        ],
        "properties": {
          "mandate_id": {
            "type": "string",
            "description": "The identifier for mandate"
          },
          "status": {
            "$ref": "#/components/schemas/MandateStatus"
          },
          "payment_method_id": {
            "type": "string",
            "description": "The identifier for payment method"
          },
          "payment_method": {
            "type": "string",
            "description": "The payment method"
          },
          "payment_method_type": {
            "type": "string",
            "description": "The payment method type",
            "nullable": true
          },
          "card": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MandateCardDetails"
              }
            ],
            "nullable": true
          },
          "customer_acceptance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerAcceptance"
              }
            ],
            "nullable": true
          }
        }
      },
      "MandateRevokedResponse": {
        "type": "object",
        "required": [
          "mandate_id",
          "status"
        ],
        "properties": {
          "mandate_id": {
            "type": "string",
            "description": "The identifier for mandate"
          },
          "status": {
            "$ref": "#/components/schemas/MandateStatus"
          },
          "error_code": {
            "type": "string",
            "description": "If there was an error while calling the connectors the code is received here",
            "example": "E0001",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "description": "If there was an error while calling the connector the error message is received here",
            "example": "Failed while verifying the card",
            "nullable": true
          }
        }
      },
      "MandateStatus": {
        "type": "string",
        "description": "The status of the mandate, which indicates whether it can be used to initiate a payment.",
        "enum": [
          "active",
          "inactive",
          "pending",
          "revoked"
        ]
      },
      "MandateType": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "single_use"
            ],
            "properties": {
              "single_use": {
                "$ref": "#/components/schemas/MandateAmountData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "multi_use"
            ],
            "properties": {
              "multi_use": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MandateAmountData"
                  }
                ],
                "nullable": true
              }
            }
          }
        ]
      },
      "MaskedBankDetails": {
        "type": "object",
        "required": [
          "mask"
        ],
        "properties": {
          "mask": {
            "type": "string"
          }
        }
      },
      "MbWayRedirection": {
        "type": "object",
        "required": [
          "telephone_number"
        ],
        "properties": {
          "telephone_number": {
            "type": "string",
            "description": "Telephone number of the shopper. Should be Portuguese phone number."
          }
        }
      },
      "MerchantAccountCreate": {
        "type": "object",
        "required": [
          "merchant_name"
        ],
        "properties": {
          "merchant_name": {
            "type": "string",
            "description": "Name of the Merchant Account, This will be used as a prefix to generate the id",
            "example": "NewAge Retailer",
            "maxLength": 64
          },
          "merchant_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantDetails"
              }
            ],
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information about the merchant account.",
            "nullable": true
          },
          "product_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantProductType"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MerchantAccountData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "iban"
            ],
            "properties": {
              "iban": {
                "type": "object",
                "description": "IBAN-based account for international transfers",
                "required": [
                  "iban",
                  "name"
                ],
                "properties": {
                  "iban": {
                    "type": "string",
                    "description": "International Bank Account Number (up to 34 characters)"
                  },
                  "name": {
                    "type": "string",
                    "description": "Account holder name"
                  },
                  "connector_recipient_id": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bacs"
            ],
            "properties": {
              "bacs": {
                "type": "object",
                "description": "UK BACS payment system",
                "required": [
                  "account_number",
                  "sort_code",
                  "name"
                ],
                "properties": {
                  "account_number": {
                    "type": "string",
                    "description": "8-digit UK account number"
                  },
                  "sort_code": {
                    "type": "string",
                    "description": "6-digit UK sort code",
                    "example": "123456"
                  },
                  "name": {
                    "type": "string",
                    "description": "Account holder name"
                  },
                  "connector_recipient_id": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "faster_payments"
            ],
            "properties": {
              "faster_payments": {
                "type": "object",
                "description": "UK Faster Payments (instant transfers)",
                "required": [
                  "account_number",
                  "sort_code",
                  "name"
                ],
                "properties": {
                  "account_number": {
                    "type": "string",
                    "description": "8-digit UK account number"
                  },
                  "sort_code": {
                    "type": "string",
                    "description": "6-digit UK sort code"
                  },
                  "name": {
                    "type": "string",
                    "description": "Account holder name"
                  },
                  "connector_recipient_id": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "sepa"
            ],
            "properties": {
              "sepa": {
                "type": "object",
                "description": "SEPA payments (Euro zone)",
                "required": [
                  "iban",
                  "name"
                ],
                "properties": {
                  "iban": {
                    "type": "string",
                    "description": "IBAN for SEPA transfers",
                    "example": "FR1420041010050500013M02606"
                  },
                  "name": {
                    "type": "string",
                    "description": "Account holder name"
                  },
                  "connector_recipient_id": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "sepa_instant"
            ],
            "properties": {
              "sepa_instant": {
                "type": "object",
                "description": "SEPA Instant payments (10-second transfers)",
                "required": [
                  "iban",
                  "name"
                ],
                "properties": {
                  "iban": {
                    "type": "string",
                    "description": "IBAN for instant SEPA transfers",
                    "example": "DE89370400440532013000"
                  },
                  "name": {
                    "type": "string",
                    "description": "Account holder name"
                  },
                  "connector_recipient_id": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "elixir"
            ],
            "properties": {
              "elixir": {
                "type": "object",
                "description": "Polish Elixir payment system",
                "required": [
                  "account_number",
                  "iban",
                  "name"
                ],
                "properties": {
                  "account_number": {
                    "type": "string",
                    "description": "Polish account number (26 digits)",
                    "example": "12345678901234567890123456"
                  },
                  "iban": {
                    "type": "string",
                    "description": "Polish IBAN (28 chars)",
                    "example": "PL27114020040000300201355387"
                  },
                  "name": {
                    "type": "string",
                    "description": "Account holder name"
                  },
                  "connector_recipient_id": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bankgiro"
            ],
            "properties": {
              "bankgiro": {
                "type": "object",
                "description": "Swedish Bankgiro system",
                "required": [
                  "number",
                  "name"
                ],
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "Bankgiro number (7-8 digits)",
                    "example": "5402-9656"
                  },
                  "name": {
                    "type": "string",
                    "description": "Account holder name",
                    "example": "Erik Andersson"
                  },
                  "connector_recipient_id": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "plusgiro"
            ],
            "properties": {
              "plusgiro": {
                "type": "object",
                "description": "Swedish Plusgiro system",
                "required": [
                  "number",
                  "name"
                ],
                "properties": {
                  "number": {
                    "type": "string",
                    "description": "Plusgiro number (2-8 digits)",
                    "example": "4789-2"
                  },
                  "name": {
                    "type": "string",
                    "description": "Account holder name",
                    "example": "Anna Larsson"
                  },
                  "connector_recipient_id": {
                    "type": "string",
                    "nullable": true
                  }
                }
              }
            }
          }
        ]
      },
      "MerchantAccountDeleteResponse": {
        "type": "object",
        "required": [
          "merchant_id",
          "deleted"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 255
          },
          "deleted": {
            "type": "boolean",
            "description": "If the connector is deleted or not",
            "example": false
          }
        }
      },
      "MerchantAccountResponse": {
        "type": "object",
        "required": [
          "id",
          "merchant_name",
          "publishable_key",
          "organization_id",
          "recon_status"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier for the Merchant Account",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64
          },
          "merchant_name": {
            "type": "string",
            "description": "Name of the Merchant Account",
            "example": "NewAge Retailer"
          },
          "merchant_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantDetails"
              }
            ],
            "nullable": true
          },
          "publishable_key": {
            "type": "string",
            "description": "API key that will be used for server side API access",
            "example": "AH3423bkjbkjdsfbkj"
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "organization_id": {
            "type": "string",
            "description": "The id of the organization which the merchant is associated with",
            "example": "org_q98uSGAYbjEwqs0mJwnz",
            "maxLength": 64,
            "minLength": 1
          },
          "recon_status": {
            "$ref": "#/components/schemas/ReconStatus"
          },
          "product_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantProductType"
              }
            ],
            "nullable": true
          }
        }
      },
      "MerchantAccountUpdate": {
        "type": "object",
        "properties": {
          "merchant_name": {
            "type": "string",
            "description": "Name of the Merchant Account",
            "example": "NewAge Retailer",
            "nullable": true
          },
          "merchant_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantDetails"
              }
            ],
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MerchantCategoryCode": {
        "type": "string",
        "title": "4 digit Merchant category code (MCC)",
        "example": "5411"
      },
      "MerchantConnectorAccountFeatureMetadata": {
        "type": "object",
        "description": "Feature metadata for merchant connector account",
        "properties": {
          "revenue_recovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RevenueRecoveryMetadata"
              }
            ],
            "nullable": true
          }
        }
      },
      "MerchantConnectorAuthDetails": {
        "type": "object",
        "description": "Merchant connector details",
        "required": [
          "connector_name",
          "merchant_connector_creds"
        ],
        "properties": {
          "connector_name": {
            "$ref": "#/components/schemas/Connector"
          },
          "merchant_connector_creds": {
            "type": "object",
            "description": "The merchant connector credentials used for the payment"
          }
        }
      },
      "MerchantConnectorCreate": {
        "type": "object",
        "description": "Create a new Merchant Connector for the merchant account. The connector could be a payment processor / facilitator / acquirer or specialized services like Fraud / Accounting etc.\"",
        "required": [
          "connector_type",
          "connector_name",
          "profile_id",
          "payment_methods_enabled"
        ],
        "properties": {
          "connector_type": {
            "$ref": "#/components/schemas/ConnectorType"
          },
          "connector_name": {
            "$ref": "#/components/schemas/Connector"
          },
          "connector_label": {
            "type": "string",
            "description": "This is an unique label you can generate and pass in order to identify this connector account on your Hyperswitch dashboard and reports, If not passed then if will take `connector_name`_`profile_name`. Eg: if your profile label is `default`, connector label can be `stripe_default`",
            "example": "stripe_US_travel",
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "Identifier for the profile, if not provided default will be chosen from merchant account",
            "maxLength": 64
          },
          "connector_account_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorDetails"
              }
            ],
            "nullable": true
          },
          "payment_methods_enabled": {
            "$ref": "#/components/schemas/PaymentMethodsEnabled"
          },
          "connector_webhook_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorWebhookDetails"
              }
            ],
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "disabled": {
            "type": "boolean",
            "description": "A boolean value to indicate if the connector is disabled. By default, its value is false.",
            "default": false,
            "example": false,
            "nullable": true
          },
          "frm_configs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FrmConfigs"
            },
            "description": "Contains the frm configs for the merchant connector",
            "example": "\n[{\"gateway\":\"stripe\",\"payment_methods\":[{\"payment_method\":\"card\",\"payment_method_types\":[{\"payment_method_type\":\"credit\",\"card_networks\":[\"Visa\"],\"flow\":\"pre\",\"action\":\"cancel_txn\"},{\"payment_method_type\":\"debit\",\"card_networks\":[\"Visa\"],\"flow\":\"pre\"}]}]}]\n",
            "nullable": true
          },
          "pm_auth_config": {
            "type": "object",
            "description": "pm_auth_config will relate MCA records to their respective chosen auth services, based on payment_method and pmt",
            "nullable": true
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorStatus"
              }
            ],
            "nullable": true
          },
          "additional_merchant_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AdditionalMerchantData"
              }
            ],
            "nullable": true
          },
          "connector_wallets_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorWalletDetails"
              }
            ],
            "nullable": true
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorAccountFeatureMetadata"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MerchantConnectorDeleteResponse": {
        "type": "object",
        "required": [
          "merchant_id",
          "id",
          "deleted"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 255
          },
          "id": {
            "type": "string",
            "description": "Unique ID of the connector",
            "example": "mca_5apGeP94tMts6rg3U3kR"
          },
          "deleted": {
            "type": "boolean",
            "description": "If the connector is deleted or not",
            "example": false
          }
        }
      },
      "MerchantConnectorDetails": {
        "type": "object",
        "properties": {
          "connector_account_details": {
            "type": "object",
            "description": "Account details of the Connector. You can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Useful for storing additional, structured information on an object.",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          }
        }
      },
      "MerchantConnectorDetailsWrap": {
        "type": "object",
        "description": "Merchant connector details used to make payments.",
        "required": [
          "creds_identifier"
        ],
        "properties": {
          "creds_identifier": {
            "type": "string",
            "description": "Creds Identifier is to uniquely identify the credentials. Do not send any sensitive info, like encoded_data in this field. And do not send the string \"null\"."
          },
          "encoded_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "MerchantConnectorId": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "MerchantConnectorListResponse": {
        "type": "object",
        "required": [
          "connector_type",
          "connector_name",
          "id",
          "profile_id",
          "payment_methods_enabled",
          "status"
        ],
        "properties": {
          "connector_type": {
            "$ref": "#/components/schemas/ConnectorType"
          },
          "connector_name": {
            "$ref": "#/components/schemas/Connector"
          },
          "connector_label": {
            "type": "string",
            "description": "A unique label to identify the connector account created under a profile",
            "example": "stripe_US_travel",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "Unique ID of the merchant connector account",
            "example": "mca_5apGeP94tMts6rg3U3kR"
          },
          "profile_id": {
            "type": "string",
            "description": "Identifier for the profile, if not provided default will be chosen from merchant account",
            "maxLength": 64
          },
          "payment_methods_enabled": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodsEnabled"
            },
            "description": "An object containing the details about the payment methods that need to be enabled under this merchant connector account"
          },
          "disabled": {
            "type": "boolean",
            "description": "A boolean value to indicate if the connector is disabled. By default, its value is false.",
            "default": false,
            "example": false,
            "nullable": true
          },
          "frm_configs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FrmConfigs"
            },
            "description": "Contains the frm configs for the merchant connector",
            "example": "\n[{\"gateway\":\"stripe\",\"payment_methods\":[{\"payment_method\":\"card\",\"payment_method_types\":[{\"payment_method_type\":\"credit\",\"card_networks\":[\"Visa\"],\"flow\":\"pre\",\"action\":\"cancel_txn\"},{\"payment_method_type\":\"debit\",\"card_networks\":[\"Visa\"],\"flow\":\"pre\"}]}]}]\n",
            "nullable": true
          },
          "applepay_verified_domains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "identifier for the verified domains of a particular connector account",
            "nullable": true
          },
          "pm_auth_config": {
            "type": "object",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ConnectorStatus"
          }
        },
        "additionalProperties": false
      },
      "MerchantConnectorResponse": {
        "type": "object",
        "description": "Response of creating a new Merchant Connector for the merchant account.\"",
        "required": [
          "connector_type",
          "connector_name",
          "id",
          "profile_id",
          "payment_methods_enabled",
          "status"
        ],
        "properties": {
          "connector_type": {
            "$ref": "#/components/schemas/ConnectorType"
          },
          "connector_name": {
            "$ref": "#/components/schemas/Connector"
          },
          "connector_label": {
            "type": "string",
            "description": "A unique label to identify the connector account created under a profile",
            "example": "stripe_US_travel",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "Unique ID of the merchant connector account",
            "example": "mca_5apGeP94tMts6rg3U3kR"
          },
          "profile_id": {
            "type": "string",
            "description": "Identifier for the profile, if not provided default will be chosen from merchant account",
            "maxLength": 64
          },
          "connector_account_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorDetails"
              }
            ],
            "nullable": true
          },
          "payment_methods_enabled": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodsEnabled"
            },
            "description": "An object containing the details about the payment methods that need to be enabled under this merchant connector account"
          },
          "connector_webhook_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorWebhookDetails"
              }
            ],
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "disabled": {
            "type": "boolean",
            "description": "A boolean value to indicate if the connector is disabled. By default, its value is false.",
            "default": false,
            "example": false,
            "nullable": true
          },
          "frm_configs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FrmConfigs"
            },
            "description": "Contains the frm configs for the merchant connector",
            "example": "\n[{\"gateway\":\"stripe\",\"payment_methods\":[{\"payment_method\":\"card\",\"payment_method_types\":[{\"payment_method_type\":\"credit\",\"card_networks\":[\"Visa\"],\"flow\":\"pre\",\"action\":\"cancel_txn\"},{\"payment_method_type\":\"debit\",\"card_networks\":[\"Visa\"],\"flow\":\"pre\"}]}]}]\n",
            "nullable": true
          },
          "applepay_verified_domains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "identifier for the verified domains of a particular connector account",
            "nullable": true
          },
          "pm_auth_config": {
            "type": "object",
            "description": "pm_auth_config will relate MCA records to their respective chosen auth services, based on payment_method and pmt",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ConnectorStatus"
          },
          "additional_merchant_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AdditionalMerchantData"
              }
            ],
            "nullable": true
          },
          "connector_wallets_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorWalletDetails"
              }
            ],
            "nullable": true
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorAccountFeatureMetadata"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MerchantConnectorUpdate": {
        "type": "object",
        "description": "Create a new Merchant Connector for the merchant account. The connector could be a payment processor / facilitator / acquirer or specialized services like Fraud / Accounting etc.\"",
        "required": [
          "connector_type",
          "status",
          "merchant_id"
        ],
        "properties": {
          "connector_type": {
            "$ref": "#/components/schemas/ConnectorType"
          },
          "connector_label": {
            "type": "string",
            "description": "This is an unique label you can generate and pass in order to identify this connector account on your Hyperswitch dashboard and reports, If not passed then if will take `connector_name`_`profile_name`. Eg: if your profile label is `default`, connector label can be `stripe_default`",
            "example": "stripe_US_travel",
            "nullable": true
          },
          "connector_account_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorDetails"
              }
            ],
            "nullable": true
          },
          "payment_methods_enabled": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodsEnabled"
            },
            "description": "An object containing the details about the payment methods that need to be enabled under this merchant connector account",
            "nullable": true
          },
          "connector_webhook_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorWebhookDetails"
              }
            ],
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "You can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.",
            "nullable": true
          },
          "disabled": {
            "type": "boolean",
            "description": "A boolean value to indicate if the connector is disabled. By default, its value is false.",
            "default": false,
            "example": false,
            "nullable": true
          },
          "frm_configs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FrmConfigs"
            },
            "description": "Contains the frm configs for the merchant connector",
            "example": "\n[{\"gateway\":\"stripe\",\"payment_methods\":[{\"payment_method\":\"card\",\"payment_method_types\":[{\"payment_method_type\":\"credit\",\"card_networks\":[\"Visa\"],\"flow\":\"pre\",\"action\":\"cancel_txn\"},{\"payment_method_type\":\"debit\",\"card_networks\":[\"Visa\"],\"flow\":\"pre\"}]}]}]\n",
            "nullable": true
          },
          "pm_auth_config": {
            "type": "object",
            "description": "pm_auth_config will relate MCA records to their respective chosen auth services, based on payment_method and pmt",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ConnectorStatus"
          },
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64,
            "minLength": 1
          },
          "additional_merchant_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AdditionalMerchantData"
              }
            ],
            "nullable": true
          },
          "connector_wallets_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorWalletDetails"
              }
            ],
            "nullable": true
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorAccountFeatureMetadata"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MerchantConnectorWebhookDetails": {
        "type": "object",
        "required": [
          "merchant_secret",
          "additional_secret"
        ],
        "properties": {
          "merchant_secret": {
            "type": "string",
            "example": "12345678900987654321"
          },
          "additional_secret": {
            "type": "string",
            "example": "12345678900987654321"
          }
        },
        "additionalProperties": false
      },
      "MerchantCountryCode": {
        "type": "string",
        "description": "A wrapper type for merchant country codes that provides validation and conversion functionality.\n\nThis type stores a country code as a string and provides methods to validate it\nand convert it to a `Country` enum variant."
      },
      "MerchantDetails": {
        "type": "object",
        "properties": {
          "primary_contact_person": {
            "type": "string",
            "description": "The merchant's primary contact name",
            "example": "John Doe",
            "nullable": true,
            "maxLength": 255
          },
          "primary_phone": {
            "type": "string",
            "description": "The merchant's primary phone number",
            "example": "999999999",
            "nullable": true,
            "maxLength": 255
          },
          "primary_email": {
            "type": "string",
            "description": "The merchant's primary email address",
            "example": "johndoe@test.com",
            "nullable": true,
            "maxLength": 255
          },
          "secondary_contact_person": {
            "type": "string",
            "description": "The merchant's secondary contact name",
            "example": "John Doe2",
            "nullable": true,
            "maxLength": 255
          },
          "secondary_phone": {
            "type": "string",
            "description": "The merchant's secondary phone number",
            "example": "999999988",
            "nullable": true,
            "maxLength": 255
          },
          "secondary_email": {
            "type": "string",
            "description": "The merchant's secondary email address",
            "example": "johndoe2@test.com",
            "nullable": true,
            "maxLength": 255
          },
          "website": {
            "type": "string",
            "description": "The business website of the merchant",
            "example": "www.example.com",
            "nullable": true,
            "maxLength": 255
          },
          "about_business": {
            "type": "string",
            "description": "A brief description about merchant's business",
            "example": "Online Retail with a wide selection of organic products for North America",
            "nullable": true,
            "maxLength": 255
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDetails"
              }
            ],
            "nullable": true
          },
          "merchant_tax_registration_id": {
            "type": "string",
            "example": "123456789",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MerchantProductType": {
        "type": "string",
        "enum": [
          "orchestration",
          "vault",
          "recon",
          "recovery",
          "cost_observability",
          "dynamic_routing"
        ]
      },
      "MerchantRecipientData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "connector_recipient_id"
            ],
            "properties": {
              "connector_recipient_id": {
                "type": "string",
                "nullable": true
              }
            }
          },
          {
            "type": "object",
            "required": [
              "wallet_id"
            ],
            "properties": {
              "wallet_id": {
                "type": "string",
                "nullable": true
              }
            }
          },
          {
            "type": "object",
            "required": [
              "account_data"
            ],
            "properties": {
              "account_data": {
                "$ref": "#/components/schemas/MerchantAccountData"
              }
            }
          }
        ]
      },
      "MerchantRoutingAlgorithm": {
        "type": "object",
        "description": "Routing algorithm configuration created for a merchant.\n\nRepresents a fully defined routing strategy scoped to a profile\nand transaction type.",
        "required": [
          "id",
          "profile_id",
          "name",
          "description",
          "algorithm",
          "created_at",
          "modified_at",
          "algorithm_for"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the routing configuration.\n\nExample:\n```json\n\"routing_abc123\"\n```",
            "example": "routing_abc123"
          },
          "profile_id": {
            "type": "string",
            "description": "Profile ID to which this routing configuration belongs.\n\nExample:\n```json\n\"profile_123\"\n```",
            "example": "profile_123"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name of the routing configuration.\n\nExample:\n```json\n\"default_card_routing\"\n```",
            "example": "default_card_routing"
          },
          "description": {
            "type": "string",
            "description": "Description explaining the purpose of this routing configuration.\n\nExample:\n```json\n\"Primary routing strategy for card payments\"\n```",
            "example": "Primary routing strategy for card payments"
          },
          "algorithm": {
            "$ref": "#/components/schemas/RoutingAlgorithmWrapper"
          },
          "created_at": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp (in milliseconds since epoch) when the routing\nconfiguration was created.\n\nExample:\n```json\n1718000000000\n```",
            "example": 1718000000000
          },
          "modified_at": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp (in milliseconds since epoch) when the routing\nconfiguration was last modified.\n\nExample:\n```json\n1718050000000\n```",
            "example": 1718050000000
          },
          "algorithm_for": {
            "$ref": "#/components/schemas/TransactionType"
          }
        }
      },
      "MetadataValue": {
        "type": "object",
        "required": [
          "key",
          "value"
        ],
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "Method": {
        "type": "string",
        "enum": [
          "GET",
          "POST",
          "PUT",
          "DELETE",
          "PATCH"
        ]
      },
      "MifinityData": {
        "type": "object",
        "required": [
          "date_of_birth"
        ],
        "properties": {
          "date_of_birth": {
            "type": "string",
            "format": "date"
          },
          "language_preference": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "MinorUnit": {
        "type": "integer",
        "format": "int64",
        "description": "This Unit struct represents MinorUnit in which core amount works"
      },
      "MitExemptionRequest": {
        "type": "string",
        "enum": [
          "Apply",
          "Skip"
        ]
      },
      "MobilePayRedirection": {
        "type": "object"
      },
      "MobilePaymentConsent": {
        "type": "string",
        "enum": [
          "consent_required",
          "consent_not_required",
          "consent_optional"
        ]
      },
      "MobilePaymentData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "direct_carrier_billing"
            ],
            "properties": {
              "direct_carrier_billing": {
                "type": "object",
                "required": [
                  "msisdn"
                ],
                "properties": {
                  "msisdn": {
                    "type": "string",
                    "description": "The phone number of the user",
                    "example": "1234567890"
                  },
                  "client_uid": {
                    "type": "string",
                    "description": "Unique user id",
                    "example": "02iacdYXGI9CnyJdoN8c7",
                    "nullable": true
                  }
                }
              }
            }
          }
        ]
      },
      "MobilePaymentNextStepData": {
        "type": "object",
        "required": [
          "consent_data_required"
        ],
        "properties": {
          "consent_data_required": {
            "$ref": "#/components/schemas/MobilePaymentConsent"
          }
        }
      },
      "MobilePaymentResponse": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/MobilePaymentData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ]
      },
      "MomoRedirection": {
        "type": "object"
      },
      "MultibancoBillingDetails": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "example": "example@me.com",
            "nullable": true
          }
        }
      },
      "MultibancoTransferInstructions": {
        "type": "object",
        "required": [
          "reference",
          "entity"
        ],
        "properties": {
          "reference": {
            "type": "string",
            "example": "122385736258"
          },
          "entity": {
            "type": "string",
            "example": "12345"
          }
        }
      },
      "NetworkParams": {
        "type": "object",
        "description": "Represents additional network-level parameters for 3DS processing.",
        "properties": {
          "cartes_bancaires": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CartesBancairesParams"
              }
            ],
            "nullable": true
          }
        }
      },
      "NetworkTokenData": {
        "type": "object",
        "required": [
          "network_token",
          "token_exp_month",
          "token_exp_year",
          "token_cryptogram",
          "card_holder_name"
        ],
        "properties": {
          "network_token": {
            "type": "string",
            "description": "The network token",
            "example": "4604000460040787"
          },
          "token_exp_month": {
            "type": "string",
            "description": "The token's expiry month",
            "example": "05"
          },
          "token_exp_year": {
            "type": "string",
            "description": "The token's expiry year",
            "example": "24"
          },
          "token_cryptogram": {
            "type": "string",
            "description": "The token cryptogram"
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "description": "The type of the card such as Credit, Debit",
            "example": "CREDIT",
            "nullable": true
          },
          "card_issuing_country": {
            "type": "string",
            "description": "The country in which the card was issued",
            "example": "INDIA",
            "nullable": true
          },
          "bank_code": {
            "type": "string",
            "description": "The bank code of the bank that issued the card",
            "example": "JP_AMEX",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test"
          },
          "card_issuer": {
            "type": "string",
            "description": "The name of the issuer of card",
            "example": "chase",
            "nullable": true
          },
          "nick_name": {
            "type": "string",
            "description": "The card holder's nick name",
            "example": "John Test",
            "nullable": true
          },
          "eci": {
            "type": "string",
            "description": "The ECI(Electronic Commerce Indicator) value for this authentication.",
            "nullable": true
          },
          "par": {
            "type": "string",
            "description": "The Payment Account Reference (PAR) for this card.",
            "nullable": true
          }
        }
      },
      "NetworkTokenDetailsPaymentMethod": {
        "type": "object",
        "properties": {
          "last4_digits": {
            "type": "string",
            "example": "4242",
            "nullable": true
          },
          "issuer_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "network_token_expiry_month": {
            "type": "string",
            "example": "05",
            "nullable": true
          },
          "network_token_expiry_year": {
            "type": "string",
            "example": "27",
            "nullable": true
          },
          "nick_name": {
            "type": "string",
            "example": "Card",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "example": "John Doe",
            "nullable": true
          },
          "card_isin": {
            "type": "string",
            "example": "16712672",
            "nullable": true
          },
          "card_issuer": {
            "type": "string",
            "example": "Bank of America",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "example": "Credit",
            "nullable": true
          },
          "saved_to_locker": {
            "type": "boolean"
          },
          "par": {
            "type": "string",
            "example": "522134KAVJ1JPZ8L77N0Z2LRYZS7J",
            "nullable": true
          }
        }
      },
      "NetworkTokenDetailsResponse": {
        "type": "object",
        "required": [
          "network_token",
          "network_token_exp_month",
          "network_token_exp_year"
        ],
        "properties": {
          "network_token": {
            "type": "string",
            "description": "Network token generated against the Card Number"
          },
          "network_token_exp_month": {
            "type": "string",
            "description": "Expiry month of the network token"
          },
          "network_token_exp_year": {
            "type": "string",
            "description": "Expiry year of the network token"
          },
          "cryptogram": {
            "type": "string",
            "description": "Cryptogram generated by the Network",
            "nullable": true
          },
          "card_issuer": {
            "type": "string",
            "description": "Issuer of the card",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardType"
              }
            ],
            "nullable": true
          },
          "card_issuing_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "bank_code": {
            "type": "string",
            "description": "Bank code of the card",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "description": "Name of the card holder",
            "nullable": true
          },
          "nick_name": {
            "type": "string",
            "description": "Nick name of the card holder",
            "nullable": true
          },
          "eci": {
            "type": "string",
            "description": "ECI indicator of the card",
            "nullable": true
          }
        }
      },
      "NetworkTokenResponse": {
        "type": "object",
        "required": [
          "payment_method_data"
        ],
        "properties": {
          "payment_method_data": {
            "$ref": "#/components/schemas/NetworkTokenDetailsPaymentMethod"
          }
        }
      },
      "NetworkTokenStatusCheckFailureResponse": {
        "type": "object",
        "required": [
          "error_message"
        ],
        "properties": {
          "error_message": {
            "type": "string",
            "description": "Error message describing what went wrong"
          }
        }
      },
      "NetworkTokenStatusCheckResponse": {
        "oneOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokenStatusCheckSuccessResponse"
              },
              {
                "type": "object",
                "required": [
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "success_response"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokenStatusCheckFailureResponse"
              },
              {
                "type": "object",
                "required": [
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "failure_response"
                    ]
                  }
                }
              }
            ]
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "NetworkTokenStatusCheckSuccessResponse": {
        "type": "object",
        "required": [
          "status",
          "payment_method_id",
          "customer_id"
        ],
        "properties": {
          "status": {
            "$ref": "#/components/schemas/TokenStatus"
          },
          "token_expiry_month": {
            "type": "string",
            "description": "The expiry month of the network token if active",
            "nullable": true
          },
          "token_expiry_year": {
            "type": "string",
            "description": "The expiry year of the network token if active",
            "nullable": true
          },
          "card_last_four": {
            "type": "string",
            "description": "The last four digits of the card if active",
            "nullable": true
          },
          "token_last_four": {
            "type": "string",
            "description": "The last four digits of the network token if active",
            "nullable": true
          },
          "card_expiry_month": {
            "type": "string",
            "description": "The expiry month of the card if active",
            "nullable": true
          },
          "card_expiry_year": {
            "type": "string",
            "description": "The expiry year of the card if active",
            "nullable": true
          },
          "payment_method_id": {
            "type": "string",
            "description": "The payment method ID that was checked",
            "example": "0a_pm_019959146f92737389eb6927ce1eb7dc"
          },
          "customer_id": {
            "type": "string",
            "description": "The customer ID associated with the payment method",
            "example": "0a_cus_0195dc62bb8e7312a44484536da76aef"
          }
        }
      },
      "NetworkTokenization": {
        "type": "object",
        "description": "The network tokenization configuration for creating the payment method session",
        "required": [
          "enable"
        ],
        "properties": {
          "enable": {
            "$ref": "#/components/schemas/NetworkTokenizationToggle"
          }
        }
      },
      "NetworkTokenizationToggle": {
        "type": "string",
        "description": "The network tokenization toggle, whether to enable or skip the network tokenization",
        "enum": [
          "Enable",
          "Skip"
        ]
      },
      "NetworkTransactionIdAndCardDetails": {
        "type": "object",
        "required": [
          "card_number",
          "card_exp_month",
          "card_exp_year",
          "card_holder_name",
          "network_transaction_id"
        ],
        "properties": {
          "card_number": {
            "type": "string",
            "description": "The card number",
            "example": "4242424242424242"
          },
          "card_exp_month": {
            "type": "string",
            "description": "The card's expiry month",
            "example": "24"
          },
          "card_exp_year": {
            "type": "string",
            "description": "The card's expiry year",
            "example": "24"
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test"
          },
          "card_issuer": {
            "type": "string",
            "description": "The name of the issuer of card",
            "example": "chase",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "example": "CREDIT",
            "nullable": true
          },
          "card_issuing_country": {
            "type": "string",
            "example": "INDIA",
            "nullable": true
          },
          "card_issuing_country_code": {
            "type": "string",
            "example": "IN",
            "nullable": true
          },
          "bank_code": {
            "type": "string",
            "example": "JP_AMEX",
            "nullable": true
          },
          "nick_name": {
            "type": "string",
            "description": "The card holder's nick name",
            "example": "John Test",
            "nullable": true
          },
          "network_transaction_id": {
            "type": "string",
            "description": "The network transaction ID provided by the card network during a CIT (Customer Initiated Transaction),\nwhen `setup_future_usage` is set to `off_session`."
          },
          "transaction_link_id": {
            "type": "string",
            "description": "The Mastercard Transaction Link Identifier (TLID) provided by the card network during a CIT (Customer Initiated Transaction),\nwhen `setup_future_usage` is set to `off_session`.",
            "nullable": true
          }
        }
      },
      "NetworkTransactionIdAndDecryptedWalletTokenDetails": {
        "type": "object",
        "description": "Network Transaction ID and Decrypted Wallet Token Details",
        "required": [
          "decrypted_token",
          "token_exp_month",
          "token_exp_year",
          "card_holder_name",
          "network_transaction_id"
        ],
        "properties": {
          "decrypted_token": {
            "type": "string",
            "description": "The Decrypted Token",
            "example": "4604000460040787"
          },
          "token_exp_month": {
            "type": "string",
            "description": "The token's expiry month",
            "example": "05"
          },
          "token_exp_year": {
            "type": "string",
            "description": "The token's expiry year",
            "example": "24"
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test"
          },
          "network_transaction_id": {
            "type": "string",
            "description": "The network transaction ID provided by the card network during a Customer Initiated Transaction (CIT)\nwhen `setup_future_usage` is set to `off_session`."
          },
          "transaction_link_id": {
            "type": "string",
            "description": "The Mastercard Transaction Link Identifier (TLID) provided by the card network during a CIT (Customer Initiated Transaction),\nwhen `setup_future_usage` is set to `off_session`.",
            "nullable": true
          },
          "eci": {
            "type": "string",
            "description": "ECI indicator of the card",
            "nullable": true
          },
          "token_source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TokenSource"
              }
            ],
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          }
        }
      },
      "NetworkTransactionIdAndNetworkTokenDetails": {
        "type": "object",
        "required": [
          "network_token",
          "token_exp_month",
          "token_exp_year",
          "card_holder_name",
          "network_transaction_id"
        ],
        "properties": {
          "network_token": {
            "type": "string",
            "description": "The Network Token",
            "example": "4604000460040787"
          },
          "token_exp_month": {
            "type": "string",
            "description": "The token's expiry month",
            "example": "05"
          },
          "token_exp_year": {
            "type": "string",
            "description": "The token's expiry year",
            "example": "24"
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "description": "The type of the card such as Credit, Debit",
            "example": "CREDIT",
            "nullable": true
          },
          "card_issuing_country": {
            "type": "string",
            "description": "The country in which the card was issued",
            "example": "INDIA",
            "nullable": true
          },
          "bank_code": {
            "type": "string",
            "description": "The bank code of the bank that issued the card",
            "example": "JP_AMEX",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test"
          },
          "card_issuer": {
            "type": "string",
            "description": "The name of the issuer of card",
            "example": "chase",
            "nullable": true
          },
          "nick_name": {
            "type": "string",
            "description": "The card holder's nick name",
            "example": "John Test",
            "nullable": true
          },
          "eci": {
            "type": "string",
            "description": "The ECI(Electronic Commerce Indicator) value for this authentication.",
            "nullable": true
          },
          "network_transaction_id": {
            "type": "string",
            "description": "The network transaction ID provided by the card network during a Customer Initiated Transaction (CIT)\nwhen `setup_future_usage` is set to `off_session`."
          },
          "transaction_link_id": {
            "type": "string",
            "description": "The Mastercard Transaction Link Identifier (TLID) provided by the card network during a CIT (Customer Initiated Transaction),\nwhen `setup_future_usage` is set to `off_session`.",
            "nullable": true
          }
        }
      },
      "NextActionCall": {
        "oneOf": [
          {
            "type": "string",
            "description": "The next action call is Post Session Tokens",
            "enum": [
              "post_session_tokens"
            ]
          },
          {
            "type": "string",
            "description": "The next action call is confirm",
            "enum": [
              "confirm"
            ]
          },
          {
            "type": "string",
            "description": "The next action call is sync",
            "enum": [
              "sync"
            ]
          },
          {
            "type": "string",
            "description": "The next action call is Complete Authorize",
            "enum": [
              "complete_authorize"
            ]
          },
          {
            "type": "string",
            "description": "The next action is to await for a merchant callback",
            "enum": [
              "await_merchant_callback"
            ]
          },
          {
            "type": "object",
            "required": [
              "deny"
            ],
            "properties": {
              "deny": {
                "type": "object",
                "description": "The next action is to deny the payment with an error message",
                "required": [
                  "message"
                ],
                "properties": {
                  "message": {
                    "type": "string"
                  },
                  "code": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/BlockReasonCode"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "string",
            "description": "The next action is to perform eligibility check",
            "enum": [
              "eligibility_check"
            ]
          }
        ]
      },
      "NextActionData": {
        "oneOf": [
          {
            "type": "object",
            "description": "Contains the url for redirection flow",
            "required": [
              "redirect_to_url",
              "type"
            ],
            "properties": {
              "redirect_to_url": {
                "type": "string",
                "example": "https://example.com/redirect"
              },
              "type": {
                "type": "string",
                "enum": [
                  "redirect_to_url"
                ]
              }
            }
          },
          {
            "type": "object",
            "description": "Informs the next steps for bank transfer and also contains the charges details (ex: amount received, amount charged etc)",
            "required": [
              "bank_transfer_steps_and_charges_details",
              "type"
            ],
            "properties": {
              "bank_transfer_steps_and_charges_details": {
                "$ref": "#/components/schemas/BankTransferNextStepsData"
              },
              "type": {
                "type": "string",
                "enum": [
                  "display_bank_transfer_information"
                ]
              }
            }
          },
          {
            "type": "object",
            "description": "Contains third party sdk session token response",
            "required": [
              "type"
            ],
            "properties": {
              "session_token": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SessionToken"
                  }
                ],
                "nullable": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "third_party_sdk_session_token"
                ]
              }
            }
          },
          {
            "type": "object",
            "description": "Contains url for Qr code image, this qr code has to be shown in sdk",
            "required": [
              "image_data_url",
              "qr_code_url",
              "type"
            ],
            "properties": {
              "image_data_url": {
                "type": "string",
                "description": "Hyperswitch generated image data source url"
              },
              "display_to_timestamp": {
                "type": "integer",
                "format": "int64",
                "nullable": true
              },
              "qr_code_url": {
                "type": "string",
                "description": "The url for Qr code given by the connector"
              },
              "display_text": {
                "type": "string",
                "nullable": true
              },
              "border_color": {
                "type": "string",
                "nullable": true
              },
              "raw_qr_data": {
                "type": "string",
                "description": "The raw QR code data (EMV copy and paste) used for Brazilian payment methods like Pix",
                "nullable": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "qr_code_information"
                ]
              }
            }
          },
          {
            "type": "object",
            "description": "Contains url to fetch Qr code data",
            "required": [
              "qr_code_fetch_url",
              "type"
            ],
            "properties": {
              "qr_code_fetch_url": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "fetch_qr_code_information"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "sdk_uri",
              "display_from_timestamp",
              "type"
            ],
            "properties": {
              "sdk_uri": {
                "type": "string"
              },
              "display_from_timestamp": {
                "type": "integer"
              },
              "display_to_timestamp": {
                "type": "integer",
                "nullable": true
              },
              "poll_config": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PollConfig"
                  }
                ],
                "nullable": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "invoke_upi_intent_sdk"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "qr_code_url",
              "display_from_timestamp",
              "type"
            ],
            "properties": {
              "qr_code_url": {
                "type": "string"
              },
              "display_from_timestamp": {
                "type": "integer"
              },
              "display_to_timestamp": {
                "type": "integer",
                "nullable": true
              },
              "poll_config": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PollConfig"
                  }
                ],
                "nullable": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "invoke_upi_qr_flow"
                ]
              }
            }
          },
          {
            "type": "object",
            "description": "Contains the download url and the reference number for transaction",
            "required": [
              "voucher_details",
              "type"
            ],
            "properties": {
              "voucher_details": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "display_voucher_information"
                ]
              }
            }
          },
          {
            "type": "object",
            "description": "Contains duration for displaying a wait screen, wait screen with timer is displayed by sdk",
            "required": [
              "display_from_timestamp",
              "type"
            ],
            "properties": {
              "display_from_timestamp": {
                "type": "integer"
              },
              "display_to_timestamp": {
                "type": "integer",
                "nullable": true
              },
              "poll_config": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PollConfig"
                  }
                ],
                "nullable": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "wait_screen_information"
                ]
              }
            }
          },
          {
            "type": "object",
            "description": "Contains the information regarding three_ds_method_data submission, three_ds authentication, and authorization flows",
            "required": [
              "three_ds_data",
              "type"
            ],
            "properties": {
              "three_ds_data": {
                "$ref": "#/components/schemas/ThreeDsData"
              },
              "type": {
                "type": "string",
                "enum": [
                  "three_ds_invoke"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "next_action_data",
              "type"
            ],
            "properties": {
              "next_action_data": {
                "$ref": "#/components/schemas/SdkNextActionData"
              },
              "type": {
                "type": "string",
                "enum": [
                  "invoke_sdk_client"
                ]
              }
            }
          },
          {
            "type": "object",
            "description": "Contains consent to collect otp for mobile payment",
            "required": [
              "consent_data_required",
              "type"
            ],
            "properties": {
              "consent_data_required": {
                "$ref": "#/components/schemas/MobilePaymentConsent"
              },
              "type": {
                "type": "string",
                "enum": [
                  "collect_otp"
                ]
              }
            }
          },
          {
            "type": "object",
            "description": "Contains data required to invoke hidden iframe",
            "required": [
              "iframe_data",
              "type"
            ],
            "properties": {
              "iframe_data": {
                "$ref": "#/components/schemas/IframeData"
              },
              "type": {
                "type": "string",
                "enum": [
                  "invoke_hidden_iframe"
                ]
              }
            }
          },
          {
            "type": "object",
            "description": "The data required to trigger the DDC (Device Data Collection) flow by rendering the provided URL in a hidden iframe.",
            "required": [
              "ddc_data",
              "type"
            ],
            "properties": {
              "ddc_data": {
                "$ref": "#/components/schemas/DDCData"
              },
              "type": {
                "type": "string",
                "enum": [
                  "invoke_ddc"
                ]
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "NextActionType": {
        "type": "string",
        "enum": [
          "redirect_to_url",
          "display_qr_code",
          "invoke_sdk_client",
          "trigger_api",
          "display_bank_transfer_information",
          "display_wait_screen",
          "collect_otp",
          "redirect_inside_popup",
          "invoke_upi_intent_sdk",
          "invoke_upi_qr_flow"
        ]
      },
      "NoonData": {
        "type": "object",
        "properties": {
          "order_category": {
            "type": "string",
            "description": "Information about the order category that merchant wants to specify at connector level. (e.g. In Noon Payments it can take values like \"pay\", \"food\", or any other custom string set by the merchant in Noon's Dashboard)",
            "nullable": true
          }
        }
      },
      "NullObject": {
        "default": null,
        "nullable": true
      },
      "NumberComparison": {
        "type": "object",
        "description": "Represents a number comparison for \"NumberComparisonArrayValue\"",
        "required": [
          "comparisonType",
          "number"
        ],
        "properties": {
          "comparisonType": {
            "$ref": "#/components/schemas/ComparisonType"
          },
          "number": {
            "$ref": "#/components/schemas/MinorUnit"
          }
        }
      },
      "OnlineMandate": {
        "type": "object",
        "description": "Details of online mandate",
        "required": [
          "ip_address",
          "user_agent"
        ],
        "properties": {
          "ip_address": {
            "type": "string",
            "description": "Ip address of the customer machine from which the mandate was created",
            "example": "123.32.25.123"
          },
          "user_agent": {
            "type": "string",
            "description": "The user-agent of the customer's browser"
          }
        },
        "additionalProperties": false
      },
      "OpenBanking": {
        "type": "object",
        "required": [
          "account_holder_name",
          "iban"
        ],
        "properties": {
          "account_holder_name": {
            "type": "string",
            "description": "Account holder name",
            "example": "John Doe"
          },
          "iban": {
            "type": "string",
            "description": "International Bank Account Number (iban) - used in many countries for identifying a bank along with it's customer.",
            "example": "DE89370400440532013000"
          }
        }
      },
      "OpenBankingAdditionalData": {
        "type": "object",
        "description": "Masked payout method details for OpenBanking bank transfer payout method",
        "required": [
          "account_holder_name",
          "iban"
        ],
        "properties": {
          "account_holder_name": {
            "type": "string",
            "description": "Account holder name",
            "example": "John Doe"
          },
          "iban": {
            "type": "string",
            "description": "International Bank Account Number (iban) - used in many countries for identifying a bank along with it's customer.",
            "example": "DE89370400440532013000"
          }
        }
      },
      "OpenBankingData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "open_banking_pis"
            ],
            "properties": {
              "open_banking_pis": {
                "type": "object"
              }
            }
          }
        ]
      },
      "OpenBankingResponse": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/OpenBankingData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ]
      },
      "OpenBankingSessionToken": {
        "type": "object",
        "required": [
          "open_banking_session_token"
        ],
        "properties": {
          "open_banking_session_token": {
            "type": "string",
            "description": "The session token for OpenBanking Connectors"
          }
        }
      },
      "OpenBankingUk": {
        "type": "object",
        "required": [
          "account_holder_name",
          "iban"
        ],
        "properties": {
          "account_holder_name": {
            "type": "string",
            "description": "Account holder name",
            "example": "John Doe"
          },
          "iban": {
            "type": "string",
            "description": "International Bank Account Number (iban) - used in many countries for identifying a bank along with it's customer.",
            "example": "DE89370400440532013000"
          }
        }
      },
      "OpenBankingUkAdditionalData": {
        "type": "object",
        "description": "Masked payout method details for OpenBankingUK bank redirect payout method",
        "required": [
          "account_holder_name",
          "iban"
        ],
        "properties": {
          "account_holder_name": {
            "type": "string",
            "description": "Account holder name",
            "example": "John Doe"
          },
          "iban": {
            "type": "string",
            "description": "International Bank Account Number (iban) - used in many countries for identifying a bank along with it's customer.",
            "example": "DE89370400440532013000"
          }
        }
      },
      "Order": {
        "type": "object",
        "required": [
          "on",
          "by"
        ],
        "properties": {
          "on": {
            "$ref": "#/components/schemas/SortOn"
          },
          "by": {
            "$ref": "#/components/schemas/SortBy"
          }
        }
      },
      "OrderDetailsWithAmount": {
        "type": "object",
        "required": [
          "product_name",
          "quantity",
          "amount"
        ],
        "properties": {
          "product_name": {
            "type": "string",
            "description": "Name of the product that is being purchased",
            "example": "shirt",
            "maxLength": 255
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "description": "The quantity of the product to be purchased",
            "example": 1,
            "minimum": 0
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "the amount per quantity of product"
          },
          "tax_rate": {
            "type": "number",
            "format": "double",
            "description": "tax rate applicable to the product",
            "nullable": true
          },
          "total_tax_amount": {
            "type": "integer",
            "format": "int64",
            "description": "total tax amount applicable to the product",
            "nullable": true
          },
          "requires_shipping": {
            "type": "boolean",
            "nullable": true
          },
          "product_img_link": {
            "type": "string",
            "description": "The image URL of the product",
            "nullable": true
          },
          "product_id": {
            "type": "string",
            "description": "ID of the product that is being purchased",
            "nullable": true
          },
          "category": {
            "type": "string",
            "description": "Category of the product that is being purchased",
            "nullable": true
          },
          "sub_category": {
            "type": "string",
            "description": "Sub category of the product that is being purchased",
            "nullable": true
          },
          "brand": {
            "type": "string",
            "description": "Brand of the product that is being purchased",
            "nullable": true
          },
          "product_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductType"
              }
            ],
            "nullable": true
          },
          "product_tax_code": {
            "type": "string",
            "description": "The tax code for the product",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Description for the item",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "description": "Stock Keeping Unit (SKU) or the item identifier for this item.",
            "nullable": true
          },
          "upc": {
            "type": "string",
            "description": "Universal Product Code for the item.",
            "nullable": true
          },
          "commodity_code": {
            "type": "string",
            "description": "Code describing a commodity or a group of commodities pertaining to goods classification.",
            "nullable": true
          },
          "unit_of_measure": {
            "type": "string",
            "description": "Unit of measure used for the item quantity.",
            "nullable": true
          },
          "total_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Total amount for the item.",
            "nullable": true
          },
          "unit_discount_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Discount amount applied to this item.",
            "nullable": true
          }
        }
      },
      "OrderFulfillmentTimeOrigin": {
        "type": "string",
        "enum": [
          "create",
          "confirm"
        ]
      },
      "OrganizationCreateRequest": {
        "type": "object",
        "required": [
          "organization_name"
        ],
        "properties": {
          "organization_name": {
            "type": "string",
            "description": "Name of the organization"
          },
          "organization_details": {
            "type": "object",
            "description": "Details about the organization",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrganizationResponse": {
        "type": "object",
        "required": [
          "id",
          "modified_at",
          "created_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the Organization",
            "example": "org_q98uSGAYbjEwqs0mJwnz",
            "maxLength": 64,
            "minLength": 1
          },
          "organization_name": {
            "type": "string",
            "description": "Name of the Organization",
            "nullable": true
          },
          "organization_details": {
            "type": "object",
            "description": "Details about the organization",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "modified_at": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "organization_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OrganizationType"
              }
            ],
            "nullable": true
          }
        }
      },
      "OrganizationType": {
        "type": "string",
        "enum": [
          "standard",
          "platform"
        ]
      },
      "OrganizationUpdateRequest": {
        "type": "object",
        "required": [
          "platform_merchant_id"
        ],
        "properties": {
          "organization_name": {
            "type": "string",
            "description": "Name of the organization",
            "nullable": true
          },
          "organization_details": {
            "type": "object",
            "description": "Details about the organization",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "platform_merchant_id": {
            "type": "string",
            "description": "Platform merchant id is unique distiguisher for special merchant in the platform org"
          }
        },
        "additionalProperties": false
      },
      "OutgoingWebhook": {
        "type": "object",
        "required": [
          "merchant_id",
          "event_id",
          "event_type",
          "content"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The provider merchant id (platform/business owner)"
          },
          "event_id": {
            "type": "string",
            "description": "The unique event id for each webhook"
          },
          "event_type": {
            "$ref": "#/components/schemas/EventType"
          },
          "content": {
            "$ref": "#/components/schemas/OutgoingWebhookContent"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The time at which webhook was sent"
          },
          "processor_merchant_id": {
            "type": "string",
            "description": "The merchant id of the merchant account whose connector credentials are used for payment processing",
            "nullable": true
          }
        }
      },
      "OutgoingWebhookContent": {
        "oneOf": [
          {
            "type": "object",
            "title": "PaymentsResponse",
            "required": [
              "type",
              "object"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "payment_details"
                ]
              },
              "object": {
                "$ref": "#/components/schemas/PaymentsResponse"
              }
            }
          },
          {
            "type": "object",
            "title": "RefundResponse",
            "required": [
              "type",
              "object"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "refund_details"
                ]
              },
              "object": {
                "$ref": "#/components/schemas/RefundResponse"
              }
            }
          },
          {
            "type": "object",
            "title": "DisputeResponse",
            "required": [
              "type",
              "object"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "dispute_details"
                ]
              },
              "object": {
                "$ref": "#/components/schemas/DisputeResponse"
              }
            }
          },
          {
            "type": "object",
            "title": "MandateResponse",
            "required": [
              "type",
              "object"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "mandate_details"
                ]
              },
              "object": {
                "$ref": "#/components/schemas/MandateResponse"
              }
            }
          },
          {
            "type": "object",
            "title": "PayoutCreateResponse",
            "required": [
              "type",
              "object"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "payout_details"
                ]
              },
              "object": {
                "$ref": "#/components/schemas/PayoutCreateResponse"
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "OutgoingWebhookRequestContent": {
        "type": "object",
        "description": "The request information (headers and body) sent in the webhook.",
        "required": [
          "body",
          "headers"
        ],
        "properties": {
          "body": {
            "type": "string",
            "description": "The request body sent in the webhook."
          },
          "headers": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "allOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "string"
                  }
                ]
              }
            },
            "description": "The request headers sent in the webhook.",
            "example": [
              [
                "content-type",
                "application/json"
              ],
              [
                "content-length",
                "1024"
              ]
            ]
          }
        }
      },
      "OutgoingWebhookResponseContent": {
        "type": "object",
        "description": "The response information (headers, body and status code) received for the webhook sent.",
        "properties": {
          "body": {
            "type": "string",
            "description": "The response body received for the webhook sent.",
            "nullable": true
          },
          "headers": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "allOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "string"
                  }
                ]
              }
            },
            "description": "The response headers received for the webhook sent.",
            "example": [
              [
                "content-type",
                "application/json"
              ],
              [
                "content-length",
                "1024"
              ]
            ],
            "nullable": true
          },
          "status_code": {
            "type": "integer",
            "format": "int32",
            "description": "The HTTP status code for the webhook sent.",
            "example": 200,
            "nullable": true,
            "minimum": 0
          },
          "error_message": {
            "type": "string",
            "description": "Error message in case any error occurred when trying to deliver the webhook.",
            "example": 200,
            "nullable": true
          }
        }
      },
      "PMBalanceCheckEligibilityResponse": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "success"
            ],
            "properties": {
              "success": {
                "$ref": "#/components/schemas/PMBalanceCheckSuccessResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "failure"
            ],
            "properties": {
              "failure": {
                "$ref": "#/components/schemas/PMBalanceCheckFailureResponse"
              }
            }
          }
        ]
      },
      "PMBalanceCheckFailureResponse": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "string"
          }
        }
      },
      "PMBalanceCheckSuccessResponse": {
        "type": "object",
        "required": [
          "balance",
          "applicable_amount",
          "currency"
        ],
        "properties": {
          "balance": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "applicable_amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          }
        }
      },
      "Passthrough": {
        "type": "object",
        "required": [
          "psp_token",
          "psp_customer_id",
          "token_type"
        ],
        "properties": {
          "psp_token": {
            "type": "string",
            "description": "PSP token generated for the payout method",
            "example": "token_12345"
          },
          "psp_customer_id": {
            "type": "string",
            "description": "PSP customer ID",
            "example": "customer_12345"
          },
          "token_type": {
            "$ref": "#/components/schemas/PaymentMethodType"
          }
        }
      },
      "PassthroughAdditionalData": {
        "type": "object",
        "description": "additional payout method details for passthrough payout method",
        "required": [
          "psp_token",
          "token_type"
        ],
        "properties": {
          "psp_token": {
            "type": "string",
            "description": "Psp_token of the passthrough flow",
            "example": "token_12345"
          },
          "token_type": {
            "$ref": "#/components/schemas/PaymentMethodType"
          }
        }
      },
      "PayLaterData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "klarna_redirect"
            ],
            "properties": {
              "klarna_redirect": {
                "type": "object",
                "description": "For KlarnaRedirect as PayLater Option",
                "properties": {
                  "billing_email": {
                    "type": "string",
                    "description": "The billing email",
                    "nullable": true
                  },
                  "billing_country": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/CountryAlpha2"
                      }
                    ],
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "klarna_sdk"
            ],
            "properties": {
              "klarna_sdk": {
                "type": "object",
                "description": "For Klarna Sdk as PayLater Option",
                "required": [
                  "token"
                ],
                "properties": {
                  "token": {
                    "type": "string",
                    "description": "The token for the sdk workflow"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "affirm_redirect"
            ],
            "properties": {
              "affirm_redirect": {
                "type": "object",
                "description": "For Affirm redirect as PayLater Option"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "afterpay_clearpay_redirect"
            ],
            "properties": {
              "afterpay_clearpay_redirect": {
                "type": "object",
                "description": "For AfterpayClearpay redirect as PayLater Option",
                "properties": {
                  "billing_email": {
                    "type": "string",
                    "description": "The billing email",
                    "nullable": true
                  },
                  "billing_name": {
                    "type": "string",
                    "description": "The billing name",
                    "nullable": true
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pay_bright_redirect"
            ],
            "properties": {
              "pay_bright_redirect": {
                "type": "object",
                "description": "For PayBright Redirect as PayLater Option"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "flexiti_redirect"
            ],
            "properties": {
              "flexiti_redirect": {
                "type": "object",
                "description": "For Flexiti Redirect as PayLater long term finance Option"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "walley_redirect"
            ],
            "properties": {
              "walley_redirect": {
                "type": "object",
                "description": "For WalleyRedirect as PayLater Option"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "alma_redirect"
            ],
            "properties": {
              "alma_redirect": {
                "type": "object",
                "description": "For Alma Redirection as PayLater Option"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "atome_redirect"
            ],
            "properties": {
              "atome_redirect": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "breadpay_redirect"
            ],
            "properties": {
              "breadpay_redirect": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "payjustnow_redirect"
            ],
            "properties": {
              "payjustnow_redirect": {
                "type": "object"
              }
            }
          }
        ]
      },
      "PayPalWalletData": {
        "type": "object",
        "required": [
          "token"
        ],
        "properties": {
          "token": {
            "type": "string",
            "description": "Token generated for the Apple pay"
          }
        }
      },
      "PaylaterResponse": {
        "type": "object",
        "properties": {
          "klarna_sdk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/KlarnaSdkPaymentMethodResponse"
              }
            ],
            "nullable": true
          }
        }
      },
      "PayloadLedgerItem": {
        "type": "object",
        "description": "A single ledger entry distributing payment to one receiver for Payload split payments",
        "required": [
          "amount",
          "receiver_id"
        ],
        "properties": {
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "Amount in minor units to be routed to this receiver out of the payment",
            "example": 995
          },
          "receiver_id": {
            "type": "string",
            "description": "processing_id of the receiver"
          }
        }
      },
      "PayloadSplitPaymentRequest": {
        "type": "object",
        "description": "Split payment configuration for Payload — distributes a payment across multiple receivers via ledger entries",
        "required": [
          "ledger"
        ],
        "properties": {
          "ledger": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayloadLedgerItem"
            },
            "description": "Ledger entries specifying how the payment is distributed across receivers"
          }
        }
      },
      "PaymentAmountDetailsResponse": {
        "type": "object",
        "required": [
          "currency",
          "external_tax_calculation",
          "surcharge_calculation",
          "net_amount",
          "amount_capturable"
        ],
        "properties": {
          "order_amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payment amount. Amount for the payment in the lowest denomination of the currency, (i.e) in cents for USD denomination, in yen for JPY denomination etc. E.g., Pass 100 to charge $1.00 and 1 for 1¥ since ¥ is a zero-decimal currency. Read more about [the Decimal and Non-Decimal Currencies](https://github.com/juspay/hyperswitch/wiki/Decimal-and-Non%E2%80%90Decimal-Currencies)",
            "example": 6540,
            "minimum": 0
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "shipping_cost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "order_tax_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "external_tax_calculation": {
            "$ref": "#/components/schemas/TaxCalculationOverride"
          },
          "surcharge_calculation": {
            "$ref": "#/components/schemas/SurchargeCalculationOverride"
          },
          "surcharge_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "tax_on_surcharge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "net_amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "amount_to_capture": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "amount_capturable": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "amount_captured": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentAttemptAmountDetails": {
        "type": "object",
        "required": [
          "net_amount",
          "amount_capturable"
        ],
        "properties": {
          "net_amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "amount_to_capture": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "surcharge_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "tax_on_surcharge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "amount_capturable": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "shipping_cost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "order_tax_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "amount_captured": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentAttemptFeatureMetadata": {
        "type": "object",
        "properties": {
          "revenue_recovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentAttemptRevenueRecoveryData"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentAttemptListRequest": {
        "type": "object",
        "required": [
          "payment_intent_id"
        ],
        "properties": {
          "payment_intent_id": {
            "type": "string"
          }
        }
      },
      "PaymentAttemptListResponse": {
        "type": "object",
        "required": [
          "payment_attempt_list"
        ],
        "properties": {
          "payment_attempt_list": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentAttemptResponse"
            }
          }
        }
      },
      "PaymentAttemptRecordResponse": {
        "type": "object",
        "required": [
          "id",
          "status",
          "amount",
          "created_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The global identifier for the payment attempt"
          },
          "status": {
            "$ref": "#/components/schemas/AttemptStatus"
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The amount of the payment attempt",
            "example": 6540
          },
          "error_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordAttemptErrorDetails"
              }
            ],
            "nullable": true
          },
          "payment_intent_feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeatureMetadata"
              }
            ],
            "nullable": true
          },
          "payment_attempt_feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentAttemptFeatureMetadata"
              }
            ],
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "attempt created at timestamp"
          }
        }
      },
      "PaymentAttemptResponse": {
        "type": "object",
        "required": [
          "id",
          "status",
          "amount",
          "authentication_type",
          "created_at",
          "modified_at",
          "connector_payment_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The global identifier for the payment attempt"
          },
          "status": {
            "$ref": "#/components/schemas/AttemptStatus"
          },
          "amount": {
            "$ref": "#/components/schemas/PaymentAttemptAmountDetails"
          },
          "connector": {
            "type": "string",
            "description": "Name of the connector that was used for the payment attempt.",
            "example": "stripe",
            "nullable": true
          },
          "error": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ErrorDetails"
              }
            ],
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "three_ds"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of Payment attempt creation"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time at which the payment attempt was last modified"
          },
          "cancellation_reason": {
            "type": "string",
            "description": "The reason for the cancellation of the payment attempt. Some connectors will have strict rules regarding the values this can have\nCancellation reason will be validated at the connector level when building the request",
            "nullable": true
          },
          "payment_token": {
            "type": "string",
            "description": "Payment token is the token used for temporary use in case the payment method is stored in vault",
            "example": "187282ab-40ef-47a9-9206-5099ba31e432",
            "nullable": true
          },
          "connector_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorMetadata"
              }
            ],
            "nullable": true
          },
          "payment_experience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentExperience"
              }
            ],
            "nullable": true
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethod"
              }
            ],
            "nullable": true
          },
          "connector_reference_id": {
            "type": "string",
            "description": "reference(Identifier) to the payment at connector side",
            "example": "993672945374576J",
            "nullable": true
          },
          "payment_method_subtype": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "connector_payment_id": {
            "type": "string",
            "description": "A unique identifier for a payment provided by the connector"
          },
          "payment_method_id": {
            "type": "string",
            "description": "Identifier for Payment Method used for the payment attempt",
            "example": "0a_pm_01926c58bc6e77c09e809964e72af8c8",
            "nullable": true
          },
          "client_source": {
            "type": "string",
            "description": "Value passed in X-CLIENT-SOURCE header during payments confirm request by the client",
            "nullable": true
          },
          "client_version": {
            "type": "string",
            "description": "Value passed in X-CLIENT-VERSION header during payments confirm request by the client",
            "nullable": true
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentAttemptFeatureMetadata"
              }
            ],
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDataResponseWithBilling"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentAttemptRevenueRecoveryData": {
        "type": "object",
        "properties": {
          "attempt_triggered_by": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TriggeredBy"
              }
            ],
            "nullable": true
          },
          "charge_id": {
            "type": "string",
            "example": "ch_123abc456def789ghi012klmn",
            "nullable": true
          }
        }
      },
      "PaymentChargeType": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "Stripe"
            ],
            "properties": {
              "Stripe": {
                "$ref": "#/components/schemas/StripeChargeType"
              }
            }
          }
        ]
      },
      "PaymentConnectorTransmission": {
        "type": "string",
        "enum": [
          "ConnectorCallUnsuccessful",
          "ConnectorCallSucceeded"
        ]
      },
      "PaymentCreatePaymentLinkConfig": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkConfigRequest"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ],
        "description": "Configure a custom payment link for the particular payment"
      },
      "PaymentExperience": {
        "type": "string",
        "description": "To indicate the type of payment experience that the customer would go through",
        "enum": [
          "redirect_to_url",
          "invoke_sdk_client",
          "display_qr_code",
          "one_click",
          "link_wallet",
          "invoke_payment_app",
          "display_wait_screen",
          "collect_otp"
        ]
      },
      "PaymentExperienceTypes": {
        "type": "object",
        "required": [
          "eligible_connectors"
        ],
        "properties": {
          "payment_experience_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentExperience"
              }
            ],
            "nullable": true
          },
          "eligible_connectors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The list of eligible connectors for a given payment experience",
            "example": [
              "stripe",
              "adyen"
            ]
          }
        }
      },
      "PaymentIntentStateMetadata": {
        "type": "object",
        "description": "Additional metadata for payment intent state containing refunded and disputed amounts",
        "properties": {
          "total_refunded_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "total_disputed_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "post_capture_void": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PostCaptureVoidResponse"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentLinkBackgroundImageConfig": {
        "type": "object",
        "required": [
          "url"
        ],
        "properties": {
          "url": {
            "type": "string",
            "description": "URL of the image",
            "example": "https://hyperswitch.io/favicon.ico"
          },
          "position": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ElementPosition"
              }
            ],
            "nullable": true
          },
          "size": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ElementSize"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentLinkConfig": {
        "type": "object",
        "required": [
          "theme",
          "logo",
          "seller_name",
          "sdk_layout",
          "display_sdk_only",
          "enabled_saved_payment_method",
          "hide_card_nickname_field",
          "show_card_form_by_default",
          "enable_button_only_on_form_ready"
        ],
        "properties": {
          "theme": {
            "type": "string",
            "description": "custom theme for the payment link"
          },
          "logo": {
            "type": "string",
            "description": "merchant display logo"
          },
          "seller_name": {
            "type": "string",
            "description": "Custom merchant name for payment link"
          },
          "sdk_layout": {
            "type": "string",
            "description": "Custom layout for sdk"
          },
          "display_sdk_only": {
            "type": "boolean",
            "description": "Display only the sdk for payment link"
          },
          "enabled_saved_payment_method": {
            "type": "boolean",
            "description": "Enable saved payment method option for payment link"
          },
          "hide_card_nickname_field": {
            "type": "boolean",
            "description": "Hide card nickname field option for payment link"
          },
          "show_card_form_by_default": {
            "type": "boolean",
            "description": "Show card form by default for payment link"
          },
          "allowed_domains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of allowed domains (glob patterns) where this link can be embedded / opened from",
            "uniqueItems": true,
            "nullable": true
          },
          "transaction_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentLinkTransactionDetails"
            },
            "description": "Dynamic details related to merchant to be rendered in payment link",
            "nullable": true
          },
          "background_image": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkBackgroundImageConfig"
              }
            ],
            "nullable": true
          },
          "details_layout": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkDetailsLayout"
              }
            ],
            "nullable": true
          },
          "branding_visibility": {
            "type": "boolean",
            "description": "Toggle for HyperSwitch branding visibility",
            "nullable": true
          },
          "payment_button_text": {
            "type": "string",
            "description": "Text for payment link's handle confirm button",
            "nullable": true
          },
          "custom_message_for_card_terms": {
            "type": "string",
            "description": "Text for customizing message for card terms",
            "nullable": true
          },
          "custom_message_for_payment_method_types": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodsConfig"
              }
            ],
            "nullable": true
          },
          "payment_button_colour": {
            "type": "string",
            "description": "Custom background colour for payment link's handle confirm button",
            "nullable": true
          },
          "skip_status_screen": {
            "type": "boolean",
            "description": "Skip the status screen after payment completion",
            "nullable": true
          },
          "payment_button_text_colour": {
            "type": "string",
            "description": "Custom text colour for payment link's handle confirm button",
            "nullable": true
          },
          "background_colour": {
            "type": "string",
            "description": "Custom background colour for the payment link",
            "nullable": true
          },
          "sdk_ui_rules": {
            "type": "object",
            "description": "SDK configuration rules",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "nullable": true
          },
          "payment_link_ui_rules": {
            "type": "object",
            "description": "Payment link configuration rules",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "nullable": true
          },
          "enable_button_only_on_form_ready": {
            "type": "boolean",
            "description": "Flag to enable the button only when the payment form is ready for submission"
          },
          "payment_form_header_text": {
            "type": "string",
            "description": "Optional header for the SDK's payment form",
            "nullable": true
          },
          "payment_form_label_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkSdkLabelType"
              }
            ],
            "nullable": true
          },
          "show_card_terms": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkShowSdkTerms"
              }
            ],
            "nullable": true
          },
          "is_setup_mandate_flow": {
            "type": "boolean",
            "description": "Boolean to control payment button text for setup mandate calls",
            "nullable": true
          },
          "color_icon_card_cvc_error": {
            "type": "string",
            "description": "Hex color for the CVC icon during error state",
            "nullable": true
          },
          "show_merchant_name": {
            "type": "boolean",
            "description": "Flag to display the merchant name in the payment link",
            "nullable": true
          }
        }
      },
      "PaymentLinkConfigRequest": {
        "type": "object",
        "properties": {
          "theme": {
            "type": "string",
            "description": "custom theme for the payment link",
            "example": "#4E6ADD",
            "nullable": true,
            "maxLength": 255
          },
          "logo": {
            "type": "string",
            "description": "merchant display logo",
            "example": "https://i.pinimg.com/736x/4d/83/5c/4d835ca8aafbbb15f84d07d926fda473.jpg",
            "nullable": true,
            "maxLength": 255
          },
          "seller_name": {
            "type": "string",
            "description": "Custom merchant name for payment link",
            "example": "hyperswitch",
            "nullable": true,
            "maxLength": 255
          },
          "sdk_layout": {
            "type": "string",
            "description": "Custom layout for sdk",
            "example": "accordion",
            "nullable": true,
            "maxLength": 255
          },
          "display_sdk_only": {
            "type": "boolean",
            "description": "Display only the sdk for payment link",
            "default": false,
            "example": true,
            "nullable": true
          },
          "enabled_saved_payment_method": {
            "type": "boolean",
            "description": "Enable saved payment method option for payment link",
            "default": false,
            "example": true,
            "nullable": true
          },
          "hide_card_nickname_field": {
            "type": "boolean",
            "description": "Hide card nickname field option for payment link",
            "default": false,
            "example": true,
            "nullable": true
          },
          "show_card_form_by_default": {
            "type": "boolean",
            "description": "Show card form by default for payment link",
            "default": true,
            "example": true,
            "nullable": true
          },
          "transaction_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentLinkTransactionDetails"
            },
            "description": "Dynamic details related to merchant to be rendered in payment link",
            "nullable": true
          },
          "background_image": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkBackgroundImageConfig"
              }
            ],
            "nullable": true
          },
          "details_layout": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkDetailsLayout"
              }
            ],
            "nullable": true
          },
          "payment_button_text": {
            "type": "string",
            "description": "Text for payment link's handle confirm button",
            "nullable": true
          },
          "custom_message_for_card_terms": {
            "type": "string",
            "description": "Text for customizing message for card terms",
            "nullable": true
          },
          "custom_message_for_payment_method_types": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodsConfig"
              }
            ],
            "nullable": true
          },
          "payment_button_colour": {
            "type": "string",
            "description": "Custom background colour for payment link's handle confirm button",
            "nullable": true
          },
          "skip_status_screen": {
            "type": "boolean",
            "description": "Skip the status screen after payment completion",
            "nullable": true
          },
          "payment_button_text_colour": {
            "type": "string",
            "description": "Custom text colour for payment link's handle confirm button",
            "nullable": true
          },
          "background_colour": {
            "type": "string",
            "description": "Custom background colour for the payment link",
            "nullable": true
          },
          "sdk_ui_rules": {
            "type": "object",
            "description": "SDK configuration rules",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "nullable": true
          },
          "payment_link_ui_rules": {
            "type": "object",
            "description": "Payment link configuration rules",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "nullable": true
          },
          "enable_button_only_on_form_ready": {
            "type": "boolean",
            "description": "Flag to enable the button only when the payment form is ready for submission",
            "nullable": true
          },
          "payment_form_header_text": {
            "type": "string",
            "description": "Optional header for the SDK's payment form",
            "nullable": true
          },
          "payment_form_label_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkSdkLabelType"
              }
            ],
            "nullable": true
          },
          "show_card_terms": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkShowSdkTerms"
              }
            ],
            "nullable": true
          },
          "is_setup_mandate_flow": {
            "type": "boolean",
            "description": "Boolean to control payment button text for setup mandate calls",
            "nullable": true
          },
          "color_icon_card_cvc_error": {
            "type": "string",
            "description": "Hex color for the CVC icon during error state",
            "nullable": true
          },
          "show_merchant_name": {
            "type": "boolean",
            "description": "Flag to display the merchant name in the payment link",
            "default": true,
            "example": true,
            "nullable": true
          }
        }
      },
      "PaymentLinkDetailsLayout": {
        "type": "string",
        "enum": [
          "layout1",
          "layout2"
        ]
      },
      "PaymentLinkInitiateRequest": {
        "type": "object",
        "required": [
          "merchant_id",
          "payment_id"
        ],
        "properties": {
          "merchant_id": {
            "type": "string"
          },
          "payment_id": {
            "type": "string"
          }
        }
      },
      "PaymentLinkResponse": {
        "type": "object",
        "required": [
          "link",
          "payment_link_id"
        ],
        "properties": {
          "link": {
            "type": "string",
            "description": "URL for rendering the open payment link"
          },
          "secure_link": {
            "type": "string",
            "description": "URL for rendering the secure payment link",
            "nullable": true
          },
          "payment_link_id": {
            "type": "string",
            "description": "Identifier for the payment link"
          }
        }
      },
      "PaymentLinkSdkLabelType": {
        "type": "string",
        "enum": [
          "above",
          "floating",
          "never"
        ]
      },
      "PaymentLinkShowSdkTerms": {
        "type": "string",
        "enum": [
          "always",
          "auto",
          "never"
        ]
      },
      "PaymentLinkStatus": {
        "type": "string",
        "description": "Status Of the Payment Link",
        "enum": [
          "active",
          "expired"
        ]
      },
      "PaymentLinkTransactionDetails": {
        "type": "object",
        "required": [
          "key",
          "value"
        ],
        "properties": {
          "key": {
            "type": "string",
            "description": "Key for the transaction details",
            "example": "Policy-Number",
            "maxLength": 255
          },
          "value": {
            "type": "string",
            "description": "Value for the transaction details",
            "example": "297472368473924",
            "maxLength": 255
          },
          "ui_configuration": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionDetailsUiConfiguration"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentListResponse": {
        "type": "object",
        "required": [
          "count",
          "total_count",
          "data"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "description": "The number of payments included in the current response",
            "minimum": 0
          },
          "total_count": {
            "type": "integer",
            "format": "int64",
            "description": "The total number of available payments for given constraints"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentsListResponseItem"
            },
            "description": "The list of payments response objects"
          }
        }
      },
      "PaymentMethod": {
        "type": "string",
        "description": "Indicates the type of payment method. Eg: 'card', 'wallet', etc.",
        "enum": [
          "card",
          "card_redirect",
          "pay_later",
          "wallet",
          "bank_redirect",
          "bank_transfer",
          "crypto",
          "bank_debit",
          "reward",
          "real_time_payment",
          "upi",
          "voucher",
          "gift_card",
          "open_banking",
          "mobile_payment",
          "network_token"
        ]
      },
      "PaymentMethodCollectLinkRequest": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/GenericLinkUiConfig"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "required": [
              "customer_id"
            ],
            "properties": {
              "pm_collect_link_id": {
                "type": "string",
                "description": "The unique identifier for the collect link.",
                "example": "pm_collect_link_2bdacf398vwzq5n422S1",
                "nullable": true
              },
              "customer_id": {
                "type": "string",
                "description": "The unique identifier of the customer.",
                "example": "cus_92dnwed8s32bV9D8Snbiasd8v"
              },
              "session_expiry": {
                "type": "integer",
                "format": "int32",
                "description": "Will be used to expire client secret after certain amount of time to be supplied in seconds\n(900) for 15 mins",
                "example": 900,
                "nullable": true,
                "minimum": 0
              },
              "return_url": {
                "type": "string",
                "description": "Redirect to this URL post completion",
                "example": "https://sandbox.hyperswitch.io/payment_method/collect/pm_collect_link_2bdacf398vwzq5n422S1/status",
                "nullable": true
              },
              "enabled_payment_methods": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EnabledPaymentMethod"
                },
                "description": "List of payment methods shown on collect UI",
                "example": "[{\"payment_method\": \"bank_transfer\", \"payment_method_types\": [\"ach\", \"bacs\"]}]",
                "nullable": true
              }
            }
          }
        ]
      },
      "PaymentMethodCollectLinkResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GenericLinkUiConfig"
          },
          {
            "type": "object",
            "required": [
              "pm_collect_link_id",
              "customer_id",
              "expiry",
              "link"
            ],
            "properties": {
              "pm_collect_link_id": {
                "type": "string",
                "description": "The unique identifier for the collect link.",
                "example": "pm_collect_link_2bdacf398vwzq5n422S1"
              },
              "customer_id": {
                "type": "string",
                "description": "The unique identifier of the customer.",
                "example": "cus_92dnwed8s32bV9D8Snbiasd8v"
              },
              "expiry": {
                "type": "string",
                "format": "date-time",
                "description": "Time when this link will be expired in ISO8601 format",
                "example": "2025-01-18T11:04:09.922Z"
              },
              "link": {
                "type": "string",
                "description": "URL to the form's link generated for collecting payment method details.",
                "example": "https://sandbox.hyperswitch.io/payment_method/collect/pm_collect_link_2bdacf398vwzq5n422S1"
              },
              "return_url": {
                "type": "string",
                "description": "Redirect to this URL post completion",
                "example": "https://sandbox.hyperswitch.io/payment_method/collect/pm_collect_link_2bdacf398vwzq5n422S1/status",
                "nullable": true
              },
              "enabled_payment_methods": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EnabledPaymentMethod"
                },
                "description": "List of payment methods shown on collect UI",
                "example": "[{\"payment_method\": \"bank_transfer\", \"payment_method_types\": [\"ach\", \"bacs\"]}]",
                "nullable": true
              }
            }
          }
        ]
      },
      "PaymentMethodConfig": {
        "type": "object",
        "description": "Custom T&C messages for a specific payment method",
        "required": [
          "payment_method",
          "payment_method_types"
        ],
        "properties": {
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomTerms"
            },
            "description": "Payment Method Types",
            "example": [
              {
                "message": {
                  "display_mode": "custom",
                  "value": "Sample message"
                },
                "payment_method_type": "credit"
              }
            ]
          }
        }
      },
      "PaymentMethodCreate": {
        "type": "object",
        "required": [
          "payment_method_type",
          "customer_id",
          "payment_method_data",
          "storage_type"
        ],
        "properties": {
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "You can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.",
            "nullable": true
          },
          "customer_id": {
            "type": "string",
            "description": "The unique identifier of the customer.",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8",
            "maxLength": 64,
            "minLength": 32
          },
          "payment_method_data": {
            "$ref": "#/components/schemas/PaymentMethodCreateData"
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "network_tokenization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokenization"
              }
            ],
            "nullable": true
          },
          "storage_type": {
            "$ref": "#/components/schemas/StorageType"
          }
        },
        "additionalProperties": false
      },
      "PaymentMethodCreateData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "card"
            ],
            "properties": {
              "card": {
                "$ref": "#/components/schemas/CardDetail"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "proxy_card"
            ],
            "properties": {
              "proxy_card": {
                "$ref": "#/components/schemas/ProxyCardDetails"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank_debit"
            ],
            "properties": {
              "bank_debit": {
                "$ref": "#/components/schemas/BankDebitDetail"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "wallet"
            ],
            "properties": {
              "wallet": {
                "$ref": "#/components/schemas/WalletPaymentMethodData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank_redirect"
            ],
            "properties": {
              "bank_redirect": {
                "$ref": "#/components/schemas/BankRedirectDetail"
              }
            }
          }
        ]
      },
      "PaymentMethodData": {
        "oneOf": [
          {
            "type": "object",
            "title": "Card",
            "required": [
              "card"
            ],
            "properties": {
              "card": {
                "$ref": "#/components/schemas/Card"
              }
            }
          },
          {
            "type": "object",
            "title": "CardWithNoCVC",
            "required": [
              "card_with_no_cvc"
            ],
            "properties": {
              "card_with_no_cvc": {
                "$ref": "#/components/schemas/CardWithNoCVC"
              }
            }
          },
          {
            "type": "object",
            "title": "CardRedirect",
            "required": [
              "card_redirect"
            ],
            "properties": {
              "card_redirect": {
                "$ref": "#/components/schemas/CardRedirectData"
              }
            }
          },
          {
            "type": "object",
            "title": "Wallet",
            "required": [
              "wallet"
            ],
            "properties": {
              "wallet": {
                "$ref": "#/components/schemas/WalletData"
              }
            }
          },
          {
            "type": "object",
            "title": "PayLater",
            "required": [
              "pay_later"
            ],
            "properties": {
              "pay_later": {
                "$ref": "#/components/schemas/PayLaterData"
              }
            }
          },
          {
            "type": "object",
            "title": "BankRedirect",
            "required": [
              "bank_redirect"
            ],
            "properties": {
              "bank_redirect": {
                "$ref": "#/components/schemas/BankRedirectData"
              }
            }
          },
          {
            "type": "object",
            "title": "BankDebit",
            "required": [
              "bank_debit"
            ],
            "properties": {
              "bank_debit": {
                "$ref": "#/components/schemas/BankDebitData"
              }
            }
          },
          {
            "type": "object",
            "title": "BankTransfer",
            "required": [
              "bank_transfer"
            ],
            "properties": {
              "bank_transfer": {
                "$ref": "#/components/schemas/BankTransferData"
              }
            }
          },
          {
            "type": "object",
            "title": "RealTimePayment",
            "required": [
              "real_time_payment"
            ],
            "properties": {
              "real_time_payment": {
                "$ref": "#/components/schemas/RealTimePaymentData"
              }
            }
          },
          {
            "type": "object",
            "title": "Crypto",
            "required": [
              "crypto"
            ],
            "properties": {
              "crypto": {
                "$ref": "#/components/schemas/CryptoData"
              }
            }
          },
          {
            "type": "string",
            "title": "MandatePayment",
            "enum": [
              "mandate_payment"
            ]
          },
          {
            "type": "string",
            "title": "Reward",
            "enum": [
              "reward"
            ]
          },
          {
            "type": "object",
            "title": "Upi",
            "required": [
              "upi"
            ],
            "properties": {
              "upi": {
                "$ref": "#/components/schemas/UpiData"
              }
            }
          },
          {
            "type": "object",
            "title": "Voucher",
            "required": [
              "voucher"
            ],
            "properties": {
              "voucher": {
                "$ref": "#/components/schemas/VoucherData"
              }
            }
          },
          {
            "type": "object",
            "title": "GiftCard",
            "required": [
              "gift_card"
            ],
            "properties": {
              "gift_card": {
                "$ref": "#/components/schemas/GiftCardData"
              }
            }
          },
          {
            "type": "object",
            "title": "CardToken",
            "required": [
              "card_token"
            ],
            "properties": {
              "card_token": {
                "$ref": "#/components/schemas/CardToken"
              }
            }
          },
          {
            "type": "object",
            "title": "OpenBanking",
            "required": [
              "open_banking"
            ],
            "properties": {
              "open_banking": {
                "$ref": "#/components/schemas/OpenBankingData"
              }
            }
          },
          {
            "type": "object",
            "title": "MobilePayment",
            "required": [
              "mobile_payment"
            ],
            "properties": {
              "mobile_payment": {
                "$ref": "#/components/schemas/MobilePaymentData"
              }
            }
          },
          {
            "type": "object",
            "title": "NetworkToken",
            "required": [
              "network_token"
            ],
            "properties": {
              "network_token": {
                "$ref": "#/components/schemas/NetworkTokenData"
              }
            }
          },
          {
            "type": "object",
            "title": "VaultDataCard",
            "required": [
              "vault_data_card"
            ],
            "properties": {
              "vault_data_card": {
                "$ref": "#/components/schemas/ProxyCardData"
              }
            }
          },
          {
            "type": "object",
            "title": "VaultCardTokenData",
            "required": [
              "vault_card_token_data"
            ],
            "properties": {
              "vault_card_token_data": {
                "$ref": "#/components/schemas/VaultCardToken"
              }
            }
          }
        ]
      },
      "PaymentMethodDataRequest": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "properties": {
              "billing": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "nullable": true
              }
            }
          }
        ],
        "description": "The payment method information provided for making a payment"
      },
      "PaymentMethodDataResponse": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "card"
            ],
            "properties": {
              "card": {
                "$ref": "#/components/schemas/CardResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank_transfer"
            ],
            "properties": {
              "bank_transfer": {
                "$ref": "#/components/schemas/BankTransferResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "wallet"
            ],
            "properties": {
              "wallet": {
                "$ref": "#/components/schemas/WalletResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pay_later"
            ],
            "properties": {
              "pay_later": {
                "$ref": "#/components/schemas/PaylaterResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank_redirect"
            ],
            "properties": {
              "bank_redirect": {
                "$ref": "#/components/schemas/BankRedirectResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "crypto"
            ],
            "properties": {
              "crypto": {
                "$ref": "#/components/schemas/CryptoResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank_debit"
            ],
            "properties": {
              "bank_debit": {
                "$ref": "#/components/schemas/BankDebitResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "mandate_payment"
            ],
            "properties": {
              "mandate_payment": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "reward"
            ],
            "properties": {
              "reward": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "real_time_payment"
            ],
            "properties": {
              "real_time_payment": {
                "$ref": "#/components/schemas/RealTimePaymentDataResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "upi"
            ],
            "properties": {
              "upi": {
                "$ref": "#/components/schemas/UpiResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "voucher"
            ],
            "properties": {
              "voucher": {
                "$ref": "#/components/schemas/VoucherResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "gift_card"
            ],
            "properties": {
              "gift_card": {
                "$ref": "#/components/schemas/GiftCardResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "card_redirect"
            ],
            "properties": {
              "card_redirect": {
                "$ref": "#/components/schemas/CardRedirectResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "card_token"
            ],
            "properties": {
              "card_token": {
                "$ref": "#/components/schemas/CardTokenResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "open_banking"
            ],
            "properties": {
              "open_banking": {
                "$ref": "#/components/schemas/OpenBankingResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "mobile_payment"
            ],
            "properties": {
              "mobile_payment": {
                "$ref": "#/components/schemas/MobilePaymentResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "network_token"
            ],
            "properties": {
              "network_token": {
                "$ref": "#/components/schemas/NetworkTokenResponse"
              }
            }
          }
        ]
      },
      "PaymentMethodDataResponseWithBilling": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDataResponse"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "properties": {
              "billing": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "nullable": true
              }
            }
          }
        ]
      },
      "PaymentMethodDataWalletInfo": {
        "type": "object",
        "properties": {
          "last4": {
            "type": "string",
            "description": "Last 4 digits of the card number",
            "nullable": true
          },
          "card_network": {
            "type": "string",
            "description": "The information of the payment method",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "The type of payment method",
            "nullable": true
          },
          "card_exp_month": {
            "type": "string",
            "description": "The card's expiry month",
            "example": "10",
            "nullable": true
          },
          "card_exp_year": {
            "type": "string",
            "description": "The card's expiry year",
            "example": "25",
            "nullable": true
          },
          "auth_code": {
            "type": "string",
            "description": "Unique authorisation code for the payment",
            "example": "003225",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Email address associated with the wallet (e.g. PayPal email)",
            "example": "johntest@test.com",
            "nullable": true
          }
        }
      },
      "PaymentMethodDeleteResponse": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the Payment method",
            "example": "0a_pm_01926c58bc6e77c09e809964e72af8c8"
          }
        }
      },
      "PaymentMethodDeleteSessionResponse": {
        "type": "object",
        "required": [
          "payment_method_token"
        ],
        "properties": {
          "payment_method_token": {
            "type": "string",
            "description": "The unique identifier of the Payment method",
            "example": "token_9wcXDRVkfEtLEsSnYKgQ"
          }
        }
      },
      "PaymentMethodGetTokenDetailsResponse": {
        "type": "object",
        "required": [
          "id",
          "payment_method_token"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The payment method ID associated with the token",
            "example": "0a_pm_019959146f92737389eb6927ce1eb7dc"
          },
          "payment_method_token": {
            "type": "string",
            "description": "The token associated with the payment method",
            "example": "token_CSum555d9YxDOpGwYq6q"
          }
        }
      },
      "PaymentMethodIntentConfirm": {
        "type": "object",
        "required": [
          "payment_method_data",
          "payment_method_type",
          "payment_method_subtype"
        ],
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "The unique identifier of the customer.",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "payment_method_data": {
            "$ref": "#/components/schemas/PaymentMethodCreateData"
          },
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "$ref": "#/components/schemas/PaymentMethodType"
          }
        },
        "additionalProperties": false
      },
      "PaymentMethodIntentCreate": {
        "type": "object",
        "required": [
          "customer_id"
        ],
        "properties": {
          "metadata": {
            "type": "object",
            "description": "You can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.",
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "customer_id": {
            "type": "string",
            "description": "The unique identifier of the customer.",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8",
            "maxLength": 64,
            "minLength": 32
          }
        },
        "additionalProperties": false
      },
      "PaymentMethodIssuerCode": {
        "type": "string",
        "enum": [
          "jp_hdfc",
          "jp_icici",
          "jp_googlepay",
          "jp_applepay",
          "jp_phonepay",
          "jp_wechat",
          "jp_sofort",
          "jp_giropay",
          "jp_sepa",
          "jp_bacs"
        ]
      },
      "PaymentMethodListData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "card"
            ],
            "properties": {
              "card": {
                "$ref": "#/components/schemas/CardDetailFromLocker"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank_debit"
            ],
            "properties": {
              "bank_debit": {
                "$ref": "#/components/schemas/BankDebitDetailsPaymentMethod"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank"
            ],
            "properties": {
              "bank": {
                "$ref": "#/components/schemas/Bank"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "wallet"
            ],
            "properties": {
              "wallet": {
                "$ref": "#/components/schemas/WalletPaymentMethodData"
              }
            }
          }
        ]
      },
      "PaymentMethodListResponseForPayments": {
        "type": "object",
        "required": [
          "payment_methods_enabled"
        ],
        "properties": {
          "payment_methods_enabled": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResponsePaymentMethodTypesForPayments"
            },
            "description": "The list of payment methods that are enabled for the business profile"
          },
          "customer_payment_methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerPaymentMethodResponseItem"
            },
            "description": "The list of payment methods that are saved by the given customer\nThis field is only returned if the customer_id is provided in the request",
            "nullable": true
          }
        }
      },
      "PaymentMethodListResponseForSession": {
        "type": "object",
        "required": [
          "payment_methods_enabled",
          "customer_payment_methods"
        ],
        "properties": {
          "payment_methods_enabled": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResponsePaymentMethodTypes"
            },
            "description": "The list of payment methods that are enabled for the business profile"
          },
          "customer_payment_methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerPaymentMethodResponseItem"
            },
            "description": "The list of saved payment methods of the customer"
          }
        }
      },
      "PaymentMethodResponse": {
        "type": "object",
        "required": [
          "id",
          "merchant_id",
          "customer_id",
          "payment_method_type",
          "storage_type",
          "network_transaction_id",
          "raw_payment_method_data"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the Payment method",
            "example": "0a_pm_01926c58bc6e77c09e809964e72af8c8"
          },
          "merchant_id": {
            "type": "string",
            "description": "Unique identifier for a merchant",
            "example": "merchant_1671528864"
          },
          "customer_id": {
            "type": "string",
            "description": "The unique identifier of the customer.",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8",
            "maxLength": 64,
            "minLength": 32
          },
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "recurring_enabled": {
            "type": "boolean",
            "description": "Indicates whether the payment method supports recurring payments. Optional.",
            "example": true,
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "A timestamp (ISO 8601 code) that determines when the payment method was created",
            "example": "2023-01-18T11:04:09.922Z",
            "nullable": true
          },
          "last_used_at": {
            "type": "string",
            "format": "date-time",
            "description": "A timestamp (ISO 8601 code) that determines when the payment method was last used",
            "example": "2024-02-24T11:04:09.922Z",
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodResponseData"
              }
            ],
            "nullable": true
          },
          "connector_tokens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectorTokenDetails"
            },
            "description": "The connector token details if available",
            "nullable": true
          },
          "network_token": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokenResponse"
              }
            ],
            "nullable": true
          },
          "storage_type": {
            "$ref": "#/components/schemas/StorageType"
          },
          "card_cvc_token_storage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardCVCTokenStorageDetails"
              }
            ],
            "nullable": true
          },
          "network_transaction_id": {
            "type": "string",
            "description": "The network transaction ID provided by the card network during a Customer Initiated Transaction (CIT)\nwhen `setup_future_usage` is set to `off_session`."
          },
          "raw_payment_method_data": {
            "$ref": "#/components/schemas/RawPaymentMethodData"
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "acknowledgement_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AcknowledgementStatus"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentMethodResponseData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "card"
            ],
            "properties": {
              "card": {
                "$ref": "#/components/schemas/CardDetailFromLocker"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank_debit"
            ],
            "properties": {
              "bank_debit": {
                "$ref": "#/components/schemas/BankDebitDetailsPaymentMethod"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "wallet"
            ],
            "properties": {
              "wallet": {
                "$ref": "#/components/schemas/WalletPaymentMethodData"
              }
            }
          }
        ]
      },
      "PaymentMethodResponseItem": {
        "type": "object",
        "required": [
          "id",
          "customer_id",
          "payment_method_type",
          "payment_method_subtype",
          "created",
          "requires_cvv",
          "is_default"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the payment method.",
            "example": "0a_pm_01926c58bc6e77c09e809964e72af8c8"
          },
          "customer_id": {
            "type": "string",
            "description": "The unique identifier of the customer.",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8",
            "maxLength": 64,
            "minLength": 32
          },
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "$ref": "#/components/schemas/PaymentMethodType"
          },
          "recurring_enabled": {
            "type": "boolean",
            "description": "Indicates whether the payment method supports recurring payments. Optional.",
            "example": true,
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodListData"
              }
            ],
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "A timestamp (ISO 8601 code) that determines when the payment method was created",
            "example": "2023-01-18T11:04:09.922Z"
          },
          "requires_cvv": {
            "type": "boolean",
            "description": "Whether this payment method requires CVV to be collected",
            "example": true
          },
          "last_used_at": {
            "type": "string",
            "format": "date-time",
            "description": "A timestamp (ISO 8601 code) that determines when the payment method was last used",
            "example": "2024-02-24T11:04:09.922Z"
          },
          "is_default": {
            "type": "boolean",
            "description": "Indicates if the payment method has been set to default or not",
            "example": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "network_tokenization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokenResponse"
              }
            ],
            "nullable": true
          },
          "connector_tokens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectorTokenDetails"
            },
            "description": "The connector token details if available",
            "nullable": true
          },
          "network_transaction_id": {
            "type": "string",
            "description": "The network transaction ID provided by the card network during a Customer Initiated Transaction (CIT)\nwhen `setup_future_usage` is set to `off_session`.",
            "nullable": true
          }
        }
      },
      "PaymentMethodRetrieveRequest": {
        "type": "object",
        "properties": {
          "fetch_raw_detail": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PaymentMethodSessionConfirmRequest": {
        "type": "object",
        "required": [
          "payment_method_type",
          "payment_method_data"
        ],
        "properties": {
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "payment_method_data": {
            "$ref": "#/components/schemas/PaymentMethodDataRequest"
          },
          "return_url": {
            "type": "string",
            "description": "The return url to which the customer should be redirected to after adding the payment method",
            "nullable": true
          },
          "customer_acceptance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerAcceptance"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentMethodSessionDeleteSavedPaymentMethod": {
        "type": "object",
        "required": [
          "payment_method_token"
        ],
        "properties": {
          "payment_method_token": {
            "type": "string",
            "description": "The payment method token associated with the payment method to be deleted",
            "example": "token_9wcXDRVkfEtLEsSnYKgQ"
          }
        }
      },
      "PaymentMethodSessionRequest": {
        "type": "object",
        "required": [
          "storage_type"
        ],
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "The customer id for which the payment methods session is to be created",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The return url to which the customer should be redirected to after adding the payment method",
            "nullable": true
          },
          "network_tokenization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokenization"
              }
            ],
            "nullable": true
          },
          "expires_in": {
            "type": "integer",
            "format": "int32",
            "description": "The time (seconds ) when the session will expire\nIf not provided, the session will expire in 15 minutes",
            "default": 900,
            "example": 900,
            "nullable": true,
            "minimum": 0
          },
          "tokenization_data": {
            "description": "Contains data to be passed on to tokenization service ( if present ) to create token_id for given JSON data",
            "nullable": true
          },
          "storage_type": {
            "$ref": "#/components/schemas/StorageType"
          },
          "keep_alive": {
            "type": "boolean",
            "description": "Whether the card with new status should be listed in the session",
            "nullable": true
          }
        }
      },
      "PaymentMethodSessionResponse": {
        "type": "object",
        "required": [
          "id",
          "expires_at",
          "client_secret",
          "storage_type",
          "keep_alive"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": "0a_pms_01926c58bc6e77c09e809964e72af8c8"
          },
          "customer_id": {
            "type": "string",
            "description": "The customer id for which the payment methods session is to be created",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8",
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "network_tokenization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokenization"
              }
            ],
            "nullable": true
          },
          "tokenization_data": {
            "description": "Contains data to be passed on to tokenization service ( if present ) to create token_id for given JSON data",
            "nullable": true
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "description": "The iso timestamp when the session will expire\nTrying to retrieve the session or any operations on the session after this time will result in an error",
            "example": "2023-01-18T11:04:09.922Z"
          },
          "client_secret": {
            "type": "string",
            "description": "Client Secret",
            "example": "cs_9wcXDRVkfEtLEsSnYKgQ"
          },
          "return_url": {
            "type": "string",
            "description": "The return url to which the user should be redirected to",
            "example": "https://merchant-website.com/return",
            "nullable": true
          },
          "next_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NextActionData"
              }
            ],
            "nullable": true
          },
          "authentication_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationDetails"
              }
            ],
            "nullable": true
          },
          "associated_payment_methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssociatedPaymentMethods"
            },
            "description": "The payment method that was created using this payment method session",
            "nullable": true
          },
          "associated_token_id": {
            "type": "string",
            "description": "The token-id created if there is tokenization_data present",
            "example": "0a_tok_01926c58bc6e77c09e809964e72af8c8",
            "nullable": true
          },
          "storage_type": {
            "$ref": "#/components/schemas/StorageType"
          },
          "card_cvc_token_storage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardCVCTokenStorageDetails"
              }
            ],
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodResponseData"
              }
            ],
            "nullable": true
          },
          "sdk_authorization": {
            "type": "string",
            "description": "SDK authorization token for client SDK usage\nContains encoded authentication details for subsequent API calls",
            "example": "cHJvZmlsZV9pZD0uLi4=",
            "nullable": true
          },
          "keep_alive": {
            "type": "boolean",
            "description": "Whether the card with new status should be listed in the session"
          },
          "network_tokenization_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokenResponse"
              }
            ],
            "nullable": true
          },
          "external_vault_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VaultSessionDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentMethodSessionUpdateSavedPaymentMethod": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentMethodUpdate"
          },
          {
            "type": "object",
            "properties": {
              "payment_method_token": {
                "type": "string",
                "description": "The payment method token associated with the payment method session.\nIf not provided, a new token will be generated.",
                "example": "token_9wcXDRVkfEtLEsSnYKgQ",
                "nullable": true
              }
            }
          }
        ]
      },
      "PaymentMethodSpecificFeatures": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/CardSpecificFeatures"
          }
        ]
      },
      "PaymentMethodStatus": {
        "type": "string",
        "description": "Payment Method Status",
        "enum": [
          "active",
          "inactive",
          "processing",
          "awaiting_data",
          "new",
          "redacted"
        ]
      },
      "PaymentMethodSubtypeSpecificData": {
        "oneOf": [
          {
            "type": "object",
            "title": "card",
            "required": [
              "card_networks"
            ],
            "properties": {
              "card_networks": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CardNetworkTypes"
                }
              }
            }
          },
          {
            "type": "object",
            "title": "bank",
            "required": [
              "bank_names"
            ],
            "properties": {
              "bank_names": {
                "$ref": "#/components/schemas/BankNames"
              }
            }
          }
        ]
      },
      "PaymentMethodType": {
        "type": "string",
        "description": "Indicates the sub type of payment method. Eg: 'google_pay' & 'apple_pay' for wallets.",
        "enum": [
          "ach",
          "affirm",
          "afterpay_clearpay",
          "alfamart",
          "ali_pay",
          "ali_pay_hk",
          "alma",
          "amazon_pay",
          "paysera",
          "apple_pay",
          "atome",
          "bacs",
          "bancontact_card",
          "becs",
          "benefit",
          "bizum",
          "blik",
          "bluecode",
          "boleto",
          "bca_bank_transfer",
          "bni_va",
          "breadpay",
          "bri_va",
          "bhn_card_network",
          "card_redirect",
          "cimb_va",
          "classic",
          "credit",
          "crypto_currency",
          "cashapp",
          "dana",
          "danamon_va",
          "debit",
          "duit_now",
          "efecty",
          "eft",
          "eft_debit_order",
          "eps",
          "flexiti",
          "fps",
          "evoucher",
          "giropay",
          "givex",
          "google_pay",
          "go_pay",
          "gcash",
          "ideal",
          "interac",
          "indomaret",
          "klarna",
          "kakao_pay",
          "local_bank_redirect",
          "mandiri_va",
          "knet",
          "mb_way",
          "mobile_pay",
          "momo",
          "momo_atm",
          "multibanco",
          "online_banking_thailand",
          "online_banking_czech_republic",
          "online_banking_finland",
          "online_banking_fpx",
          "online_banking_poland",
          "online_banking_slovakia",
          "oxxo",
          "pago_efectivo",
          "permata_bank_transfer",
          "open_banking_uk",
          "pay_bright",
          "payjustnow",
          "paypal",
          "paze",
          "pix",
          "pix_key",
          "pix_emv",
          "pix_qr",
          "pix_automatico_qr",
          "pix_automatico_push",
          "pay_safe_card",
          "przelewy24",
          "prompt_pay",
          "pse",
          "qris",
          "red_compra",
          "red_pagos",
          "samsung_pay",
          "sepa",
          "sepa_bank_transfer",
          "sepa_guarenteed_debit",
          "skrill",
          "sofort",
          "swish",
          "touch_n_go",
          "trustly",
          "twint",
          "upi_collect",
          "upi_intent",
          "upi_qr",
          "vipps",
          "viet_qr",
          "venmo",
          "walley",
          "we_chat_pay",
          "seven_eleven",
          "lawson",
          "mini_stop",
          "family_mart",
          "seicomart",
          "pay_easy",
          "local_bank_transfer",
          "mifinity",
          "open_banking_pis",
          "direct_carrier_billing",
          "instant_bank_transfer",
          "instant_bank_transfer_finland",
          "instant_bank_transfer_poland",
          "revolut_pay",
          "indonesian_bank_transfer",
          "open_banking",
          "network_token"
        ]
      },
      "PaymentMethodUpdate": {
        "type": "object",
        "properties": {
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodUpdateData"
              }
            ],
            "nullable": true
          },
          "connector_token_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorTokenDetails"
              }
            ],
            "nullable": true
          },
          "network_transaction_id": {
            "type": "string",
            "description": "The network transaction ID provided by the card network during a Customer Initiated Transaction (CIT)\nwhen `setup_future_usage` is set to `off_session`.",
            "nullable": true
          },
          "acknowledgement_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AcknowledgementStatus"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentMethodUpdateData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "card"
            ],
            "properties": {
              "card": {
                "$ref": "#/components/schemas/CardDetailUpdate"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank_debit"
            ],
            "properties": {
              "bank_debit": {
                "$ref": "#/components/schemas/BankDebitDetailUpdate"
              }
            }
          }
        ]
      },
      "PaymentMethodsConfig": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/PaymentMethodConfig"
        },
        "description": "List of custom T&C messages grouped by payment method"
      },
      "PaymentMethodsEnabled": {
        "type": "object",
        "description": "Details of all the payment methods enabled for the connector for the given merchant account",
        "required": [
          "payment_method_type"
        ],
        "properties": {
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequestPaymentMethodTypes"
            },
            "description": "Payment method configuration, this includes all the filters associated with the payment method",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentMethodsSessionUpdateRequest": {
        "type": "object",
        "properties": {
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "network_tokenization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokenization"
              }
            ],
            "nullable": true
          },
          "tokenization_data": {
            "description": "Contains data to be passed on to tokenization service ( if present ) to create token_id for given JSON data",
            "nullable": true
          }
        }
      },
      "PaymentProcessingDetails": {
        "type": "object",
        "required": [
          "payment_processing_certificate",
          "payment_processing_certificate_key"
        ],
        "properties": {
          "payment_processing_certificate": {
            "type": "string"
          },
          "payment_processing_certificate_key": {
            "type": "string"
          }
        }
      },
      "PaymentProcessingDetailsAt": {
        "oneOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentProcessingDetails"
              },
              {
                "type": "object",
                "required": [
                  "payment_processing_details_at"
                ],
                "properties": {
                  "payment_processing_details_at": {
                    "type": "string",
                    "enum": [
                      "Hyperswitch"
                    ]
                  }
                }
              }
            ]
          },
          {
            "type": "object",
            "required": [
              "payment_processing_details_at"
            ],
            "properties": {
              "payment_processing_details_at": {
                "type": "string",
                "enum": [
                  "Connector"
                ]
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "payment_processing_details_at"
        }
      },
      "PaymentRevenueRecoveryMetadata": {
        "type": "object",
        "required": [
          "total_retry_count",
          "billing_connector_id",
          "active_attempt_payment_connector_id",
          "billing_connector_payment_details",
          "payment_method_type",
          "payment_method_subtype",
          "connector",
          "billing_connector_payment_method_details"
        ],
        "properties": {
          "total_retry_count": {
            "type": "integer",
            "format": "int32",
            "description": "Total number of billing connector + recovery retries for a payment intent.",
            "example": "1",
            "minimum": 0
          },
          "payment_connector_transmission": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentConnectorTransmission"
              }
            ],
            "nullable": true
          },
          "billing_connector_id": {
            "type": "string",
            "description": "Billing Connector Id to update the invoices",
            "example": "mca_1234567890"
          },
          "active_attempt_payment_connector_id": {
            "type": "string",
            "description": "Payment Connector Id to retry the payments",
            "example": "mca_1234567890"
          },
          "billing_connector_payment_details": {
            "$ref": "#/components/schemas/BillingConnectorPaymentDetails"
          },
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "$ref": "#/components/schemas/PaymentMethodType"
          },
          "connector": {
            "$ref": "#/components/schemas/Connector"
          },
          "billing_connector_payment_method_details": {
            "$ref": "#/components/schemas/BillingConnectorPaymentMethodDetails"
          },
          "invoice_next_billing_time": {
            "type": "string",
            "format": "date-time",
            "description": "Invoice Next billing time",
            "nullable": true
          },
          "invoice_billing_started_at_time": {
            "type": "string",
            "format": "date-time",
            "description": "Invoice Next billing time",
            "nullable": true
          },
          "first_payment_attempt_pg_error_code": {
            "type": "string",
            "description": "First Payment Attempt Payment Gateway Error Code",
            "example": "card_declined",
            "nullable": true
          },
          "first_payment_attempt_network_decline_code": {
            "type": "string",
            "description": "First Payment Attempt Network Error Code",
            "example": "05",
            "nullable": true
          },
          "first_payment_attempt_network_advice_code": {
            "type": "string",
            "description": "First Payment Attempt Network Advice Code",
            "example": "02",
            "nullable": true
          }
        }
      },
      "PaymentType": {
        "type": "string",
        "description": "The type of the payment that differentiates between normal and various types of mandate payments. Use 'setup_mandate' in case of zero auth flow.",
        "enum": [
          "normal",
          "new_mandate",
          "setup_mandate",
          "recurring_mandate",
          "installment"
        ]
      },
      "PaymentsCancelRequest": {
        "type": "object",
        "properties": {
          "cancellation_reason": {
            "type": "string",
            "description": "The reason for the payment cancel",
            "nullable": true
          },
          "return_raw_connector_response": {
            "type": "boolean",
            "description": "If true, returns stringified connector raw response body",
            "nullable": true
          }
        }
      },
      "PaymentsCaptureRequest": {
        "type": "object",
        "properties": {
          "amount_to_capture": {
            "type": "integer",
            "format": "int64",
            "description": "The Amount to be captured/ debited from the user's payment method. If not passed the full amount will be captured.",
            "example": 6540,
            "nullable": true
          },
          "return_raw_connector_response": {
            "type": "boolean",
            "description": "If true, returns stringified connector raw response body",
            "nullable": true
          }
        }
      },
      "PaymentsCompleteAuthorizeRequest": {
        "type": "object",
        "properties": {
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "client_secret": {
            "type": "string",
            "description": "Client Secret",
            "nullable": true
          },
          "threeds_method_comp_ind": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThreeDsCompletionIndicator"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentsConfirmIntentRequest": {
        "type": "object",
        "description": "Request for Payment Intent Confirm",
        "required": [
          "payment_method_data",
          "payment_method_type"
        ],
        "properties": {
          "return_url": {
            "type": "string",
            "description": "The URL to which you want the user to be redirected after the completion of the payment operation\nIf this url is not passed, the url configured in the business profile will be used",
            "example": "https://hyperswitch.io",
            "nullable": true
          },
          "payment_method_data": {
            "$ref": "#/components/schemas/PaymentMethodDataRequest"
          },
          "split_payment_method_data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SplitPaymentMethodDataRequest"
            },
            "description": "The payment instrument data to be used for the payment in case of split payments",
            "nullable": true
          },
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "customer_acceptance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerAcceptance"
              }
            ],
            "nullable": true
          },
          "browser_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "payment_method_id": {
            "type": "string",
            "description": "The payment_method_id to be associated with the payment",
            "nullable": true
          },
          "payment_token": {
            "type": "string",
            "example": "187282ab-40ef-47a9-9206-5099ba31e432",
            "nullable": true
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorAuthDetails"
              }
            ],
            "nullable": true
          },
          "return_raw_connector_response": {
            "type": "boolean",
            "description": "If true, returns stringified connector raw response body",
            "nullable": true
          },
          "webhook_url": {
            "type": "string",
            "description": "The webhook endpoint URL to receive payment status notifications",
            "example": "https://merchant.example.com/webhooks/payment",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentsCreateIntentRequest": {
        "type": "object",
        "required": [
          "amount_details",
          "customer_id"
        ],
        "properties": {
          "amount_details": {
            "$ref": "#/components/schemas/AmountDetails"
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "Unique identifier for the payment. This ensures idempotency for multiple payments\nthat have been done by a single merchant.",
            "example": "pay_mbabizu24mvu3mela5njyhpit4",
            "nullable": true,
            "maxLength": 30,
            "minLength": 30
          },
          "routing_algorithm_id": {
            "type": "string",
            "description": "The routing algorithm id to be used for the payment",
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "no_three_ds",
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8",
            "maxLength": 64,
            "minLength": 32
          },
          "customer_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PresenceOfCustomerDuringPayment"
              }
            ],
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A description for the payment",
            "example": "It's my first payment request",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to which you want the user to be redirected after the completion of the payment operation",
            "example": "https://hyperswitch.io",
            "nullable": true
          },
          "setup_future_usage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FutureUsage"
              }
            ],
            "nullable": true
          },
          "apply_mit_exemption": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MitExemptionRequest"
              }
            ],
            "nullable": true
          },
          "statement_descriptor": {
            "type": "string",
            "description": "For non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.",
            "example": "Hyperswitch Router",
            "nullable": true,
            "maxLength": 22
          },
          "order_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDetailsWithAmount"
            },
            "description": "Use this object to capture the details about the different products for which the payment is being made. The sum of amount across different products here should be equal to the overall payment amount",
            "example": "[{\n        \"product_name\": \"Apple iPhone 16\",\n        \"quantity\": 1,\n        \"amount\" : 69000\n        \"product_img_link\" : \"https://dummy-img-link.com\"\n    }]",
            "nullable": true
          },
          "allowed_payment_method_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodType"
            },
            "description": "Use this parameter to restrict the Payment Method Types to show for a given PaymentIntent",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "connector_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorMetadata"
              }
            ],
            "nullable": true
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeatureMetadata"
              }
            ],
            "nullable": true
          },
          "payment_link_enabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EnablePaymentLinkRequest"
              }
            ],
            "nullable": true
          },
          "payment_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkConfigRequest"
              }
            ],
            "nullable": true
          },
          "request_incremental_authorization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RequestIncrementalAuthorization"
              }
            ],
            "nullable": true
          },
          "session_expiry": {
            "type": "integer",
            "format": "int32",
            "description": "Will be used to expire client secret after certain amount of time to be supplied in seconds, if not sent it will be taken from profile config\n(900) for 15 mins",
            "example": 900,
            "nullable": true,
            "minimum": 0
          },
          "frm_metadata": {
            "type": "object",
            "description": "Additional data related to some frm(Fraud Risk Management) connectors",
            "nullable": true
          },
          "request_external_three_ds_authentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/External3dsAuthenticationRequest"
              }
            ],
            "nullable": true
          },
          "force_3ds_challenge": {
            "type": "boolean",
            "description": "Indicates if 3ds challenge is forced",
            "nullable": true
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorAuthDetails"
              }
            ],
            "nullable": true
          },
          "enable_partial_authorization": {
            "type": "boolean",
            "description": "Allow partial authorization for this payment",
            "default": false,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentsDynamicTaxCalculationRequest": {
        "type": "object",
        "required": [
          "shipping",
          "payment_method_type"
        ],
        "properties": {
          "shipping": {
            "$ref": "#/components/schemas/Address"
          },
          "client_secret": {
            "type": "string",
            "description": "Client Secret",
            "nullable": true
          },
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethodType"
          },
          "session_id": {
            "type": "string",
            "description": "Session Id",
            "nullable": true
          }
        }
      },
      "PaymentsDynamicTaxCalculationResponse": {
        "type": "object",
        "required": [
          "payment_id",
          "net_amount",
          "display_amount"
        ],
        "properties": {
          "payment_id": {
            "type": "string",
            "description": "The identifier for the payment"
          },
          "net_amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "order_tax_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "shipping_cost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "display_amount": {
            "$ref": "#/components/schemas/DisplayAmountOnSdk"
          }
        }
      },
      "PaymentsExternalAuthenticationRequest": {
        "type": "object",
        "required": [
          "device_channel",
          "threeds_method_comp_ind"
        ],
        "properties": {
          "client_secret": {
            "type": "string",
            "description": "Client Secret",
            "nullable": true
          },
          "sdk_information": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SdkInformation"
              }
            ],
            "nullable": true
          },
          "device_channel": {
            "$ref": "#/components/schemas/DeviceChannel"
          },
          "threeds_method_comp_ind": {
            "$ref": "#/components/schemas/ThreeDsCompletionIndicator"
          }
        }
      },
      "PaymentsExternalAuthenticationResponse": {
        "type": "object",
        "required": [
          "trans_status",
          "three_ds_requestor_url"
        ],
        "properties": {
          "trans_status": {
            "$ref": "#/components/schemas/TransactionStatus"
          },
          "acs_url": {
            "type": "string",
            "description": "Access Server URL to be used for challenge submission",
            "nullable": true
          },
          "challenge_request": {
            "type": "string",
            "description": "Challenge request which should be sent to acs_url",
            "nullable": true
          },
          "challenge_request_key": {
            "type": "string",
            "description": "Challenge request key which should be set as form field name for creq",
            "nullable": true
          },
          "acs_reference_number": {
            "type": "string",
            "description": "Unique identifier assigned by the EMVCo(Europay, Mastercard and Visa)",
            "nullable": true
          },
          "acs_trans_id": {
            "type": "string",
            "description": "Unique identifier assigned by the ACS to identify a single transaction",
            "nullable": true
          },
          "three_dsserver_trans_id": {
            "type": "string",
            "description": "Unique identifier assigned by the 3DS Server to identify a single transaction",
            "nullable": true
          },
          "acs_signed_content": {
            "type": "string",
            "description": "Contains the JWS object created by the ACS for the ARes(Authentication Response) message",
            "nullable": true
          },
          "three_ds_requestor_url": {
            "type": "string",
            "description": "Three DS Requestor URL"
          },
          "three_ds_requestor_app_url": {
            "type": "string",
            "description": "Merchant app declaring their URL within the CReq message so that the Authentication app can call the Merchant app after OOB authentication has occurred",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "description": "Error message if any",
            "nullable": true
          }
        }
      },
      "PaymentsIncrementalAuthorizationRequest": {
        "type": "object",
        "required": [
          "amount"
        ],
        "properties": {
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The total amount including previously authorized amount and additional amount",
            "example": 6540
          },
          "reason": {
            "type": "string",
            "description": "Reason for incremental authorization",
            "nullable": true
          }
        }
      },
      "PaymentsIntentResponse": {
        "type": "object",
        "required": [
          "id",
          "status",
          "amount_details",
          "client_secret",
          "profile_id",
          "capture_method",
          "customer_id",
          "customer_present",
          "setup_future_usage",
          "apply_mit_exemption",
          "payment_link_enabled",
          "request_incremental_authorization",
          "split_txns_enabled",
          "expires_on",
          "request_external_three_ds_authentication",
          "payment_type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Global Payment Id for the payment"
          },
          "status": {
            "$ref": "#/components/schemas/IntentStatus"
          },
          "amount_details": {
            "$ref": "#/components/schemas/AmountDetailsResponse"
          },
          "client_secret": {
            "type": "string",
            "description": "It's a token used for client side verification.",
            "example": "cs_0195b34da95d75239c6a4bf514458896"
          },
          "profile_id": {
            "type": "string",
            "description": "The identifier for the profile. This is inferred from the `x-profile-id` header"
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "Unique identifier for the payment. This ensures idempotency for multiple payments\nthat have been done by a single merchant.",
            "example": "pay_mbabizu24mvu3mela5njyhpit4",
            "nullable": true,
            "maxLength": 30,
            "minLength": 30
          },
          "routing_algorithm_id": {
            "type": "string",
            "description": "The routing algorithm id to be used for the payment",
            "nullable": true
          },
          "capture_method": {
            "$ref": "#/components/schemas/CaptureMethod"
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8",
            "maxLength": 64,
            "minLength": 32
          },
          "customer_present": {
            "$ref": "#/components/schemas/PresenceOfCustomerDuringPayment"
          },
          "description": {
            "type": "string",
            "description": "A description for the payment",
            "example": "It's my first payment request",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to which you want the user to be redirected after the completion of the payment operation",
            "example": "https://hyperswitch.io",
            "nullable": true
          },
          "setup_future_usage": {
            "$ref": "#/components/schemas/FutureUsage"
          },
          "apply_mit_exemption": {
            "$ref": "#/components/schemas/MitExemptionRequest"
          },
          "statement_descriptor": {
            "type": "string",
            "description": "For non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.",
            "example": "Hyperswitch Router",
            "nullable": true,
            "maxLength": 22
          },
          "order_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDetailsWithAmount"
            },
            "description": "Use this object to capture the details about the different products for which the payment is being made. The sum of amount across different products here should be equal to the overall payment amount",
            "example": "[{\n        \"product_name\": \"Apple iPhone 16\",\n        \"quantity\": 1,\n        \"amount\" : 69000\n        \"product_img_link\" : \"https://dummy-img-link.com\"\n    }]",
            "nullable": true
          },
          "allowed_payment_method_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodType"
            },
            "description": "Use this parameter to restrict the Payment Method Types to show for a given PaymentIntent",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "connector_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorMetadata"
              }
            ],
            "nullable": true
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeatureMetadata"
              }
            ],
            "nullable": true
          },
          "payment_link_enabled": {
            "$ref": "#/components/schemas/EnablePaymentLinkRequest"
          },
          "payment_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkConfigRequest"
              }
            ],
            "nullable": true
          },
          "request_incremental_authorization": {
            "$ref": "#/components/schemas/RequestIncrementalAuthorization"
          },
          "split_txns_enabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SplitTxnsEnabled"
              }
            ],
            "default": "skip"
          },
          "expires_on": {
            "type": "string",
            "format": "date-time",
            "description": "Will be used to expire client secret after certain amount of time to be supplied in seconds"
          },
          "frm_metadata": {
            "type": "object",
            "description": "Additional data related to some frm(Fraud Risk Management) connectors",
            "nullable": true
          },
          "request_external_three_ds_authentication": {
            "$ref": "#/components/schemas/External3dsAuthenticationRequest"
          },
          "payment_type": {
            "$ref": "#/components/schemas/PaymentType"
          },
          "enable_partial_authorization": {
            "type": "boolean",
            "description": "Allow partial authorization for this payment",
            "default": false,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentsListResponseItem": {
        "type": "object",
        "required": [
          "id",
          "merchant_id",
          "profile_id",
          "status",
          "amount",
          "created",
          "attempt_count",
          "return_url",
          "is_split_payment"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the payment",
            "example": "0a_pay_01926c58bc6e77c09e809964e72af8c8",
            "maxLength": 64,
            "minLength": 32
          },
          "merchant_id": {
            "type": "string",
            "description": "This is an identifier for the merchant account. This is inferred from the API key\nprovided during the request",
            "example": "merchant_1668273825",
            "maxLength": 255
          },
          "profile_id": {
            "type": "string",
            "description": "The business profile that is associated with this payment"
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8",
            "nullable": true,
            "maxLength": 64,
            "minLength": 32
          },
          "payment_method_id": {
            "type": "string",
            "description": "Identifier for Payment Method used for the payment",
            "nullable": true
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntentStatus"
              }
            ],
            "default": "requires_confirmation"
          },
          "amount": {
            "$ref": "#/components/schemas/PaymentAmountDetailsResponse"
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "Time when the payment was created",
            "example": "2022-09-10T10:11:12Z"
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethod"
              }
            ],
            "nullable": true
          },
          "payment_method_subtype": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "connector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Connector"
              }
            ],
            "nullable": true
          },
          "merchant_connector_id": {
            "type": "string",
            "description": "Identifier of the connector ( merchant connector account ) which was chosen to make the payment",
            "nullable": true
          },
          "customer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDetailsResponse"
              }
            ],
            "nullable": true
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "The reference id for the order in the merchant's system. This value can be passed by the merchant.",
            "nullable": true
          },
          "connector_payment_id": {
            "type": "string",
            "description": "A unique identifier for a payment provided by the connector",
            "example": "993672945374576J",
            "nullable": true
          },
          "connector_response_reference_id": {
            "type": "string",
            "description": "Reference to the capture at connector side",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A description of the payment",
            "example": "It's my first payment request",
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "three_ds",
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "setup_future_usage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FutureUsage"
              }
            ],
            "nullable": true
          },
          "attempt_count": {
            "type": "integer",
            "format": "int32",
            "description": "Total number of attempts associated with this payment"
          },
          "error": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ErrorDetails"
              }
            ],
            "nullable": true
          },
          "cancellation_reason": {
            "type": "string",
            "description": "If the payment was cancelled the reason will be provided here",
            "nullable": true
          },
          "order_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDetailsWithAmount"
            },
            "description": "Information about the product , quantity and amount for connectors. (e.g. Klarna)",
            "example": "[{\n        \"product_name\": \"gillete creme\",\n        \"quantity\": 15,\n        \"amount\" : 900\n    }]",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to redirect after the completion of the operation",
            "example": "https://hyperswitch.io"
          },
          "statement_descriptor": {
            "type": "string",
            "description": "For non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.",
            "example": "Hyperswitch Router",
            "nullable": true,
            "maxLength": 255
          },
          "allowed_payment_method_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodType"
            },
            "description": "Allowed Payment Method Types for a given PaymentIntent",
            "nullable": true
          },
          "authorization_count": {
            "type": "integer",
            "format": "int32",
            "description": "Total number of authorizations happened in an incremental_authorization payment",
            "nullable": true
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date time at which payment was updated",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "is_split_payment": {
            "type": "boolean",
            "description": "Indicates if the payment amount is split across multiple payment methods"
          }
        }
      },
      "PaymentsRequest": {
        "type": "object",
        "required": [
          "amount_details",
          "customer_id",
          "payment_method_data",
          "payment_method_type"
        ],
        "properties": {
          "amount_details": {
            "$ref": "#/components/schemas/AmountDetails"
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "Unique identifier for the payment. This ensures idempotency for multiple payments\nthat have been done by a single merchant.",
            "example": "pay_mbabizu24mvu3mela5njyhpit4",
            "nullable": true,
            "maxLength": 30,
            "minLength": 30
          },
          "routing_algorithm_id": {
            "type": "string",
            "description": "The routing algorithm id to be used for the payment",
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "no_three_ds",
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8",
            "maxLength": 64,
            "minLength": 32
          },
          "customer_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PresenceOfCustomerDuringPayment"
              }
            ],
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A description for the payment",
            "example": "It's my first payment request",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to which you want the user to be redirected after the completion of the payment operation",
            "example": "https://hyperswitch.io",
            "nullable": true
          },
          "setup_future_usage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FutureUsage"
              }
            ],
            "nullable": true
          },
          "apply_mit_exemption": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MitExemptionRequest"
              }
            ],
            "nullable": true
          },
          "statement_descriptor": {
            "type": "string",
            "description": "For non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.",
            "example": "Hyperswitch Router",
            "nullable": true,
            "maxLength": 22
          },
          "order_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDetailsWithAmount"
            },
            "description": "Use this object to capture the details about the different products for which the payment is being made. The sum of amount across different products here should be equal to the overall payment amount",
            "example": "[{\n        \"product_name\": \"Apple iPhone 16\",\n        \"quantity\": 1,\n        \"amount\" : 69000\n        \"product_img_link\" : \"https://dummy-img-link.com\"\n    }]",
            "nullable": true
          },
          "allowed_payment_method_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodType"
            },
            "description": "Use this parameter to restrict the Payment Method Types to show for a given PaymentIntent",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "connector_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorMetadata"
              }
            ],
            "nullable": true
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeatureMetadata"
              }
            ],
            "nullable": true
          },
          "payment_link_enabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EnablePaymentLinkRequest"
              }
            ],
            "nullable": true
          },
          "payment_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkConfigRequest"
              }
            ],
            "nullable": true
          },
          "request_incremental_authorization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RequestIncrementalAuthorization"
              }
            ],
            "nullable": true
          },
          "session_expiry": {
            "type": "integer",
            "format": "int32",
            "description": "Will be used to expire client secret after certain amount of time to be supplied in seconds, if not sent it will be taken from profile config\n(900) for 15 mins",
            "example": 900,
            "nullable": true,
            "minimum": 0
          },
          "frm_metadata": {
            "type": "object",
            "description": "Additional data related to some frm(Fraud Risk Management) connectors",
            "nullable": true
          },
          "request_external_three_ds_authentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/External3dsAuthenticationRequest"
              }
            ],
            "nullable": true
          },
          "payment_method_data": {
            "$ref": "#/components/schemas/PaymentMethodDataRequest"
          },
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "customer_acceptance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerAcceptance"
              }
            ],
            "nullable": true
          },
          "browser_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "payment_method_id": {
            "type": "string",
            "description": "The payment_method_id to be associated with the payment",
            "nullable": true
          },
          "force_3ds_challenge": {
            "type": "boolean",
            "description": "Indicates if 3ds challenge is forced",
            "nullable": true
          },
          "is_iframe_redirection_enabled": {
            "type": "boolean",
            "description": "Indicates if the redirection has to open in the iframe",
            "nullable": true
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorAuthDetails"
              }
            ],
            "nullable": true
          },
          "return_raw_connector_response": {
            "type": "boolean",
            "description": "Stringified connector raw response body. Only returned if `return_raw_connector_response` is true",
            "nullable": true
          },
          "enable_partial_authorization": {
            "type": "boolean",
            "description": "Allow partial authorization for this payment",
            "default": false,
            "nullable": true
          },
          "webhook_url": {
            "type": "string",
            "description": "The webhook endpoint URL to receive payment status notifications",
            "example": "https://merchant.example.com/webhooks/payment",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentsResponse": {
        "type": "object",
        "description": "Response for Payment Intent Confirm\nFew fields should be expandable, we need not return these in the normal response\nBut when explicitly requested for expanded objects, these can be returned\nFor example\nshipping, billing, customer, payment_method",
        "required": [
          "id",
          "status",
          "amount",
          "customer_id",
          "processor_merchant_id",
          "created",
          "modified_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the payment. This ensures idempotency for multiple payments\nthat have been done by a single merchant.",
            "example": "0a_pay_01926c58bc6e77c09e809964e72af8c8",
            "maxLength": 64,
            "minLength": 32
          },
          "status": {
            "$ref": "#/components/schemas/IntentStatus"
          },
          "amount": {
            "$ref": "#/components/schemas/PaymentAmountDetailsResponse"
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer",
            "example": "0a_cus_01926c58bc6e77c09e809964e72af8c8",
            "maxLength": 64,
            "minLength": 32
          },
          "processor_merchant_id": {
            "type": "string",
            "description": "The identifier for the processor merchant account. In platform-connected setups,\nthis is the connected merchant ID. For standard merchants, this is same as merchant_id.",
            "example": "merchant_1689512302",
            "maxLength": 255
          },
          "initiator": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Initiator"
              }
            ],
            "nullable": true
          },
          "connector": {
            "type": "string",
            "description": "The connector used for the payment",
            "example": "stripe",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "Time when the payment was created",
            "example": "2022-09-10T10:11:12Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time when the payment was last modified",
            "example": "2022-09-10T10:11:12Z"
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDataResponseWithBilling"
              }
            ],
            "nullable": true
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethod"
              }
            ],
            "nullable": true
          },
          "payment_method_subtype": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "connector_transaction_id": {
            "type": "string",
            "description": "A unique identifier for a payment provided by the connector",
            "example": "993672945374576J",
            "nullable": true
          },
          "connector_reference_id": {
            "type": "string",
            "description": "reference(Identifier) to the payment at connector side",
            "example": "993672945374576J",
            "nullable": true
          },
          "merchant_connector_id": {
            "type": "string",
            "description": "Identifier of the connector ( merchant connector account ) which was chosen to make the payment",
            "nullable": true
          },
          "browser_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "error": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ErrorDetails"
              }
            ],
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "attempts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentAttemptResponse"
            },
            "description": "List of payment attempts associated with payment intent",
            "nullable": true
          },
          "connector_token_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorTokenDetails"
              }
            ],
            "nullable": true
          },
          "payment_method_id": {
            "type": "string",
            "description": "The payment_method_id associated with the payment",
            "nullable": true
          },
          "next_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NextActionData"
              }
            ],
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The url to which user must be redirected to after completion of the purchase",
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "no_three_ds",
            "nullable": true
          },
          "authentication_type_applied": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "no_three_ds",
            "nullable": true
          },
          "is_iframe_redirection_enabled": {
            "type": "boolean",
            "description": "Indicates if the redirection has to open in the iframe",
            "nullable": true
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "Unique identifier for the payment. This ensures idempotency for multiple payments\nthat have been done by a single merchant.",
            "example": "pay_mbabizu24mvu3mela5njyhpit4",
            "nullable": true,
            "maxLength": 30,
            "minLength": 30
          },
          "raw_connector_response": {
            "type": "string",
            "description": "Stringified connector raw response body. Only returned if `return_raw_connector_response` is true",
            "nullable": true
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeatureMetadata"
              }
            ],
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "You can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.",
            "nullable": true
          }
        }
      },
      "PaymentsRetrieveRequest": {
        "type": "object",
        "description": "Request body for Payment Status",
        "properties": {
          "force_sync": {
            "type": "boolean",
            "description": "A boolean used to indicate if the payment status should be fetched from the connector\nIf this is set to true, the status will be fetched from the connector"
          },
          "expand_attempts": {
            "type": "boolean",
            "description": "A boolean used to indicate if all the attempts needs to be fetched for the intent.\nIf this is set to true, attempts list will be available in the response."
          },
          "param": {
            "type": "string",
            "description": "These are the query params that are sent in case of redirect response.\nThese can be ingested by the connector to take necessary actions.",
            "nullable": true
          },
          "return_raw_connector_response": {
            "type": "boolean",
            "description": "If true, returns stringified connector raw response body",
            "nullable": true
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorAuthDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentsSessionRequest": {
        "type": "object"
      },
      "PaymentsSessionResponse": {
        "type": "object",
        "required": [
          "payment_id",
          "session_token"
        ],
        "properties": {
          "payment_id": {
            "type": "string",
            "description": "The identifier for the payment"
          },
          "session_token": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SessionToken"
            },
            "description": "The list of session token object"
          },
          "vault_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VaultDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentsStatusRequest": {
        "type": "object",
        "description": "Request for Payment Status",
        "properties": {
          "force_sync": {
            "type": "boolean",
            "description": "A boolean used to indicate if the payment status should be fetched from the connector\nIf this is set to true, the status will be fetched from the connector"
          },
          "expand_attempts": {
            "type": "boolean",
            "description": "A boolean used to indicate if all the attempts needs to be fetched for the intent.\nIf this is set to true, attempts list will be available in the response."
          },
          "param": {
            "type": "string",
            "description": "These are the query params that are sent in case of redirect response.\nThese can be ingested by the connector to take necessary actions.",
            "nullable": true
          },
          "return_raw_connector_response": {
            "type": "boolean",
            "description": "If true, returns stringified connector raw response body",
            "nullable": true
          }
        }
      },
      "PaymentsUpdateIntentRequest": {
        "type": "object",
        "properties": {
          "amount_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmountDetailsUpdate"
              }
            ],
            "nullable": true
          },
          "routing_algorithm_id": {
            "type": "string",
            "description": "The routing algorithm id to be used for the payment",
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "no_three_ds",
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "customer_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PresenceOfCustomerDuringPayment"
              }
            ],
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A description for the payment",
            "example": "It's my first payment request",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to which you want the user to be redirected after the completion of the payment operation",
            "example": "https://hyperswitch.io",
            "nullable": true
          },
          "setup_future_usage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FutureUsage"
              }
            ],
            "nullable": true
          },
          "apply_mit_exemption": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MitExemptionRequest"
              }
            ],
            "nullable": true
          },
          "statement_descriptor": {
            "type": "string",
            "description": "For non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.",
            "example": "Hyperswitch Router",
            "nullable": true,
            "maxLength": 22
          },
          "order_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDetailsWithAmount"
            },
            "description": "Use this object to capture the details about the different products for which the payment is being made. The sum of amount across different products here should be equal to the overall payment amount",
            "example": "[{\n        \"product_name\": \"Apple iPhone 16\",\n        \"quantity\": 1,\n        \"amount\" : 69000\n        \"product_img_link\" : \"https://dummy-img-link.com\"\n    }]",
            "nullable": true
          },
          "allowed_payment_method_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodType"
            },
            "description": "Use this parameter to restrict the Payment Method Types to show for a given PaymentIntent",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object. This metadata will override the metadata that was passed in payments",
            "nullable": true
          },
          "connector_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorMetadata"
              }
            ],
            "nullable": true
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeatureMetadata"
              }
            ],
            "nullable": true
          },
          "payment_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkConfigRequest"
              }
            ],
            "nullable": true
          },
          "request_incremental_authorization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RequestIncrementalAuthorization"
              }
            ],
            "nullable": true
          },
          "session_expiry": {
            "type": "integer",
            "format": "int32",
            "description": "Will be used to expire client secret after certain amount of time to be supplied in seconds, if not sent it will be taken from profile config\n(900) for 15 mins",
            "example": 900,
            "nullable": true,
            "minimum": 0
          },
          "frm_metadata": {
            "type": "object",
            "description": "Additional data related to some frm(Fraud Risk Management) connectors",
            "nullable": true
          },
          "request_external_three_ds_authentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/External3dsAuthenticationRequest"
              }
            ],
            "nullable": true
          },
          "set_active_attempt_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UpdateActiveAttempt"
              }
            ],
            "nullable": true
          },
          "enable_partial_authorization": {
            "type": "boolean",
            "description": "Allow partial authorization for this payment",
            "default": false,
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PayoutActionRequest": {
        "type": "object",
        "required": [
          "payout_id"
        ],
        "properties": {
          "payout_id": {
            "type": "string",
            "description": "Unique identifier for the payout. This ensures idempotency for multiple payouts\nthat have been done by a single merchant. This field is auto generated and is returned in the API response.",
            "example": "187282ab-40ef-47a9-9206-5099ba31e432",
            "maxLength": 30,
            "minLength": 30
          }
        }
      },
      "PayoutAttemptResponse": {
        "type": "object",
        "required": [
          "attempt_id",
          "status",
          "amount"
        ],
        "properties": {
          "attempt_id": {
            "type": "string",
            "description": "Unique identifier for the attempt"
          },
          "status": {
            "$ref": "#/components/schemas/PayoutStatus"
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payout attempt amount. Amount for the payout in lowest denomination of the currency. (i.e) in cents for USD denomination, in paisa for INR denomination etc.,",
            "example": 6583
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ],
            "nullable": true
          },
          "connector": {
            "type": "string",
            "description": "The connector used for the payout",
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "description": "Connector's error code in case of failures",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "description": "Connector's error message in case of failures",
            "nullable": true
          },
          "payment_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PayoutType"
              }
            ],
            "nullable": true
          },
          "payout_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "connector_transaction_id": {
            "type": "string",
            "description": "A unique identifier for a payout provided by the connector",
            "nullable": true
          },
          "cancellation_reason": {
            "type": "string",
            "description": "If the payout was cancelled the reason provided here",
            "nullable": true
          },
          "unified_code": {
            "type": "string",
            "description": "(This field is not live yet)\nError code unified across the connectors is received here in case of errors while calling the underlying connector",
            "example": "UE_000",
            "nullable": true,
            "maxLength": 255
          },
          "unified_message": {
            "type": "string",
            "description": "(This field is not live yet)\nError message unified across the connectors is received here in case of errors while calling the underlying connector",
            "example": "Invalid card details",
            "nullable": true,
            "maxLength": 1024
          }
        }
      },
      "PayoutConnectors": {
        "type": "string",
        "enum": [
          "adyen",
          "adyenplatform",
          "cybersource",
          "ebanx",
          "gigadat",
          "loonio",
          "nomupay",
          "nuvei",
          "payone",
          "paypal",
          "stripe",
          "truelayer",
          "trustly",
          "wise",
          "worldpay",
          "worldpayxml",
          "envoy",
          "itaubank"
        ]
      },
      "PayoutCreatePayoutLinkConfig": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/GenericLinkUiConfig"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "properties": {
              "payout_link_id": {
                "type": "string",
                "description": "The unique identifier for the collect link.",
                "example": "pm_collect_link_2bdacf398vwzq5n422S1",
                "nullable": true
              },
              "enabled_payment_methods": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EnabledPaymentMethod"
                },
                "description": "List of payout methods shown on collect UI",
                "example": "[{\"payment_method\": \"bank_transfer\", \"payment_method_types\": [\"ach\", \"bacs\"]}]",
                "nullable": true
              },
              "form_layout": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UIWidgetFormLayout"
                  }
                ],
                "nullable": true
              },
              "test_mode": {
                "type": "boolean",
                "description": "`test_mode` allows for opening payout links without any restrictions. This removes\n- domain name validations\n- check for making sure link is accessed within an iframe",
                "example": false,
                "nullable": true
              }
            }
          }
        ],
        "description": "Custom payout link config for the particular payout, if payout link is to be generated."
      },
      "PayoutCreateRequest": {
        "type": "object",
        "properties": {
          "payout_id": {
            "type": "string",
            "description": "Unique identifier for the payout. This ensures idempotency for multiple payouts that have been done by a single merchant. This field is auto generated and is returned in the API response, **not required to be included in the Payout Create/Update Request.**",
            "example": "187282ab-40ef-47a9-9206-5099ba31e432",
            "nullable": true,
            "maxLength": 30,
            "minLength": 30
          },
          "merchant_id": {
            "type": "string",
            "description": "This is an identifier for the merchant account. This is inferred from the API key provided during the request, **not required to be included in the Payout Create/Update Request.**",
            "example": "merchant_1668273825",
            "nullable": true,
            "maxLength": 255
          },
          "merchant_order_reference_id": {
            "type": "string",
            "description": "Your unique identifier for this payout or order. This ID helps you reconcile payouts on your system. If provided, it is passed to the connector if supported.",
            "example": "merchant_order_ref_123",
            "nullable": true,
            "maxLength": 255
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payout amount. Amount for the payout in lowest denomination of the currency. (i.e) in cents for USD denomination, in paisa for INR denomination etc.,",
            "example": 1000,
            "nullable": true,
            "minimum": 0
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ],
            "nullable": true
          },
          "routing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StaticRoutingAlgorithm"
              }
            ],
            "nullable": true
          },
          "connector": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutConnectors"
            },
            "description": "This field allows the merchant to manually select a connector with which the payout can go through.",
            "example": [
              "wise",
              "adyen"
            ],
            "nullable": true
          },
          "confirm": {
            "type": "boolean",
            "description": "This field is used when merchant wants to confirm the payout, thus useful for the payout _Confirm_ request. Ideally merchants should _Create_ a payout, _Update_ it (if required), then _Confirm_ it.",
            "default": false,
            "example": true,
            "nullable": true
          },
          "payout_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PayoutType"
              }
            ],
            "nullable": true
          },
          "payout_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PayoutMethodData"
              }
            ],
            "nullable": true
          },
          "source_bank_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BankTransfer"
              }
            ],
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "auto_fulfill": {
            "type": "boolean",
            "description": "Set to true to confirm the payout without review, no further action required",
            "default": false,
            "example": true,
            "nullable": true
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer object. If not provided the customer ID will be autogenerated. _Deprecated: Use customer_id instead._",
            "deprecated": true,
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 255
          },
          "customer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDetails"
              }
            ],
            "nullable": true
          },
          "client_secret": {
            "type": "string",
            "description": "It's a token used for client side verification.",
            "example": "pay_U42c409qyHwOkWo3vK60_secret_el9ksDkiB8hi6j9N78yo",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to redirect after the completion of the operation",
            "example": "https://hyperswitch.io",
            "nullable": true
          },
          "business_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "business_label": {
            "type": "string",
            "description": "Business label of the merchant for this payout. _Deprecated: Use profile_id instead._",
            "deprecated": true,
            "example": "food",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A description of the payout",
            "example": "It's my first payout request",
            "nullable": true
          },
          "billing_descriptor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PayoutsBillingDescriptor"
              }
            ],
            "nullable": true
          },
          "entity_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PayoutEntityType"
              }
            ],
            "nullable": true
          },
          "recurring": {
            "type": "boolean",
            "description": "Specifies whether or not the payout request is recurring",
            "default": false,
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "You can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.",
            "nullable": true
          },
          "payout_token": {
            "type": "string",
            "description": "Provide a reference to a stored payout method, used to process the payout.",
            "example": "187282ab-40ef-47a9-9206-5099ba31e432",
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "The business profile to use for this payout, especially if there are multiple business profiles associated with the account, otherwise default business profile associated with the merchant account will be used.",
            "nullable": true
          },
          "priority": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PayoutSendPriority"
              }
            ],
            "nullable": true
          },
          "payout_link": {
            "type": "boolean",
            "description": "Whether to get the payout link (if applicable). Merchant need to specify this during the Payout _Create_, this field can not be updated during Payout _Update_.",
            "default": false,
            "example": true,
            "nullable": true
          },
          "payout_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PayoutCreatePayoutLinkConfig"
              }
            ],
            "nullable": true
          },
          "session_expiry": {
            "type": "integer",
            "format": "int32",
            "description": "Will be used to expire client secret after certain amount of time to be supplied in seconds\n(900) for 15 mins",
            "example": 900,
            "nullable": true,
            "minimum": 0
          },
          "email": {
            "type": "string",
            "description": "Customer's email. _Deprecated: Use customer object instead._",
            "deprecated": true,
            "example": "johntest@test.com",
            "nullable": true,
            "maxLength": 255
          },
          "name": {
            "type": "string",
            "description": "Customer's name. _Deprecated: Use customer object instead._",
            "deprecated": true,
            "example": "John Test",
            "nullable": true,
            "maxLength": 255
          },
          "phone": {
            "type": "string",
            "description": "Customer's phone. _Deprecated: Use customer object instead._",
            "deprecated": true,
            "example": "9123456789",
            "nullable": true,
            "maxLength": 255
          },
          "phone_country_code": {
            "type": "string",
            "description": "Customer's phone country code. _Deprecated: Use customer object instead._",
            "deprecated": true,
            "example": "+1",
            "nullable": true,
            "maxLength": 255
          },
          "payout_method_id": {
            "type": "string",
            "description": "Identifier for payout method",
            "nullable": true
          },
          "browser_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PayoutCreateResponse": {
        "type": "object",
        "required": [
          "payout_id",
          "merchant_id",
          "amount",
          "currency",
          "auto_fulfill",
          "customer_id",
          "client_secret",
          "return_url",
          "business_country",
          "entity_type",
          "recurring",
          "status",
          "profile_id"
        ],
        "properties": {
          "payout_id": {
            "type": "string",
            "description": "Unique identifier for the payout. This ensures idempotency for multiple payouts\nthat have been done by a single merchant. This field is auto generated and is returned in the API response.",
            "example": "187282ab-40ef-47a9-9206-5099ba31e432",
            "maxLength": 30,
            "minLength": 30
          },
          "merchant_id": {
            "type": "string",
            "description": "This is an identifier for the merchant account. This is inferred from the API key\nprovided during the request",
            "example": "merchant_1668273825",
            "maxLength": 255
          },
          "merchant_order_reference_id": {
            "type": "string",
            "description": "Your unique identifier for this payout or order. This ID helps you reconcile payouts on your system. If provided, it is passed to the connector if supported.",
            "example": "merchant_order_ref_123",
            "nullable": true,
            "maxLength": 255
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payout amount. Amount for the payout in lowest denomination of the currency. (i.e) in cents for USD denomination, in paisa for INR denomination etc.,",
            "example": 1000
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "connector": {
            "type": "string",
            "description": "The connector used for the payout",
            "example": "wise",
            "nullable": true
          },
          "payout_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PayoutType"
              }
            ],
            "nullable": true
          },
          "payout_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PayoutMethodDataResponse"
              }
            ],
            "nullable": true
          },
          "source_bank_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PayoutMethodDataResponse"
              }
            ],
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "auto_fulfill": {
            "type": "boolean",
            "description": "Set to true to confirm the payout without review, no further action required",
            "default": false,
            "example": true
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer object. If not provided the customer ID will be autogenerated. _Deprecated: Use the customer object instead._",
            "deprecated": true,
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 255
          },
          "customer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDetailsResponse"
              }
            ],
            "nullable": true
          },
          "client_secret": {
            "type": "string",
            "description": "It's a token used for client side verification.",
            "example": "pay_U42c409qyHwOkWo3vK60_secret_el9ksDkiB8hi6j9N78yo"
          },
          "return_url": {
            "type": "string",
            "description": "The URL to redirect after the completion of the operation",
            "example": "https://hyperswitch.io"
          },
          "business_country": {
            "$ref": "#/components/schemas/CountryAlpha2"
          },
          "business_label": {
            "type": "string",
            "description": "Business label of the merchant for this payout. _Deprecated: Use profile_id instead._",
            "deprecated": true,
            "example": "food",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A description of the payout",
            "example": "It's my first payout request",
            "nullable": true
          },
          "billing_descriptor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PayoutsBillingDescriptor"
              }
            ],
            "nullable": true
          },
          "entity_type": {
            "$ref": "#/components/schemas/PayoutEntityType"
          },
          "recurring": {
            "type": "boolean",
            "description": "Specifies whether or not the payout request is recurring",
            "default": false
          },
          "metadata": {
            "type": "object",
            "description": "You can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.",
            "nullable": true
          },
          "merchant_connector_id": {
            "type": "string",
            "description": "Unique identifier of the merchant connector account",
            "example": "mca_sAD3OZLATetvjLOYhUSy",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/PayoutStatus"
          },
          "error_message": {
            "type": "string",
            "description": "If there was an error while calling the connector the error message is received here",
            "example": "Failed while verifying the card",
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "description": "If there was an error while calling the connectors the code is received here",
            "example": "E0001",
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "The business profile that is associated with this payout"
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "Time when the payout was created",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "connector_transaction_id": {
            "type": "string",
            "description": "Underlying processor's payout resource ID",
            "example": "S3FC9G9M2MVFDXT5",
            "nullable": true
          },
          "priority": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PayoutSendPriority"
              }
            ],
            "nullable": true
          },
          "attempts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutAttemptResponse"
            },
            "description": "List of attempts",
            "nullable": true
          },
          "payout_link": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PayoutLinkResponse"
              }
            ],
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Customer's email. _Deprecated: Use customer object instead._",
            "deprecated": true,
            "example": "johntest@test.com",
            "nullable": true,
            "maxLength": 255
          },
          "name": {
            "type": "string",
            "description": "Customer's name. _Deprecated: Use customer object instead._",
            "deprecated": true,
            "example": "John Test",
            "nullable": true,
            "maxLength": 255
          },
          "phone": {
            "type": "string",
            "description": "Customer's phone. _Deprecated: Use customer object instead._",
            "deprecated": true,
            "example": "9123456789",
            "nullable": true,
            "maxLength": 255
          },
          "phone_country_code": {
            "type": "string",
            "description": "Customer's phone country code. _Deprecated: Use customer object instead._",
            "deprecated": true,
            "example": "+1",
            "nullable": true,
            "maxLength": 255
          },
          "unified_code": {
            "type": "string",
            "description": "(This field is not live yet)\nError code unified across the connectors is received here in case of errors while calling the underlying connector",
            "example": "UE_000",
            "nullable": true,
            "maxLength": 255
          },
          "unified_message": {
            "type": "string",
            "description": "(This field is not live yet)\nError message unified across the connectors is received here in case of errors while calling the underlying connector",
            "example": "Invalid card details",
            "nullable": true,
            "maxLength": 1024
          },
          "payout_method_id": {
            "type": "string",
            "description": "Identifier for payout method",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PayoutEntityType": {
        "type": "string",
        "description": "Type of entity to whom the payout is being carried out to, select from the given list of options",
        "enum": [
          "Individual",
          "Company",
          "NonProfit",
          "PublicSector",
          "NaturalPerson",
          "lowercase",
          "Personal"
        ]
      },
      "PayoutLinkInitiateRequest": {
        "type": "object",
        "required": [
          "merchant_id",
          "payout_id"
        ],
        "properties": {
          "merchant_id": {
            "type": "string"
          },
          "payout_id": {
            "type": "string"
          }
        }
      },
      "PayoutLinkResponse": {
        "type": "object",
        "required": [
          "payout_link_id",
          "link"
        ],
        "properties": {
          "payout_link_id": {
            "type": "string"
          },
          "link": {
            "type": "string"
          }
        }
      },
      "PayoutListConstraints": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/TimeRange"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "properties": {
              "customer_id": {
                "type": "string",
                "description": "The identifier for customer",
                "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
                "nullable": true
              },
              "starting_after": {
                "type": "string",
                "description": "A cursor for use in pagination, fetch the next list after some object",
                "example": "payout_fafa124123",
                "nullable": true
              },
              "ending_before": {
                "type": "string",
                "description": "A cursor for use in pagination, fetch the previous list before some object",
                "example": "payout_fafa124123",
                "nullable": true
              },
              "limit": {
                "type": "integer",
                "format": "int32",
                "description": "limit on the number of objects to return",
                "default": 10,
                "maximum": 100,
                "minimum": 0
              },
              "created": {
                "type": "string",
                "format": "date-time",
                "description": "The time at which payout is created",
                "example": "2022-09-10T10:11:12Z",
                "nullable": true
              }
            }
          }
        ]
      },
      "PayoutListFilterConstraints": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/TimeRange"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "required": [
              "currency",
              "entity_type"
            ],
            "properties": {
              "payout_id": {
                "type": "string",
                "description": "The identifier for payout",
                "example": "187282ab-40ef-47a9-9206-5099ba31e432",
                "nullable": true,
                "maxLength": 30,
                "minLength": 30
              },
              "merchant_order_reference_id": {
                "type": "string",
                "description": "The merchant order reference ID for payout",
                "example": "merchant_order_ref_123",
                "nullable": true,
                "maxLength": 255
              },
              "profile_id": {
                "type": "string",
                "description": "The identifier for business profile",
                "nullable": true
              },
              "customer_id": {
                "type": "string",
                "description": "The identifier for customer",
                "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
                "nullable": true
              },
              "limit": {
                "type": "integer",
                "format": "int32",
                "description": "The limit on the number of objects. The default limit is 10 and max limit is 20",
                "minimum": 0
              },
              "offset": {
                "type": "integer",
                "format": "int32",
                "description": "The starting point within a list of objects",
                "nullable": true,
                "minimum": 0
              },
              "connector": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PayoutConnectors"
                },
                "description": "The list of connectors to filter payouts list",
                "example": [
                  "wise",
                  "adyen"
                ],
                "nullable": true
              },
              "currency": {
                "$ref": "#/components/schemas/Currency"
              },
              "status": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PayoutStatus"
                },
                "description": "The list of payout status to filter payouts list",
                "example": [
                  "pending",
                  "failed"
                ],
                "nullable": true
              },
              "payout_method": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PayoutType"
                },
                "description": "The list of payout methods to filter payouts list",
                "example": [
                  "bank",
                  "card"
                ],
                "nullable": true
              },
              "entity_type": {
                "$ref": "#/components/schemas/PayoutEntityType"
              }
            }
          }
        ]
      },
      "PayoutListResponse": {
        "type": "object",
        "required": [
          "size",
          "data"
        ],
        "properties": {
          "size": {
            "type": "integer",
            "description": "The number of payouts included in the list",
            "minimum": 0
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutCreateResponse"
            },
            "description": "The list of payouts response objects"
          },
          "total_count": {
            "type": "integer",
            "format": "int64",
            "description": "The total number of available payouts for given constraints",
            "nullable": true
          }
        }
      },
      "PayoutMethodData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "card"
            ],
            "properties": {
              "card": {
                "$ref": "#/components/schemas/CardPayout"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank"
            ],
            "properties": {
              "bank": {
                "$ref": "#/components/schemas/Bank"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "wallet"
            ],
            "properties": {
              "wallet": {
                "$ref": "#/components/schemas/Wallet"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank_redirect"
            ],
            "properties": {
              "bank_redirect": {
                "$ref": "#/components/schemas/BankRedirect"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "passthrough"
            ],
            "properties": {
              "passthrough": {
                "$ref": "#/components/schemas/Passthrough"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank_transfer"
            ],
            "properties": {
              "bank_transfer": {
                "$ref": "#/components/schemas/BankTransfer"
              }
            }
          }
        ],
        "description": "The payout method information required for carrying out a payout"
      },
      "PayoutMethodDataResponse": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "card"
            ],
            "properties": {
              "card": {
                "$ref": "#/components/schemas/CardAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank"
            ],
            "properties": {
              "bank": {
                "$ref": "#/components/schemas/BankAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "wallet"
            ],
            "properties": {
              "wallet": {
                "$ref": "#/components/schemas/WalletAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank_redirect"
            ],
            "properties": {
              "bank_redirect": {
                "$ref": "#/components/schemas/BankRedirectAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "passthrough"
            ],
            "properties": {
              "passthrough": {
                "$ref": "#/components/schemas/PassthroughAdditionalData"
              }
            }
          }
        ],
        "description": "The payout method information for response"
      },
      "PayoutRequest": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "PayoutActionRequest"
            ],
            "properties": {
              "PayoutActionRequest": {
                "$ref": "#/components/schemas/PayoutActionRequest"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "PayoutCreateRequest"
            ],
            "properties": {
              "PayoutCreateRequest": {
                "$ref": "#/components/schemas/PayoutCreateRequest"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "PayoutRetrieveRequest"
            ],
            "properties": {
              "PayoutRetrieveRequest": {
                "$ref": "#/components/schemas/PayoutRetrieveRequest"
              }
            }
          }
        ]
      },
      "PayoutRetrieveBody": {
        "type": "object",
        "properties": {
          "force_sync": {
            "type": "boolean",
            "nullable": true
          },
          "merchant_id": {
            "type": "string",
            "nullable": true
          },
          "expand_attempts": {
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "PayoutRetrieveRequest": {
        "type": "object",
        "required": [
          "payout_id"
        ],
        "properties": {
          "payout_id": {
            "type": "string",
            "description": "Unique identifier for the payout. This ensures idempotency for multiple payouts\nthat have been done by a single merchant. This field is auto generated and is returned in the API response.",
            "example": "187282ab-40ef-47a9-9206-5099ba31e432",
            "maxLength": 30,
            "minLength": 30
          },
          "force_sync": {
            "type": "boolean",
            "description": "`force_sync` with the connector to get payout details\n(defaults to false)",
            "default": false,
            "example": true,
            "nullable": true
          },
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account.",
            "nullable": true
          },
          "expand_attempts": {
            "type": "boolean",
            "description": "Set to true to get the list of attempts along with payout details, no further action required",
            "default": false,
            "example": true,
            "nullable": true
          }
        }
      },
      "PayoutSendPriority": {
        "type": "string",
        "description": "The send method which will be required for processing payouts, check options for better understanding.",
        "enum": [
          "instant",
          "fast",
          "regular",
          "wire",
          "cross_border",
          "internal"
        ]
      },
      "PayoutStatus": {
        "type": "string",
        "enum": [
          "success",
          "failed",
          "cancelled",
          "initiated",
          "expired",
          "reversed",
          "pending",
          "ineligible",
          "requires_creation",
          "requires_confirmation",
          "requires_payout_method_data",
          "requires_fulfillment",
          "requires_vendor_account_creation"
        ]
      },
      "PayoutType": {
        "type": "string",
        "description": "The payout_type of the payout request is a mandatory field for confirming the payouts. It should be specified in the Create request. If not provided, it must be updated in the Payout Update request before it can be confirmed.",
        "enum": [
          "card",
          "bank",
          "wallet",
          "bank_redirect"
        ]
      },
      "PayoutsBillingDescriptor": {
        "type": "object",
        "description": "Billing descriptor information for a payout.",
        "properties": {
          "reference": {
            "type": "string",
            "description": "Reference displayed on the beneficiary's bank statement.",
            "nullable": true
          },
          "statement_descriptor": {
            "type": "string",
            "description": "Statement descriptor displayed for the payout.",
            "nullable": true
          }
        }
      },
      "Paypal": {
        "type": "object",
        "required": [
          "email",
          "telephone_number",
          "paypal_id"
        ],
        "properties": {
          "email": {
            "type": "string",
            "description": "Email linked with paypal account",
            "example": "john.doe@example.com"
          },
          "telephone_number": {
            "type": "string",
            "description": "mobile number linked to paypal account",
            "example": "16608213349"
          },
          "paypal_id": {
            "type": "string",
            "description": "id of the paypal account",
            "example": "G83KXTJ5EHCQ2"
          }
        }
      },
      "PaypalAdditionalData": {
        "oneOf": [
          {
            "type": "object",
            "description": "Email linked with paypal account",
            "required": [
              "email",
              "field_type"
            ],
            "properties": {
              "email": {
                "type": "string",
                "description": "Email linked with paypal account",
                "example": "john.doe@example.com"
              },
              "field_type": {
                "type": "string",
                "enum": [
                  "email"
                ]
              }
            }
          },
          {
            "type": "object",
            "description": "id of the paypal account",
            "required": [
              "paypal_id",
              "field_type"
            ],
            "properties": {
              "paypal_id": {
                "type": "string",
                "description": "id of the paypal account",
                "example": "G83K*****HCQ2"
              },
              "field_type": {
                "type": "string",
                "enum": [
                  "paypal_id"
                ]
              }
            }
          },
          {
            "type": "object",
            "description": "mobile number linked to paypal account",
            "required": [
              "field_type"
            ],
            "properties": {
              "telephone_number": {
                "type": "string",
                "description": "mobile number linked to paypal account",
                "example": "G83K ***** HCQ2",
                "nullable": true
              },
              "field_type": {
                "type": "string",
                "enum": [
                  "telephone_number"
                ]
              }
            }
          }
        ],
        "description": "Masked payout method details for paypal wallet payout method",
        "discriminator": {
          "propertyName": "field_type"
        }
      },
      "PaypalCaptureMethod": {
        "type": "string",
        "enum": [
          "capture",
          "authorize"
        ]
      },
      "PaypalFlow": {
        "type": "string",
        "enum": [
          "checkout"
        ]
      },
      "PaypalRedirection": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "paypal's email address",
            "example": "johntest@test.com",
            "nullable": true,
            "maxLength": 255
          }
        }
      },
      "PaypalSessionTokenResponse": {
        "type": "object",
        "required": [
          "connector",
          "session_token",
          "sdk_next_action"
        ],
        "properties": {
          "connector": {
            "type": "string",
            "description": "Name of the connector"
          },
          "session_token": {
            "type": "string",
            "description": "The session token for PayPal"
          },
          "sdk_next_action": {
            "$ref": "#/components/schemas/SdkNextAction"
          },
          "client_token": {
            "type": "string",
            "description": "Authorization token used by client to initiate sdk",
            "nullable": true
          },
          "transaction_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaypalTransactionInfo"
              }
            ],
            "nullable": true
          },
          "data_user_id_token": {
            "type": "string",
            "description": "User token required for returning customer flow, used by client to initiate sdk",
            "nullable": true
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ],
            "nullable": true
          },
          "intent": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaypalCaptureMethod"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaypalTransactionInfo": {
        "type": "object",
        "required": [
          "flow",
          "currency_code",
          "total_price"
        ],
        "properties": {
          "flow": {
            "$ref": "#/components/schemas/PaypalFlow"
          },
          "currency_code": {
            "$ref": "#/components/schemas/Currency"
          },
          "total_price": {
            "type": "string",
            "description": "Total price",
            "example": "38.02"
          }
        }
      },
      "PayseraData": {
        "type": "object"
      },
      "PazeSessionTokenResponse": {
        "type": "object",
        "required": [
          "client_id",
          "client_name",
          "client_profile_id",
          "transaction_currency_code",
          "transaction_amount"
        ],
        "properties": {
          "client_id": {
            "type": "string",
            "description": "Paze Client ID"
          },
          "client_name": {
            "type": "string",
            "description": "Client Name to be displayed on the Paze screen"
          },
          "client_profile_id": {
            "type": "string",
            "description": "Paze Client Profile ID"
          },
          "transaction_currency_code": {
            "$ref": "#/components/schemas/Currency"
          },
          "transaction_amount": {
            "type": "string",
            "description": "The transaction amount",
            "example": "38.02"
          },
          "email_address": {
            "type": "string",
            "description": "Email Address",
            "example": "johntest@test.com",
            "nullable": true,
            "maxLength": 255
          }
        }
      },
      "PazeWalletData": {
        "type": "object",
        "required": [
          "complete_response"
        ],
        "properties": {
          "complete_response": {
            "type": "string"
          }
        }
      },
      "PeachpaymentsCardOnFileTransactionType": {
        "type": "string",
        "enum": [
          "one_off",
          "customer_initiated_transaction",
          "merchant_initiated_mandate",
          "merchant_initiated_transaction"
        ]
      },
      "PeachpaymentsData": {
        "type": "object",
        "properties": {
          "rrn": {
            "type": "string",
            "description": "A numeric reference number supplied by the system retaining the original source information and used to assist in locating that information or a copy thereof.",
            "nullable": true
          },
          "card_on_file_transaction_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PeachpaymentsCardOnFileTransactionType"
              }
            ],
            "nullable": true
          }
        }
      },
      "PenaltyDetail": {
        "type": "object",
        "description": "Represents the rules for applying discounts to a payment, such as a percentage discount or a fixed amount discount, along with any applicable grace periods.",
        "properties": {
          "value": {
            "type": "string",
            "description": "The numeric value (as a string to preserve decimal precision)",
            "example": "2.00",
            "nullable": true
          },
          "grace_period_days": {
            "type": "integer",
            "format": "int32",
            "description": "Grace period: Days after due date before this applies",
            "example": 1,
            "nullable": true,
            "minimum": 0
          }
        }
      },
      "PenaltyRules": {
        "type": "object",
        "description": "Represents the rules for applying discounts to a payment, such as a percentage discount or a fixed amount discount, along with any applicable grace periods.",
        "properties": {
          "fixed_penalty": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PenaltyDetail"
              }
            ],
            "nullable": true
          },
          "interest": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InterestDetail"
              }
            ],
            "nullable": true
          }
        }
      },
      "PhoneDetails": {
        "type": "object",
        "properties": {
          "number": {
            "type": "string",
            "description": "The contact number",
            "example": "9123456789",
            "nullable": true
          },
          "country_code": {
            "type": "string",
            "description": "The country code attached to the number",
            "example": "+1",
            "nullable": true
          }
        }
      },
      "PixAccountBankTransfer": {
        "type": "object",
        "required": [
          "bank_account_number"
        ],
        "properties": {
          "bank_name": {
            "type": "string",
            "description": "Bank name",
            "example": "Deutsche Bank",
            "nullable": true
          },
          "bank_branch": {
            "type": "string",
            "description": "Bank branch",
            "example": "3707",
            "nullable": true
          },
          "bank_account_number": {
            "type": "string",
            "description": "Bank account number is an unique identifier assigned by a bank to a customer.",
            "example": "000123456"
          },
          "tax_id": {
            "type": "string",
            "description": "Individual taxpayer identification number",
            "example": "000123456",
            "nullable": true
          },
          "ispb": {
            "type": "string",
            "description": "ispb code is a unique identifier assigned by Brazilian Central Bank to identify the financial institution of the recipient's bank account in Pix transactions.",
            "example": "60701190",
            "nullable": true
          }
        }
      },
      "PixAdditionalDetails": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "immediate"
            ],
            "properties": {
              "immediate": {
                "$ref": "#/components/schemas/ImmediateExpirationTime"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "scheduled"
            ],
            "properties": {
              "scheduled": {
                "$ref": "#/components/schemas/ScheduledExpirationTime"
              }
            }
          }
        ]
      },
      "PixAutomaticoAdditionalDetails": {
        "oneOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PixAutomaticoPushData"
              },
              {
                "type": "object",
                "required": [
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "pix_automatico_push"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PixAutomaticoQrData"
              },
              {
                "type": "object",
                "required": [
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "pix_automatico_qr"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PixAutomaticoMitData"
              },
              {
                "type": "object",
                "required": [
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "pix_automatico_mit"
                    ]
                  }
                }
              }
            ]
          }
        ],
        "description": "Represents the specific data for Santander Pix Automatico (recurring PIX payments)\nSplit into CIT (Customer Initiated Transaction) and MIT (Merchant Initiated Transaction) variants",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "PixAutomaticoMitData": {
        "type": "object",
        "description": "Data for Santander Pix Automatico MIT (Merchant Initiated Transaction) - used during recurring charge creation",
        "properties": {
          "receiver_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SantanderPixAutomaticoReceiverDetails"
              }
            ],
            "nullable": true
          },
          "mandate_execution_date": {
            "type": "string",
            "description": "Execution date for the mandate charge (maps to data_de_vencimento). Format: YYYY-MM-DD.\nIf not provided, defaults to current date + 1 day.",
            "example": "2026-12-31",
            "nullable": true
          },
          "auto_adjust_date": {
            "type": "boolean",
            "description": "Whether to automatically adjust the due date to the next business day if it falls on a non-business day.\nMaps to ajuste_dia_util in Santander API. Defaults to true if not provided.",
            "example": true,
            "nullable": true
          }
        }
      },
      "PixAutomaticoPushAdditionalData": {
        "type": "object",
        "properties": {
          "account_number": {
            "type": "string",
            "description": "Account number for Pix Automatico Push payment method",
            "example": "550689",
            "nullable": true
          },
          "branch_code": {
            "type": "string",
            "description": "Branch code for Pix Automatico Push payment method",
            "example": "2569",
            "nullable": true
          },
          "bank_identifier": {
            "type": "string",
            "description": "Bank identifier for Pix Automatico Push payment method",
            "example": "91193552",
            "nullable": true
          }
        }
      },
      "PixAutomaticoPushData": {
        "type": "object",
        "description": "Data for PixAutomaticoPush Payment Method Type CIT (Customer Initiated Transaction) - used during mandate setup",
        "required": [
          "time"
        ],
        "properties": {
          "time": {
            "type": "integer",
            "format": "int32",
            "description": "Time in seconds until which the push notification is valid",
            "example": 3600,
            "minimum": 0
          },
          "retry_policy": {
            "type": "boolean",
            "description": "Enable retry policy for failed payments (maps to PERMITE_3R_7D if true)",
            "example": true,
            "nullable": true
          },
          "mandate_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SantanderMandateDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "PixAutomaticoQrData": {
        "type": "object",
        "description": "Data for PixAutomaticoQr Payment Method Type CIT (Customer Initiated Transaction) - used during mandate setup + non 0$ mandate setup",
        "properties": {
          "retry_policy": {
            "type": "boolean",
            "description": "Enable retry policy for failed payments (maps to PERMITE_3R_7D if true)",
            "example": true,
            "nullable": true
          },
          "mandate_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SantanderMandateDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "PixBankTransfer": {
        "type": "object",
        "required": [
          "bank_account_number",
          "pix_key",
          "emv"
        ],
        "properties": {
          "bank_name": {
            "type": "string",
            "description": "Bank name",
            "example": "Deutsche Bank",
            "nullable": true
          },
          "bank_branch": {
            "type": "string",
            "description": "Bank branch",
            "example": "3707",
            "nullable": true
          },
          "bank_account_number": {
            "type": "string",
            "description": "Bank account number is an unique identifier assigned by a bank to a customer.",
            "example": "000123456"
          },
          "pix_key": {
            "type": "string",
            "description": "Unique key for pix customer",
            "example": "000123456"
          },
          "tax_id": {
            "type": "string",
            "description": "Individual taxpayer identification number",
            "example": "000123456",
            "nullable": true
          },
          "emv": {
            "type": "string",
            "description": "String formatted QR code for pix payout",
            "example": "00020126580014br.gov.bcb.pix0114000123456785204000053039865802BR5925John Doe6009Sao Paulo61080540900062070503***63041D3D"
          },
          "ispb": {
            "type": "string",
            "description": "ispb code is a unique identifier assigned by Brazilian Central Bank to identify the financial institution of the recipient's bank account in Pix transactions.",
            "example": "60701190",
            "nullable": true
          }
        }
      },
      "PixBankTransferAdditionalData": {
        "type": "object",
        "properties": {
          "pix_key": {
            "type": "string",
            "description": "Partially masked unique key for pix transfer",
            "example": "a1f4102e ****** 6fa48899c1d1",
            "nullable": true
          },
          "cpf": {
            "type": "string",
            "description": "Partially masked CPF - CPF is a Brazilian tax identification number",
            "example": "**** 124689",
            "nullable": true
          },
          "cnpj": {
            "type": "string",
            "description": "Partially masked CNPJ - CNPJ is a Brazilian company tax identification number",
            "example": "**** 417312",
            "nullable": true
          },
          "source_bank_account_id": {
            "type": "string",
            "description": "Partially masked source bank account number",
            "example": "********-****-4073-****-9fa964d08bc5",
            "nullable": true
          },
          "destination_bank_account_id": {
            "type": "string",
            "description": "Partially masked destination bank account number _Deprecated: Will be removed in next stable release._",
            "deprecated": true,
            "example": "********-****-460b-****-f23b4e71c97b",
            "nullable": true
          },
          "expiry_date": {
            "type": "string",
            "description": "The expiration date and time for the Pix QR code in ISO 8601 format",
            "example": "2025-09-10T10:11:12Z",
            "nullable": true
          }
        }
      },
      "PixEmvBankTransfer": {
        "type": "object",
        "required": [
          "emv"
        ],
        "properties": {
          "emv": {
            "type": "string",
            "description": "String formatted QR code for pix payout",
            "example": "00020126580014br.gov.bcb.pix0114000123456785204000053039865802BR5925John Doe6009Sao Paulo61080540900062070503***63041D3D"
          }
        }
      },
      "PixKey": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "cpf"
                ]
              },
              "value": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "cnpj"
                ]
              },
              "value": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "email"
                ]
              },
              "value": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "phone"
                ]
              },
              "value": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "evp_token"
                ]
              },
              "value": {
                "type": "string"
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "PixKeyBankTransfer": {
        "type": "object",
        "required": [
          "pix_key"
        ],
        "properties": {
          "pix_key": {
            "type": "string",
            "description": "Unique key for pix customer",
            "example": "000123456"
          }
        }
      },
      "PollConfig": {
        "type": "object",
        "required": [
          "delay_in_secs",
          "frequency"
        ],
        "properties": {
          "delay_in_secs": {
            "type": "integer",
            "format": "int32",
            "description": "Interval of the poll",
            "minimum": 0
          },
          "frequency": {
            "type": "integer",
            "format": "int32",
            "description": "Frequency of the poll",
            "minimum": 0
          }
        }
      },
      "PollConfigResponse": {
        "type": "object",
        "required": [
          "poll_id",
          "delay_in_secs",
          "frequency"
        ],
        "properties": {
          "poll_id": {
            "type": "string",
            "description": "Poll Id"
          },
          "delay_in_secs": {
            "type": "integer",
            "format": "int32",
            "description": "Interval of the poll"
          },
          "frequency": {
            "type": "integer",
            "format": "int32",
            "description": "Frequency of the poll"
          }
        }
      },
      "PollResponse": {
        "type": "object",
        "required": [
          "poll_id",
          "status"
        ],
        "properties": {
          "poll_id": {
            "type": "string",
            "description": "The poll id"
          },
          "status": {
            "$ref": "#/components/schemas/PollStatus"
          }
        }
      },
      "PollStatus": {
        "type": "string",
        "enum": [
          "pending",
          "completed",
          "not_found"
        ]
      },
      "PostCaptureVoidResponse": {
        "type": "object",
        "description": "Additional metadata for payment intent state containing refunded and disputed amounts",
        "required": [
          "status",
          "updated_at"
        ],
        "properties": {
          "status": {
            "$ref": "#/components/schemas/PostCaptureVoidStatus"
          },
          "connector_reference_id": {
            "type": "string",
            "description": "Connector reference id for post capture void",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Description or message related to the post capture void",
            "nullable": true
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the post capture void was last updated"
          }
        }
      },
      "PostCaptureVoidStatus": {
        "type": "string",
        "description": "The status of a post-capture void operation",
        "enum": [
          "succeeded",
          "pending",
          "failed"
        ]
      },
      "PresenceOfCustomerDuringPayment": {
        "type": "string",
        "description": "Set to `present` to indicate that the customer is in your checkout flow during this payment, and therefore is able to authenticate. This parameter should be `absent` when merchant's doing merchant initiated payments and customer is not present while doing the payment.",
        "enum": [
          "present",
          "absent"
        ]
      },
      "PrimaryBusinessDetails": {
        "type": "object",
        "required": [
          "country",
          "business"
        ],
        "properties": {
          "country": {
            "$ref": "#/components/schemas/CountryAlpha2"
          },
          "business": {
            "type": "string",
            "example": "food"
          }
        },
        "additionalProperties": false
      },
      "ProcessTrackerStatus": {
        "type": "string",
        "enum": [
          "processing",
          "new",
          "pending",
          "process_started",
          "finish",
          "review"
        ]
      },
      "ProcessorPaymentToken": {
        "type": "object",
        "description": "Processor payment token for MIT payments where payment_method_data is not available",
        "required": [
          "processor_payment_token"
        ],
        "properties": {
          "processor_payment_token": {
            "type": "string"
          },
          "merchant_connector_id": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ProductType": {
        "type": "string",
        "enum": [
          "physical",
          "digital",
          "travel",
          "ride",
          "event",
          "accommodation"
        ]
      },
      "ProfileCreate": {
        "type": "object",
        "required": [
          "profile_name"
        ],
        "properties": {
          "profile_name": {
            "type": "string",
            "description": "The name of profile",
            "maxLength": 64
          },
          "return_url": {
            "type": "string",
            "description": "The URL to redirect after the completion of the operation",
            "example": "https://www.example.com/success",
            "nullable": true,
            "maxLength": 255
          },
          "enable_payment_response_hash": {
            "type": "boolean",
            "description": "A boolean value to indicate if payment response hash needs to be enabled",
            "default": true,
            "example": true,
            "nullable": true
          },
          "payment_response_hash_key": {
            "type": "string",
            "description": "Refers to the hash key used for calculating the signature for webhooks and redirect response. If the value is not provided, a value is automatically generated.",
            "nullable": true
          },
          "redirect_to_merchant_with_http_post": {
            "type": "boolean",
            "description": "A boolean value to indicate if redirect to merchant with http post needs to be enabled",
            "default": false,
            "example": true,
            "nullable": true
          },
          "webhook_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookDetails"
              }
            ],
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "order_fulfillment_time": {
            "type": "integer",
            "format": "int32",
            "description": "Will be used to determine the time till which your payment will be active once the payment session starts",
            "example": 900,
            "nullable": true,
            "minimum": 0
          },
          "order_fulfillment_time_origin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderFulfillmentTimeOrigin"
              }
            ],
            "nullable": true
          },
          "applepay_verified_domains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Verified Apple Pay domains for a particular profile",
            "nullable": true
          },
          "session_expiry": {
            "type": "integer",
            "format": "int32",
            "description": "Client Secret Default expiry for all payments created under this profile",
            "example": 900,
            "nullable": true,
            "minimum": 0
          },
          "payment_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessPaymentLinkConfig"
              }
            ],
            "nullable": true
          },
          "authentication_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationConnectorDetails"
              }
            ],
            "nullable": true
          },
          "use_billing_as_payment_method_billing": {
            "type": "boolean",
            "description": "Whether to use the billing details passed when creating the intent as payment method billing",
            "nullable": true
          },
          "collect_shipping_details_from_wallet_connector_if_required": {
            "type": "boolean",
            "description": "A boolean value to indicate if customer shipping details needs to be collected from wallet\nconnector only if it is required field for connector (Eg. Apple Pay, Google Pay etc)",
            "default": false,
            "example": false,
            "nullable": true
          },
          "collect_billing_details_from_wallet_connector_if_required": {
            "type": "boolean",
            "description": "A boolean value to indicate if customer billing details needs to be collected from wallet\nconnector only if it is required field for connector (Eg. Apple Pay, Google Pay etc)",
            "default": false,
            "example": false,
            "nullable": true
          },
          "always_collect_shipping_details_from_wallet_connector": {
            "type": "boolean",
            "description": "A boolean value to indicate if customer shipping details needs to be collected from wallet\nconnector irrespective of connector required fields (Eg. Apple pay, Google pay etc)",
            "default": false,
            "example": false,
            "nullable": true
          },
          "always_collect_billing_details_from_wallet_connector": {
            "type": "boolean",
            "description": "A boolean value to indicate if customer billing details needs to be collected from wallet\nconnector irrespective of connector required fields (Eg. Apple pay, Google pay etc)",
            "default": false,
            "example": false,
            "nullable": true
          },
          "is_connector_agnostic_mit_enabled": {
            "type": "boolean",
            "description": "Indicates if the MIT (merchant initiated transaction) payments can be made connector\nagnostic, i.e., MITs may be processed through different connector than CIT (customer\ninitiated transaction) based on the routing rules.\nIf set to `false`, MIT will go through the same connector as the CIT.",
            "nullable": true
          },
          "payout_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessPayoutLinkConfig"
              }
            ],
            "nullable": true
          },
          "outgoing_webhook_custom_http_headers": {
            "type": "object",
            "description": "These key-value pairs are sent as additional custom headers in the outgoing webhook request. It is recommended not to use more than four key-value pairs.",
            "nullable": true
          },
          "tax_connector_id": {
            "type": "string",
            "description": "Merchant Connector id to be stored for tax_calculator connector",
            "nullable": true
          },
          "is_tax_connector_enabled": {
            "type": "boolean",
            "description": "Indicates if tax_calculator connector is enabled or not.\nIf set to `true` tax_connector_id will be checked."
          },
          "is_network_tokenization_enabled": {
            "type": "boolean",
            "description": "Indicates if network tokenization is enabled or not."
          },
          "is_click_to_pay_enabled": {
            "type": "boolean",
            "description": "Indicates if click to pay is enabled or not.",
            "default": false,
            "example": false
          },
          "authentication_product_ids": {
            "type": "object",
            "description": "Product authentication ids",
            "nullable": true
          },
          "card_testing_guard_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTestingGuardConfig"
              }
            ],
            "nullable": true
          },
          "is_clear_pan_retries_enabled": {
            "type": "boolean",
            "description": "Indicates if clear pan retries is enabled or not.",
            "nullable": true
          },
          "is_debit_routing_enabled": {
            "type": "boolean",
            "description": "Indicates if debit routing is enabled or not",
            "nullable": true
          },
          "merchant_business_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "is_iframe_redirection_enabled": {
            "type": "boolean",
            "description": "Indicates if the redirection has to open in the iframe",
            "example": false,
            "nullable": true
          },
          "is_external_vault_enabled": {
            "type": "boolean",
            "description": "Indicates if external vault is enabled or not.",
            "nullable": true
          },
          "external_vault_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalVaultConnectorDetails"
              }
            ],
            "nullable": true
          },
          "merchant_category_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantCategoryCode"
              }
            ],
            "nullable": true
          },
          "merchant_country_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantCountryCode"
              }
            ],
            "nullable": true
          },
          "split_txns_enabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SplitTxnsEnabled"
              }
            ],
            "default": "skip",
            "nullable": true
          },
          "billing_processor_id": {
            "type": "string",
            "description": "Merchant Connector id to be stored for billing_processor connector",
            "nullable": true
          },
          "surcharge_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SurchargeConnectorDetails"
              }
            ],
            "nullable": true
          },
          "is_l2_l3_enabled": {
            "type": "boolean",
            "description": "Flag to enable Level 2 and Level 3 processing data for card transactions",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProfileDefaultRoutingConfig": {
        "type": "object",
        "description": "Default routing configuration associated with a business profile.\n\nThis represents the fallback routing connectors configured\nat the profile level.",
        "required": [
          "profile_id",
          "connectors"
        ],
        "properties": {
          "profile_id": {
            "type": "string",
            "description": "Unique identifier of the business profile.\n\nExample:\n```json\n\"profile_123\"\n```",
            "example": "profile_123"
          },
          "connectors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutableConnectorChoice"
            },
            "description": "List of connectors configured as default for this profile.\n\nExample:\n```json\n[\n{\n\"connector\": \"stripe\",\n\"merchant_connector_id\": \"mca_ExbsYfO1xFErhNtwY1PX\"\n}\n]\n```"
          }
        }
      },
      "ProfileResponse": {
        "type": "object",
        "required": [
          "merchant_id",
          "id",
          "profile_name",
          "enable_payment_response_hash",
          "redirect_to_merchant_with_http_post",
          "is_tax_connector_enabled",
          "is_network_tokenization_enabled",
          "is_click_to_pay_enabled",
          "is_clear_pan_retries_enabled",
          "split_txns_enabled"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The identifier for Merchant Account",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64
          },
          "id": {
            "type": "string",
            "description": "The identifier for profile. This must be used for creating merchant accounts, payments and payouts",
            "example": "pro_abcdefghijklmnopqrstuvwxyz",
            "maxLength": 64
          },
          "profile_name": {
            "type": "string",
            "description": "Name of the profile",
            "maxLength": 64
          },
          "return_url": {
            "type": "string",
            "description": "The URL to redirect after the completion of the operation",
            "example": "https://www.example.com/success",
            "nullable": true,
            "maxLength": 255
          },
          "enable_payment_response_hash": {
            "type": "boolean",
            "description": "A boolean value to indicate if payment response hash needs to be enabled",
            "default": true,
            "example": true
          },
          "payment_response_hash_key": {
            "type": "string",
            "description": "Refers to the hash key used for calculating the signature for webhooks and redirect response. If the value is not provided, a value is automatically generated.",
            "nullable": true
          },
          "redirect_to_merchant_with_http_post": {
            "type": "boolean",
            "description": "A boolean value to indicate if redirect to merchant with http post needs to be enabled",
            "default": false,
            "example": true
          },
          "webhook_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookDetails"
              }
            ],
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "applepay_verified_domains": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Verified Apple Pay domains for a particular profile",
            "nullable": true
          },
          "session_expiry": {
            "type": "integer",
            "format": "int64",
            "description": "Client Secret Default expiry for all payments created under this profile",
            "example": 900,
            "nullable": true
          },
          "payment_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessPaymentLinkConfig"
              }
            ],
            "nullable": true
          },
          "authentication_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationConnectorDetails"
              }
            ],
            "nullable": true
          },
          "use_billing_as_payment_method_billing": {
            "type": "boolean",
            "nullable": true
          },
          "extended_card_info_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExtendedCardInfoConfig"
              }
            ],
            "nullable": true
          },
          "collect_shipping_details_from_wallet_connector_if_required": {
            "type": "boolean",
            "description": "A boolean value to indicate if customer shipping details needs to be collected from wallet\nconnector only if it is required field for connector (Eg. Apple Pay, Google Pay etc)",
            "default": false,
            "example": false,
            "nullable": true
          },
          "collect_billing_details_from_wallet_connector_if_required": {
            "type": "boolean",
            "description": "A boolean value to indicate if customer billing details needs to be collected from wallet\nconnector only if it is required field for connector (Eg. Apple Pay, Google Pay etc)",
            "default": false,
            "example": false,
            "nullable": true
          },
          "always_collect_shipping_details_from_wallet_connector": {
            "type": "boolean",
            "description": "A boolean value to indicate if customer shipping details needs to be collected from wallet\nconnector irrespective of connector required fields (Eg. Apple pay, Google pay etc)",
            "default": false,
            "example": false,
            "nullable": true
          },
          "always_collect_billing_details_from_wallet_connector": {
            "type": "boolean",
            "description": "A boolean value to indicate if customer billing details needs to be collected from wallet\nconnector irrespective of connector required fields (Eg. Apple pay, Google pay etc)",
            "default": false,
            "example": false,
            "nullable": true
          },
          "is_connector_agnostic_mit_enabled": {
            "type": "boolean",
            "description": "Indicates if the MIT (merchant initiated transaction) payments can be made connector\nagnostic, i.e., MITs may be processed through different connector than CIT (customer\ninitiated transaction) based on the routing rules.\nIf set to `false`, MIT will go through the same connector as the CIT.",
            "nullable": true
          },
          "payout_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessPayoutLinkConfig"
              }
            ],
            "nullable": true
          },
          "outgoing_webhook_custom_http_headers": {
            "type": "object",
            "description": "These key-value pairs are sent as additional custom headers in the outgoing webhook request.",
            "nullable": true
          },
          "order_fulfillment_time": {
            "type": "integer",
            "format": "int32",
            "description": "Will be used to determine the time till which your payment will be active once the payment session starts",
            "example": 900,
            "nullable": true,
            "minimum": 0
          },
          "order_fulfillment_time_origin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderFulfillmentTimeOrigin"
              }
            ],
            "nullable": true
          },
          "tax_connector_id": {
            "type": "string",
            "description": "Merchant Connector id to be stored for tax_calculator connector",
            "nullable": true
          },
          "is_tax_connector_enabled": {
            "type": "boolean",
            "description": "Indicates if tax_calculator connector is enabled or not.\nIf set to `true` tax_connector_id will be checked."
          },
          "is_network_tokenization_enabled": {
            "type": "boolean",
            "description": "Indicates if network tokenization is enabled or not.",
            "default": false,
            "example": false
          },
          "should_collect_cvv_during_payment": {
            "type": "boolean",
            "description": "Indicates if CVV should be collected during payment or not.",
            "nullable": true
          },
          "is_click_to_pay_enabled": {
            "type": "boolean",
            "description": "Indicates if click to pay is enabled or not.",
            "default": false,
            "example": false
          },
          "authentication_product_ids": {
            "type": "object",
            "description": "Product authentication ids",
            "nullable": true
          },
          "card_testing_guard_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTestingGuardConfig"
              }
            ],
            "nullable": true
          },
          "is_clear_pan_retries_enabled": {
            "type": "boolean",
            "description": "Indicates if clear pan retries is enabled or not."
          },
          "is_debit_routing_enabled": {
            "type": "boolean",
            "description": "Indicates if debit routing is enabled or not",
            "nullable": true
          },
          "merchant_business_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "is_iframe_redirection_enabled": {
            "type": "boolean",
            "description": "Indicates if the redirection has to open in the iframe",
            "example": false,
            "nullable": true
          },
          "is_external_vault_enabled": {
            "type": "boolean",
            "description": "Indicates if external vault is enabled or not.",
            "nullable": true
          },
          "external_vault_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalVaultConnectorDetails"
              }
            ],
            "nullable": true
          },
          "merchant_category_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantCategoryCode"
              }
            ],
            "nullable": true
          },
          "merchant_country_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantCountryCode"
              }
            ],
            "nullable": true
          },
          "split_txns_enabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SplitTxnsEnabled"
              }
            ],
            "default": "skip"
          },
          "revenue_recovery_retry_algorithm_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RevenueRecoveryAlgorithmType"
              }
            ],
            "nullable": true
          },
          "billing_processor_id": {
            "type": "string",
            "description": "Merchant Connector id to be stored for billing_processor connector",
            "nullable": true
          },
          "surcharge_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SurchargeConnectorDetails"
              }
            ],
            "nullable": true
          },
          "is_l2_l3_enabled": {
            "type": "boolean",
            "description": "Flag to enable Level 2 and Level 3 processing data for card transactions",
            "nullable": true
          }
        }
      },
      "ProgramConnectorSelection": {
        "type": "object",
        "description": "The program, having a default connector selection and\na bunch of rules. Also can hold arbitrary metadata.",
        "required": [
          "defaultSelection",
          "rules",
          "metadata"
        ],
        "properties": {
          "defaultSelection": {
            "$ref": "#/components/schemas/ConnectorSelection"
          },
          "rules": {
            "$ref": "#/components/schemas/RuleConnectorSelection"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {}
          }
        }
      },
      "ProgramThreeDsDecisionRule": {
        "type": "object",
        "required": [
          "defaultSelection",
          "rules",
          "metadata"
        ],
        "properties": {
          "defaultSelection": {
            "$ref": "#/components/schemas/ThreeDSDecisionRule"
          },
          "rules": {
            "$ref": "#/components/schemas/RuleThreeDsDecisionRule"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {}
          }
        }
      },
      "ProtestRules": {
        "type": "object",
        "required": [
          "protest_type",
          "days_after_due_date"
        ],
        "properties": {
          "protest_type": {
            "$ref": "#/components/schemas/ProtestType"
          },
          "days_after_due_date": {
            "type": "integer",
            "format": "int32",
            "description": "Number of days after the due date to initiate the protest",
            "example": 30,
            "minimum": 0
          }
        }
      },
      "ProtestType": {
        "type": "string",
        "description": "Defines the type of protest for non-payment, such as whether the count is based on calendar days, business days, or if the protest logic is determined by a pre-signed contract with the bank.",
        "enum": [
          "disabled",
          "calendar_days",
          "business_days",
          "contract_default"
        ]
      },
      "ProxyCardData": {
        "type": "object",
        "required": [
          "card_number",
          "card_exp_month",
          "card_exp_year",
          "card_holder_name",
          "card_cvc",
          "bin_number",
          "last_four"
        ],
        "properties": {
          "card_number": {
            "type": "string",
            "description": "The token which refers to the card number",
            "example": "token_card_number"
          },
          "card_exp_month": {
            "type": "string",
            "description": "The card's expiry month",
            "example": "24"
          },
          "card_exp_year": {
            "type": "string",
            "description": "The card's expiry year",
            "example": "24"
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test"
          },
          "card_cvc": {
            "type": "string",
            "description": "The CVC number for the card",
            "example": "242"
          },
          "card_issuer": {
            "type": "string",
            "description": "The name of the issuer of card",
            "example": "chase",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "example": "CREDIT",
            "nullable": true
          },
          "card_issuing_country": {
            "type": "string",
            "example": "INDIA",
            "nullable": true
          },
          "bank_code": {
            "type": "string",
            "example": "JP_AMEX",
            "nullable": true
          },
          "nick_name": {
            "type": "string",
            "description": "The card holder's nick name",
            "example": "John Test",
            "nullable": true
          },
          "bin_number": {
            "type": "string",
            "description": "The first six digit of the card number",
            "example": "424242"
          },
          "last_four": {
            "type": "string",
            "description": "The last four digit of the card number",
            "example": "4242"
          }
        }
      },
      "ProxyCardDetails": {
        "type": "object",
        "required": [
          "card_number",
          "card_exp_month",
          "card_exp_year",
          "card_holder_name",
          "card_cvc"
        ],
        "properties": {
          "card_number": {
            "type": "string",
            "description": "Tokenized Card Number",
            "example": "tok_sjfowhoejsldj"
          },
          "card_exp_month": {
            "type": "string",
            "description": "Card Expiry Month",
            "example": "10"
          },
          "card_exp_year": {
            "type": "string",
            "description": "Card Expiry Year",
            "example": "25"
          },
          "bin_number": {
            "type": "string",
            "description": "First Six Digit of Card Number",
            "nullable": true
          },
          "last_four": {
            "type": "string",
            "description": "Last Four Digit of Card Number",
            "nullable": true
          },
          "card_issuer": {
            "type": "string",
            "description": "Issuer Bank for Card",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "description": "Card Type",
            "nullable": true
          },
          "card_issuing_country": {
            "type": "string",
            "description": "Issuing Country of the Card",
            "nullable": true
          },
          "nick_name": {
            "type": "string",
            "description": "Card Holder's Nick Name",
            "example": "John Doe",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "description": "Card Holder Name",
            "example": "John Doe"
          },
          "card_cvc": {
            "type": "string",
            "description": "The CVC number for the card\nThis is optional in case the card needs to be vaulted",
            "example": "242"
          }
        }
      },
      "ProxyRequest": {
        "type": "object",
        "required": [
          "request_body",
          "destination_url",
          "headers",
          "method",
          "token",
          "token_type"
        ],
        "properties": {
          "request_body": {
            "description": "The request body that needs to be forwarded"
          },
          "destination_url": {
            "type": "string",
            "description": "The destination URL where the request needs to be forwarded",
            "example": "https://api.example.com/endpoint"
          },
          "headers": {
            "type": "object",
            "description": "The headers that need to be forwarded"
          },
          "method": {
            "$ref": "#/components/schemas/Method"
          },
          "token": {
            "type": "string",
            "description": "The vault token that is used to fetch sensitive data from the vault"
          },
          "token_type": {
            "$ref": "#/components/schemas/TokenType"
          }
        }
      },
      "ProxyResponse": {
        "type": "object",
        "required": [
          "response",
          "status_code",
          "response_headers"
        ],
        "properties": {
          "response": {
            "description": "The response received from the destination"
          },
          "status_code": {
            "type": "integer",
            "format": "int32",
            "description": "The status code of the response",
            "minimum": 0
          },
          "response_headers": {
            "type": "object",
            "description": "The headers of the response"
          }
        }
      },
      "PspTokenization": {
        "type": "object",
        "description": "The Payment Service Provider Configuration for payment methods that are created using the payment method session",
        "required": [
          "tokenization_type",
          "connector_id"
        ],
        "properties": {
          "tokenization_type": {
            "$ref": "#/components/schemas/TokenizationType"
          },
          "connector_id": {
            "type": "string",
            "description": "The merchant connector id to be used for tokenization",
            "example": "mca_28a7367sad8239s67"
          }
        }
      },
      "RawCardWithNTDetails": {
        "type": "object",
        "required": [
          "card_details",
          "network_token_details"
        ],
        "properties": {
          "card_details": {
            "$ref": "#/components/schemas/CardDetail"
          },
          "network_token_details": {
            "$ref": "#/components/schemas/CardDetail"
          }
        }
      },
      "RawPaymentMethodData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "card"
            ],
            "properties": {
              "card": {
                "$ref": "#/components/schemas/CardDetail"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "card_with_n_t"
            ],
            "properties": {
              "card_with_n_t": {
                "$ref": "#/components/schemas/RawCardWithNTDetails"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank_debit"
            ],
            "properties": {
              "bank_debit": {
                "$ref": "#/components/schemas/BankDebitDetail"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "proxy_card"
            ],
            "properties": {
              "proxy_card": {
                "$ref": "#/components/schemas/RawProxyCardDataResponse"
              }
            }
          }
        ]
      },
      "RawProxyCardDataResponse": {
        "type": "object",
        "required": [
          "card_number"
        ],
        "properties": {
          "card_number": {
            "type": "string",
            "example": "4111111145551142"
          },
          "card_exp_year": {
            "type": "string",
            "example": "25",
            "nullable": true
          },
          "card_exp_month": {
            "type": "string",
            "example": "10",
            "nullable": true
          }
        }
      },
      "RealTimePaymentData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "fps"
            ],
            "properties": {
              "fps": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "duit_now"
            ],
            "properties": {
              "duit_now": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "prompt_pay"
            ],
            "properties": {
              "prompt_pay": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "viet_qr"
            ],
            "properties": {
              "viet_qr": {
                "type": "object"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "qris"
            ],
            "properties": {
              "qris": {
                "type": "object"
              }
            }
          }
        ]
      },
      "RealTimePaymentDataResponse": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/RealTimePaymentData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ]
      },
      "ReceiverDetails": {
        "type": "object",
        "required": [
          "amount_received"
        ],
        "properties": {
          "amount_received": {
            "type": "integer",
            "format": "int64",
            "description": "The amount received by receiver"
          },
          "amount_charged": {
            "type": "integer",
            "format": "int64",
            "description": "The amount charged by ACH",
            "nullable": true
          },
          "amount_remaining": {
            "type": "integer",
            "format": "int64",
            "description": "The amount remaining to be sent via ACH",
            "nullable": true
          }
        }
      },
      "ReconStatus": {
        "type": "string",
        "enum": [
          "not_requested",
          "requested",
          "active",
          "disabled"
        ]
      },
      "RecordAttemptErrorDetails": {
        "type": "object",
        "description": "Error details for the payment",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "error code sent by billing connector."
          },
          "message": {
            "type": "string",
            "description": "error message sent by billing connector."
          },
          "network_advice_code": {
            "type": "string",
            "description": "This field can be returned for both approved and refused Mastercard payments.\nThis code provides additional information about the type of transaction or the reason why the payment failed.\nIf the payment failed, the network advice code gives guidance on if and when you can retry the payment.",
            "nullable": true
          },
          "network_decline_code": {
            "type": "string",
            "description": "For card errors resulting from a card issuer decline, a brand specific 2, 3, or 4 digit code which indicates the reason the authorization failed.",
            "nullable": true
          },
          "network_error_message": {
            "type": "string",
            "description": "A string indicating how to proceed with an network error if payment gateway provide one. This is used to understand the network error code better.",
            "nullable": true
          }
        }
      },
      "RecurringDetails": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "mandate_id"
                ]
              },
              "data": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "payment_method_id"
                ]
              },
              "data": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "processor_payment_token"
                ]
              },
              "data": {
                "$ref": "#/components/schemas/ProcessorPaymentToken"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "network_transaction_id_and_card_details"
                ]
              },
              "data": {
                "$ref": "#/components/schemas/NetworkTransactionIdAndCardDetails"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "network_transaction_id_and_network_token_details"
                ]
              },
              "data": {
                "$ref": "#/components/schemas/NetworkTransactionIdAndNetworkTokenDetails"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "network_transaction_id_and_decrypted_wallet_token_details"
                ]
              },
              "data": {
                "$ref": "#/components/schemas/NetworkTransactionIdAndDecryptedWalletTokenDetails"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "card_with_limited_data"
                ]
              },
              "data": {
                "$ref": "#/components/schemas/CardWithLimitedData"
              }
            }
          }
        ],
        "description": "Details required for recurring payment",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "RecurringPaymentIntervalUnit": {
        "type": "string",
        "enum": [
          "year",
          "month",
          "day",
          "hour",
          "minute"
        ]
      },
      "RedirectResponse": {
        "type": "object",
        "properties": {
          "param": {
            "type": "string",
            "nullable": true
          },
          "json_payload": {
            "type": "object",
            "nullable": true
          }
        }
      },
      "RefundErrorDetails": {
        "type": "object",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "RefundListRequest": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/TimeRange"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "required": [
              "refund_id"
            ],
            "properties": {
              "payment_id": {
                "type": "string",
                "description": "The identifier for the payment",
                "nullable": true
              },
              "refund_id": {
                "type": "string",
                "description": "The identifier for the refund"
              },
              "limit": {
                "type": "integer",
                "format": "int64",
                "description": "Limit on the number of objects to return",
                "nullable": true
              },
              "offset": {
                "type": "integer",
                "format": "int64",
                "description": "The starting point within a list of objects",
                "nullable": true
              },
              "amount_filter": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AmountFilter"
                  }
                ],
                "nullable": true
              },
              "connector": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "The list of connectors to filter refunds list",
                "nullable": true
              },
              "connector_id_list": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "The list of merchant connector ids to filter the refunds list for selected label",
                "nullable": true
              },
              "currency": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Currency"
                },
                "description": "The list of currencies to filter refunds list",
                "nullable": true
              },
              "refund_status": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RefundStatus"
                },
                "description": "The list of refund statuses to filter refunds list",
                "nullable": true
              }
            }
          }
        ]
      },
      "RefundListResponse": {
        "type": "object",
        "required": [
          "count",
          "total_count",
          "data"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "description": "The number of refunds included in the list",
            "minimum": 0
          },
          "total_count": {
            "type": "integer",
            "format": "int64",
            "description": "The total number of refunds in the list"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RefundResponse"
            },
            "description": "The List of refund response object"
          }
        }
      },
      "RefundMetadataUpdateRequest": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "description": "An arbitrary string attached to the object. Often useful for displaying to users and your customer support executive",
            "example": "Customer returned the product",
            "nullable": true,
            "maxLength": 255
          },
          "metadata": {
            "type": "object",
            "description": "You can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RefundResponse": {
        "type": "object",
        "required": [
          "id",
          "payment_id",
          "amount",
          "currency",
          "status",
          "created_at",
          "updated_at",
          "connector",
          "profile_id",
          "merchant_connector_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Global Refund Id for the refund"
          },
          "payment_id": {
            "type": "string",
            "description": "The payment id against which refund is initiated"
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "Unique Identifier for the Refund. This is to ensure idempotency for multiple partial refunds initiated against the same payment.",
            "example": "ref_mbabizu24mvu3mela5njyhpit4",
            "nullable": true,
            "maxLength": 30,
            "minLength": 30
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The refund amount",
            "example": 6540,
            "minimum": 100
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "status": {
            "$ref": "#/components/schemas/RefundStatus"
          },
          "reason": {
            "type": "string",
            "description": "An arbitrary string attached to the object",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object",
            "nullable": true
          },
          "error_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RefundErrorDetails"
              }
            ],
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp at which refund is created"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp at which refund is updated"
          },
          "connector": {
            "$ref": "#/components/schemas/Connector"
          },
          "profile_id": {
            "type": "string",
            "description": "The id of business profile for this refund"
          },
          "merchant_connector_id": {
            "type": "string",
            "description": "The merchant_connector_id of the processor through which this payment went through"
          },
          "connector_refund_reference_id": {
            "type": "string",
            "description": "The reference id of the connector for the refund",
            "nullable": true
          },
          "raw_connector_response": {
            "type": "string",
            "description": "Contains raw connector response",
            "nullable": true
          }
        }
      },
      "RefundStatus": {
        "type": "string",
        "description": "The status for refunds",
        "enum": [
          "succeeded",
          "failed",
          "pending",
          "review"
        ]
      },
      "RefundType": {
        "type": "string",
        "description": "To indicate whether the refund needs to be instant or scheduled",
        "enum": [
          "scheduled",
          "instant"
        ]
      },
      "RefundsCreateRequest": {
        "type": "object",
        "required": [
          "payment_id",
          "merchant_reference_id"
        ],
        "properties": {
          "payment_id": {
            "type": "string",
            "description": "The payment id against which refund is initiated",
            "example": "pay_mbabizu24mvu3mela5njyhpit4",
            "maxLength": 30,
            "minLength": 30
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "Unique Identifier for the Refund given by the Merchant.",
            "example": "ref_mbabizu24mvu3mela5njyhpit4",
            "maxLength": 64,
            "minLength": 1
          },
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 255
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "Total amount for which the refund is to be initiated. Amount for the payment in lowest denomination of the currency. (i.e) in cents for USD denomination, in paisa for INR denomination etc., If not provided, this will default to the amount_captured of the payment",
            "example": 6540,
            "nullable": true,
            "minimum": 100
          },
          "reason": {
            "type": "string",
            "description": "Reason for the refund. Often useful for displaying to users and your customer support executive.",
            "example": "Customer returned the product",
            "nullable": true,
            "maxLength": 255
          },
          "refund_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RefundType"
              }
            ],
            "default": "Instant",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorAuthDetails"
              }
            ],
            "nullable": true
          },
          "return_raw_connector_response": {
            "type": "boolean",
            "description": "If true, returns stringified connector raw response body",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RequestIncrementalAuthorization": {
        "type": "string",
        "enum": [
          "true",
          "false",
          "default"
        ]
      },
      "RequestPaymentMethodTypes": {
        "type": "object",
        "required": [
          "payment_method_type"
        ],
        "properties": {
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethodType"
          },
          "payment_experience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentExperience"
              }
            ],
            "nullable": true
          },
          "card_networks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardNetwork"
            },
            "nullable": true
          },
          "accepted_currencies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AcceptedCurrencies"
              }
            ],
            "nullable": true
          },
          "accepted_countries": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AcceptedCountries"
              }
            ],
            "nullable": true
          },
          "minimum_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "maximum_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "recurring_enabled": {
            "type": "boolean",
            "description": "Indicates whether the payment method supports recurring payments. Optional.",
            "example": false,
            "nullable": true
          },
          "installment_payment_enabled": {
            "type": "boolean",
            "description": "Indicates whether the payment method is eligible for installment payments (e.g., EMI, BNPL). Optional.",
            "example": true,
            "nullable": true
          }
        }
      },
      "RequestSurchargeDetails": {
        "type": "object",
        "description": "Details of surcharge applied on this payment, if applicable",
        "required": [
          "surcharge_amount"
        ],
        "properties": {
          "surcharge_amount": {
            "type": "integer",
            "format": "int64",
            "example": 6540
          },
          "tax_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          }
        }
      },
      "RequiredFieldInfo": {
        "type": "object",
        "description": "Required fields info used while listing the payment_method_data",
        "required": [
          "required_field",
          "display_name",
          "field_type"
        ],
        "properties": {
          "required_field": {
            "type": "string",
            "description": "Required field for a payment_method through a payment_method_type"
          },
          "display_name": {
            "type": "string",
            "description": "Display name of the required field in the front-end"
          },
          "field_type": {
            "$ref": "#/components/schemas/FieldType"
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ResourceId": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "customer"
            ],
            "properties": {
              "customer": {
                "type": "string"
              }
            }
          }
        ]
      },
      "ResponsePaymentMethodTypes": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodSubtypeSpecificData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "required": [
              "payment_method_type",
              "payment_method_subtype",
              "required_fields"
            ],
            "properties": {
              "payment_method_type": {
                "$ref": "#/components/schemas/PaymentMethod"
              },
              "payment_method_subtype": {
                "$ref": "#/components/schemas/PaymentMethodType"
              },
              "required_fields": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RequiredFieldInfo"
                },
                "description": "Required fields for the payment_method_type.\nThis is the union of all the required fields for the payment method type enabled in all the connectors."
              }
            }
          }
        ]
      },
      "ResponsePaymentMethodTypesForPayments": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodSubtypeSpecificData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "required": [
              "payment_method_type",
              "payment_method_subtype",
              "required_fields"
            ],
            "properties": {
              "payment_method_type": {
                "$ref": "#/components/schemas/PaymentMethod"
              },
              "payment_method_subtype": {
                "$ref": "#/components/schemas/PaymentMethodType"
              },
              "payment_experience": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PaymentExperience"
                },
                "description": "The payment experience for the payment method",
                "nullable": true
              },
              "required_fields": {
                "$ref": "#/components/schemas/RequiredFieldInfo"
              },
              "surcharge_details": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SurchargeDetailsResponse"
                  }
                ],
                "nullable": true
              }
            }
          }
        ]
      },
      "ResponsePaymentMethodsEnabled": {
        "type": "object",
        "required": [
          "payment_method",
          "payment_method_types"
        ],
        "properties": {
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResponsePaymentMethodTypes"
            },
            "description": "The list of payment method types enabled for a connector account"
          }
        }
      },
      "RetrieveApiKeyResponse": {
        "type": "object",
        "description": "The response body for retrieving an API Key.",
        "required": [
          "key_id",
          "merchant_id",
          "name",
          "prefix",
          "created",
          "expiration"
        ],
        "properties": {
          "key_id": {
            "type": "string",
            "description": "The identifier for the API Key.",
            "example": "5hEEqkgJUyuxgSKGArHA4mWSnX",
            "maxLength": 64
          },
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account.",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64
          },
          "name": {
            "type": "string",
            "description": "The unique name for the API Key to help you identify it.",
            "example": "Sandbox integration key",
            "maxLength": 64
          },
          "description": {
            "type": "string",
            "description": "The description to provide more context about the API Key.",
            "example": "Key used by our developers to integrate with the sandbox environment",
            "nullable": true,
            "maxLength": 256
          },
          "prefix": {
            "type": "string",
            "description": "The first few characters of the plaintext API Key to help you identify it.",
            "maxLength": 64
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "The time at which the API Key was created.",
            "example": "2022-09-10T10:11:12Z"
          },
          "expiration": {
            "$ref": "#/components/schemas/ApiKeyExpiration"
          }
        }
      },
      "RetrievePaymentLinkRequest": {
        "type": "object",
        "properties": {
          "client_secret": {
            "type": "string",
            "description": "It's a token used for client side verification.",
            "nullable": true
          }
        }
      },
      "RetrievePaymentLinkResponse": {
        "type": "object",
        "required": [
          "payment_link_id",
          "merchant_id",
          "link_to_pay",
          "amount",
          "created_at",
          "status"
        ],
        "properties": {
          "payment_link_id": {
            "type": "string",
            "description": "Identifier for Payment Link"
          },
          "merchant_id": {
            "type": "string",
            "description": "Identifier for Merchant"
          },
          "processor_merchant_id": {
            "type": "string",
            "description": "Identifier for the processor merchant",
            "nullable": true
          },
          "link_to_pay": {
            "type": "string",
            "description": "Open payment link (without any security checks and listing SPMs)"
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payment amount. Amount for the payment in the lowest denomination of the currency",
            "example": 6540
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of Payment Link creation"
          },
          "expiry": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of Expiration for Payment Link",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Description for Payment Link",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/PaymentLinkStatus"
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ],
            "nullable": true
          },
          "secure_link": {
            "type": "string",
            "description": "Secure payment link (with security checks and listing saved payment methods)",
            "nullable": true
          }
        }
      },
      "RetryAction": {
        "type": "string",
        "description": "Denotes the retry action",
        "enum": [
          "manual_retry",
          "requeue"
        ]
      },
      "RetryFeatureData": {
        "type": "object",
        "description": "Represents the data associated with a retry feature in GSM.",
        "required": [
          "step_up_possible",
          "clear_pan_possible",
          "alternate_network_possible",
          "decision"
        ],
        "properties": {
          "step_up_possible": {
            "type": "boolean",
            "description": "indicates if step_up retry is possible"
          },
          "clear_pan_possible": {
            "type": "boolean",
            "description": "indicates if retry with pan is possible"
          },
          "alternate_network_possible": {
            "type": "boolean",
            "description": "indicates if retry with alternate network possible"
          },
          "decision": {
            "$ref": "#/components/schemas/GsmDecision"
          }
        }
      },
      "RevenueRecoveryAlgorithmType": {
        "type": "string",
        "enum": [
          "monitoring",
          "smart",
          "cascading"
        ]
      },
      "RevenueRecoveryMetadata": {
        "type": "object",
        "description": "Revenue recovery metadata for merchant connector account",
        "required": [
          "max_retry_count",
          "billing_connector_retry_threshold",
          "billing_account_reference"
        ],
        "properties": {
          "max_retry_count": {
            "type": "integer",
            "format": "int32",
            "description": "The maximum number of retries allowed for an invoice. This limit is set by the merchant for each `billing connector`. Once this limit is reached, no further retries will be attempted.",
            "example": "15",
            "minimum": 0
          },
          "billing_connector_retry_threshold": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of `billing connector` retries before revenue recovery can start executing retries.",
            "example": "10",
            "minimum": 0
          },
          "billing_account_reference": {
            "type": "integer",
            "format": "int32",
            "description": "Billing account reference id is payment gateway id at billing connector end.\nMerchants need to provide a mapping between these merchant connector account and the corresponding account reference IDs for each `billing connector`.",
            "example": "{ \"mca_vDSg5z6AxnisHq5dbJ6g\": \"stripe_123\", \"mca_vDSg5z6AumisHqh4x5m1\": \"adyen_123\" }",
            "minimum": 0
          }
        }
      },
      "RevenueRecoveryResponse": {
        "type": "object",
        "required": [
          "id",
          "status",
          "business_status"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "schedule_time_for_payment": {
            "type": "string",
            "format": "date-time",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "schedule_time_for_psync": {
            "type": "string",
            "format": "date-time",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ProcessTrackerStatus"
          },
          "business_status": {
            "type": "string"
          }
        }
      },
      "RevokeApiKeyResponse": {
        "type": "object",
        "description": "The response body for revoking an API Key.",
        "required": [
          "merchant_id",
          "key_id",
          "revoked"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account.",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64
          },
          "key_id": {
            "type": "string",
            "description": "The identifier for the API Key.",
            "example": "5hEEqkgJUyuxgSKGArHA4mWSnX",
            "maxLength": 64
          },
          "revoked": {
            "type": "boolean",
            "description": "Indicates whether the API key was revoked or not.",
            "example": "true"
          }
        }
      },
      "RevolutPayData": {
        "type": "object"
      },
      "RewardData": {
        "type": "object",
        "required": [
          "merchant_id"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The merchant ID with which we have to call the connector"
          }
        }
      },
      "RoutableChoiceKind": {
        "type": "string",
        "enum": [
          "OnlyConnector",
          "FullStruct"
        ]
      },
      "RoutableConnectorChoice": {
        "type": "object",
        "description": "Routable Connector chosen for a payment",
        "required": [
          "connector"
        ],
        "properties": {
          "connector": {
            "$ref": "#/components/schemas/RoutableConnectors"
          },
          "merchant_connector_id": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RoutableConnectors": {
        "type": "string",
        "description": "RoutableConnectors are the subset of Connectors that are eligible for payments routing",
        "enum": [
          "absa_sanlam",
          "authipay",
          "adyenplatform",
          "stripe_billing_test",
          "phonypay",
          "fauxpay",
          "pretendpay",
          "stripe_test",
          "adyen_test",
          "checkout_test",
          "paypal_test",
          "aci",
          "adyen",
          "affirm",
          "airwallex",
          "amazonpay",
          "archipel",
          "authorizedotnet",
          "bankofamerica",
          "barclaycard",
          "billwerk",
          "bitpay",
          "bambora",
          "blackhawknetwork",
          "bamboraapac",
          "bluesnap",
          "calida",
          "boku",
          "braintree",
          "breadpay",
          "cashtocode",
          "celero",
          "chargebee",
          "custombilling",
          "checkbook",
          "checkout",
          "coinbase",
          "coingate",
          "cryptopay",
          "cybersource",
          "cybersourcedecisionmanager",
          "datatrans",
          "deutschebank",
          "digitalvirgo",
          "dlocal",
          "dwolla",
          "ebanx",
          "elavon",
          "envoy",
          "facilitapay",
          "finix",
          "fiserv",
          "fiservemea",
          "fiservcommercehub",
          "fiuu",
          "flexiti",
          "forte",
          "getnet",
          "gigadat",
          "givepayments",
          "globalpay",
          "globepay",
          "gocardless",
          "hipay",
          "helcim",
          "hyperpg",
          "iatapay",
          "imerchantsolutions",
          "inespay",
          "interpayments",
          "itaubank",
          "jpmorgan",
          "klarna",
          "loonio",
          "mifinity",
          "mollie",
          "moneris",
          "multisafepay",
          "nexinets",
          "nexixpay",
          "nmi",
          "nomupay",
          "noon",
          "nordea",
          "novalnet",
          "nuvei",
          "opennode",
          "paybox",
          "payme",
          "payload",
          "payone",
          "paypal",
          "paysafe",
          "paystack",
          "paytm",
          "payconex",
          "payu",
          "peachpayments",
          "payjustnow",
          "payjustnowinstore",
          "phonepe",
          "placetopay",
          "powertranz",
          "prophetpay",
          "rapyd",
          "razorpay",
          "recurly",
          "redsys",
          "revolv3",
          "riskified",
          "santander",
          "shift4",
          "signifyd",
          "silverflow",
          "square",
          "stax",
          "stripe",
          "stripebilling",
          "tesouro",
          "truelayer",
          "trustly",
          "trustpay",
          "trustpayments",
          "tokenio",
          "tsys",
          "tsys_transit",
          "volt",
          "wellsfargo",
          "wise",
          "worldline",
          "worldpay",
          "worldpaymodular",
          "worldpayvantiv",
          "worldpayxml",
          "xendit",
          "zen",
          "zift",
          "plaid",
          "zsl",
          "juspaythreedsserver",
          "ctp_mastercard",
          "ctp_visa",
          "netcetera",
          "cardinal",
          "threedsecureio"
        ]
      },
      "RoutingAlgorithmId": {
        "type": "object",
        "required": [
          "routing_algorithm_id"
        ],
        "properties": {
          "routing_algorithm_id": {
            "type": "string"
          }
        }
      },
      "RoutingAlgorithmKind": {
        "type": "string",
        "enum": [
          "single",
          "priority",
          "volume_split",
          "advanced",
          "dynamic",
          "three_ds_decision_rule"
        ]
      },
      "RoutingAlgorithmWrapper": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/StaticRoutingAlgorithm"
          },
          {
            "$ref": "#/components/schemas/DynamicRoutingAlgorithm"
          }
        ]
      },
      "RoutingConfigRequest": {
        "type": "object",
        "required": [
          "name",
          "description",
          "algorithm",
          "profile_id"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "algorithm": {
            "$ref": "#/components/schemas/StaticRoutingAlgorithm"
          },
          "profile_id": {
            "type": "string"
          }
        }
      },
      "RoutingDictionary": {
        "type": "object",
        "description": "Routing dictionary for a merchant.\n\nContains all routing configurations created by the merchant,\nalong with the currently active routing configuration.",
        "required": [
          "merchant_id",
          "records"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "Unique merchant identifier.\n\nExample:\n```json\n\"merchant_789\"\n```",
            "example": "merchant_789"
          },
          "active_id": {
            "type": "string",
            "description": "Currently active routing configuration ID.\n\nExample:\n```json\n\"routing_abc123\"\n```",
            "example": "routing_abc123",
            "nullable": true
          },
          "records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutingDictionaryRecord"
            },
            "description": "List of all routing configuration records\nassociated with this merchant."
          }
        }
      },
      "RoutingDictionaryRecord": {
        "type": "object",
        "description": "Metadata record representing a stored routing configuration.\n\nUsed in routing dictionary listings.",
        "required": [
          "id",
          "profile_id",
          "name",
          "kind",
          "description",
          "created_at",
          "modified_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the routing configuration.\n\nExample:\n```json\n\"routing_abc123\"\n```",
            "example": "routing_abc123"
          },
          "profile_id": {
            "type": "string",
            "description": "Profile ID associated with this routing configuration.\n\nExample:\n```json\n\"profile_123\"\n```",
            "example": "profile_123"
          },
          "name": {
            "type": "string",
            "description": "Name of the routing configuration.\n\nExample:\n```json\n\"india_card_routing\"\n```",
            "example": "india_card_routing"
          },
          "kind": {
            "$ref": "#/components/schemas/RoutingAlgorithmKind"
          },
          "description": {
            "type": "string",
            "description": "Description of this routing configuration.\n\nExample:\n```json\n\"Volume split routing for domestic transactions\"\n```",
            "example": "Volume split routing for domestic transactions"
          },
          "created_at": {
            "type": "integer",
            "format": "int64",
            "description": "Creation timestamp (milliseconds since epoch).",
            "example": 1718000000000
          },
          "modified_at": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification timestamp (milliseconds since epoch).",
            "example": 1718050000000
          },
          "algorithm_for": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionType"
              }
            ],
            "nullable": true
          },
          "decision_engine_routing_id": {
            "type": "string",
            "description": "Associated Decision Engine routing identifier (if applicable).\n\nPresent when routing is linked to an external decision engine.\n\nExample:\n```json\n\"de_route_456\"\n```",
            "example": "de_route_456",
            "nullable": true
          }
        }
      },
      "RoutingKind": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/RoutingDictionary"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutingDictionaryRecord"
            }
          }
        ]
      },
      "RoutingRetrieveResponse": {
        "type": "object",
        "description": "Response returned when retrieving routing configuration\nfor a merchant account.",
        "properties": {
          "algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantRoutingAlgorithm"
              }
            ],
            "nullable": true
          }
        }
      },
      "RuleConnectorSelection": {
        "type": "object",
        "description": "Represents a rule\n\n```text\nrule_name: [stripe, adyen, checkout]\n{\npayment.method = card {\npayment.method.cardtype = (credit, debit) {\npayment.method.network = (amex, rupay, diners)\n}\n\npayment.method.cardtype = credit\n}\n}\n```",
        "required": [
          "name",
          "connectorSelection",
          "statements"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "connectorSelection": {
            "$ref": "#/components/schemas/ConnectorSelection"
          },
          "statements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IfStatement"
            }
          }
        }
      },
      "RuleThreeDsDecisionRule": {
        "type": "object",
        "required": [
          "name",
          "connectorSelection",
          "statements"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "connectorSelection": {
            "$ref": "#/components/schemas/ThreeDSDecision"
          },
          "statements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IfStatement"
            }
          }
        }
      },
      "SamsungPayAmountDetails": {
        "type": "object",
        "required": [
          "option",
          "currency_code",
          "total"
        ],
        "properties": {
          "option": {
            "$ref": "#/components/schemas/SamsungPayAmountFormat"
          },
          "currency_code": {
            "$ref": "#/components/schemas/Currency"
          },
          "total": {
            "type": "string",
            "description": "The total amount of the transaction",
            "example": "38.02"
          }
        }
      },
      "SamsungPayAmountFormat": {
        "type": "string",
        "enum": [
          "FORMAT_TOTAL_PRICE_ONLY",
          "FORMAT_TOTAL_ESTIMATED_AMOUNT"
        ]
      },
      "SamsungPayAppWalletData": {
        "type": "object",
        "required": [
          "3_d_s",
          "payment_card_brand",
          "payment_currency_type",
          "payment_last4_fpan"
        ],
        "properties": {
          "3_d_s": {
            "$ref": "#/components/schemas/SamsungPayTokenData"
          },
          "payment_card_brand": {
            "$ref": "#/components/schemas/SamsungPayCardBrand"
          },
          "payment_currency_type": {
            "type": "string",
            "description": "Currency type of the payment"
          },
          "payment_last4_dpan": {
            "type": "string",
            "description": "Last 4 digits of the device specific card number",
            "nullable": true
          },
          "payment_last4_fpan": {
            "type": "string",
            "description": "Last 4 digits of the card number"
          },
          "merchant_ref": {
            "type": "string",
            "description": "Merchant reference id that was passed in the session call request",
            "nullable": true
          },
          "method": {
            "type": "string",
            "description": "Specifies authentication method used",
            "nullable": true
          },
          "recurring_payment": {
            "type": "boolean",
            "description": "Value if credential is enabled for recurring payment",
            "nullable": true
          }
        }
      },
      "SamsungPayCardBrand": {
        "type": "string",
        "enum": [
          "visa",
          "mastercard",
          "amex",
          "discover",
          "unknown"
        ]
      },
      "SamsungPayMerchantPaymentInformation": {
        "type": "object",
        "required": [
          "name",
          "country_code"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Merchant name, this will be displayed on the Samsung Pay screen"
          },
          "url": {
            "type": "string",
            "description": "Merchant domain that process payments, required for web payments",
            "nullable": true
          },
          "country_code": {
            "$ref": "#/components/schemas/CountryAlpha2"
          }
        }
      },
      "SamsungPayProtocolType": {
        "type": "string",
        "enum": [
          "PROTOCOL3DS"
        ]
      },
      "SamsungPaySessionTokenResponse": {
        "type": "object",
        "required": [
          "version",
          "service_id",
          "order_number",
          "merchant",
          "amount",
          "protocol",
          "allowed_brands",
          "billing_address_required",
          "shipping_address_required"
        ],
        "properties": {
          "version": {
            "type": "string",
            "description": "Samsung Pay API version"
          },
          "service_id": {
            "type": "string",
            "description": "Samsung Pay service ID to which session call needs to be made"
          },
          "order_number": {
            "type": "string",
            "description": "Order number of the transaction"
          },
          "merchant": {
            "$ref": "#/components/schemas/SamsungPayMerchantPaymentInformation"
          },
          "amount": {
            "$ref": "#/components/schemas/SamsungPayAmountDetails"
          },
          "protocol": {
            "$ref": "#/components/schemas/SamsungPayProtocolType"
          },
          "allowed_brands": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of supported card brands"
          },
          "billing_address_required": {
            "type": "boolean",
            "description": "Is billing address required to be collected from wallet"
          },
          "shipping_address_required": {
            "type": "boolean",
            "description": "Is shipping address required to be collected from wallet"
          }
        }
      },
      "SamsungPayTokenData": {
        "type": "object",
        "required": [
          "version",
          "data"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "3DS type used by Samsung Pay",
            "nullable": true
          },
          "version": {
            "type": "string",
            "description": "3DS version used by Samsung Pay"
          },
          "data": {
            "type": "string",
            "description": "Samsung Pay encrypted payment credential data"
          }
        }
      },
      "SamsungPayWalletCredentials": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/SamsungPayWebWalletData"
          },
          {
            "$ref": "#/components/schemas/SamsungPayAppWalletData"
          }
        ]
      },
      "SamsungPayWalletData": {
        "type": "object",
        "required": [
          "payment_credential"
        ],
        "properties": {
          "payment_credential": {
            "$ref": "#/components/schemas/SamsungPayWalletCredentials"
          }
        }
      },
      "SamsungPayWebWalletData": {
        "type": "object",
        "required": [
          "card_brand",
          "card_last4digits",
          "3_d_s"
        ],
        "properties": {
          "method": {
            "type": "string",
            "description": "Specifies authentication method used",
            "nullable": true
          },
          "recurring_payment": {
            "type": "boolean",
            "description": "Value if credential is enabled for recurring payment",
            "nullable": true
          },
          "card_brand": {
            "$ref": "#/components/schemas/SamsungPayCardBrand"
          },
          "card_last4digits": {
            "type": "string",
            "description": "Last 4 digits of the card number"
          },
          "3_d_s": {
            "$ref": "#/components/schemas/SamsungPayTokenData"
          }
        }
      },
      "SantanderBoletoData": {
        "type": "object",
        "description": "Represents the specific data and rules related to Santander Boleto payments, including discounts, penalties, collection actions, payment constraints, beneficiary details, and document kind.",
        "properties": {
          "discount_rules": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SantanderPaymentDiscountRules"
              }
            ],
            "nullable": true
          },
          "penalties": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PenaltyRules"
              }
            ],
            "nullable": true
          },
          "collection_actions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CollectionActions"
              }
            ],
            "nullable": true
          },
          "payment_constraints": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoletoPaymentTypeConstraints"
              }
            ],
            "nullable": true
          },
          "beneficiary": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BeneficiaryDetails"
              }
            ],
            "nullable": true
          },
          "document_kind": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoletoDocumentKind"
              }
            ],
            "nullable": true
          }
        }
      },
      "SantanderConnectorMetadataData": {
        "type": "object",
        "description": "Represents the connector-specific metadata for Santander payments, including boleto data and related rules.",
        "properties": {
          "boleto": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SantanderBoletoData"
              }
            ],
            "nullable": true
          }
        }
      },
      "SantanderData": {
        "type": "object",
        "properties": {
          "end_to_end_id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SantanderMandateDetails": {
        "type": "object",
        "properties": {
          "fixed_recurring_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Fixed amount for each recurring charge in minor units (e.g., cents). If not provided, the mandate will allow variable amounts.",
            "example": 6540,
            "nullable": true,
            "minimum": 0
          },
          "min_recurring_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Minimum amount for each recurring charge in minor units (e.g., cents). If not provided, there will be no minimum limit on the amount.",
            "example": 6540,
            "nullable": true,
            "minimum": 0
          },
          "start_date": {
            "type": "string",
            "description": "Start date for the recurring charges. Format: YYYY-MM-DD. If not provided, the mandate will be valid immediately.",
            "example": "2026-12-31",
            "nullable": true
          },
          "end_date": {
            "type": "string",
            "description": "End date for the recurring charges. Format: YYYY-MM-DD. If not provided, the mandate will be valid indefinitely.",
            "example": "2026-12-31",
            "nullable": true
          },
          "periodicity": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SantanderMandatePeriodicity"
              }
            ],
            "nullable": true
          }
        }
      },
      "SantanderMandatePeriodicity": {
        "type": "string",
        "enum": [
          "weekly",
          "monthly",
          "quarterly",
          "semiannually",
          "annually"
        ]
      },
      "SantanderPaymentDiscountRules": {
        "type": "object",
        "description": "Defines the type of discount applied to a payment, such as whether it's a fixed date discount, a daily calendar discount, or a daily business discount.",
        "required": [
          "tiers"
        ],
        "properties": {
          "discount_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiscountType"
              }
            ],
            "nullable": true
          },
          "tiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountTier"
            },
            "description": "A generic vector of discount tiers"
          }
        }
      },
      "SantanderPixAutomaticoReceiverDetails": {
        "type": "object",
        "description": "Represents the receiver details for Santander Pix Automatico recurring charges",
        "properties": {
          "branch_code": {
            "type": "string",
            "description": "Branch code (agencia) of the receiver's bank account",
            "example": "0001",
            "nullable": true
          },
          "account_number": {
            "type": "string",
            "description": "Account number (conta) of the receiver",
            "example": "130333323",
            "nullable": true
          },
          "account_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AccountType"
              }
            ],
            "nullable": true
          }
        }
      },
      "ScaExemptionType": {
        "type": "string",
        "description": "SCA Exemptions types available for authentication",
        "enum": [
          "low_value",
          "transaction_risk_analysis"
        ]
      },
      "ScheduledExpirationTime": {
        "type": "object",
        "required": [
          "date"
        ],
        "properties": {
          "date": {
            "type": "string",
            "description": "Expiration time in terms of date, format: YYYY-MM-DD",
            "example": "2026-07-08"
          },
          "validity_after_expiration": {
            "type": "integer",
            "format": "int32",
            "description": "Days after expiration date for which the QR code remains valid",
            "example": 10,
            "nullable": true,
            "minimum": 0
          },
          "pix_key": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PixKey"
              }
            ],
            "nullable": true
          }
        }
      },
      "Scope": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "not_specific"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "values"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "payment_method_types"
                ]
              },
              "values": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PaymentMethodType"
                },
                "description": "Scoped by payment method types (e.g., Pix, Boleto)"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "values"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "event_types"
                ]
              },
              "values": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EventType"
                },
                "description": "Scoped by event types (e.g., Payments, Refunds, Disputes)"
              }
            }
          }
        ],
        "description": "The scope of webhook registration.\nDetermines which entities the connector should register webhooks for.",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "ScopeIdentifier": {
        "oneOf": [
          {
            "type": "string",
            "enum": [
              "NotSpecific"
            ]
          },
          {
            "type": "object",
            "required": [
              "PaymentMethodType"
            ],
            "properties": {
              "PaymentMethodType": {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "EventType"
            ],
            "properties": {
              "EventType": {
                "$ref": "#/components/schemas/EventType"
              }
            }
          }
        ]
      },
      "ScopeType": {
        "type": "string",
        "description": "Discriminator for the scope type in the response",
        "enum": [
          "not_specific",
          "payment_method_type",
          "event_type"
        ]
      },
      "SdkDisplayMode": {
        "type": "string",
        "description": "Display mode options for controlling how messages are shown.",
        "enum": [
          "default_sdk_message",
          "custom_message",
          "hidden"
        ]
      },
      "SdkInformation": {
        "type": "object",
        "description": "SDK Information if request is from SDK",
        "required": [
          "sdk_app_id",
          "sdk_enc_data",
          "sdk_ephem_pub_key",
          "sdk_trans_id",
          "sdk_reference_number",
          "sdk_max_timeout"
        ],
        "properties": {
          "sdk_app_id": {
            "type": "string",
            "description": "Unique ID created on installations of the 3DS Requestor App on a Consumer Device"
          },
          "sdk_enc_data": {
            "type": "string",
            "description": "JWE Object containing data encrypted by the SDK for the DS to decrypt"
          },
          "sdk_ephem_pub_key": {
            "type": "object",
            "description": "Public key component of the ephemeral key pair generated by the 3DS SDK",
            "additionalProperties": {
              "type": "string"
            }
          },
          "sdk_trans_id": {
            "type": "string",
            "description": "Unique transaction identifier assigned by the 3DS SDK"
          },
          "sdk_reference_number": {
            "type": "string",
            "description": "Identifies the vendor and version for the 3DS SDK that is integrated in a 3DS Requestor App"
          },
          "sdk_max_timeout": {
            "type": "integer",
            "format": "int32",
            "description": "Indicates maximum amount of time in minutes",
            "minimum": 0
          },
          "sdk_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SdkType"
              }
            ],
            "nullable": true
          },
          "device_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DeviceDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "SdkNextAction": {
        "type": "object",
        "required": [
          "next_action"
        ],
        "properties": {
          "next_action": {
            "$ref": "#/components/schemas/NextActionCall"
          },
          "should_block_confirm": {
            "type": "boolean",
            "description": "Whether the SDK should block the confirm call for user.",
            "nullable": true
          }
        }
      },
      "SdkNextActionData": {
        "type": "object",
        "required": [
          "next_action"
        ],
        "properties": {
          "next_action": {
            "$ref": "#/components/schemas/NextActionCall"
          },
          "order_id": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "SdkType": {
        "type": "string",
        "description": "Enum representing the type of 3DS SDK.",
        "enum": [
          "01",
          "02",
          "03",
          "04",
          "05"
        ]
      },
      "SecretInfoToInitiateSdk": {
        "type": "object",
        "required": [
          "display",
          "payment"
        ],
        "properties": {
          "display": {
            "type": "string"
          },
          "payment": {
            "type": "string"
          }
        }
      },
      "SepaAndBacsBillingDetails": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "The Email ID for SEPA and BACS billing",
            "example": "example@me.com",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The billing name for SEPA and BACS billing",
            "example": "Jane Doe",
            "nullable": true
          }
        }
      },
      "SepaBankDebitAdditionalData": {
        "type": "object",
        "required": [
          "iban"
        ],
        "properties": {
          "iban": {
            "type": "string",
            "description": "Partially masked international bank account number (iban) for SEPA",
            "example": "DE8937******013000"
          },
          "bank_account_holder_name": {
            "type": "string",
            "description": "Bank account's owner name",
            "example": "John Doe",
            "nullable": true
          }
        }
      },
      "SepaBankTransfer": {
        "type": "object",
        "required": [
          "iban",
          "bic"
        ],
        "properties": {
          "bank_name": {
            "type": "string",
            "description": "Bank name",
            "example": "Deutsche Bank",
            "nullable": true
          },
          "bank_country_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "bank_city": {
            "type": "string",
            "description": "Bank city",
            "example": "California",
            "nullable": true
          },
          "iban": {
            "type": "string",
            "description": "International Bank Account Number (iban) - used in many countries for identifying a bank along with it's customer.",
            "example": "DE89370400440532013000"
          },
          "bic": {
            "type": "string",
            "description": "[8 / 11 digits] Bank Identifier Code (bic) / Swift Code - used in many countries for identifying a bank and it's branches",
            "example": "HSBCGB2LXXX"
          },
          "account_holder_name": {
            "type": "string",
            "description": "Account holder name",
            "example": "John Doe",
            "nullable": true
          }
        }
      },
      "SepaBankTransferAdditionalData": {
        "type": "object",
        "description": "Masked payout method details for sepa bank transfer payout method",
        "required": [
          "iban"
        ],
        "properties": {
          "iban": {
            "type": "string",
            "description": "Partially masked international bank account number (iban) for SEPA",
            "example": "DE8937******013000"
          },
          "bank_name": {
            "type": "string",
            "description": "Bank name",
            "example": "Deutsche Bank",
            "nullable": true
          },
          "bank_country_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "bank_city": {
            "type": "string",
            "description": "Bank city",
            "example": "California",
            "nullable": true
          },
          "bic": {
            "type": "string",
            "description": "[8 / 11 digits] Bank Identifier Code (bic) / Swift Code - used in many countries for identifying a bank and it's branches",
            "example": "HSBCGB2LXXX",
            "nullable": true
          },
          "account_holder_name": {
            "type": "string",
            "description": "Account holder name",
            "example": "John Doe",
            "nullable": true
          }
        }
      },
      "SepaBankTransferInstructions": {
        "type": "object",
        "required": [
          "account_holder_name",
          "bic",
          "country",
          "iban",
          "reference"
        ],
        "properties": {
          "account_holder_name": {
            "type": "string",
            "example": "Jane Doe"
          },
          "bic": {
            "type": "string",
            "example": "9123456789"
          },
          "country": {
            "type": "string"
          },
          "iban": {
            "type": "string",
            "example": "123456789"
          },
          "reference": {
            "type": "string",
            "example": "U2PVVSEV4V9Y"
          }
        }
      },
      "SepaBankTransferPaymentAdditionalData": {
        "type": "object",
        "properties": {
          "debitor_iban": {
            "type": "string",
            "description": "debitor IBAN",
            "example": "DE89370400440532013000",
            "nullable": true
          },
          "debitor_bic": {
            "type": "string",
            "description": "debitor BIC",
            "example": "MARKDEF1100",
            "nullable": true
          },
          "debitor_name": {
            "type": "string",
            "description": "debitor name",
            "example": "John Doe",
            "nullable": true
          },
          "debitor_email": {
            "type": "string",
            "description": "debitor email",
            "example": "johndoe@example.com",
            "nullable": true
          }
        }
      },
      "SessionToken": {
        "oneOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/GpaySessionTokenResponse"
              },
              {
                "type": "object",
                "required": [
                  "wallet_name"
                ],
                "properties": {
                  "wallet_name": {
                    "type": "string",
                    "enum": [
                      "google_pay"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/SamsungPaySessionTokenResponse"
              },
              {
                "type": "object",
                "required": [
                  "wallet_name"
                ],
                "properties": {
                  "wallet_name": {
                    "type": "string",
                    "enum": [
                      "samsung_pay"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/KlarnaSessionTokenResponse"
              },
              {
                "type": "object",
                "required": [
                  "wallet_name"
                ],
                "properties": {
                  "wallet_name": {
                    "type": "string",
                    "enum": [
                      "klarna"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaypalSessionTokenResponse"
              },
              {
                "type": "object",
                "required": [
                  "wallet_name"
                ],
                "properties": {
                  "wallet_name": {
                    "type": "string",
                    "enum": [
                      "paypal"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApplepaySessionTokenResponse"
              },
              {
                "type": "object",
                "required": [
                  "wallet_name"
                ],
                "properties": {
                  "wallet_name": {
                    "type": "string",
                    "enum": [
                      "apple_pay"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/OpenBankingSessionToken"
              },
              {
                "type": "object",
                "required": [
                  "wallet_name"
                ],
                "properties": {
                  "wallet_name": {
                    "type": "string",
                    "enum": [
                      "open_banking"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PazeSessionTokenResponse"
              },
              {
                "type": "object",
                "required": [
                  "wallet_name"
                ],
                "properties": {
                  "wallet_name": {
                    "type": "string",
                    "enum": [
                      "paze"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/ClickToPaySessionResponse"
              },
              {
                "type": "object",
                "required": [
                  "wallet_name"
                ],
                "properties": {
                  "wallet_name": {
                    "type": "string",
                    "enum": [
                      "click_to_pay"
                    ]
                  }
                }
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmazonPaySessionTokenResponse"
              },
              {
                "type": "object",
                "required": [
                  "wallet_name"
                ],
                "properties": {
                  "wallet_name": {
                    "type": "string",
                    "enum": [
                      "amazon_pay"
                    ]
                  }
                }
              }
            ]
          },
          {
            "type": "object",
            "required": [
              "wallet_name"
            ],
            "properties": {
              "wallet_name": {
                "type": "string",
                "enum": [
                  "no_session_token_received"
                ]
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "wallet_name"
        }
      },
      "SessionTokenInfo": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentProcessingDetailsAt"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "required": [
              "certificate",
              "certificate_keys",
              "merchant_identifier",
              "display_name",
              "initiative"
            ],
            "properties": {
              "certificate": {
                "type": "string"
              },
              "certificate_keys": {
                "type": "string"
              },
              "merchant_identifier": {
                "type": "string"
              },
              "display_name": {
                "type": "string"
              },
              "initiative": {
                "$ref": "#/components/schemas/ApplepayInitiative"
              },
              "initiative_context": {
                "type": "string",
                "nullable": true
              },
              "merchant_business_country": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CountryAlpha2"
                  }
                ],
                "nullable": true
              }
            }
          }
        ]
      },
      "SizeVariants": {
        "type": "string",
        "enum": [
          "cover",
          "contain"
        ]
      },
      "SkrillData": {
        "type": "object"
      },
      "SortBy": {
        "type": "string",
        "enum": [
          "asc",
          "desc"
        ]
      },
      "SortOn": {
        "type": "string",
        "enum": [
          "amount",
          "attempt_count",
          "created",
          "modified"
        ]
      },
      "SplitPaymentMethodDataRequest": {
        "type": "object",
        "required": [
          "payment_method_data",
          "payment_method_type",
          "payment_method_subtype"
        ],
        "properties": {
          "payment_method_data": {
            "$ref": "#/components/schemas/PaymentMethodData"
          },
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "$ref": "#/components/schemas/PaymentMethodType"
          }
        }
      },
      "SplitPaymentsRequest": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "stripe_split_payment"
            ],
            "properties": {
              "stripe_split_payment": {
                "$ref": "#/components/schemas/StripeSplitPaymentRequest"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "adyen_split_payment"
            ],
            "properties": {
              "adyen_split_payment": {
                "$ref": "#/components/schemas/AdyenSplitData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "xendit_split_payment"
            ],
            "properties": {
              "xendit_split_payment": {
                "$ref": "#/components/schemas/XenditSplitRequest"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "payload_split_payment"
            ],
            "properties": {
              "payload_split_payment": {
                "$ref": "#/components/schemas/PayloadSplitPaymentRequest"
              }
            }
          }
        ],
        "description": "Fee information for Split Payments to be charged on the payment being collected"
      },
      "SplitRefund": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "stripe_split_refund"
            ],
            "properties": {
              "stripe_split_refund": {
                "$ref": "#/components/schemas/StripeSplitRefundRequest"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "adyen_split_refund"
            ],
            "properties": {
              "adyen_split_refund": {
                "$ref": "#/components/schemas/AdyenSplitData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "xendit_split_refund"
            ],
            "properties": {
              "xendit_split_refund": {
                "$ref": "#/components/schemas/XenditSplitSubMerchantData"
              }
            }
          }
        ],
        "description": "Charge specific fields for controlling the revert of funds from either platform or connected account. Check sub-fields for more details."
      },
      "SplitTxnsEnabled": {
        "type": "string",
        "enum": [
          "enable",
          "skip"
        ]
      },
      "StandardisedCode": {
        "type": "string",
        "enum": [
          "account_closed_or_invalid",
          "authentication_failed",
          "authentication_required",
          "authorization_missing_or_revoked",
          "card_lost_or_stolen",
          "card_not_supported_restricted",
          "cfg_pm_not_enabled_or_misconfigured",
          "compliance_or_sanctions_restriction",
          "configuration_issue",
          "credit_limit_exceeded",
          "currency_or_corridor_not_enabled",
          "do_not_honor",
          "downstream_technical_issue",
          "duplicate_request",
          "generic_unknown_error",
          "incorrect_authentication_code",
          "insufficient_funds",
          "integ_cryptographic_issue",
          "integration_issue",
          "invalid_card_number",
          "invalid_credentials",
          "invalid_cvv",
          "invalid_expiry_date",
          "invalid_state",
          "issuer_unavailable",
          "merchant_inactive",
          "missing_or_invalid_param",
          "operation_not_allowed",
          "payment_cancelled_by_user",
          "payment_method_issue",
          "payment_session_timeout",
          "pm_address_mismatch",
          "psp_acquirer_error",
          "psp_fraud_engine_decline",
          "rate_limit",
          "stored_credential_or_mit_not_enabled",
          "subscription_plan_inactive",
          "suspected_fraud",
          "three_ds_authentication_service_issue",
          "three_ds_configuration_issue",
          "three_ds_data_or_protocol_invalid",
          "transaction_not_permitted",
          "transaction_timed_out",
          "velocity_limit_exceeded",
          "wallet_or_token_config_issue"
        ]
      },
      "StaticRoutingAlgorithm": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "single"
                ]
              },
              "data": {
                "$ref": "#/components/schemas/RoutableConnectorChoice"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "priority"
                ]
              },
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RoutableConnectorChoice"
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "volume_split"
                ]
              },
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConnectorVolumeSplit"
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "advanced"
                ]
              },
              "data": {
                "$ref": "#/components/schemas/ProgramConnectorSelection"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "three_ds_decision_rule"
                ]
              },
              "data": {
                "$ref": "#/components/schemas/ProgramThreeDsDecisionRule"
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "StorageType": {
        "type": "string",
        "enum": [
          "volatile",
          "persistent"
        ]
      },
      "StraightThroughAlgorithm": {
        "oneOf": [
          {
            "type": "object",
            "title": "Single",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "single"
                ]
              },
              "data": {
                "$ref": "#/components/schemas/RoutableConnectorChoice"
              }
            }
          },
          {
            "type": "object",
            "title": "Priority",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "priority"
                ]
              },
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RoutableConnectorChoice"
                }
              }
            }
          },
          {
            "type": "object",
            "title": "VolumeSplit",
            "required": [
              "type",
              "data"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "volume_split"
                ]
              },
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConnectorVolumeSplit"
                }
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "StringMinorUnit": {
        "type": "string",
        "description": "Connector specific types to send"
      },
      "StripeChargeResponseData": {
        "type": "object",
        "description": "Fee information to be charged on the payment being collected via Stripe",
        "required": [
          "charge_type",
          "application_fees",
          "transfer_account_id"
        ],
        "properties": {
          "charge_id": {
            "type": "string",
            "description": "Identifier for charge created for the payment",
            "nullable": true
          },
          "charge_type": {
            "$ref": "#/components/schemas/PaymentChargeType"
          },
          "application_fees": {
            "type": "integer",
            "format": "int64",
            "description": "Platform fees collected on the payment",
            "example": 6540
          },
          "transfer_account_id": {
            "type": "string",
            "description": "Identifier for the reseller's account where the funds were transferred"
          },
          "on_behalf_of": {
            "type": "string",
            "description": "The Stripe account ID that these funds are intended for",
            "example": "acct_1234567890",
            "nullable": true
          }
        }
      },
      "StripeChargeType": {
        "type": "string",
        "enum": [
          "direct",
          "destination"
        ]
      },
      "StripeSplitPaymentRequest": {
        "type": "object",
        "description": "Fee information for Split Payments to be charged on the payment being collected for Stripe",
        "required": [
          "charge_type",
          "application_fees",
          "transfer_account_id"
        ],
        "properties": {
          "charge_type": {
            "$ref": "#/components/schemas/PaymentChargeType"
          },
          "application_fees": {
            "type": "integer",
            "format": "int64",
            "description": "Platform fees to be collected on the payment",
            "example": 6540
          },
          "transfer_account_id": {
            "type": "string",
            "description": "Identifier for the reseller's account where the funds were transferred"
          },
          "on_behalf_of": {
            "type": "string",
            "description": "The Stripe account ID that these funds are intended for",
            "example": "acct_1234567890",
            "nullable": true
          }
        }
      },
      "StripeSplitRefundRequest": {
        "type": "object",
        "description": "Charge specific fields for controlling the revert of funds from either platform or connected account for Stripe. Check sub-fields for more details.",
        "properties": {
          "revert_platform_fee": {
            "type": "boolean",
            "description": "Toggle for reverting the application fee that was collected for the payment.\nIf set to false, the funds are pulled from the destination account.",
            "nullable": true
          },
          "revert_transfer": {
            "type": "boolean",
            "description": "Toggle for reverting the transfer that was made during the charge.\nIf set to false, the funds are pulled from the main platform's account.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SuccessBasedRoutingConfig": {
        "type": "object",
        "required": [
          "decision_engine_configs"
        ],
        "properties": {
          "params": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DynamicRoutingConfigParams"
            },
            "deprecated": true,
            "nullable": true
          },
          "config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SuccessBasedRoutingConfigBody"
              }
            ],
            "nullable": true
          },
          "decision_engine_configs": {
            "$ref": "#/components/schemas/DecisionEngineSuccessRateData"
          }
        },
        "additionalProperties": false
      },
      "SuccessBasedRoutingConfigBody": {
        "type": "object",
        "properties": {
          "min_aggregates_size": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "minimum": 0
          },
          "default_success_rate": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "max_aggregates_size": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "minimum": 0
          },
          "current_block_threshold": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CurrentBlockThreshold"
              }
            ],
            "nullable": true
          },
          "specificity_level": {
            "$ref": "#/components/schemas/SuccessRateSpecificityLevel"
          },
          "exploration_percent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "shuffle_on_tie_during_exploitation": {
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "SuccessRateSpecificityLevel": {
        "type": "string",
        "enum": [
          "merchant",
          "global"
        ]
      },
      "SupportedPaymentMethod": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodSpecificFeatures"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "required": [
              "payment_method",
              "payment_method_type",
              "payment_method_type_display_name",
              "mandates",
              "refunds",
              "supported_capture_methods"
            ],
            "properties": {
              "payment_method": {
                "$ref": "#/components/schemas/PaymentMethod"
              },
              "payment_method_type": {
                "$ref": "#/components/schemas/PaymentMethodType"
              },
              "payment_method_type_display_name": {
                "type": "string",
                "description": "The display name of the payment method type"
              },
              "mandates": {
                "$ref": "#/components/schemas/FeatureStatus"
              },
              "refunds": {
                "$ref": "#/components/schemas/FeatureStatus"
              },
              "supported_capture_methods": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CaptureMethod"
                },
                "description": "List of supported capture methods supported by the payment method type"
              },
              "supported_countries": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CountryAlpha3"
                },
                "description": "List of countries supported by the payment method type via the connector",
                "uniqueItems": true,
                "nullable": true
              },
              "supported_currencies": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Currency"
                },
                "description": "List of currencies supported by the payment method type via the connector",
                "uniqueItems": true,
                "nullable": true
              }
            }
          }
        ]
      },
      "SurchargeCalculationOverride": {
        "type": "string",
        "enum": [
          "skip",
          "calculate"
        ]
      },
      "SurchargeConnectorDetails": {
        "type": "object",
        "properties": {
          "surcharge_connector_id": {
            "type": "string",
            "description": "The surcharge connector ID for calculating external surcharge",
            "nullable": true
          }
        }
      },
      "SurchargeDetailsResponse": {
        "type": "object",
        "required": [
          "surcharge",
          "display_surcharge_amount",
          "display_tax_on_surcharge_amount",
          "display_total_surcharge_amount"
        ],
        "properties": {
          "surcharge": {
            "$ref": "#/components/schemas/SurchargeResponse"
          },
          "tax_on_surcharge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SurchargePercentage"
              }
            ],
            "nullable": true
          },
          "display_surcharge_amount": {
            "type": "number",
            "format": "double",
            "description": "surcharge amount for this payment"
          },
          "display_tax_on_surcharge_amount": {
            "type": "number",
            "format": "double",
            "description": "tax on surcharge amount for this payment"
          },
          "display_total_surcharge_amount": {
            "type": "number",
            "format": "double",
            "description": "sum of display_surcharge_amount and display_tax_on_surcharge_amount"
          }
        }
      },
      "SurchargePercentage": {
        "type": "object",
        "required": [
          "percentage"
        ],
        "properties": {
          "percentage": {
            "type": "number",
            "format": "float"
          }
        }
      },
      "SurchargeResponse": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "fixed"
                ]
              },
              "value": {
                "$ref": "#/components/schemas/MinorUnit"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "rate"
                ]
              },
              "value": {
                "$ref": "#/components/schemas/SurchargePercentage"
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "SwishQrData": {
        "type": "object"
      },
      "TaxCalculationOverride": {
        "type": "string",
        "enum": [
          "skip",
          "calculate"
        ]
      },
      "TaxStatus": {
        "type": "string",
        "enum": [
          "taxable",
          "exempt"
        ]
      },
      "ThirdPartySdkSessionResponse": {
        "type": "object",
        "required": [
          "secrets"
        ],
        "properties": {
          "secrets": {
            "$ref": "#/components/schemas/SecretInfoToInitiateSdk"
          }
        }
      },
      "ThreeDSDecision": {
        "type": "string",
        "description": "Enum representing the possible outcomes of the 3DS Decision Rule Engine.",
        "enum": [
          "no_three_ds",
          "challenge_requested",
          "challenge_preferred",
          "three_ds_exemption_requested_tra",
          "three_ds_exemption_requested_low_value",
          "issuer_three_ds_exemption_requested"
        ]
      },
      "ThreeDSDecisionRule": {
        "type": "object",
        "description": "Struct representing the output configuration for the 3DS Decision Rule Engine.",
        "required": [
          "decision"
        ],
        "properties": {
          "decision": {
            "$ref": "#/components/schemas/ThreeDSDecision"
          }
        }
      },
      "ThreeDsCompletionIndicator": {
        "type": "string",
        "description": "Indicates if 3DS method data was successfully completed or not",
        "enum": [
          "Y",
          "N",
          "U"
        ]
      },
      "ThreeDsData": {
        "type": "object",
        "required": [
          "three_ds_authentication_url",
          "three_ds_authorize_url",
          "three_ds_method_details",
          "poll_config"
        ],
        "properties": {
          "three_ds_authentication_url": {
            "type": "string",
            "description": "ThreeDS authentication url - to initiate authentication"
          },
          "three_ds_authorize_url": {
            "type": "string",
            "description": "ThreeDS authorize url - to complete the payment authorization after authentication"
          },
          "three_ds_method_details": {
            "$ref": "#/components/schemas/ThreeDsMethodData"
          },
          "poll_config": {
            "$ref": "#/components/schemas/PollConfigResponse"
          },
          "message_version": {
            "type": "string",
            "description": "Message Version",
            "nullable": true
          },
          "directory_server_id": {
            "type": "string",
            "description": "Directory Server ID",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "three_ds_connector": {
            "type": "string",
            "description": "Preferred 3ds Connector",
            "nullable": true
          }
        }
      },
      "ThreeDsMethodData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "three_ds_method_data_submission",
              "consume_post_message_for_three_ds_method_completion"
            ],
            "properties": {
              "three_ds_method_data_submission": {
                "type": "boolean",
                "description": "Whether ThreeDS method data submission is required"
              },
              "three_ds_method_data": {
                "type": "string",
                "description": "ThreeDS method data",
                "nullable": true
              },
              "three_ds_method_url": {
                "type": "string",
                "description": "ThreeDS method url",
                "nullable": true
              },
              "three_ds_method_key": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ThreeDsMethodKey"
                  }
                ],
                "nullable": true
              },
              "consume_post_message_for_three_ds_method_completion": {
                "type": "boolean",
                "description": "Indicates whether to wait for Post message after 3DS method data submission"
              }
            }
          }
        ]
      },
      "ThreeDsMethodKey": {
        "type": "string",
        "enum": [
          "threeDSMethodData",
          "JWT"
        ]
      },
      "TimeRange": {
        "type": "object",
        "description": "A type representing a range of time for filtering, including a mandatory start time and an optional end time.",
        "required": [
          "start_time"
        ],
        "properties": {
          "start_time": {
            "type": "string",
            "format": "date-time",
            "description": "The start time to filter payments list or to get list of filters. To get list of filters start time is needed to be passed"
          },
          "end_time": {
            "type": "string",
            "format": "date-time",
            "description": "The end time to filter payments list or to get list of filters. If not passed the default time is now",
            "nullable": true
          }
        }
      },
      "ToggleBlocklistResponse": {
        "type": "object",
        "required": [
          "blocklist_guard_status"
        ],
        "properties": {
          "blocklist_guard_status": {
            "type": "string"
          }
        }
      },
      "ToggleKVRequest": {
        "type": "object",
        "required": [
          "kv_enabled"
        ],
        "properties": {
          "kv_enabled": {
            "type": "boolean",
            "description": "Status of KV for the specific merchant",
            "example": true
          }
        }
      },
      "ToggleKVResponse": {
        "type": "object",
        "required": [
          "merchant_id",
          "kv_enabled"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 255
          },
          "kv_enabled": {
            "type": "boolean",
            "description": "Status of KV for the specific merchant",
            "example": true
          }
        }
      },
      "TokenDataResponse": {
        "type": "object",
        "required": [
          "payment_method_id",
          "token_type",
          "token_details"
        ],
        "properties": {
          "payment_method_id": {
            "type": "string",
            "description": "The unique identifier of the payment method.",
            "example": "0a_pm_01926c58bc6e77c09e809964e72af8c8"
          },
          "token_type": {
            "$ref": "#/components/schemas/TokenDataType"
          },
          "token_details": {
            "$ref": "#/components/schemas/TokenDetailsResponse"
          }
        }
      },
      "TokenDataType": {
        "type": "string",
        "description": "The type of token data to fetch for get-token endpoint",
        "enum": [
          "single_use_token",
          "multi_use_token",
          "network_token"
        ]
      },
      "TokenDetailsResponse": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/NetworkTokenDetailsResponse"
          }
        ]
      },
      "TokenSource": {
        "type": "string",
        "description": "Source of the token",
        "enum": [
          "google_pay",
          "apple_pay"
        ],
        "example": "google_pay, apple_pay"
      },
      "TokenStatus": {
        "type": "string",
        "enum": [
          "ACTIVE",
          "INACTIVE",
          "SUSPENDED",
          "EXPIRED",
          "DELETED"
        ]
      },
      "TokenType": {
        "type": "string",
        "enum": [
          "tokenization_id",
          "payment_method_id",
          "volatile_payment_method_id",
          "payment_method_token"
        ]
      },
      "Tokenization": {
        "type": "string",
        "description": "The type of tokenization to use for the payment method",
        "enum": [
          "skip_psp",
          "tokenize_at_psp"
        ]
      },
      "TokenizationType": {
        "type": "string",
        "description": "The type of tokenization to use for the payment method",
        "enum": [
          "single_use",
          "multi_use"
        ]
      },
      "TokenizeCardRequest": {
        "type": "object",
        "required": [
          "raw_card_number",
          "card_expiry_month",
          "card_expiry_year"
        ],
        "properties": {
          "raw_card_number": {
            "type": "string",
            "description": "Card Number",
            "example": "4111111145551142"
          },
          "card_expiry_month": {
            "type": "string",
            "description": "Card Expiry Month",
            "example": "10"
          },
          "card_expiry_year": {
            "type": "string",
            "description": "Card Expiry Year",
            "example": "25"
          },
          "card_cvc": {
            "type": "string",
            "description": "The CVC number for the card",
            "example": "242",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "description": "Card Holder Name",
            "example": "John Doe",
            "nullable": true
          },
          "nick_name": {
            "type": "string",
            "description": "Card Holder's Nick Name",
            "example": "John Doe",
            "nullable": true
          },
          "card_issuing_country": {
            "type": "string",
            "description": "Card Issuing Country",
            "nullable": true
          },
          "card_issuing_country_code": {
            "type": "string",
            "description": "Card Issuing Country",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_issuer": {
            "type": "string",
            "description": "Issuer Bank for Card",
            "nullable": true
          },
          "card_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardType"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TokenizeDataRequest": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "card"
            ],
            "properties": {
              "card": {
                "$ref": "#/components/schemas/TokenizeCardRequest"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "existing_payment_method"
            ],
            "properties": {
              "existing_payment_method": {
                "$ref": "#/components/schemas/TokenizePaymentMethodRequest"
              }
            }
          }
        ]
      },
      "TokenizePaymentMethodRequest": {
        "type": "object",
        "properties": {
          "card_cvc": {
            "type": "string",
            "description": "The CVC number for the card",
            "example": "242",
            "nullable": true
          }
        }
      },
      "TouchNGoRedirection": {
        "type": "object"
      },
      "TransactionDetailsUiConfiguration": {
        "type": "object",
        "properties": {
          "position": {
            "type": "integer",
            "format": "int32",
            "description": "Position of the key-value pair in the UI",
            "example": 5,
            "nullable": true
          },
          "is_key_bold": {
            "type": "boolean",
            "description": "Whether the key should be bold",
            "default": false,
            "example": true,
            "nullable": true
          },
          "is_value_bold": {
            "type": "boolean",
            "description": "Whether the value should be bold",
            "default": false,
            "example": true,
            "nullable": true
          }
        }
      },
      "TransactionStatus": {
        "type": "string",
        "description": "Indicates the transaction status",
        "enum": [
          "Y",
          "N",
          "U",
          "A",
          "R",
          "C",
          "D",
          "I"
        ]
      },
      "TransactionType": {
        "type": "string",
        "enum": [
          "payment",
          "payout",
          "three_ds_authentication"
        ]
      },
      "TriggeredBy": {
        "type": "string",
        "enum": [
          "internal",
          "external"
        ]
      },
      "TrustlyBankTransfer": {
        "type": "object",
        "required": [
          "iban",
          "country_code",
          "account_number",
          "bank_number"
        ],
        "properties": {
          "iban": {
            "type": "string",
            "description": "International Bank Account Number (iban) - used in many countries for identifying a bank along with it's customer.",
            "example": "token_12345"
          },
          "country_code": {
            "$ref": "#/components/schemas/CountryAlpha2"
          },
          "account_number": {
            "type": "string",
            "description": "The account number, identifying the end-user's account in the bank.",
            "example": "69706212"
          },
          "bank_number": {
            "type": "string",
            "description": "The bank number identifying the end-user's bank in the given clearing house.",
            "example": "6112"
          }
        }
      },
      "TrustlyBankTransferAdditionalData": {
        "type": "object",
        "description": "Masked payout method details for Trustly bank transfer payout method",
        "required": [
          "iban",
          "country_code",
          "account_number",
          "bank_number"
        ],
        "properties": {
          "iban": {
            "type": "string",
            "description": "International Bank Account Number (iban) - used in many countries for identifying a bank along with it's customer.",
            "example": "token_12345"
          },
          "country_code": {
            "$ref": "#/components/schemas/CountryAlpha2"
          },
          "account_number": {
            "type": "string",
            "description": "The account number, identifying the end-user's account in the bank.",
            "example": "69706212"
          },
          "bank_number": {
            "type": "string",
            "description": "The bank number identifying the end-user's bank in the given clearing house.",
            "example": "6112"
          }
        }
      },
      "TrustlyBankTransferData": {
        "type": "object",
        "required": [
          "iban",
          "bank_country_code",
          "bank_account_number",
          "bank_number"
        ],
        "properties": {
          "iban": {
            "type": "string",
            "description": "International Bank Account Number (iban) - used in many countries for identifying a bank along with it's customer.",
            "example": "token_12345"
          },
          "bank_country_code": {
            "$ref": "#/components/schemas/CountryAlpha2"
          },
          "bank_account_number": {
            "type": "string",
            "description": "The account number, identifying the end-user's account in the bank.",
            "example": "69706212"
          },
          "bank_number": {
            "type": "string",
            "description": "The bank number identifying the end-user's bank in the given clearing house.",
            "example": "6112"
          }
        }
      },
      "UIWidgetFormLayout": {
        "type": "string",
        "enum": [
          "tabs",
          "journey"
        ]
      },
      "UnifiedCode": {
        "type": "string",
        "enum": [
          "UE_1000",
          "UE_2000",
          "UE_3000",
          "UE_4000",
          "UE_9000"
        ]
      },
      "UpdateActiveAttempt": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "Set"
            ],
            "properties": {
              "Set": {
                "type": "string",
                "description": "Request to set the active attempt id",
                "nullable": true
              }
            }
          },
          {
            "type": "string",
            "description": "To unset the active attempt id",
            "enum": [
              "Unset"
            ]
          }
        ],
        "description": "Whether active attempt is to be set/unset"
      },
      "UpdateApiKeyRequest": {
        "type": "object",
        "description": "The request body for updating an API Key.",
        "properties": {
          "name": {
            "type": "string",
            "description": "A unique name for the API Key to help you identify it.",
            "example": "Sandbox integration key",
            "nullable": true,
            "maxLength": 64
          },
          "description": {
            "type": "string",
            "description": "A description to provide more context about the API Key.",
            "example": "Key used by our developers to integrate with the sandbox environment",
            "nullable": true,
            "maxLength": 256
          },
          "expiration": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApiKeyExpiration"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpiAdditionalData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "upi_collect"
            ],
            "properties": {
              "upi_collect": {
                "$ref": "#/components/schemas/UpiCollectAdditionalData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "upi_intent"
            ],
            "properties": {
              "upi_intent": {
                "$ref": "#/components/schemas/UpiIntentData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "upi_qr"
            ],
            "properties": {
              "upi_qr": {
                "$ref": "#/components/schemas/UpiQrData"
              }
            }
          }
        ]
      },
      "UpiCollectAdditionalData": {
        "type": "object",
        "properties": {
          "vpa_id": {
            "type": "string",
            "description": "Masked VPA ID",
            "example": "ab********@okhdfcbank",
            "nullable": true
          },
          "upi_source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UpiSource"
              }
            ],
            "nullable": true
          }
        }
      },
      "UpiCollectData": {
        "type": "object",
        "properties": {
          "vpa_id": {
            "type": "string",
            "description": "The Virtual Payment Address (VPA) for UPI collect payment",
            "example": "successtest@iata",
            "nullable": true
          },
          "upi_source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UpiSource"
              }
            ],
            "nullable": true
          }
        }
      },
      "UpiData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "upi_collect"
            ],
            "properties": {
              "upi_collect": {
                "$ref": "#/components/schemas/UpiCollectData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "upi_intent"
            ],
            "properties": {
              "upi_intent": {
                "$ref": "#/components/schemas/UpiIntentData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "upi_qr"
            ],
            "properties": {
              "upi_qr": {
                "$ref": "#/components/schemas/UpiQrData"
              }
            }
          }
        ]
      },
      "UpiIntentData": {
        "type": "object",
        "properties": {
          "upi_source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UpiSource"
              }
            ],
            "nullable": true
          },
          "app_name": {
            "type": "string",
            "description": "App name for UPI intent payment",
            "nullable": true
          }
        }
      },
      "UpiQrData": {
        "type": "object",
        "properties": {
          "upi_source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UpiSource"
              }
            ],
            "nullable": true
          }
        }
      },
      "UpiResponse": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/UpiAdditionalData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ]
      },
      "UpiSource": {
        "type": "string",
        "description": "The source type for UPI payments. This indicates what payment source is being used for the UPI transaction.",
        "enum": [
          "UPI_CC",
          "UPI_CL",
          "UPI_ACCOUNT",
          "UPI_CC_CL",
          "UPI_PPI",
          "UPI_VOUCHER"
        ]
      },
      "ValueType": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "number"
                ]
              },
              "value": {
                "$ref": "#/components/schemas/MinorUnit"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "enum_variant"
                ]
              },
              "value": {
                "type": "string",
                "description": "Represents an enum variant"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "metadata_variant"
                ]
              },
              "value": {
                "$ref": "#/components/schemas/MetadataValue"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "str_value"
                ]
              },
              "value": {
                "type": "string",
                "description": "Represents a arbitrary String value"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "number_array"
                ]
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MinorUnit"
                },
                "description": "Represents an array of numbers. This is basically used for\n\"one of the given numbers\" operations\neg: payment.method.amount = (1, 2, 3)"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "enum_variant_array"
                ]
              },
              "value": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Similar to NumberArray but for enum variants\neg: payment.method.cardtype = (debit, credit)"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "number_comparison_array"
                ]
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/NumberComparison"
                },
                "description": "Like a number array but can include comparisons. Useful for\nconditions like \"500 < amount < 1000\"\neg: payment.amount = (> 500, < 1000)"
              }
            }
          }
        ],
        "description": "Represents a value in the DSL",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "VaultCardToken": {
        "type": "object",
        "description": "Card token data carried by the external vault proxy `vault_card_token_data` variant. Its\n`card_cvc` is a vault token detokenized on the wire by the external vault (e.g. VGS). Kept as a\ndistinct type from [`CardToken`] so the self-hosted `card_cvc_token` field does not leak into\nthe proxy contract.",
        "required": [
          "card_holder_name"
        ],
        "properties": {
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test"
          },
          "card_cvc": {
            "type": "string",
            "description": "The CVC number for the card (a vault token for the external vault proxy flow)",
            "nullable": true
          }
        }
      },
      "VaultDetails": {
        "type": "object",
        "description": "Top-level vault details returned in the session-tokens response.\nFor v1: contains both internal vault (SDK authorization) and external vault details.\nFor v2: contains only external vault details.",
        "properties": {
          "internal_vault": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InternalVaultSessionDetails"
              }
            ],
            "nullable": true
          },
          "external_vault_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VaultSessionDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "VaultSdk": {
        "type": "string",
        "enum": [
          "vgs_sdk",
          "hyperswitch_sdk"
        ]
      },
      "VaultSessionDetails": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "vgs"
            ],
            "properties": {
              "vgs": {
                "$ref": "#/components/schemas/VgsSessionDetails"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "hyperswitch_vault"
            ],
            "properties": {
              "hyperswitch_vault": {
                "$ref": "#/components/schemas/HyperswitchVaultSessionDetails"
              }
            }
          }
        ]
      },
      "VaultTokenField": {
        "type": "object",
        "properties": {
          "token_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VaultTokenType"
              }
            ],
            "nullable": true
          }
        }
      },
      "VaultTokenType": {
        "type": "string",
        "description": "Fields that can be tokenized with vault",
        "enum": [
          "card_number",
          "card_cvc",
          "card_expiry_year",
          "card_expiry_month",
          "network_token",
          "network_token_expiry_year",
          "network_token_expiry_month",
          "network_token_cryptogram"
        ]
      },
      "Venmo": {
        "type": "object",
        "required": [
          "telephone_number"
        ],
        "properties": {
          "telephone_number": {
            "type": "string",
            "description": "mobile number linked to venmo account",
            "example": "16608213349"
          }
        }
      },
      "VenmoAdditionalData": {
        "type": "object",
        "description": "Masked payout method details for venmo wallet payout method",
        "properties": {
          "telephone_number": {
            "type": "string",
            "description": "mobile number linked to venmo account",
            "example": "******* 3349",
            "nullable": true
          }
        }
      },
      "VgsSessionDetails": {
        "type": "object",
        "required": [
          "external_vault_id",
          "sdk_env"
        ],
        "properties": {
          "external_vault_id": {
            "type": "string",
            "description": "The identifier of the external vault"
          },
          "sdk_env": {
            "type": "string",
            "description": "The environment for the external vault initiation"
          }
        }
      },
      "VoucherData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "boleto"
            ],
            "properties": {
              "boleto": {
                "$ref": "#/components/schemas/BoletoVoucherData"
              }
            }
          },
          {
            "type": "string",
            "enum": [
              "efecty"
            ]
          },
          {
            "type": "string",
            "enum": [
              "pago_efectivo"
            ]
          },
          {
            "type": "string",
            "enum": [
              "red_compra"
            ]
          },
          {
            "type": "string",
            "enum": [
              "red_pagos"
            ]
          },
          {
            "type": "object",
            "required": [
              "alfamart"
            ],
            "properties": {
              "alfamart": {
                "$ref": "#/components/schemas/AlfamartVoucherData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "indomaret"
            ],
            "properties": {
              "indomaret": {
                "$ref": "#/components/schemas/IndomaretVoucherData"
              }
            }
          },
          {
            "type": "string",
            "enum": [
              "oxxo"
            ]
          },
          {
            "type": "object",
            "required": [
              "seven_eleven"
            ],
            "properties": {
              "seven_eleven": {
                "$ref": "#/components/schemas/JCSVoucherData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "lawson"
            ],
            "properties": {
              "lawson": {
                "$ref": "#/components/schemas/JCSVoucherData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "mini_stop"
            ],
            "properties": {
              "mini_stop": {
                "$ref": "#/components/schemas/JCSVoucherData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "family_mart"
            ],
            "properties": {
              "family_mart": {
                "$ref": "#/components/schemas/JCSVoucherData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "seicomart"
            ],
            "properties": {
              "seicomart": {
                "$ref": "#/components/schemas/JCSVoucherData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pay_easy"
            ],
            "properties": {
              "pay_easy": {
                "$ref": "#/components/schemas/JCSVoucherData"
              }
            }
          }
        ]
      },
      "VoucherResponse": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/VoucherData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ]
      },
      "Wallet": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "apple_pay_decrypt"
            ],
            "properties": {
              "apple_pay_decrypt": {
                "$ref": "#/components/schemas/ApplePayDecrypt"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "google_pay_decrypt"
            ],
            "properties": {
              "google_pay_decrypt": {
                "$ref": "#/components/schemas/GooglePayDecrypt"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "paypal"
            ],
            "properties": {
              "paypal": {
                "$ref": "#/components/schemas/Paypal"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "venmo"
            ],
            "properties": {
              "venmo": {
                "$ref": "#/components/schemas/Venmo"
              }
            }
          }
        ]
      },
      "WalletAdditionalData": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/ApplePayDecryptAdditionalData"
          },
          {
            "$ref": "#/components/schemas/GooglePayDecryptAdditionalData"
          },
          {
            "$ref": "#/components/schemas/PaypalAdditionalData"
          },
          {
            "$ref": "#/components/schemas/VenmoAdditionalData"
          }
        ],
        "description": "Masked payout method details for wallet payout method"
      },
      "WalletAdditionalDataForCard": {
        "type": "object",
        "properties": {
          "last4": {
            "type": "string",
            "description": "Last 4 digits of the card number",
            "nullable": true
          },
          "card_network": {
            "type": "string",
            "description": "The information of the payment method",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "The type of payment method",
            "nullable": true
          },
          "card_exp_month": {
            "type": "string",
            "description": "The card's expiry month",
            "example": "03",
            "nullable": true
          },
          "card_exp_year": {
            "type": "string",
            "description": "The card's expiry year",
            "example": "25",
            "nullable": true
          },
          "auth_code": {
            "type": "string",
            "description": "Unique authorisation code generated for the payment",
            "example": "009825",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Email address associated with the wallet (e.g. PayPal email)",
            "example": "johntest@test.com",
            "nullable": true
          }
        }
      },
      "WalletData": {
        "oneOf": [
          {
            "type": "object",
            "title": "AliPayHkRedirect",
            "required": [
              "ali_pay_hk_redirect"
            ],
            "properties": {
              "ali_pay_hk_redirect": {
                "$ref": "#/components/schemas/AliPayHkRedirection"
              }
            }
          },
          {
            "type": "object",
            "title": "AliPayQr",
            "required": [
              "ali_pay_qr"
            ],
            "properties": {
              "ali_pay_qr": {
                "$ref": "#/components/schemas/AliPayQr"
              }
            }
          },
          {
            "type": "object",
            "title": "AliPayRedirect",
            "required": [
              "ali_pay_redirect"
            ],
            "properties": {
              "ali_pay_redirect": {
                "$ref": "#/components/schemas/AliPayRedirection"
              }
            }
          },
          {
            "type": "object",
            "title": "AmazonPay",
            "required": [
              "amazon_pay"
            ],
            "properties": {
              "amazon_pay": {
                "$ref": "#/components/schemas/AmazonPayWalletData"
              }
            }
          },
          {
            "type": "object",
            "title": "AmazonPayRedirect",
            "required": [
              "amazon_pay_redirect"
            ],
            "properties": {
              "amazon_pay_redirect": {
                "$ref": "#/components/schemas/AmazonPayRedirectData"
              }
            }
          },
          {
            "type": "object",
            "title": "ApplePay",
            "required": [
              "apple_pay"
            ],
            "properties": {
              "apple_pay": {
                "$ref": "#/components/schemas/ApplePayWalletData"
              }
            }
          },
          {
            "type": "object",
            "title": "ApplePayRedirect",
            "required": [
              "apple_pay_redirect"
            ],
            "properties": {
              "apple_pay_redirect": {
                "$ref": "#/components/schemas/ApplePayRedirectData"
              }
            }
          },
          {
            "type": "object",
            "title": "ApplePayThirdPartySdk",
            "required": [
              "apple_pay_third_party_sdk"
            ],
            "properties": {
              "apple_pay_third_party_sdk": {
                "$ref": "#/components/schemas/ApplePayThirdPartySdkData"
              }
            }
          },
          {
            "type": "object",
            "title": "BluecodeRedirect",
            "required": [
              "bluecode_redirect"
            ],
            "properties": {
              "bluecode_redirect": {
                "type": "object",
                "description": "The wallet data for Bluecode QR Code Redirect"
              }
            }
          },
          {
            "type": "object",
            "title": "CashappQr",
            "required": [
              "cashapp_qr"
            ],
            "properties": {
              "cashapp_qr": {
                "$ref": "#/components/schemas/CashappQr"
              }
            }
          },
          {
            "type": "object",
            "title": "DanaRedirect",
            "required": [
              "dana_redirect"
            ],
            "properties": {
              "dana_redirect": {
                "type": "object",
                "description": "Wallet data for DANA redirect flow"
              }
            }
          },
          {
            "type": "object",
            "title": "GcashRedirect",
            "required": [
              "gcash_redirect"
            ],
            "properties": {
              "gcash_redirect": {
                "$ref": "#/components/schemas/GcashRedirection"
              }
            }
          },
          {
            "type": "object",
            "title": "GoPayRedirect",
            "required": [
              "go_pay_redirect"
            ],
            "properties": {
              "go_pay_redirect": {
                "$ref": "#/components/schemas/GoPayRedirection"
              }
            }
          },
          {
            "type": "object",
            "title": "GooglePay",
            "required": [
              "google_pay"
            ],
            "properties": {
              "google_pay": {
                "$ref": "#/components/schemas/GooglePayWalletData"
              }
            }
          },
          {
            "type": "object",
            "title": "GooglePayRedirect",
            "required": [
              "google_pay_redirect"
            ],
            "properties": {
              "google_pay_redirect": {
                "$ref": "#/components/schemas/GooglePayRedirectData"
              }
            }
          },
          {
            "type": "object",
            "title": "GooglePayThirdPartySdk",
            "required": [
              "google_pay_third_party_sdk"
            ],
            "properties": {
              "google_pay_third_party_sdk": {
                "$ref": "#/components/schemas/GooglePayThirdPartySdkData"
              }
            }
          },
          {
            "type": "object",
            "title": "KakaoPayRedirect",
            "required": [
              "kakao_pay_redirect"
            ],
            "properties": {
              "kakao_pay_redirect": {
                "$ref": "#/components/schemas/KakaoPayRedirection"
              }
            }
          },
          {
            "type": "object",
            "title": "MbWayRedirect",
            "required": [
              "mb_way_redirect"
            ],
            "properties": {
              "mb_way_redirect": {
                "$ref": "#/components/schemas/MbWayRedirection"
              }
            }
          },
          {
            "type": "object",
            "title": "Mifinity",
            "required": [
              "mifinity"
            ],
            "properties": {
              "mifinity": {
                "$ref": "#/components/schemas/MifinityData"
              }
            }
          },
          {
            "type": "object",
            "title": "MobilePayRedirect",
            "required": [
              "mobile_pay_redirect"
            ],
            "properties": {
              "mobile_pay_redirect": {
                "$ref": "#/components/schemas/MobilePayRedirection"
              }
            }
          },
          {
            "type": "object",
            "title": "MomoRedirect",
            "required": [
              "momo_redirect"
            ],
            "properties": {
              "momo_redirect": {
                "$ref": "#/components/schemas/MomoRedirection"
              }
            }
          },
          {
            "type": "object",
            "title": "PaypalRedirect",
            "required": [
              "paypal_redirect"
            ],
            "properties": {
              "paypal_redirect": {
                "$ref": "#/components/schemas/PaypalRedirection"
              }
            }
          },
          {
            "type": "object",
            "title": "PaypalSdk",
            "required": [
              "paypal_sdk"
            ],
            "properties": {
              "paypal_sdk": {
                "$ref": "#/components/schemas/PayPalWalletData"
              }
            }
          },
          {
            "type": "object",
            "title": "Paysera",
            "required": [
              "paysera"
            ],
            "properties": {
              "paysera": {
                "$ref": "#/components/schemas/PayseraData"
              }
            }
          },
          {
            "type": "object",
            "title": "Paze",
            "required": [
              "paze"
            ],
            "properties": {
              "paze": {
                "$ref": "#/components/schemas/PazeWalletData"
              }
            }
          },
          {
            "type": "object",
            "title": "RevolutPay",
            "required": [
              "revolut_pay"
            ],
            "properties": {
              "revolut_pay": {
                "$ref": "#/components/schemas/RevolutPayData"
              }
            }
          },
          {
            "type": "object",
            "title": "SamsungPay",
            "required": [
              "samsung_pay"
            ],
            "properties": {
              "samsung_pay": {
                "$ref": "#/components/schemas/SamsungPayWalletData"
              }
            }
          },
          {
            "type": "object",
            "title": "Skrill",
            "required": [
              "skrill"
            ],
            "properties": {
              "skrill": {
                "$ref": "#/components/schemas/SkrillData"
              }
            }
          },
          {
            "type": "object",
            "title": "SwishQr",
            "required": [
              "swish_qr"
            ],
            "properties": {
              "swish_qr": {
                "$ref": "#/components/schemas/SwishQrData"
              }
            }
          },
          {
            "type": "object",
            "title": "TouchNGoRedirect",
            "required": [
              "touch_n_go_redirect"
            ],
            "properties": {
              "touch_n_go_redirect": {
                "$ref": "#/components/schemas/TouchNGoRedirection"
              }
            }
          },
          {
            "type": "object",
            "title": "TwintRedirect",
            "required": [
              "twint_redirect"
            ],
            "properties": {
              "twint_redirect": {
                "type": "object",
                "description": "Wallet data for Twint Redirection"
              }
            }
          },
          {
            "type": "object",
            "title": "VippsRedirect",
            "required": [
              "vipps_redirect"
            ],
            "properties": {
              "vipps_redirect": {
                "type": "object",
                "description": "Wallet data for Vipps Redirection"
              }
            }
          },
          {
            "type": "object",
            "title": "WeChatPayQr",
            "required": [
              "we_chat_pay_qr"
            ],
            "properties": {
              "we_chat_pay_qr": {
                "$ref": "#/components/schemas/WeChatPayQr"
              }
            }
          },
          {
            "type": "object",
            "title": "WeChatPayRedirect",
            "required": [
              "we_chat_pay_redirect"
            ],
            "properties": {
              "we_chat_pay_redirect": {
                "$ref": "#/components/schemas/WeChatPayRedirection"
              }
            }
          }
        ]
      },
      "WalletPaymentMethodData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "apple_pay"
            ],
            "properties": {
              "apple_pay": {
                "$ref": "#/components/schemas/PaymentMethodDataWalletInfo"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "google_pay"
            ],
            "properties": {
              "google_pay": {
                "$ref": "#/components/schemas/PaymentMethodDataWalletInfo"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "pay_pal"
            ],
            "properties": {
              "pay_pal": {
                "$ref": "#/components/schemas/PaypalRedirection"
              }
            }
          }
        ]
      },
      "WalletResponse": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/WalletResponseData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ]
      },
      "WalletResponseData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "apple_pay"
            ],
            "properties": {
              "apple_pay": {
                "$ref": "#/components/schemas/WalletAdditionalDataForCard"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "google_pay"
            ],
            "properties": {
              "google_pay": {
                "$ref": "#/components/schemas/WalletAdditionalDataForCard"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "samsung_pay"
            ],
            "properties": {
              "samsung_pay": {
                "$ref": "#/components/schemas/WalletAdditionalDataForCard"
              }
            }
          }
        ],
        "description": "Hyperswitch supports SDK integration with Apple Pay and Google Pay wallets. For other wallets, we integrate with their respective connectors, redirecting the customer to the connector for wallet payments. As a result, we don’t receive any payment method data in the confirm call for payments made through other wallets."
      },
      "WeChatPay": {
        "type": "object"
      },
      "WeChatPayQr": {
        "type": "object"
      },
      "WeChatPayRedirection": {
        "type": "object"
      },
      "WebhookDeliveryAttempt": {
        "type": "string",
        "enum": [
          "initial_attempt",
          "automatic_retry",
          "manual_retry"
        ]
      },
      "WebhookDetails": {
        "type": "object",
        "required": [
          "payment_statuses_enabled",
          "refund_statuses_enabled"
        ],
        "properties": {
          "webhook_version": {
            "type": "string",
            "description": "The version for Webhook",
            "example": "1.0.2",
            "nullable": true,
            "maxLength": 255
          },
          "webhook_username": {
            "type": "string",
            "description": "The user name for Webhook login",
            "example": "ekart_retail",
            "nullable": true,
            "maxLength": 255
          },
          "webhook_password": {
            "type": "string",
            "description": "The password for Webhook login",
            "example": "ekart@123",
            "nullable": true,
            "maxLength": 255
          },
          "webhook_url": {
            "type": "string",
            "description": "The url for the webhook endpoint",
            "example": "www.ekart.com/webhooks",
            "nullable": true
          },
          "payment_created_enabled": {
            "type": "boolean",
            "description": "If this property is true, a webhook message is posted whenever a new payment is created",
            "example": true,
            "nullable": true
          },
          "payment_succeeded_enabled": {
            "type": "boolean",
            "description": "If this property is true, a webhook message is posted whenever a payment is successful",
            "example": true,
            "nullable": true
          },
          "payment_failed_enabled": {
            "type": "boolean",
            "description": "If this property is true, a webhook message is posted whenever a payment fails",
            "example": true,
            "nullable": true
          },
          "payment_statuses_enabled": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IntentStatus"
            },
            "description": "List of payment statuses that triggers a webhook for payment intents",
            "example": [
              "succeeded",
              "failed",
              "partially_captured",
              "requires_merchant_action"
            ]
          },
          "refund_statuses_enabled": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IntentStatus"
            },
            "description": "List of refund statuses that triggers a webhook for refunds",
            "example": [
              "success",
              "failure"
            ]
          },
          "payout_statuses_enabled": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutStatus"
            },
            "description": "List of payout statuses that triggers a webhook for payouts",
            "example": [
              "success",
              "failed"
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WebhookRegistrationError": {
        "type": "object",
        "description": "Error details for a failed webhook registration.",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "WebhookRegistrationResult": {
        "type": "object",
        "description": "Result of registering a webhook for a single scope identifier.",
        "required": [
          "identifier",
          "status"
        ],
        "properties": {
          "identifier": {
            "$ref": "#/components/schemas/ScopeIdentifier"
          },
          "status": {
            "$ref": "#/components/schemas/WebhookRegistrationStatus"
          },
          "connector_webhook_id": {
            "type": "string",
            "description": "The connector-generated webhook ID, if successful.",
            "nullable": true
          },
          "error": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookRegistrationError"
              }
            ],
            "nullable": true
          }
        }
      },
      "WebhookRegistrationStatus": {
        "type": "string",
        "description": "The status of webhook registration",
        "enum": [
          "Success",
          "Failure"
        ]
      },
      "XenditChargeResponseData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "multiple_splits"
            ],
            "properties": {
              "multiple_splits": {
                "$ref": "#/components/schemas/XenditMultipleSplitResponse"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "single_split"
            ],
            "properties": {
              "single_split": {
                "$ref": "#/components/schemas/XenditSplitSubMerchantData"
              }
            }
          }
        ],
        "description": "Charge Information"
      },
      "XenditMultipleSplitRequest": {
        "type": "object",
        "description": "Fee information to be charged on the payment being collected via xendit",
        "required": [
          "name",
          "description",
          "routes"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name to identify split rule. Not required to be unique. Typically based on transaction and/or sub-merchant types."
          },
          "description": {
            "type": "string",
            "description": "Description to identify fee rule"
          },
          "for_user_id": {
            "type": "string",
            "description": "The sub-account user-id that you want to make this transaction for.",
            "nullable": true
          },
          "routes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/XenditSplitRoute"
            },
            "description": "Array of objects that define how the platform wants to route the fees and to which accounts."
          }
        },
        "additionalProperties": false
      },
      "XenditMultipleSplitResponse": {
        "type": "object",
        "description": "Fee information charged on the payment being collected via xendit",
        "required": [
          "split_rule_id",
          "name",
          "description",
          "routes"
        ],
        "properties": {
          "split_rule_id": {
            "type": "string",
            "description": "Identifier for split rule created for the payment"
          },
          "for_user_id": {
            "type": "string",
            "description": "The sub-account user-id that you want to make this transaction for.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Name to identify split rule. Not required to be unique. Typically based on transaction and/or sub-merchant types."
          },
          "description": {
            "type": "string",
            "description": "Description to identify fee rule"
          },
          "routes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/XenditSplitRoute"
            },
            "description": "Array of objects that define how the platform wants to route the fees and to which accounts."
          }
        },
        "additionalProperties": false
      },
      "XenditSplitRequest": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "multiple_splits"
            ],
            "properties": {
              "multiple_splits": {
                "$ref": "#/components/schemas/XenditMultipleSplitRequest"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "single_split"
            ],
            "properties": {
              "single_split": {
                "$ref": "#/components/schemas/XenditSplitSubMerchantData"
              }
            }
          }
        ],
        "description": "Xendit Charge Request"
      },
      "XenditSplitRoute": {
        "type": "object",
        "description": "Fee information to be charged on the payment being collected via xendit",
        "required": [
          "currency",
          "destination_account_id",
          "reference_id"
        ],
        "properties": {
          "flat_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "percent_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Amount of payments to be split, using a percent rate as unit",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "destination_account_id": {
            "type": "string",
            "description": "ID of the destination account where the amount will be routed to"
          },
          "reference_id": {
            "type": "string",
            "description": "Reference ID which acts as an identifier of the route itself"
          }
        },
        "additionalProperties": false
      },
      "XenditSplitSubMerchantData": {
        "type": "object",
        "description": "Fee information to be charged on the payment being collected for sub-merchant via xendit",
        "required": [
          "for_user_id"
        ],
        "properties": {
          "for_user_id": {
            "type": "string",
            "description": "The sub-account user-id that you want to make this transaction for."
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "admin_api_key": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Format: `admin-api-key=<admin-api-key>`\n\nAdmin API keys allow you to perform some privileged actions such as creating a merchant account and Connector account. This is only used during development."
      },
      "api_key": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Format: `api-key=<api_key>`\n\nUse the API key created under your merchant account from the HyperSwitch dashboard. API key is used to authenticate API requests from your merchant server only. Don't expose this key on a website or embed it in a mobile application."
      },
      "jwt_key": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "publishable_key__client_secret": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Format: `publishable-key=<publishable-key>,client-secret=<client-secret>`\n\nPublishable keys are a type of keys that can be public and have limited scope of usage. Client Secret provide temporary access to singular data, such as access to a single customer object for a short period of time. This authentication scheme is used by the SDK."
      }
    }
  },
  "tags": [
    {
      "name": "Merchant Account",
      "description": "Create and manage merchant accounts"
    },
    {
      "name": "Profile",
      "description": "Create and manage profiles"
    },
    {
      "name": "Merchant Connector Account",
      "description": "Create and manage merchant connector accounts"
    },
    {
      "name": "Payments",
      "description": "Create and manage one-time payments, recurring payments and mandates"
    },
    {
      "name": "Refunds",
      "description": "Create and manage refunds for successful payments"
    },
    {
      "name": "Mandates",
      "description": "Manage mandates"
    },
    {
      "name": "Customers",
      "description": "Create and manage customers"
    },
    {
      "name": "Payment Methods",
      "description": "Create and manage payment methods of customers"
    },
    {
      "name": "Disputes",
      "description": "Manage disputes"
    },
    {
      "name": "API Key",
      "description": "Create and manage API Keys"
    },
    {
      "name": "Payouts",
      "description": "Create and manage payouts"
    },
    {
      "name": "payment link",
      "description": "Create payment link"
    },
    {
      "name": "Routing",
      "description": "Create and manage routing configurations"
    },
    {
      "name": "Event",
      "description": "Manage events"
    }
  ]
}