{
  "openapi": "3.0.3",
  "x-mcp": {
    "enabled": true
  },
  "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": {
    "/payments": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Create",
        "description": "Creates a payment resource, which represents a customer's intent to pay.\nThis endpoint is the starting point for various payment flows:\n",
        "operationId": "Create a Payment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentsCreateRequest"
              },
              "examples": {
                "01. Create a payment with minimal fields": {
                  "value": {
                    "amount": 6540,
                    "currency": "USD"
                  }
                },
                "02. Create a payment with customer details and metadata": {
                  "value": {
                    "amount": 6540,
                    "currency": "USD",
                    "customer": {
                      "email": "john@example.com",
                      "id": "cus_abcdefgh",
                      "name": "John Dough",
                      "phone": "9123456789"
                    },
                    "description": "Its my first payment request",
                    "metadata": {
                      "udf1": "some-value",
                      "udf2": "some-value"
                    },
                    "payment_id": "abcdefghijklmnopqrstuvwxyz",
                    "statement_descriptor_name": "joseph",
                    "statement_descriptor_suffix": "JS"
                  }
                },
                "03. Create a 3DS payment": {
                  "value": {
                    "amount": 6540,
                    "authentication_type": "three_ds",
                    "currency": "USD"
                  }
                },
                "04. Create a manual capture payment (basic)": {
                  "value": {
                    "amount": 6540,
                    "capture_method": "manual",
                    "currency": "USD"
                  }
                },
                "05. Create a setup mandate payment": {
                  "value": {
                    "amount": 6540,
                    "authentication_type": "no_three_ds",
                    "confirm": true,
                    "currency": "USD",
                    "customer_acceptance": {
                      "acceptance_type": "online",
                      "accepted_at": "1963-05-03T04:07:52.723Z",
                      "online": {
                        "ip_address": "127.0.0.1",
                        "user_agent": "amet irure esse"
                      }
                    },
                    "customer_id": "StripeCustomer123",
                    "mandate_data": {
                      "customer_acceptance": {
                        "acceptance_type": "online",
                        "accepted_at": "1963-05-03T04:07:52.723Z",
                        "online": {
                          "ip_address": "127.0.0.1",
                          "user_agent": "amet irure esse"
                        }
                      },
                      "mandate_type": {
                        "single_use": {
                          "amount": 6540,
                          "currency": "USD"
                        }
                      }
                    },
                    "payment_method": "card",
                    "payment_method_data": {
                      "card": {
                        "card_cvc": "123",
                        "card_exp_month": "10",
                        "card_exp_year": "25",
                        "card_holder_name": "joseph Doe",
                        "card_number": "4242424242424242"
                      }
                    },
                    "setup_future_usage": "off_session"
                  }
                },
                "06. Create a recurring payment with mandate_id": {
                  "value": {
                    "amount": 6540,
                    "authentication_type": "no_three_ds",
                    "confirm": true,
                    "currency": "USD",
                    "customer_id": "StripeCustomer",
                    "mandate_id": "{{mandate_id}}",
                    "off_session": true
                  }
                },
                "07. Create a payment and save the card": {
                  "value": {
                    "amount": 6540,
                    "authentication_type": "no_three_ds",
                    "confirm": true,
                    "currency": "USD",
                    "customer_acceptance": {
                      "acceptance_type": "online",
                      "accepted_at": "1963-05-03T04:07:52.723Z",
                      "online": {
                        "ip_address": "127.0.0.1",
                        "user_agent": "amet irure esse"
                      }
                    },
                    "customer_id": "StripeCustomer123",
                    "payment_method": "card",
                    "payment_method_data": {
                      "card": {
                        "card_cvc": "123",
                        "card_exp_month": "10",
                        "card_exp_year": "25",
                        "card_holder_name": "joseph Doe",
                        "card_number": "4242424242424242"
                      }
                    },
                    "setup_future_usage": "off_session"
                  }
                },
                "08. Create a payment using an already saved card's token": {
                  "value": {
                    "amount": 6540,
                    "card_cvc": "123",
                    "client_secret": "{{client_secret}}",
                    "confirm": true,
                    "currency": "USD",
                    "payment_method": "card",
                    "payment_token": "{{payment_token}}"
                  }
                },
                "09. Create a payment with billing details": {
                  "value": {
                    "amount": 6540,
                    "billing": {
                      "address": {
                        "city": "San Fransico",
                        "country": "US",
                        "first_name": "joseph",
                        "last_name": "Doe",
                        "line1": "1467",
                        "line2": "Harrison Street",
                        "line3": "Harrison Street",
                        "state": "California",
                        "zip": "94122"
                      },
                      "phone": {
                        "country_code": "+91",
                        "number": "9123456789"
                      }
                    },
                    "currency": "USD",
                    "customer": {
                      "id": "cus_abcdefgh"
                    }
                  }
                },
                "10. Create a Stripe Split Payments CIT call": {
                  "value": {
                    "amount": 200,
                    "amount_to_capture": 200,
                    "authentication_type": "no_three_ds",
                    "billing": {
                      "address": {
                        "city": "San Fransico",
                        "country": "US",
                        "first_name": "joseph",
                        "last_name": "Doe",
                        "line1": "1467",
                        "line2": "Harrison Street",
                        "line3": "Harrison Street",
                        "state": "California",
                        "zip": "94122"
                      },
                      "phone": {
                        "country_code": "+91",
                        "number": "9999999999"
                      }
                    },
                    "capture_method": "automatic",
                    "confirm": true,
                    "currency": "USD",
                    "customer_acceptance": {
                      "acceptance_type": "offline",
                      "accepted_at": "1963-05-03T04:07:52.723Z",
                      "online": {
                        "ip_address": "125.0.0.1",
                        "user_agent": "amet irure esse"
                      }
                    },
                    "customer_id": "StripeCustomer123",
                    "description": "Its my first payment request",
                    "name": "John Doe",
                    "payment_method": "card",
                    "payment_method_data": {
                      "card": {
                        "card_cvc": "123",
                        "card_exp_month": "09",
                        "card_exp_year": "25",
                        "card_holder_name": "joseph Doe",
                        "card_number": "4242424242424242"
                      }
                    },
                    "payment_method_type": "debit",
                    "phone": "999999999",
                    "phone_country_code": "+65",
                    "profile_id": "pro_abcdefghijklmnop",
                    "return_url": "https://hyperswitch.io",
                    "setup_future_usage": "off_session",
                    "split_payments": {
                      "stripe_split_payment": {
                        "application_fees": 100,
                        "charge_type": "direct",
                        "transfer_account_id": "acct_123456789"
                      }
                    }
                  }
                },
                "11. Create a Stripe Split Payments MIT call": {
                  "value": {
                    "amount": 200,
                    "confirm": true,
                    "currency": "USD",
                    "customer_id": "StripeCustomer123",
                    "description": "Subsequent Mandate Test Payment (MIT from New CIT Demo)",
                    "off_session": true,
                    "profile_id": "pro_abcdefghijklmnop",
                    "recurring_details": {
                      "data": "pm_123456789",
                      "type": "payment_method_id"
                    },
                    "split_payments": {
                      "stripe_split_payment": {
                        "application_fees": 11,
                        "charge_type": "direct",
                        "transfer_account_id": "acct_123456789"
                      }
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsCreateResponseOpenApi"
                },
                "examples": {
                  "01. Response for minimal payment creation (requires payment method)": {
                    "value": {
                      "amount": 6540,
                      "amount_capturable": 6540,
                      "attempt_count": 1,
                      "client_secret": "pay_syxxxxxxxxxxxx_secret_szzzzzzzzzzz",
                      "created": "2023-10-26T10:00:00Z",
                      "currency": "USD",
                      "expires_on": "2023-10-26T10:15:00Z",
                      "merchant_id": "merchant_myyyyyyyyyyyy",
                      "payment_id": "pay_syxxxxxxxxxxxx",
                      "profile_id": "pro_pzzzzzzzzzzz",
                      "status": "requires_payment_method"
                    }
                  },
                  "02. Response for payment with customer details (requires payment method)": {
                    "value": {
                      "amount": 6540,
                      "attempt_count": 1,
                      "client_secret": "pay_custmeta_xxxxxxxxxxxx_secret_szzzzzzzzzzz",
                      "created": "2023-10-26T10:05:00Z",
                      "currency": "USD",
                      "customer": {
                        "email": "john@example.com",
                        "id": "cus_abcdefgh",
                        "name": "John Dough",
                        "phone": "9123456789"
                      },
                      "customer_id": "cus_abcdefgh",
                      "description": "Its my first payment request",
                      "ephemeral_key": {
                        "customer_id": "cus_abcdefgh",
                        "secret": "epk_ephemeralxxxxxxxxxxxx"
                      },
                      "expires_on": "2023-10-26T10:20:00Z",
                      "merchant_id": "merchant_myyyyyyyyyyyy",
                      "metadata": {
                        "udf1": "some-value",
                        "udf2": "some-value"
                      },
                      "payment_id": "pay_custmeta_xxxxxxxxxxxx",
                      "profile_id": "pro_pzzzzzzzzzzz",
                      "statement_descriptor_name": "joseph",
                      "statement_descriptor_suffix": "JS",
                      "status": "requires_payment_method"
                    }
                  },
                  "03. Response for 3DS payment creation (requires payment method)": {
                    "value": {
                      "amount": 6540,
                      "attempt_count": 1,
                      "authentication_type": "three_ds",
                      "client_secret": "pay_3ds_xxxxxxxxxxxx_secret_szzzzzzzzzzz",
                      "created": "2023-10-26T10:10:00Z",
                      "currency": "USD",
                      "expires_on": "2023-10-26T10:25:00Z",
                      "merchant_id": "merchant_myyyyyyyyyyyy",
                      "payment_id": "pay_3ds_xxxxxxxxxxxx",
                      "profile_id": "pro_pzzzzzzzzzzz",
                      "status": "requires_payment_method"
                    }
                  },
                  "04. Response for basic manual capture payment (requires payment method)": {
                    "value": {
                      "amount": 6540,
                      "attempt_count": 1,
                      "capture_method": "manual",
                      "client_secret": "pay_manualcap_xxxxxxxxxxxx_secret_szzzzzzzzzzz",
                      "created": "2023-10-26T10:15:00Z",
                      "currency": "USD",
                      "expires_on": "2023-10-26T10:30:00Z",
                      "merchant_id": "merchant_myyyyyyyyyyyy",
                      "payment_id": "pay_manualcap_xxxxxxxxxxxx",
                      "profile_id": "pro_pzzzzzzzzzzz",
                      "status": "requires_payment_method"
                    }
                  },
                  "05. Response for successful setup mandate payment": {
                    "value": {
                      "amount": 6540,
                      "amount_capturable": 0,
                      "amount_received": 6540,
                      "attempt_count": 1,
                      "authentication_type": "no_three_ds",
                      "client_secret": "pay_mandatesetup_xxxxxxxxxxxx_secret_szzzzzzzzzzz",
                      "connector": "fauxpay",
                      "connector_transaction_id": "txn_connectortransidxxxx",
                      "created": "2023-10-26T10:20:00Z",
                      "currency": "USD",
                      "customer_id": "StripeCustomer123",
                      "ephemeral_key": {
                        "customer_id": "StripeCustomer123",
                        "secret": "epk_ephemeralxxxxxxxxxxxx"
                      },
                      "mandate_data": {
                        "customer_acceptance": {
                          "acceptance_type": "online",
                          "accepted_at": "1963-05-03T04:07:52.723Z",
                          "online": {
                            "ip_address": "127.0.0.1",
                            "user_agent": "amet irure esse"
                          }
                        },
                        "mandate_type": {
                          "single_use": {
                            "amount": 6540,
                            "currency": "USD"
                          }
                        }
                      },
                      "mandate_id": "man_xxxxxxxxxxxx",
                      "merchant_connector_id": "mca_mcaconnectorxxxx",
                      "merchant_id": "merchant_myyyyyyyyyyyy",
                      "payment_id": "pay_mandatesetup_xxxxxxxxxxxx",
                      "payment_method": "card",
                      "payment_method_data": {
                        "card": {
                          "card_exp_month": "10",
                          "card_exp_year": "25",
                          "card_holder_name": "joseph Doe",
                          "last4": "4242"
                        }
                      },
                      "profile_id": "pro_pzzzzzzzzzzz",
                      "setup_future_usage": "on_session",
                      "status": "succeeded"
                    }
                  },
                  "06. Response for successful recurring payment with mandate_id": {
                    "value": {
                      "amount": 6540,
                      "amount_capturable": 0,
                      "amount_received": 6540,
                      "attempt_count": 1,
                      "authentication_type": "no_three_ds",
                      "client_secret": "pay_recurring_xxxxxxxxxxxx_secret_szzzzzzzzzzz",
                      "connector": "fauxpay",
                      "connector_transaction_id": "txn_connectortransidxxxx",
                      "created": "2023-10-26T10:22:00Z",
                      "currency": "USD",
                      "customer_id": "StripeCustomer",
                      "mandate_id": "{{mandate_id}}",
                      "merchant_connector_id": "mca_mcaconnectorxxxx",
                      "merchant_id": "merchant_myyyyyyyyyyyy",
                      "off_session": true,
                      "payment_id": "pay_recurring_xxxxxxxxxxxx",
                      "payment_method": "card",
                      "profile_id": "pro_pzzzzzzzzzzz",
                      "status": "succeeded"
                    }
                  },
                  "07. Response for successful payment with card saved": {
                    "value": {
                      "amount": 6540,
                      "amount_capturable": 0,
                      "amount_received": 6540,
                      "attempt_count": 1,
                      "authentication_type": "no_three_ds",
                      "client_secret": "pay_savecard_xxxxxxxxxxxx_secret_szzzzzzzzzzz",
                      "connector": "fauxpay",
                      "connector_transaction_id": "txn_connectortransidxxxx",
                      "created": "2023-10-26T10:25:00Z",
                      "currency": "USD",
                      "customer_id": "StripeCustomer123",
                      "ephemeral_key": {
                        "customer_id": "StripeCustomer123",
                        "secret": "epk_ephemeralxxxxxxxxxxxx"
                      },
                      "merchant_connector_id": "mca_mcaconnectorxxxx",
                      "merchant_id": "merchant_myyyyyyyyyyyy",
                      "payment_id": "pay_savecard_xxxxxxxxxxxx",
                      "payment_method": "card",
                      "payment_method_data": {
                        "card": {
                          "card_exp_month": "10",
                          "card_exp_year": "25",
                          "card_holder_name": "joseph Doe",
                          "last4": "4242"
                        }
                      },
                      "payment_token": null,
                      "profile_id": "pro_pzzzzzzzzzzz",
                      "setup_future_usage": "on_session",
                      "status": "succeeded"
                    }
                  },
                  "08. Response for successful payment using saved card token": {
                    "value": {
                      "amount": 6540,
                      "amount_capturable": 0,
                      "amount_received": 6540,
                      "attempt_count": 1,
                      "client_secret": "pay_token_xxxxxxxxxxxx_secret_szzzzzzzzzzz",
                      "connector": "fauxpay",
                      "connector_transaction_id": "txn_connectortransidxxxx",
                      "created": "2023-10-26T10:27:00Z",
                      "currency": "USD",
                      "merchant_connector_id": "mca_mcaconnectorxxxx",
                      "merchant_id": "merchant_myyyyyyyyyyyy",
                      "payment_id": "pay_token_xxxxxxxxxxxx",
                      "payment_method": "card",
                      "payment_token": "{{payment_token}}",
                      "profile_id": "pro_pzzzzzzzzzzz",
                      "status": "succeeded"
                    }
                  },
                  "09. Response for payment with billing details (requires payment method)": {
                    "value": {
                      "amount": 6540,
                      "attempt_count": 1,
                      "billing": {
                        "address": {
                          "city": "San Fransico",
                          "country": "US",
                          "first_name": "joseph",
                          "last_name": "Doe",
                          "line1": "1467",
                          "line2": "Harrison Street",
                          "state": "California",
                          "zip": "94122"
                        },
                        "phone": {
                          "country_code": "+91",
                          "number": "9123456789"
                        }
                      },
                      "client_secret": "pay_manualbill_xxxxxxxxxxxx_secret_szzzzzzzzzzz",
                      "created": "2023-10-26T10:30:00Z",
                      "currency": "USD",
                      "customer": {
                        "email": "john@example.com",
                        "id": "cus_abcdefgh",
                        "name": "John Dough",
                        "phone": "9123456789"
                      },
                      "customer_id": "cus_abcdefgh",
                      "ephemeral_key": {
                        "customer_id": "cus_abcdefgh",
                        "secret": "epk_ephemeralxxxxxxxxxxxx"
                      },
                      "expires_on": "2023-10-26T10:45:00Z",
                      "merchant_id": "merchant_myyyyyyyyyyyy",
                      "payment_id": "pay_manualbill_xxxxxxxxxxxx",
                      "profile_id": "pro_pzzzzzzzzzzz",
                      "status": "requires_payment_method"
                    }
                  },
                  "10. Response for the CIT call for Stripe Split Payments": {
                    "value": {
                      "amount": 200,
                      "attempt_count": 1,
                      "billing": {
                        "address": {
                          "city": "San Fransico",
                          "country": "US",
                          "first_name": "joseph",
                          "last_name": "Doe",
                          "line1": "1467",
                          "line2": "Harrison Street",
                          "state": "California",
                          "zip": "94122"
                        },
                        "phone": {
                          "country_code": "+91",
                          "number": "9123456789"
                        }
                      },
                      "client_secret": "pay_manualbill_xxxxxxxxxxxx_secret_szzzzzzzzzzz",
                      "connector_mandate_id": "pm_abcdefgh",
                      "created": "2023-10-26T10:30:00Z",
                      "currency": "USD",
                      "customer": {
                        "email": "john@example.com",
                        "id": "cus_abcdefgh",
                        "name": "John Dough",
                        "phone": "9123456789"
                      },
                      "customer_id": "cus_abcdefgh",
                      "ephemeral_key": {
                        "customer_id": "cus_abcdefgh",
                        "secret": "epk_ephemeralxxxxxxxxxxxx"
                      },
                      "expires_on": "2023-10-26T10:45:00Z",
                      "merchant_id": "merchant_myyyyyyyyyyyy",
                      "payment_id": "pay_manualbill_xxxxxxxxxxxx",
                      "payment_method_id": "pm_123456789",
                      "profile_id": "pro_pzzzzzzzzzzz",
                      "status": "succeeded"
                    }
                  },
                  "11. Response for the MIT call for Stripe Split Payments": {
                    "value": {
                      "amount": 200,
                      "attempt_count": 1,
                      "billing": {
                        "address": {
                          "city": "San Fransico",
                          "country": "US",
                          "first_name": "joseph",
                          "last_name": "Doe",
                          "line1": "1467",
                          "line2": "Harrison Street",
                          "state": "California",
                          "zip": "94122"
                        },
                        "phone": {
                          "country_code": "+91",
                          "number": "9123456789"
                        }
                      },
                      "client_secret": "pay_manualbill_xxxxxxxxxxxx_secret_szzzzzzzzzzz",
                      "connector_mandate_id": "pm_abcdefgh",
                      "created": "2023-10-26T10:30:00Z",
                      "currency": "USD",
                      "customer": {
                        "email": "john@example.com",
                        "id": "cus_abcdefgh",
                        "name": "John Dough",
                        "phone": "9123456789"
                      },
                      "customer_id": "cus_abcdefgh",
                      "ephemeral_key": {
                        "customer_id": "cus_abcdefgh",
                        "secret": "epk_ephemeralxxxxxxxxxxxx"
                      },
                      "expires_on": "2023-10-26T10:45:00Z",
                      "merchant_id": "merchant_myyyyyyyyyyyy",
                      "payment_id": "pay_manualbill_xxxxxxxxxxxx",
                      "payment_method_id": "pm_123456789",
                      "profile_id": "pro_pzzzzzzzzzzz",
                      "status": "succeeded"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payments/{payment_id}": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Update",
        "description": "To update the properties of a *PaymentIntent* object. This may include attaching a payment method, or attaching customer object or metadata fields after the Payment is created",
        "operationId": "Update 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/PaymentsUpdateRequest"
              },
              "examples": {
                "Update the payment amount": {
                  "value": {
                    "amount": 7654
                  }
                },
                "Update the shipping address": {
                  "value": {
                    "shipping": {
                      "address": {
                        "city": "San Fransico",
                        "country": "US",
                        "first_name": "joseph",
                        "last_name": "Doe",
                        "line1": "1467",
                        "line2": "Harrison Street",
                        "line3": "Harrison Street",
                        "state": "California",
                        "zip": "94122"
                      },
                      "phone": {
                        "country_code": "+91",
                        "number": "9123456789"
                      }
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsCreateResponseOpenApi"
                }
              }
            }
          },
          "400": {
            "description": "Missing mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "publishable_key": []
          }
        ]
      },
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Retrieve",
        "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": "payment_id",
            "in": "path",
            "description": "The identifier for payment",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "force_sync",
            "in": "query",
            "description": "Decider to enable or disable the connector call for retrieve request",
            "required": false,
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "client_secret",
            "in": "query",
            "description": "This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "expand_attempts",
            "in": "query",
            "description": "If enabled provides list of attempts linked to payment intent",
            "required": false,
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "expand_captures",
            "in": "query",
            "description": "If enabled provides list of captures linked to latest attempt",
            "required": false,
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Gets the payment with final status",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsResponse"
                }
              }
            }
          },
          "404": {
            "description": "No payment found"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/payments/{payment_id}/confirm": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Confirm",
        "description": "Confirms a payment intent that was previously created with `confirm: false`. This action attempts to authorize the payment with the payment processor.\n\nExpected status transitions after confirmation:\n- `succeeded`: If authorization is successful and `capture_method` is `automatic`.\n- `requires_capture`: If authorization is successful and `capture_method` is `manual`.\n- `failed`: If authorization fails.",
        "operationId": "Confirm 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/PaymentsConfirmRequest"
              },
              "examples": {
                "Confirm a payment with payment method data": {
                  "value": {
                    "customer_acceptance": {
                      "acceptance_type": "online",
                      "accepted_at": "1963-05-03T04:07:52.723Z",
                      "online": {
                        "ip_address": "127.0.0.1",
                        "user_agent": "amet irure esse"
                      }
                    },
                    "payment_method": "card",
                    "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_type": "credit"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment confirmed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsCreateResponseOpenApi"
                }
              }
            }
          },
          "400": {
            "description": "Missing mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/payments/{payment_id}/capture": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Capture",
        "description": "Captures the funds for a previously authorized payment intent where `capture_method` was set to `manual` and the payment is in a `requires_capture` state.\n\nUpon successful capture, the payment status usually transitions to `succeeded`.\nThe `amount_to_capture` can be specified in the request body; it must be less than or equal to the payment's `amount_capturable`. If omitted, the full capturable amount is captured.\n\nA payment must be in a capturable state (e.g., `requires_capture`). Attempting to capture an already `succeeded` (and fully captured) payment or one in an invalid state will lead to an error.\n",
        "operationId": "Capture 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/PaymentsCaptureRequest"
              },
              "examples": {
                "Capture partial amount": {
                  "value": {
                    "amount_to_capture": 654
                  }
                },
                "Capture the full amount": {
                  "value": {}
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment captured",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payments/session_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 Session tokens for a Payment",
        "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": []
          }
        ]
      }
    },
    "/payments/{payment_id}/cancel": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Cancel",
        "description": "A Payment could can be cancelled when it is in one of these statuses: `requires_payment_method`, `requires_capture`, `requires_confirmation`, `requires_customer_action`.",
        "operationId": "Cancel 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/PaymentsCancelRequest"
              },
              "examples": {
                "Cancel the payment with cancellation reason": {
                  "value": {
                    "cancellation_reason": "requested_by_customer"
                  }
                },
                "Cancel the payment with minimal fields": {
                  "value": {}
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment canceled"
          },
          "400": {
            "description": "Missing mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payments/{payment_id}/cancel_post_capture": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Cancel Post Capture",
        "description": "A Payment could can be cancelled when it is in one of these statuses: `succeeded`, `partially_captured`, `partially_captured_and_capturable`.",
        "operationId": "Cancel a Payment Post Capture",
        "parameters": [
          {
            "name": "payment_id",
            "in": "path",
            "description": "The identifier for payment",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentsCancelPostCaptureRequest"
              },
              "examples": {
                "Cancel the payment post capture with cancellation reason": {
                  "value": {
                    "cancellation_reason": "requested_by_customer"
                  }
                },
                "Cancel the payment post capture with minimal fields": {
                  "value": {}
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment canceled post capture",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Cancel Post Capture Retrieve",
        "description": "Retrieves a canceled Payment post capture",
        "operationId": "Cancel a Payment Post Capture Retrieve",
        "parameters": [
          {
            "name": "payment_id",
            "in": "path",
            "description": "The identifier for payment",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment canceled post capture",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payments/{payment_id}/extend_authorization": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Extended Authorization",
        "description": "Extended authorization is available for payments currently in the `requires_capture` status\nCall this endpoint to increase the authorization validity period",
        "operationId": "Extend authorization period for a Payment",
        "parameters": [
          {
            "name": "payment_id",
            "in": "path",
            "description": "The identifier for payment",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Extended authorization for the payment"
          },
          "400": {
            "description": "Missing mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payments/list": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - List",
        "description": "To list the *payments*",
        "operationId": "List all Payments",
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "description": "The identifier for the customer",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "starting_after",
            "in": "query",
            "description": "A cursor for use in pagination, fetch the next list after some object",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "ending_before",
            "in": "query",
            "description": "A cursor for use in pagination, fetch the previous list before some object",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit on the number of objects to return",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "created",
            "in": "query",
            "description": "The time at which payment is created",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "created_lt",
            "in": "query",
            "description": "Time less than the payment created time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "created_gt",
            "in": "query",
            "description": "Time greater than the payment created time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "created_lte",
            "in": "query",
            "description": "Time less than or equals to the payment created time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "created_gte",
            "in": "query",
            "description": "Time greater than or equals to the payment created time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved a payment list",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PaymentListResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "No payments found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payments/{payment_id}/incremental_authorization": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Incremental Authorization",
        "description": "Authorized amount for a payment can be incremented if it is in status: requires_capture",
        "operationId": "Increment authorized amount 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/PaymentsIncrementalAuthorizationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment authorized amount incremented",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payment_link/{payment_link_id}": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments Link - Retrieve",
        "description": "To retrieve the properties of a Payment Link. This may be used to get the status of a previously initiated payment or next action for an ongoing payment",
        "operationId": "Retrieve a Payment Link",
        "parameters": [
          {
            "name": "payment_link_id",
            "in": "path",
            "description": "The identifier for payment link",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "client_secret",
            "in": "query",
            "description": "This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Gets details regarding payment link",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetrievePaymentLinkResponse"
                }
              }
            }
          },
          "404": {
            "description": "No payment link found"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/payments/{payment_id}/3ds/authentication": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - External 3DS Authentication",
        "description": "External 3DS Authentication is performed and returns the AuthenticationResponse",
        "operationId": "Initiate external authentication 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/PaymentsExternalAuthenticationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Authentication created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsExternalAuthenticationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/payments/{payment_id}/complete_authorize": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Complete Authorize",
        "operationId": "Complete Authorize 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/PaymentsCompleteAuthorizeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payments Complete Authorize Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/payments/{payment_id}/post_session_tokens": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Post Session Tokens",
        "operationId": "Create Post 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/PaymentsPostSessionTokensRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Post Session Token is done",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsPostSessionTokensResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/payments/{payment_id}/update_metadata": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Update Metadata",
        "operationId": "Update Metadata 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/PaymentsUpdateMetadataRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Metadata updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsUpdateMetadataResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing mandatory fields",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payments/{payment_id}/eligibility_check": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Submit Eligibility Check Data",
        "operationId": "Submit Eligibility Check data 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/PaymentsEligibilityCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Eligibility Check submit is successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsEligibilityCheckResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/payments/{payment_id}/eligibility": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Payments - Submit Eligibility Data",
        "description": "Runs eligibility checks (blocklist, card testing guard) and calculates an external surcharge\nin a single call. Intended to be called by the SDK before the final confirm step.\n\n- If eligibility is denied the response will contain `sdk_next_action: deny` and no surcharge details.\n- If the merchant has no surcharge connector configured, `surcharge_details` will be `null`.\n- Surcharge calculation is best-effort: if the external call fails the payment still proceeds\nwith `surcharge_details: null`.",
        "operationId": "Submit Eligibility data for a Payment",
        "parameters": [
          {
            "name": "payment_id",
            "in": "path",
            "description": "The identifier for the payment",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentsEligibilityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Eligibility and surcharge checks successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsEligibilityResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          },
          "404": {
            "description": "Payment not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/relay": {
      "post": {
        "tags": [
          "Relay"
        ],
        "summary": "Relay - Create",
        "description": "Creates a relay request.",
        "operationId": "Relay Request",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID for authentication",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Idempotency-Key",
            "in": "header",
            "description": "Idempotency Key for relay request",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RelayRequest"
              },
              "examples": {
                "Create a relay request": {
                  "value": {
                    "connector_id": "mca_5apGeP94tMts6rg3U3kR",
                    "connector_resource_id": "7256228702616471803954",
                    "data": {
                      "refund": {
                        "amount": 6540,
                        "currency": "USD"
                      }
                    },
                    "type": "refund"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Relay request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelayResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/relay/{relay_id}": {
      "get": {
        "tags": [
          "Relay"
        ],
        "summary": "Relay - Retrieve",
        "description": "Retrieves a relay details.",
        "operationId": "Retrieve a Relay details",
        "parameters": [
          {
            "name": "relay_id",
            "in": "path",
            "description": "The unique identifier for the Relay",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID for authentication",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Relay Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelayResponse"
                }
              }
            }
          },
          "404": {
            "description": "Relay details was not found"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "ephemeral_key": []
          }
        ]
      }
    },
    "/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/RefundRequest"
              },
              "examples": {
                "Create an instant refund to refund partial amount": {
                  "value": {
                    "amount": 654,
                    "payment_id": "{{payment_id}}",
                    "refund_type": "instant"
                  }
                },
                "Create an instant refund to refund the whole amount": {
                  "value": {
                    "payment_id": "{{payment_id}}",
                    "refund_type": "instant"
                  }
                },
                "Create an instant refund with reason": {
                  "value": {
                    "amount": 6540,
                    "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": []
          }
        ]
      }
    },
    "/refunds/{refund_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": "refund_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": []
          }
        ]
      },
      "post": {
        "tags": [
          "Refunds"
        ],
        "summary": "Refunds - 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 a Refund",
        "parameters": [
          {
            "name": "refund_id",
            "in": "path",
            "description": "The identifier for refund",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefundUpdateRequest"
              },
              "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": []
          }
        ]
      }
    },
    "/refunds/list": {
      "post": {
        "tags": [
          "Refunds"
        ],
        "summary": "Refunds - List",
        "description": "Lists all the refunds associated with the merchant, or for a specific payment if payment_id is 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": []
          }
        ]
      }
    },
    "/organization": {
      "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": []
          }
        ]
      }
    },
    "/organization/{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": []
          }
        ]
      }
    },
    "/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.",
        "operationId": "Create a Merchant Account",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MerchantAccountCreate"
              },
              "examples": {
                "Create a merchant account with minimal fields": {
                  "value": {
                    "merchant_id": "merchant_abc"
                  }
                },
                "Create a merchant account with return url": {
                  "value": {
                    "merchant_id": "merchant_abc",
                    "return_url": "https://example.com"
                  }
                },
                "Create a merchant account with webhook url": {
                  "value": {
                    "merchant_id": "merchant_abc",
                    "webhook_details": {
                      "webhook_url": "https://webhook.site/a5c54f75-1f7e-4545-b781-af525b7e37a0"
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Merchant Account Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantAccountResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/accounts/{account_id}": {
      "get": {
        "tags": [
          "Merchant Account"
        ],
        "summary": "Merchant Account - Retrieve",
        "description": "Retrieve a *merchant* account details.",
        "operationId": "Retrieve a Merchant Account",
        "parameters": [
          {
            "name": "account_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": []
          }
        ]
      },
      "post": {
        "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": "account_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 name": {
                  "value": {
                    "merchant_id": "merchant_abc",
                    "merchant_name": "merchant_name"
                  }
                },
                "Update return url": {
                  "value": {
                    "merchant_id": "merchant_abc",
                    "return_url": "https://example.com"
                  }
                },
                "Update webhook url": {
                  "value": {
                    "merchant_id": "merchant_abc",
                    "webhook_details": {
                      "webhook_url": "https://webhook.site/a5c54f75-1f7e-4545-b781-af525b7e37a0"
                    }
                  }
                }
              }
            }
          },
          "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": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Merchant Account"
        ],
        "summary": "Merchant Account - Delete",
        "description": "Delete a *merchant* account",
        "operationId": "Delete a Merchant Account",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Merchant Account Deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantAccountDeleteResponse"
                }
              }
            }
          },
          "404": {
            "description": "Merchant account not found"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/accounts/{account_id}/kv": {
      "post": {
        "tags": [
          "Merchant Account"
        ],
        "summary": "Merchant Account - KV Status",
        "description": "Toggle KV mode for the Merchant Account",
        "operationId": "Enable/Disable KV for a Merchant Account",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ToggleKVRequest"
              },
              "examples": {
                "Disable KV for Merchant": {
                  "value": {
                    "kv_enabled": "false"
                  }
                },
                "Enable KV for Merchant": {
                  "value": {
                    "kv_enabled": "true"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "KV mode is enabled/disabled for Merchant Account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToggleKVResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          },
          "404": {
            "description": "Merchant account not found"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/account/{account_id}/connectors": {
      "post": {
        "tags": [
          "Merchant Connector Account"
        ],
        "summary": "Merchant Connector - Create",
        "description": "Creates a new Merchant Connector 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",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "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": [
          {
            "api_key": []
          }
        ]
      },
      "get": {
        "tags": [
          "Merchant Connector Account"
        ],
        "summary": "Merchant Connector - List",
        "description": "List Merchant Connector Details for the merchant",
        "operationId": "List all Merchant Connectors",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Merchant Connector list retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MerchantConnectorListResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Merchant Connector does not exist in records"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/account/{account_id}/connectors/{merchant_connector_id}": {
      "get": {
        "tags": [
          "Merchant Connector Account"
        ],
        "summary": "Merchant Connector - Retrieve",
        "description": "Retrieves details of a Connector account",
        "operationId": "Retrieve a Merchant Connector",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "merchant_connector_id",
            "in": "path",
            "description": "The unique identifier for the Merchant Connector",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "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": [
          {
            "api_key": []
          }
        ]
      },
      "post": {
        "tags": [
          "Merchant Connector Account"
        ],
        "summary": "Merchant Connector - Update",
        "description": "To update an existing Merchant Connector account. Helpful in enabling/disabling different payment methods and other settings for the connector",
        "operationId": "Update a Merchant Connector",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "merchant_connector_id",
            "in": "path",
            "description": "The unique identifier for the Merchant Connector",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "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": [
          {
            "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": "account_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "merchant_connector_id",
            "in": "path",
            "description": "The unique identifier for the Merchant Connector",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "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": []
          }
        ]
      }
    },
    "/account/{account_id}/webhooks/{merchant_connector_id}": {
      "post": {
        "tags": [
          "Merchant Connector Account"
        ],
        "summary": "Configure Connector Webhook - Register",
        "description": "Setup webhook configuration for an existing Merchant at the connector.",
        "operationId": "Register a Connector Webhook",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "merchant_connector_id",
            "in": "path",
            "description": "The unique identifier for the Merchant Connector",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectorWebhookRegisterRequest"
              },
              "examples": {
                "Register  webhook for a specific event": {
                  "value": {
                    "event_type": {
                      "specific_event": "payment_succeeded"
                    }
                  }
                },
                "Register a standard webhook": {
                  "value": {
                    "event_type": "standard"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Connector Webhook Registered",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegisterConnectorWebhookResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/gsm": {
      "post": {
        "tags": [
          "Gsm"
        ],
        "summary": "Gsm - Create",
        "description": "Creates a GSM (Global Status Mapping) Rule. A GSM rule is used to map a connector's error message/error code combination during a particular payments flow/sub-flow to Hyperswitch's unified status/error code/error message combination. It is also used to decide the next action in the flow - retry/requeue/do_default",
        "operationId": "Create Gsm Rule",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GsmCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Gsm created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GsmResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/gsm/get": {
      "post": {
        "tags": [
          "Gsm"
        ],
        "summary": "Gsm - Get",
        "description": "Retrieves a Gsm Rule",
        "operationId": "Retrieve Gsm Rule",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GsmRetrieveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Gsm retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GsmResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/gsm/update": {
      "post": {
        "tags": [
          "Gsm"
        ],
        "summary": "Gsm - Update",
        "description": "Updates a Gsm Rule",
        "operationId": "Update Gsm Rule",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GsmUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Gsm updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GsmResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/gsm/delete": {
      "post": {
        "tags": [
          "Gsm"
        ],
        "summary": "Gsm - Delete",
        "description": "Deletes a Gsm Rule",
        "operationId": "Delete Gsm Rule",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GsmDeleteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Gsm deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GsmDeleteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/mandates/{mandate_id}": {
      "get": {
        "tags": [
          "Mandates"
        ],
        "summary": "Mandates - Retrieve Mandate",
        "description": "Retrieves a mandate created using the Payments/Create API",
        "operationId": "Retrieve a Mandate",
        "parameters": [
          {
            "name": "mandate_id",
            "in": "path",
            "description": "The identifier for mandate",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The mandate was retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MandateResponse"
                }
              }
            }
          },
          "404": {
            "description": "Mandate does not exist in our records"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/mandates/revoke/{mandate_id}": {
      "post": {
        "tags": [
          "Mandates"
        ],
        "summary": "Mandates - Revoke Mandate",
        "description": "Revokes a mandate created using the Payments/Create API",
        "operationId": "Revoke a Mandate",
        "parameters": [
          {
            "name": "mandate_id",
            "in": "path",
            "description": "The identifier for a mandate",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The mandate was revoked successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MandateRevokedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Mandate does not exist in our records"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/customers/{customer_id}/mandates": {
      "get": {
        "tags": [
          "Mandates"
        ],
        "summary": "Mandates - Customer Mandates List",
        "description": "Lists all the mandates for a particular customer id.",
        "operationId": "List Mandates for a Customer",
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "description": "The unique identifier for the customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of retrieved mandates for a customer",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MandateResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/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",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerRequest"
              },
              "examples": {
                "Update name and email of a customer": {
                  "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": []
          }
        ]
      }
    },
    "/customers/{customer_id}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Customers - Retrieve",
        "description": "Retrieves a customer's details.",
        "operationId": "Retrieve a Customer",
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "description": "The unique identifier for the Customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Customer Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          },
          "404": {
            "description": "Customer was not found"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "ephemeral_key": []
          }
        ]
      },
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Customers - Update",
        "description": "Updates the customer's details in a customer object.",
        "operationId": "Update a Customer",
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "description": "The unique identifier for the Customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "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": "customer_id",
            "in": "path",
            "description": "The unique identifier for the Customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Customer was Deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDeleteResponse"
                }
              }
            }
          },
          "404": {
            "description": "Customer was not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/v1/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"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Customer Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          },
          "404": {
            "description": "Customer was not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/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": "offset",
            "in": "query",
            "description": "Offset for pagination",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true,
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit for pagination",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Customers retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payment_methods": {
      "post": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "PaymentMethods - Create",
        "description": "Creates and stores a payment method against a customer.\nIn case of cards, this API should be used only by PCI compliant merchants.",
        "operationId": "Create a Payment Method",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodCreate"
              },
              "examples": {
                "Save a card": {
                  "value": {
                    "card": {
                      "card_exp_month": "11",
                      "card_exp_year": "30",
                      "card_holder_name": "John Doe",
                      "card_number": "4242424242424242"
                    },
                    "customer_id": "{{customer_id}}",
                    "payment_method": "card",
                    "payment_method_issuer": "Visa",
                    "payment_method_type": "credit"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment Method Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/account/payment_methods": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "List payment methods for a Merchant",
        "description": "Lists the applicable payment methods for a particular Merchant ID.\nUse the client secret and publishable key authorization to list all relevant payment methods of the merchant for the payment corresponding to the client secret.",
        "operationId": "List all Payment Methods for a Merchant",
        "parameters": [
          {
            "name": "client_secret",
            "in": "query",
            "description": "This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "accepted_countries",
            "in": "query",
            "description": "The two-letter ISO currency code",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/CountryAlpha2"
              },
              "nullable": true
            }
          },
          {
            "name": "accepted_currencies",
            "in": "query",
            "description": "The three-letter ISO currency code",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Currency"
              },
              "nullable": true
            }
          },
          {
            "name": "amount",
            "in": "query",
            "description": "The amount accepted for processing by the particular payment method.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "recurring_enabled",
            "in": "query",
            "description": "Indicates whether the payment method is eligible for recurring payments",
            "required": false,
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "installment_payment_enabled",
            "in": "query",
            "description": "Indicates whether the payment method is eligible for installment payments",
            "required": false,
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Indicates the limit of last used payment methods",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "card_networks",
            "in": "query",
            "description": "Indicates whether the payment method is eligible for card netwotks",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/CardNetwork"
              },
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Methods retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          },
          "404": {
            "description": "Payment Methods does not exist in records"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/customers/{customer_id}/payment_methods": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "List payment methods for a Customer",
        "description": "Lists all the applicable payment methods for a particular Customer ID.",
        "operationId": "List all Payment Methods for a Customer",
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "description": "The unique identifier for the customer account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "client_secret",
            "in": "query",
            "description": "This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "accepted_countries",
            "in": "query",
            "description": "The two-letter ISO currency code",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/CountryAlpha2"
              },
              "nullable": true
            }
          },
          {
            "name": "accepted_currencies",
            "in": "query",
            "description": "The three-letter ISO currency code",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Currency"
              },
              "nullable": true
            }
          },
          {
            "name": "amount",
            "in": "query",
            "description": "The amount accepted for processing by the particular payment method.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "recurring_enabled",
            "in": "query",
            "description": "Indicates whether the payment method is eligible for recurring payments",
            "required": false,
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "installment_payment_enabled",
            "in": "query",
            "description": "Indicates whether the payment method is eligible for installment payments",
            "required": false,
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Indicates the limit of last used payment methods",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "card_networks",
            "in": "query",
            "description": "Indicates whether the payment method is eligible for card netwotks",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/CardNetwork"
              },
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Methods retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerPaymentMethodsListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          },
          "404": {
            "description": "Payment Methods does not exist in records"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/customers/payment_methods": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "List customer saved payment methods for a Payment",
        "description": "Lists all the applicable payment methods for a particular payment tied to the `client_secret`.",
        "operationId": "List Customer Payment Methods via Client Secret",
        "parameters": [
          {
            "name": "client_secret",
            "in": "query",
            "description": "This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "accepted_countries",
            "in": "query",
            "description": "The two-letter ISO currency code",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/CountryAlpha2"
              },
              "nullable": true
            }
          },
          {
            "name": "accepted_currencies",
            "in": "query",
            "description": "The three-letter ISO currency code",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Currency"
              },
              "nullable": true
            }
          },
          {
            "name": "amount",
            "in": "query",
            "description": "The amount accepted for processing by the particular payment method.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "recurring_enabled",
            "in": "query",
            "description": "Indicates whether the payment method is eligible for recurring payments",
            "required": false,
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "installment_payment_enabled",
            "in": "query",
            "description": "Indicates whether the payment method is eligible for installment payments",
            "required": false,
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Indicates the limit of last used payment methods",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "card_networks",
            "in": "query",
            "description": "Indicates whether the payment method is eligible for card netwotks",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/CardNetwork"
              },
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Methods retrieved for customer tied to its respective client-secret passed in the param",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerPaymentMethodsListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          },
          "404": {
            "description": "Payment Methods does not exist in records"
          }
        },
        "security": [
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/{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": [
          {
            "ephemeral_key": []
          }
        ]
      }
    },
    "/payment_methods/{method_id}": {
      "get": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Retrieve",
        "description": "Retrieves a payment method of a customer.",
        "operationId": "Retrieve a Payment method",
        "parameters": [
          {
            "name": "method_id",
            "in": "path",
            "description": "The unique identifier for the Payment Method",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Method retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment Method does not exist in records"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Delete",
        "description": "Deletes a payment method of a customer.",
        "operationId": "Delete a Payment method",
        "parameters": [
          {
            "name": "method_id",
            "in": "path",
            "description": "The unique identifier for the Payment Method",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payment Method deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodDeleteResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment Method does not exist in records"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payment_methods/{method_id}/update": {
      "post": {
        "tags": [
          "Payment Methods"
        ],
        "summary": "Payment Method - Update",
        "description": "Update an existing payment method of a customer.\nThis API is useful for use cases such as updating the card number for expired cards to prevent discontinuity in recurring payments.",
        "operationId": "Update a Payment method",
        "parameters": [
          {
            "name": "method_id",
            "in": "path",
            "description": "The unique identifier for the Payment Method",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMethodUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payment Method updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMethodResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment Method does not exist in records"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/account/{account_id}/business_profile": {
      "post": {
        "tags": [
          "Profile"
        ],
        "summary": "Profile - Create",
        "description": "Creates a new *profile* for a merchant",
        "operationId": "Create A Profile",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileCreate"
              },
              "examples": {
                "Create a profile with minimal fields": {
                  "value": {}
                },
                "Create a profile with profile name": {
                  "value": {
                    "profile_name": "shoe_business"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Profile Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "get": {
        "tags": [
          "Profile"
        ],
        "summary": "Profile - List",
        "description": "Lists all the *profiles* under a merchant",
        "operationId": "List Profiles",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "Merchant Identifier",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Profiles Retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProfileResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/account/{account_id}/business_profile/{profile_id}": {
      "get": {
        "tags": [
          "Profile"
        ],
        "summary": "Profile - Retrieve",
        "description": "Retrieve existing *profile*",
        "operationId": "Retrieve a Profile",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profile_id",
            "in": "path",
            "description": "The unique identifier for the profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Profile Updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "post": {
        "tags": [
          "Profile"
        ],
        "summary": "Profile - Update",
        "description": "Update the *profile*",
        "operationId": "Update a Profile",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profile_id",
            "in": "path",
            "description": "The unique identifier for the profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "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": [
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Profile"
        ],
        "summary": "Profile - Delete",
        "description": "Delete the *profile*",
        "operationId": "Delete the Profile",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profile_id",
            "in": "path",
            "description": "The unique identifier for the profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Profiles Deleted",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/disputes/{dispute_id}": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Disputes - Retrieve Dispute",
        "description": "Retrieves a dispute",
        "operationId": "Retrieve a Dispute",
        "parameters": [
          {
            "name": "dispute_id",
            "in": "path",
            "description": "The identifier for dispute",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "force_sync",
            "in": "query",
            "description": "Decider to enable or disable the connector call for dispute retrieve request",
            "required": false,
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The dispute was retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisputeResponse"
                }
              }
            }
          },
          "404": {
            "description": "Dispute does not exist in our records"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/disputes/list": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Disputes - List Disputes",
        "description": "Lists all the Disputes for a merchant",
        "operationId": "List Disputes",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of Dispute Objects to include in the response",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "dispute_status",
            "in": "query",
            "description": "The status of dispute",
            "required": false,
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/DisputeStatus"
                }
              ],
              "nullable": true
            }
          },
          {
            "name": "dispute_stage",
            "in": "query",
            "description": "The stage of dispute",
            "required": false,
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/DisputeStage"
                }
              ],
              "nullable": true
            }
          },
          {
            "name": "reason",
            "in": "query",
            "description": "The reason for dispute",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "connector",
            "in": "query",
            "description": "The connector linked to dispute",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "received_time",
            "in": "query",
            "description": "The time at which dispute is received",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "received_time.lt",
            "in": "query",
            "description": "Time less than the dispute received time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "received_time.gt",
            "in": "query",
            "description": "Time greater than the dispute received time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "received_time.lte",
            "in": "query",
            "description": "Time less than or equals to the dispute received time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "received_time.gte",
            "in": "query",
            "description": "Time greater than or equals to the dispute received time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The dispute list was retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DisputeResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/disputes/profile/list": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Disputes - List Disputes for The Given Profiles",
        "description": "Lists all the Disputes for a merchant",
        "operationId": "List Disputes for The given Profiles",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of Dispute Objects to include in the response",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "dispute_status",
            "in": "query",
            "description": "The status of dispute",
            "required": false,
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/DisputeStatus"
                }
              ],
              "nullable": true
            }
          },
          {
            "name": "dispute_stage",
            "in": "query",
            "description": "The stage of dispute",
            "required": false,
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/DisputeStage"
                }
              ],
              "nullable": true
            }
          },
          {
            "name": "reason",
            "in": "query",
            "description": "The reason for dispute",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "connector",
            "in": "query",
            "description": "The connector linked to dispute",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "received_time",
            "in": "query",
            "description": "The time at which dispute is received",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "received_time.lt",
            "in": "query",
            "description": "Time less than the dispute received time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "received_time.gt",
            "in": "query",
            "description": "Time greater than the dispute received time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "received_time.lte",
            "in": "query",
            "description": "Time less than or equals to the dispute received time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "received_time.gte",
            "in": "query",
            "description": "Time greater than or equals to the dispute received time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The dispute list was retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DisputeResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/disputes/filter": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Disputes - Disputes Filters",
        "description": "Lists all the filters associated with disputes",
        "operationId": "List all filters for disputes",
        "responses": {
          "200": {
            "description": "List of filters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisputeListFilters"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/disputes/profile/filter": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Disputes - Disputes Filters Profile",
        "description": "Lists all the filters associated with disputes for the given profiles",
        "operationId": "List all filters for disputes for the given Profiles",
        "responses": {
          "200": {
            "description": "List of filters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisputeListFilters"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/disputes/accept/{dispute_id}": {
      "post": {
        "tags": [
          "Disputes"
        ],
        "summary": "Disputes - Accept Dispute",
        "description": "Accepts a dispute",
        "operationId": "Accept a Dispute",
        "parameters": [
          {
            "name": "dispute_id",
            "in": "path",
            "description": "The identifier for dispute",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The dispute was accepted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisputeResponse"
                }
              }
            }
          },
          "404": {
            "description": "Dispute does not exist in our records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/disputes/evidence": {
      "post": {
        "tags": [
          "Disputes"
        ],
        "summary": "Disputes - Uploads Dispute Evidence",
        "description": "Uploads evidence for a dispute",
        "operationId": "Submit Dispute Evidence",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitEvidenceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The dispute evidence submitted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisputeResponse"
                }
              }
            }
          },
          "404": {
            "description": "Dispute does not exist in our records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      },
      "put": {
        "tags": [
          "Disputes"
        ],
        "summary": "Disputes - Attach Evidence to Dispute",
        "description": "Attaches an uploaded evidence file to a dispute",
        "operationId": "Attach Evidence to Dispute",
        "requestBody": {
          "description": "A multipart/form-data request with a `file` field containing the evidence file.",
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "string"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Evidence attached to dispute",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateFileResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Disputes"
        ],
        "summary": "Disputes - Delete Evidence attached to a Dispute",
        "description": "Deletes an evidence file attached to a dispute",
        "operationId": "Delete Evidence attached to a Dispute",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteEvidenceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Evidence deleted from a dispute"
          },
          "400": {
            "description": "Bad Request"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/disputes/evidence/{dispute_id}": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Disputes - Retrieve Dispute Evidence",
        "description": "Retrieves evidence for a dispute",
        "operationId": "Retrieve a Dispute Evidence",
        "parameters": [
          {
            "name": "dispute_id",
            "in": "path",
            "description": "The identifier for dispute",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The dispute evidence was retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DisputeEvidenceBlock"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Dispute does not exist in our records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenericErrorResponseOpenApi"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/disputes/aggregate": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Disputes - Get Disputes Aggregate",
        "description": "Gets a count of disputes grouped by their status for a merchant within a time range",
        "operationId": "Get Disputes Aggregate",
        "parameters": [
          {
            "name": "start_time",
            "in": "query",
            "description": "The start time for the aggregate query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Disputes aggregate retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisputesAggregateResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/disputes/profile/aggregate": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Disputes - Get Disputes Aggregate for Profiles",
        "description": "Gets a count of disputes grouped by their status for the given profiles within a time range",
        "operationId": "Get Disputes Aggregate for Profiles",
        "parameters": [
          {
            "name": "start_time",
            "in": "query",
            "description": "The start time for the aggregate query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Disputes aggregate retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisputesAggregateResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/routing": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Create",
        "description": "Create a routing config",
        "operationId": "Create a routing config",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoutingConfigRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Routing config 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": []
          }
        ]
      },
      "get": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - List",
        "description": "List all routing configs",
        "operationId": "List routing configs",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "The number of records to be returned",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true,
              "minimum": 0
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The record offset from which to start gathering of results",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true,
              "minimum": 0
            }
          },
          {
            "name": "profile_id",
            "in": "query",
            "description": "The unique identifier for a merchant profile",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched routing configs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutingKind"
                }
              }
            }
          },
          "404": {
            "description": "Resource missing"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/routing/{routing_algorithm_id}/activate": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Activate config",
        "description": "Activate a routing config",
        "operationId": "Activate a routing config",
        "parameters": [
          {
            "name": "routing_algorithm_id",
            "in": "path",
            "description": "The unique identifier for a config",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Routing config 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": []
          }
        ]
      }
    },
    "/routing/{routing_algorithm_id}": {
      "get": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Retrieve",
        "description": "Retrieve a routing algorithm",
        "operationId": "Retrieve a routing config",
        "parameters": [
          {
            "name": "routing_algorithm_id",
            "in": "path",
            "description": "The unique identifier for a config",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully fetched routing config",
            "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": []
          }
        ]
      }
    },
    "/routing/deactivate": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Deactivate",
        "description": "Deactivates a routing config",
        "operationId": "Deactivate a routing config",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoutingConfigRequest"
              }
            }
          },
          "required": true
        },
        "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": []
          }
        ]
      }
    },
    "/routing/default": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Update Default Config",
        "description": "Update default fallback config",
        "operationId": "Update default fallback config",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RoutableConnectorChoice"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully updated default config",
            "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": [
          "Routing"
        ],
        "summary": "Routing - Retrieve Default Config",
        "description": "Retrieve default fallback config",
        "operationId": "Retrieve default fallback config",
        "responses": {
          "200": {
            "description": "Successfully retrieved default config",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RoutableConnectorChoice"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/routing/active": {
      "get": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Retrieve Config",
        "description": "Retrieve active config",
        "operationId": "Retrieve active config",
        "parameters": [
          {
            "name": "profile_id",
            "in": "query",
            "description": "The unique identifier for a merchant profile",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          }
        ],
        "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": []
          }
        ]
      }
    },
    "/routing/default/profile": {
      "get": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Retrieve Default For Profile",
        "description": "Retrieve default config for profiles",
        "operationId": "Retrieve default configs for all profiles",
        "responses": {
          "200": {
            "description": "Successfully retrieved default config",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileDefaultRoutingConfig"
                }
              }
            }
          },
          "404": {
            "description": "Resource missing"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/routing/default/profile/{profile_id}": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Update Default For Profile",
        "description": "Update default config for profiles",
        "operationId": "Update default configs for all profiles",
        "parameters": [
          {
            "name": "profile_id",
            "in": "path",
            "description": "The unique identifier for a 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 default config for profile",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileDefaultRoutingConfig"
                }
              }
            }
          },
          "400": {
            "description": "Malformed request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource missing"
          },
          "422": {
            "description": "Unprocessable request"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/account/{account_id}/business_profile/{profile_id}/dynamic_routing/success_based/config/{algorithm_id}": {
      "patch": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Update success based dynamic routing config for profile",
        "description": "Update success based dynamic routing algorithm",
        "operationId": "Update success based dynamic routing configs",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "Merchant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profile_id",
            "in": "path",
            "description": "Profile id under which Dynamic routing needs to be toggled",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "algorithm_id",
            "in": "path",
            "description": "Success based routing algorithm id which was last activated to update the config",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SuccessBasedRoutingConfig"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Routing Algorithm updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutingDictionaryRecord"
                }
              }
            }
          },
          "400": {
            "description": "Update body is malformed"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource missing"
          },
          "422": {
            "description": "Unprocessable request"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/account/{account_id}/business_profile/{profile_id}/dynamic_routing/success_based/toggle": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Toggle success based dynamic routing for profile",
        "description": "Create a success based dynamic routing algorithm",
        "operationId": "Toggle success based dynamic routing algorithm",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "Merchant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profile_id",
            "in": "path",
            "description": "Profile id under which Dynamic routing needs to be toggled",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "enable",
            "in": "query",
            "description": "Feature to enable for success based routing",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/DynamicRoutingFeatures"
            }
          }
        ],
        "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": []
          }
        ]
      }
    },
    "/account/{account_id}/business_profile/{profile_id}/dynamic_routing/elimination/toggle": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Toggle elimination routing for profile",
        "description": "Create a elimination based dynamic routing algorithm",
        "operationId": "Toggle elimination routing algorithm",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "Merchant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profile_id",
            "in": "path",
            "description": "Profile id under which Dynamic routing needs to be toggled",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "enable",
            "in": "query",
            "description": "Feature to enable for elimination based routing",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/DynamicRoutingFeatures"
            }
          }
        ],
        "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": []
          }
        ]
      }
    },
    "/account/{account_id}/business_profile/{profile_id}/dynamic_routing/success_based/create": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Auth Rate Based",
        "description": "Create a success based dynamic routing algorithm",
        "operationId": "Create success based dynamic routing algorithm",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "Merchant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profile_id",
            "in": "path",
            "description": "Profile id under which Dynamic routing needs to be created",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "enable",
            "in": "query",
            "description": "Feature to enable for success based routing",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/DynamicRoutingFeatures"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SuccessBasedRoutingConfig"
              }
            }
          },
          "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": []
          }
        ]
      }
    },
    "/account/{account_id}/business_profile/{profile_id}/dynamic_routing/elimination/create": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Elimination",
        "description": "Create a elimination based dynamic routing algorithm",
        "operationId": "Create elimination routing algorithm",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "Merchant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profile_id",
            "in": "path",
            "description": "Profile id under which Dynamic routing needs to be created",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "enable",
            "in": "query",
            "description": "Feature to enable for elimination based routing",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/DynamicRoutingFeatures"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EliminationRoutingConfig"
              }
            }
          },
          "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": []
          }
        ]
      }
    },
    "/account/{account_id}/business_profile/{profile_id}/dynamic_routing/contracts/toggle": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Toggle Contract routing for profile",
        "description": "Create a Contract based dynamic routing algorithm",
        "operationId": "Toggle contract routing algorithm",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "Merchant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profile_id",
            "in": "path",
            "description": "Profile id under which Dynamic routing needs to be toggled",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "enable",
            "in": "query",
            "description": "Feature to enable for contract based routing",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/DynamicRoutingFeatures"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContractBasedRoutingConfig"
              }
            }
          },
          "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": []
          }
        ]
      }
    },
    "/account/{account_id}/business_profile/{profile_id}/dynamic_routing/contracts/config/{algorithm_id}": {
      "patch": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Update contract based dynamic routing config for profile",
        "description": "Update contract based dynamic routing algorithm",
        "operationId": "Update contract based dynamic routing configs",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "Merchant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profile_id",
            "in": "path",
            "description": "Profile id under which Dynamic routing needs to be toggled",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "algorithm_id",
            "in": "path",
            "description": "Contract based routing algorithm id which was last activated to update the config",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContractBasedRoutingConfig"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Routing Algorithm updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutingDictionaryRecord"
                }
              }
            }
          },
          "400": {
            "description": "Update body is malformed"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource missing"
          },
          "422": {
            "description": "Unprocessable request"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/routing/evaluate": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Evaluate",
        "description": "Evaluate routing rules",
        "operationId": "Evaluate routing rules",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OpenRouterDecideGatewayRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Routing rules evaluated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DecideGatewayResponse"
                }
              }
            }
          },
          "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": []
          }
        ]
      }
    },
    "/routing/feedback": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Feedback",
        "description": "Update gateway scores for dynamic routing",
        "operationId": "Update gateway scores",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateScorePayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Gateway score updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateScoreResponse"
                }
              }
            }
          },
          "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": []
          }
        ]
      }
    },
    "/routing/rule/evaluate": {
      "post": {
        "tags": [
          "Routing"
        ],
        "summary": "Routing - Rule Evaluate",
        "description": "Evaluate routing rules",
        "operationId": "Evaluate routing rules (alternative)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoutingEvaluateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Routing rules evaluated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutingEvaluateResponse"
                }
              }
            }
          },
          "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": []
          }
        ]
      }
    },
    "/blocklist": {
      "delete": {
        "tags": [
          "Blocklist"
        ],
        "operationId": "Unblock a Fingerprint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BlocklistRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Fingerprint Unblocked",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlocklistResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "get": {
        "tags": [
          "Blocklist"
        ],
        "operationId": "List Blocked fingerprints of a particular kind",
        "parameters": [
          {
            "name": "data_kind",
            "in": "query",
            "description": "Kind of the fingerprint list requested",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/BlocklistDataKind"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Blocked Fingerprints",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlocklistResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "post": {
        "tags": [
          "Blocklist"
        ],
        "operationId": "Block a Fingerprint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BlocklistRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Fingerprint Blocked",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlocklistResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/blocklist/toggle": {
      "post": {
        "tags": [
          "Blocklist"
        ],
        "operationId": "Toggle blocklist guard for a particular merchant",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "description": "Boolean value to enable/disable blocklist",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Blocklist guard enabled/disabled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ToggleBlocklistResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/blocklist/batch": {
      "post": {
        "tags": [
          "Blocklist"
        ],
        "operationId": "Upload a batch blocklist CSV",
        "requestBody": {
          "description": "A multipart/form-data request with a `file` field containing a UTF-8 CSV (max 5 MiB). The CSV must have a header row: `type,data,metadata`. `type`: one of `card_bin` (6 digits), `extended_card_bin` (8 digits), `fingerprint`. `metadata`: optional, `key=value` pairs separated by `;` (e.g. `reason=fraud;source=manual`). Maximum 100,000 data rows.",
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "string"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Batch blocklist job initiated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchBlocklistUploadResponse"
                }
              }
            }
          },
          "400": {
            "description": "CSV validation error or file exceeds 5 MiB limit"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "get": {
        "tags": [
          "Blocklist"
        ],
        "operationId": "List batch blocklist jobs",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of jobs to return (default 10, max 100)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true,
              "minimum": 0
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Zero-based offset for pagination (default 0)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of batch blocklist jobs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListBatchBlocklistJobsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/blocklist/batch/{job_id}": {
      "get": {
        "tags": [
          "Blocklist"
        ],
        "operationId": "Get batch blocklist job status",
        "parameters": [
          {
            "name": "job_id",
            "in": "path",
            "description": "The job ID returned by the batch upload endpoint",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Batch blocklist job status",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchBlocklistJobStatusResponse"
                }
              }
            }
          },
          "404": {
            "description": "Job not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payouts/create": {
      "post": {
        "tags": [
          "Payouts"
        ],
        "summary": "Payouts - Create",
        "operationId": "Create a Payout",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutsCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payout created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payouts/{payout_id}": {
      "get": {
        "tags": [
          "Payouts"
        ],
        "summary": "Payouts - Retrieve",
        "operationId": "Retrieve a Payout",
        "parameters": [
          {
            "name": "payout_id",
            "in": "path",
            "description": "The identifier for payout",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "force_sync",
            "in": "query",
            "description": "Sync with the connector to get the payout details (defaults to false)",
            "required": false,
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payout retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutCreateResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payout does not exist in our records"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "post": {
        "tags": [
          "Payouts"
        ],
        "summary": "Payouts - Update",
        "operationId": "Update a Payout",
        "parameters": [
          {
            "name": "payout_id",
            "in": "path",
            "description": "The identifier for payout",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payout updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payouts/{payout_id}/cancel": {
      "post": {
        "tags": [
          "Payouts"
        ],
        "summary": "Payouts - Cancel",
        "operationId": "Cancel a Payout",
        "parameters": [
          {
            "name": "payout_id",
            "in": "path",
            "description": "The identifier for payout",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutCancelRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payout cancelled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payouts/{payout_id}/fulfill": {
      "post": {
        "tags": [
          "Payouts"
        ],
        "summary": "Payouts - Fulfill",
        "operationId": "Fulfill a Payout",
        "parameters": [
          {
            "name": "payout_id",
            "in": "path",
            "description": "The identifier for payout",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutFulfillRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payout fulfilled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payouts/list": {
      "get": {
        "tags": [
          "Payouts"
        ],
        "summary": "Payouts - List",
        "operationId": "List payouts using generic constraints",
        "parameters": [
          {
            "name": "customer_id",
            "in": "query",
            "description": "The identifier for customer",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "starting_after",
            "in": "query",
            "description": "A cursor for use in pagination, fetch the next list after some object",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ending_before",
            "in": "query",
            "description": "A cursor for use in pagination, fetch the previous list before some object",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "limit on the number of objects to return",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created",
            "in": "query",
            "description": "The time at which payout is created",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "time_range",
            "in": "query",
            "description": "The time range for which objects are needed. TimeRange has two fields start_time and end_time from which objects can be filtered as per required scenarios (created_at, time less than, greater than etc).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Payouts listed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutListResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payout not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "post": {
        "tags": [
          "Payouts"
        ],
        "summary": "Payouts - List using filters",
        "operationId": "Filter payouts using specific constraints",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutListFilterConstraints"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payouts filtered",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutListResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payout not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payouts/{payout_id}/confirm": {
      "post": {
        "tags": [
          "Payouts"
        ],
        "summary": "Payouts - Confirm",
        "operationId": "Confirm a Payout",
        "parameters": [
          {
            "name": "payout_id",
            "in": "path",
            "description": "The identifier for payout",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutConfirmRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Payout updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing Mandatory fields"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/payouts/filter": {
      "post": {
        "tags": [
          "Payouts"
        ],
        "summary": "Payouts - List available filters",
        "operationId": "List available payout filters",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TimeRange"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Filters listed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutListFilters"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/api_keys/{merchant_id}": {
      "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",
        "parameters": [
          {
            "name": "merchant_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "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": []
          }
        ]
      }
    },
    "/api_keys/{merchant_id}/{key_id}": {
      "get": {
        "tags": [
          "API Key"
        ],
        "summary": "API Key - Retrieve",
        "description": "Retrieve information about the specified API Key.",
        "operationId": "Retrieve an API Key",
        "parameters": [
          {
            "name": "merchant_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key_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": []
          }
        ]
      },
      "post": {
        "tags": [
          "API Key"
        ],
        "summary": "API Key - Update",
        "description": "Update information for the specified API Key.",
        "operationId": "Update an API Key",
        "parameters": [
          {
            "name": "merchant_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key_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": "merchant_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key_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": []
          }
        ]
      }
    },
    "/api_keys/{merchant_id}/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": "merchant_id",
            "in": "path",
            "description": "The unique identifier for the merchant account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "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": []
          }
        ]
      }
    },
    "/events/{merchant_id}": {
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Events - List",
        "description": "List all Events associated with a Merchant Account or Profile.",
        "operationId": "List all Events associated with a Merchant Account or Profile",
        "parameters": [
          {
            "name": "merchant_id",
            "in": "path",
            "description": "The unique identifier for the Merchant Account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The constraints that can be applied when listing Events.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventListConstraints"
              },
              "examples": {
                "example": {
                  "value": {
                    "created_after": "2023-01-01T00:00:00",
                    "created_before": "2023-01-31T23:59:59",
                    "event_classes": [
                      "payments",
                      "refunds"
                    ],
                    "event_types": [
                      "payment_succeeded"
                    ],
                    "is_delivered": true,
                    "limit": 5,
                    "object_id": "{{object_id}}",
                    "offset": 0,
                    "profile_id": "{{profile_id}}"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "List of Events retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TotalEventsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/events/profile/list": {
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Events - List",
        "description": "List all Events associated with a Profile.",
        "operationId": "List all Events associated with a Profile",
        "requestBody": {
          "description": "The constraints that can be applied when listing Events.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventListConstraints"
              },
              "examples": {
                "example": {
                  "value": {
                    "created_after": "2023-01-01T00:00:00",
                    "created_before": "2023-01-31T23:59:59",
                    "event_classes": [
                      "payments",
                      "refunds"
                    ],
                    "event_types": [
                      "payment_succeeded"
                    ],
                    "is_delivered": true,
                    "limit": 5,
                    "object_id": "{{object_id}}",
                    "offset": 0,
                    "profile_id": "{{profile_id}}"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "List of Events retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TotalEventsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/events/{merchant_id}/{event_id}/attempts": {
      "get": {
        "tags": [
          "Event"
        ],
        "summary": "Events - Delivery Attempt List",
        "description": "List all delivery attempts for the specified Event.",
        "operationId": "List all delivery attempts for an Event",
        "parameters": [
          {
            "name": "merchant_id",
            "in": "path",
            "description": "The unique identifier for the Merchant Account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event_id",
            "in": "path",
            "description": "The unique identifier for the Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of delivery attempts retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EventRetrieveResponse"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/events/{merchant_id}/{event_id}/retry": {
      "post": {
        "tags": [
          "Event"
        ],
        "summary": "Events - Manual Retry",
        "description": "Manually retry the delivery of the specified Event.",
        "operationId": "Manually retry the delivery of an Event",
        "parameters": [
          {
            "name": "merchant_id",
            "in": "path",
            "description": "The unique identifier for the Merchant Account.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event_id",
            "in": "path",
            "description": "The unique identifier for the Event",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The delivery of the Event was attempted. Check the `response` field in the response payload to identify the status of the delivery attempt.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventRetrieveResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      }
    },
    "/poll/status/{poll_id}": {
      "get": {
        "tags": [
          "Poll"
        ],
        "summary": "Poll - Retrieve Poll Status",
        "operationId": "Retrieve Poll Status",
        "parameters": [
          {
            "name": "poll_id",
            "in": "path",
            "description": "The identifier for poll",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The poll status was retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PollResponse"
                }
              }
            }
          },
          "404": {
            "description": "Poll not found"
          }
        },
        "security": [
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/profile_acquirers": {
      "post": {
        "tags": [
          "Profile Acquirer"
        ],
        "summary": "Profile Acquirer - Create",
        "description": "Create a new Profile Acquirer for accessing our APIs from your servers.",
        "operationId": "Create a Profile Acquirer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileAcquirerCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Profile Acquirer created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileAcquirerResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/profile_acquirers/{profile_id}/{profile_acquirer_id}": {
      "post": {
        "tags": [
          "Profile Acquirer"
        ],
        "summary": "Profile Acquirer - Update",
        "description": "Update a Profile Acquirer for accessing our APIs from your servers.",
        "operationId": "Update a Profile Acquirer",
        "parameters": [
          {
            "name": "profile_id",
            "in": "path",
            "description": "The unique identifier for the Profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profile_acquirer_id",
            "in": "path",
            "description": "The unique identifier for the Profile Acquirer",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileAcquirerUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Profile Acquirer updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileAcquirerResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/three_ds_decision/execute": {
      "post": {
        "tags": [
          "3DS Decision Rule"
        ],
        "summary": "3DS Decision - Execute",
        "operationId": "Execute 3DS Decision Rule",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThreeDsDecisionRuleExecuteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "3DS Decision Rule Executed Successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreeDsDecisionRuleExecuteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/authentication": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Authentication - Create",
        "description": "Create a new authentication for accessing our APIs from your servers.\n",
        "operationId": "Create an Authentication",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticationCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Authentication created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/authentication/{authentication_id}/eligibility": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Authentication - Eligibility",
        "description": "Check if an authentication is eligible for a specific merchant.\n",
        "operationId": "Check Authentication Eligibility",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticationEligibilityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Authentication eligibility checked",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationEligibilityResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/authentication/{authentication_id}/authenticate": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Authentication - Authenticate",
        "description": "Authenticate an authentication for accessing our APIs from your servers.\n",
        "operationId": "Authenticate an Authentication",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticationAuthenticateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Authentication authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationAuthenticateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/authentication/{authentication_id}/redirect": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Authentication - Redirect",
        "description": "Redirect an authentication for accessing our APIs from your servers.\n",
        "operationId": "Redirect an Authentication",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticationSyncPostUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Authentication redirect"
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": []
      }
    },
    "/authentication/{authentication_id}/sync": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Authentication - Sync",
        "description": "Sync an authentication for accessing our APIs from your servers.\n",
        "operationId": "Sync an Authentication",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticationSyncRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Authentication sync",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationSyncResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/authentication/{authentication_id}/enabled_authn_methods_token": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Authentication - Enable Authn Methods Token",
        "description": "Enable authn methods token for an authentication.\n",
        "operationId": "Enable Authentication Authn Methods Token",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticationSessionTokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Authentication enabled authn methods token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationSessionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "publishable_key": []
          }
        ]
      }
    },
    "/authentication/{authentication_id}/eligibility-check": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Authentication - POST Eligibility Check",
        "operationId": "Submit Eligibility for an Authentication",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticationEligibilityCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Eligibility Performed for the Authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationEligibilityCheckResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "publishable_key": []
          }
        ]
      },
      "get": {
        "tags": [
          "Authentication"
        ],
        "summary": "Authentication - GET Eligibility Check",
        "operationId": "Retrieve Eligibility Check data for an Authentication",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticationRetrieveEligibilityCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Retrieved Eligibility check data for the Authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationRetrieveEligibilityCheckResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/user/create_platform": {
      "post": {
        "tags": [
          "Platform"
        ],
        "summary": "Platform - Create",
        "description": "Create a new platform account",
        "operationId": "Create a Platform Account",
        "requestBody": {
          "description": "Create a platform account with organization_name",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformAccountCreateRequest"
              },
              "examples": {
                "Create a platform account with organization_name": {
                  "value": {
                    "organization_name": "organization_abc"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Platform Account Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformAccountCreateResponse"
                },
                "examples": {
                  "Successful Platform Account Creation": {
                    "description": "Return values for a successfully created platform account",
                    "value": {
                      "merchant_account_type": "platform",
                      "merchant_id": "merchant_abc",
                      "org_id": "org_abc",
                      "org_name": "organization_abc",
                      "org_type": "platform"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid data"
          }
        },
        "security": [
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/subscriptions": {
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Subscription - Create and Confirm",
        "description": "Creates and confirms a subscription in a single request.",
        "operationId": "Create and Confirm Subscription",
        "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/CreateAndConfirmSubscriptionRequest"
              },
              "examples": {
                "Create and confirm subscription": {
                  "value": {
                    "billing": {
                      "address": {
                        "city": "San Fransico",
                        "country": "US",
                        "first_name": "joseph",
                        "last_name": "Doe",
                        "line1": "1467",
                        "line2": "Harrison Street",
                        "line3": "Harrison Street",
                        "state": "California",
                        "zip": "94122"
                      },
                      "phone": {
                        "country_code": "+1",
                        "number": "123456789"
                      }
                    },
                    "customer_id": "cust_123456789",
                    "description": "Hello this is description",
                    "item_price_id": "standard-plan-USD-Monthly",
                    "merchant_reference_id": "mer_ref_123456789",
                    "payment_details": {
                      "authentication_type": "no_three_ds",
                      "capture_method": "automatic",
                      "customer_acceptance": {
                        "acceptance_type": "online",
                        "accepted_at": "1963-05-03T04:07:52.723Z",
                        "online": {
                          "ip_address": "127.0.0.1",
                          "user_agent": "amet irure esse"
                        }
                      },
                      "payment_method": "card",
                      "payment_method_data": {
                        "card": {
                          "card_cvc": "737",
                          "card_exp_month": "03",
                          "card_exp_year": "2030",
                          "card_holder_name": "CLBRW dffdg",
                          "card_number": "4000000000000002"
                        }
                      },
                      "payment_method_type": "credit",
                      "payment_type": "setup_mandate",
                      "return_url": "https://google.com",
                      "setup_future_usage": "off_session"
                    },
                    "shipping": {
                      "address": {
                        "city": "Banglore",
                        "country": "US",
                        "first_name": "joseph",
                        "last_name": "doe",
                        "line1": "sdsdfsdf",
                        "line2": "hsgdbhd",
                        "line3": "alsksoe",
                        "state": "zsaasdas",
                        "zip": "571201"
                      },
                      "phone": {
                        "country_code": "+1",
                        "number": "123456789"
                      }
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Subscription created and confirmed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid subscription data"
          },
          "404": {
            "description": "Customer or plan not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/subscriptions/create": {
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Subscription - Create",
        "description": "Creates a subscription that requires separate confirmation.",
        "operationId": "Create Subscription",
        "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/CreateSubscriptionRequest"
              },
              "examples": {
                "Create subscription": {
                  "value": {
                    "customer_id": "cust_123456789",
                    "item_price_id": "standard-plan-USD-Monthly",
                    "payment_details": {
                      "authentication_type": "no_three_ds",
                      "capture_method": "automatic",
                      "return_url": "https://google.com",
                      "setup_future_usage": "off_session"
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Subscription created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid subscription data"
          },
          "404": {
            "description": "Customer or plan not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/subscriptions/{subscription_id}/confirm": {
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Subscription - Confirm",
        "description": "Confirms a previously created subscription.",
        "operationId": "Confirm Subscription",
        "parameters": [
          {
            "name": "subscription_id",
            "in": "path",
            "description": "The unique identifier for the subscription",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID for authentication",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmSubscriptionRequest"
              },
              "examples": {
                "Confirm subscription": {
                  "value": {
                    "payment_details": {
                      "billing": {
                        "address": {
                          "city": "San Fransico",
                          "country": "US",
                          "first_name": "joseph",
                          "last_name": "Doe",
                          "line1": "1467",
                          "line2": "Harrison Street",
                          "line3": "Harrison Street",
                          "state": "California",
                          "zip": "94122"
                        },
                        "phone": {
                          "country_code": "+1",
                          "number": "123456789"
                        }
                      },
                      "customer_acceptance": {
                        "acceptance_type": "online",
                        "accepted_at": "1963-05-03T04:07:52.723Z",
                        "online": {
                          "ip_address": "127.0.0.1",
                          "user_agent": "amet irure esse"
                        }
                      },
                      "payment_method": "card",
                      "payment_method_data": {
                        "card": {
                          "card_cvc": "737",
                          "card_exp_month": "03",
                          "card_exp_year": "2030",
                          "card_holder_name": "CLBRW dffdg",
                          "card_number": "4111111111111111"
                        }
                      },
                      "payment_method_type": "credit",
                      "shipping": {
                        "address": {
                          "city": "Banglore",
                          "country": "US",
                          "first_name": "joseph",
                          "last_name": "doe",
                          "line1": "sdsdfsdf",
                          "line2": "hsgdbhd",
                          "line3": "alsksoe",
                          "state": "zsaasdas",
                          "zip": "571201"
                        },
                        "phone": {
                          "country_code": "+1",
                          "number": "123456789"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Subscription confirmed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid confirmation data"
          },
          "404": {
            "description": "Subscription not found"
          },
          "409": {
            "description": "Subscription already confirmed"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "client_secret": []
          }
        ]
      }
    },
    "/subscriptions/{subscription_id}": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Subscription - Retrieve",
        "description": "Retrieves subscription details by ID.",
        "operationId": "Retrieve Subscription",
        "parameters": [
          {
            "name": "subscription_id",
            "in": "path",
            "description": "The unique identifier for the subscription",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID for authentication",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Subscription retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionResponse"
                }
              }
            }
          },
          "404": {
            "description": "Subscription not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/subscriptions/{subscription_id}/update": {
      "put": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Subscription - Update",
        "description": "Updates an existing subscription.",
        "operationId": "Update Subscription",
        "parameters": [
          {
            "name": "subscription_id",
            "in": "path",
            "description": "The unique identifier for the subscription",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID for authentication",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSubscriptionRequest"
              },
              "examples": {
                "Update subscription": {
                  "value": {
                    "item_price_id": "cbdemo_enterprise-suite-monthly",
                    "plan_id": "cbdemo_enterprise-suite"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Subscription updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid update data"
          },
          "404": {
            "description": "Subscription not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/subscriptions/items": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Subscription - Get Items",
        "description": "Retrieves available subscription items.",
        "operationId": "Get Subscription Items",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID for authentication",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Number of items to retrieve",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true,
              "minimum": 0
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Number of items to skip",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true,
              "minimum": 0
            }
          },
          {
            "name": "product_id",
            "in": "query",
            "description": "Filter by product ID",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "item_type",
            "in": "query",
            "description": "Filter by subscription item type plan or addon",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/SubscriptionItemType"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of available subscription items",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GetSubscriptionItemsResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameters"
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "client_secret": []
          }
        ]
      }
    },
    "/subscriptions/estimate": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Subscription - Get Estimate",
        "description": "Gets pricing estimate for a subscription.",
        "operationId": "Get Subscription Estimate",
        "parameters": [
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID for authentication",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "plan_id",
            "in": "query",
            "description": "Plan ID for estimation",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "description": "Customer ID for personalized pricing",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "coupon_id",
            "in": "query",
            "description": "Coupon ID to apply discount",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "trial_days",
            "in": "query",
            "description": "Number of trial days",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Estimate retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EstimateSubscriptionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid estimation parameters"
          },
          "404": {
            "description": "Plan not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/subscriptions/{subscription_id}/pause": {
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Subscription - Pause Subscription",
        "description": "Pause the subscription",
        "operationId": "Pause Subscription",
        "parameters": [
          {
            "name": "subscription_id",
            "in": "path",
            "description": "The unique identifier for the subscription",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID for authentication",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PauseSubscriptionRequest"
              },
              "examples": {
                "Pause subscription": {
                  "value": {
                    "pause_option": "immediately"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Subscription paused successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PauseSubscriptionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid pause data"
          },
          "404": {
            "description": "Subscription not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/subscriptions/{subscription_id}/resume": {
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Subscription - Resume Subscription",
        "description": "Resume the subscription",
        "operationId": "Resume Subscription",
        "parameters": [
          {
            "name": "subscription_id",
            "in": "path",
            "description": "The unique identifier for the subscription",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID for authentication",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResumeSubscriptionRequest"
              },
              "examples": {
                "Resume subscription": {
                  "value": {
                    "resume_option": "immediately",
                    "unpaid_invoices_handling": "schedule_payment_collection"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Subscription resumed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResumeSubscriptionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid resume data"
          },
          "404": {
            "description": "Subscription not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/subscriptions/{subscription_id}/cancel": {
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Subscription - Cancel Subscription",
        "description": "Cancel the subscription",
        "operationId": "Cancel Subscription",
        "parameters": [
          {
            "name": "subscription_id",
            "in": "path",
            "description": "The unique identifier for the subscription",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Profile-Id",
            "in": "header",
            "description": "Profile ID for authentication",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelSubscriptionRequest"
              },
              "examples": {
                "Cancel subscription": {
                  "value": {
                    "cancel_option": "immediately",
                    "credit_option_for_current_term_charges": "prorate",
                    "refundable_credits_handling": "schedule_refund",
                    "unbilled_charges_option": "invoice"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Subscription cancelled successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelSubscriptionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid cancel data"
          },
          "404": {
            "description": "Subscription not found"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/card_issuers": {
      "post": {
        "tags": [
          "Card Issuer"
        ],
        "summary": "Card Issuer - Create",
        "description": "Creates a new card issuer entry",
        "operationId": "Create Card Issuer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardIssuerRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Card issuer created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardIssuerResponse"
                }
              }
            }
          },
          "400": {
            "description": "Missing or invalid fields"
          },
          "409": {
            "description": "Card issuer already exists"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      },
      "get": {
        "tags": [
          "Card Issuer"
        ],
        "summary": "Card Issuer - List",
        "description": "Lists card issuers with optional search filter",
        "operationId": "List Card Issuers",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "Optional search term to filter issuers by name",
            "required": false,
            "schema": {
              "type": "string",
              "nullable": true
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of results to return",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Card issuers listed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardIssuerListResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          },
          {
            "jwt_key": []
          }
        ]
      }
    },
    "/card_issuers/{id}": {
      "put": {
        "tags": [
          "Card Issuer"
        ],
        "summary": "Card Issuer - Update",
        "description": "Updates an existing card issuer entry",
        "operationId": "Update Card Issuer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the card issuer",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardIssuerUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Card issuer updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardIssuerResponse"
                }
              }
            }
          },
          "404": {
            "description": "Card issuer not found"
          },
          "409": {
            "description": "Card issuer with this name already exists"
          }
        },
        "security": [
          {
            "admin_api_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Card Issuer"
        ],
        "summary": "Card Issuer - Delete",
        "description": "Deletes an existing card issuer entry",
        "operationId": "Delete Card Issuer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the card issuer",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Card issuer deleted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardIssuerDeleteResponse"
                }
              }
            }
          },
          "404": {
            "description": "Card issuer not found"
          }
        },
        "security": [
          {
            "admin_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"
        }
      },
      "AccountReceivablesHandling": {
        "type": "string",
        "enum": [
          "no_action",
          "schedule_payment_collection",
          "write_off"
        ]
      },
      "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"
          }
        }
      },
      "AcquirerBucketConfigResponse": {
        "type": "object",
        "required": [
          "network"
        ],
        "properties": {
          "acquirer_assigned_merchant_id": {
            "type": "string",
            "description": "The merchant id assigned by the acquirer",
            "example": "M123456789",
            "nullable": true
          },
          "merchant_name": {
            "type": "string",
            "description": "Merchant name",
            "example": "NewAge Retailer",
            "nullable": true
          },
          "network": {
            "type": "string",
            "description": "Network provider",
            "example": "VISA"
          },
          "acquirer_bin": {
            "type": "string",
            "description": "Acquirer bin",
            "example": "456789",
            "nullable": true
          },
          "acquirer_ica": {
            "type": "string",
            "description": "Acquirer ica provided by acquirer",
            "example": "401288",
            "nullable": true
          },
          "acquirer_fraud_rate": {
            "type": "number",
            "format": "double",
            "description": "Fraud rate for the particular acquirer configuration",
            "example": 0.01,
            "nullable": true
          },
          "acquirer_country_code": {
            "type": "string",
            "description": "Acquirer country code",
            "example": "US",
            "nullable": true
          }
        }
      },
      "AcquirerConfig": {
        "type": "object",
        "description": "Acquirer configuration",
        "required": [
          "network"
        ],
        "properties": {
          "acquirer_assigned_merchant_id": {
            "type": "string",
            "description": "The merchant id assigned by the acquirer",
            "example": "M123456789",
            "nullable": true
          },
          "merchant_name": {
            "type": "string",
            "description": "merchant name",
            "example": "NewAge Retailer",
            "nullable": true
          },
          "network": {
            "type": "string",
            "description": "Network provider",
            "example": "VISA"
          },
          "acquirer_bin": {
            "type": "string",
            "description": "Acquirer bin",
            "example": "456789",
            "nullable": true
          },
          "acquirer_ica": {
            "type": "string",
            "description": "Acquirer ica provided by acquirer",
            "example": "401288",
            "nullable": true
          },
          "acquirer_fraud_rate": {
            "type": "number",
            "format": "double",
            "description": "Fraud rate for the particular acquirer configuration",
            "example": 0.01,
            "nullable": true
          },
          "acquirer_country_code": {
            "type": "string",
            "description": "Acquirer country code",
            "example": "US",
            "nullable": true
          }
        }
      },
      "AcquirerConfigBucket": {
        "type": "object",
        "description": "Acquirer config buckets: each ProfileAcquirerId maps to an array of per-network configs",
        "required": [
          "default_acquirer_config"
        ],
        "properties": {
          "default_acquirer_config": {
            "type": "string",
            "description": "The default acquirer config id",
            "example": "pro_acq_LCRdERuylQvNQ4qh3QE0"
          }
        },
        "additionalProperties": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/AcquirerConfig"
          },
          "description": "Flattened map of acquirer profiles keyed by configuration id",
          "example": "{\n        \"profile_acquirer_id\": \"profile_acquirer_id\",\n        \"acquirer_config\": {\n            \"acquirer_assigned_merchant_id\": \"M123456789\",\n            \"merchant_name\": \"NewAge Retailer\",\n            \"network\": \"VISA\",\n            \"acquirer_bin\": \"456789\",\n            \"acquirer_ica\": \"401288\",\n            \"acquirer_fraud_rate\": 0.01,\n            \"acquirer_country_code\": \"US\"\n    }"
        }
      },
      "AcquirerData": {
        "type": "object",
        "description": "Represents data about the acquirer used in the 3DS decision rule.",
        "required": [
          "country"
        ],
        "properties": {
          "country": {
            "$ref": "#/components/schemas/Country"
          },
          "fraud_rate": {
            "type": "number",
            "format": "double",
            "description": "The fraud rate associated with the acquirer.",
            "nullable": true
          }
        }
      },
      "AcquirerDetails": {
        "type": "object",
        "properties": {
          "acquirer_bin": {
            "type": "string",
            "description": "The bin of the card.",
            "example": "123456",
            "nullable": true
          },
          "acquirer_merchant_id": {
            "type": "string",
            "description": "The merchant id of the card.",
            "example": "merchant_abc",
            "nullable": true
          },
          "merchant_country_code": {
            "type": "string",
            "description": "The country code of the card.",
            "example": "US/34456",
            "nullable": true
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "ApiConnectorErrorDetails": {
        "type": "object",
        "description": "Error details from the payment connector",
        "properties": {
          "code": {
            "type": "string",
            "description": "Connector-specific error code",
            "nullable": true
          },
          "message": {
            "type": "string",
            "description": "Connector-specific error message",
            "nullable": true
          },
          "reason": {
            "type": "string",
            "description": "Additional error reason/details",
            "nullable": true
          }
        }
      },
      "ApiIssuerErrorDetails": {
        "type": "object",
        "description": "Error details from the card issuer",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error code from the issuer",
            "nullable": true
          },
          "message": {
            "type": "string",
            "description": "Error message from the issuer",
            "nullable": true
          },
          "network_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApiNetworkErrorDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "ApiKeyExpiration": {
        "oneOf": [
          {
            "type": "string",
            "enum": [
              "never"
            ]
          },
          {
            "type": "string",
            "format": "date-time"
          }
        ]
      },
      "ApiNetworkErrorDetails": {
        "type": "object",
        "description": "Network-specific error details (e.g., Visa, Mastercard)",
        "properties": {
          "name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "advice_code": {
            "type": "string",
            "description": "Network advice code",
            "nullable": true
          },
          "advice_message": {
            "type": "string",
            "description": "Network advice message",
            "nullable": true
          }
        }
      },
      "ApiUnifiedErrorDetails": {
        "type": "object",
        "description": "Unified error details standardized across all payment connectors",
        "properties": {
          "category": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UnifiedCode"
              }
            ],
            "nullable": true
          },
          "message": {
            "type": "string",
            "description": "Human-readable error message",
            "nullable": true
          },
          "standardised_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StandardisedCode"
              }
            ],
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Detailed description of the error",
            "nullable": true
          },
          "user_guidance_message": {
            "type": "string",
            "description": "User-friendly guidance message",
            "nullable": true
          },
          "recommended_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecommendedAction"
              }
            ],
            "nullable": true
          }
        }
      },
      "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
          }
        }
      },
      "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"
        ]
      },
      "AuthenticationAuthenticateRequest": {
        "type": "object",
        "required": [
          "client_secret",
          "device_channel",
          "threeds_method_comp_ind"
        ],
        "properties": {
          "client_secret": {
            "type": "string",
            "description": "Client secret for the authentication"
          },
          "sdk_information": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SdkInformation"
              }
            ],
            "nullable": true
          },
          "device_channel": {
            "$ref": "#/components/schemas/DeviceChannel"
          },
          "threeds_method_comp_ind": {
            "$ref": "#/components/schemas/ThreeDsCompletionIndicator"
          }
        }
      },
      "AuthenticationAuthenticateResponse": {
        "type": "object",
        "required": [
          "acs_url",
          "three_ds_requestor_url",
          "error_message",
          "error_code",
          "authentication_value",
          "status",
          "authentication_id",
          "eci"
        ],
        "properties": {
          "trans_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionStatus"
              }
            ],
            "nullable": true
          },
          "acs_url": {
            "type": "string",
            "description": "Access Server URL to be used for challenge submission",
            "example": "https://example.com/redirect"
          },
          "challenge_request": {
            "type": "string",
            "description": "Challenge request which should be sent to acs_url",
            "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_ds_server_transaction_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": "The error message for this authentication."
          },
          "error_code": {
            "type": "string",
            "description": "The error code for this authentication."
          },
          "authentication_value": {
            "type": "string",
            "description": "The authentication value for this authentication, only available in case of server to server request. Unavailable in case of client request due to security concern."
          },
          "status": {
            "$ref": "#/components/schemas/AuthenticationStatus"
          },
          "authentication_connector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationConnectors"
              }
            ],
            "nullable": true
          },
          "authentication_id": {
            "$ref": "#/components/schemas/AuthenticationId"
          },
          "eci": {
            "type": "string",
            "description": "The ECI value for this authentication."
          },
          "acquirer_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AcquirerDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "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"
        ]
      },
      "AuthenticationCreateRequest": {
        "type": "object",
        "required": [
          "amount",
          "currency"
        ],
        "properties": {
          "authentication_id": {
            "type": "string",
            "description": "The unique identifier for this authentication.",
            "example": "auth_mbabizu24mvu3mela5njyhpit4",
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "The business profile that is associated with this authentication",
            "nullable": true
          },
          "amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "authentication_connector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationConnectors"
              }
            ],
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "return_url": {
            "type": "string",
            "description": "The URL to which the user should be redirected after authentication.",
            "example": "https://example.com/redirect",
            "nullable": true
          },
          "force_3ds_challenge": {
            "type": "boolean",
            "description": "Force 3DS challenge.",
            "nullable": true
          },
          "psd2_sca_exemption_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ScaExemptionType"
              }
            ],
            "nullable": true
          },
          "profile_acquirer_id": {
            "type": "string",
            "description": "Profile Acquirer ID get from profile acquirer configuration",
            "nullable": true
          },
          "acquirer_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AcquirerDetails"
              }
            ],
            "nullable": true
          },
          "customer_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "AuthenticationDetails": {
        "type": "object",
        "properties": {
          "three_ds_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalThreeDsData"
              }
            ],
            "nullable": true
          }
        }
      },
      "AuthenticationEligibilityCheckData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "click_to_pay"
            ],
            "properties": {
              "click_to_pay": {
                "$ref": "#/components/schemas/ClickToPayEligibilityCheckData"
              }
            }
          }
        ]
      },
      "AuthenticationEligibilityCheckRequest": {
        "type": "object",
        "required": [
          "eligibility_check_data"
        ],
        "properties": {
          "client_secret": {
            "type": "string",
            "description": "Optional secret value used to identify and authorize the client making the request.\nThis can help ensure that the payment session is secure and valid.",
            "nullable": true
          },
          "eligibility_check_data": {
            "$ref": "#/components/schemas/AuthenticationEligibilityCheckData"
          }
        }
      },
      "AuthenticationEligibilityCheckResponse": {
        "type": "object",
        "required": [
          "authentication_id",
          "sdk_next_action"
        ],
        "properties": {
          "authentication_id": {
            "type": "string",
            "description": "The unique identifier for this authentication.",
            "example": "auth_mbabizu24mvu3mela5njyhpit4"
          },
          "sdk_next_action": {
            "$ref": "#/components/schemas/AuthenticationSdkNextAction"
          }
        }
      },
      "AuthenticationEligibilityCheckResponseData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "click_to_pay_enrollment_status"
            ],
            "properties": {
              "click_to_pay_enrollment_status": {
                "$ref": "#/components/schemas/ClickToPayEligibilityCheckResponseData"
              }
            }
          }
        ]
      },
      "AuthenticationEligibilityRequest": {
        "type": "object",
        "required": [
          "payment_method_data",
          "payment_method"
        ],
        "properties": {
          "payment_method_data": {
            "$ref": "#/components/schemas/PaymentMethodData"
          },
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "client_secret": {
            "type": "string",
            "description": "Optional secret value used to identify and authorize the client making the request.\nThis can help ensure that the payment session is secure and valid.",
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "Optional identifier for the business profile associated with the payment.\nThis determines which configurations, rules, and branding are applied to the transaction.",
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "browser_information": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Optional email address of the customer.\nUsed for customer identification, communication, and possibly for 3DS or fraud checks.",
            "nullable": true
          }
        }
      },
      "AuthenticationEligibilityResponse": {
        "type": "object",
        "required": [
          "authentication_id",
          "next_action",
          "status",
          "connector_metadata",
          "profile_id"
        ],
        "properties": {
          "authentication_id": {
            "type": "string",
            "description": "The unique identifier for this authentication.",
            "example": "auth_mbabizu24mvu3mela5njyhpit4"
          },
          "next_action": {
            "$ref": "#/components/schemas/NextAction"
          },
          "status": {
            "$ref": "#/components/schemas/AuthenticationStatus"
          },
          "eligibility_response_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EligibilityResponseParams"
              }
            ],
            "nullable": true
          },
          "connector_metadata": {
            "description": "The metadata for this authentication."
          },
          "profile_id": {
            "type": "string",
            "description": "The unique identifier for this authentication."
          },
          "error_message": {
            "type": "string",
            "description": "The error message for this authentication.",
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "description": "The error code for this authentication.",
            "nullable": true
          },
          "authentication_connector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationConnectors"
              }
            ],
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "browser_information": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Email",
            "nullable": true
          },
          "acquirer_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AcquirerDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "AuthenticationId": {
        "type": "string",
        "description": "A type for authentication_id that can be used for authentication IDs"
      },
      "AuthenticationPaymentMethodData": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/ClickToPayDetails"
          }
        ]
      },
      "AuthenticationPaymentMethodDataResponse": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "card_expiry_year": {
                "type": "string",
                "description": "card expiry year",
                "nullable": true
              },
              "card_expiry_month": {
                "type": "string",
                "description": "card expiry month",
                "nullable": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "card_data"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "network_token_expiry_month": {
                "type": "string",
                "description": "network token expiry month",
                "nullable": true
              },
              "network_token_expiry_year": {
                "type": "string",
                "description": "network token expiry year",
                "nullable": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "network_token_data"
                ]
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "AuthenticationPaymentMethodType": {
        "type": "string",
        "enum": [
          "ctp"
        ]
      },
      "AuthenticationResponse": {
        "type": "object",
        "required": [
          "authentication_id",
          "merchant_id",
          "status",
          "amount",
          "currency"
        ],
        "properties": {
          "authentication_id": {
            "type": "string",
            "description": "The unique identifier for this authentication.",
            "example": "auth_mbabizu24mvu3mela5njyhpit4"
          },
          "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_abc"
          },
          "status": {
            "$ref": "#/components/schemas/AuthenticationStatus"
          },
          "client_secret": {
            "type": "string",
            "description": "The client secret for this authentication, to be used for client-side operations.",
            "example": "auth_mbabizu24mvu3mela5njyhpit4_secret_el9ksDkiB8hi6j9N78yo",
            "nullable": true
          },
          "amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "authentication_connector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationConnectors"
              }
            ],
            "nullable": true
          },
          "force_3ds_challenge": {
            "type": "boolean",
            "description": "Whether 3DS challenge was forced.",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to which the user should be redirected after authentication, if provided.",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "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
          },
          "profile_id": {
            "type": "string",
            "description": "The business profile that is associated with this payment",
            "nullable": true
          },
          "psd2_sca_exemption_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ScaExemptionType"
              }
            ],
            "nullable": true
          },
          "acquirer_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AcquirerDetails"
              }
            ],
            "nullable": true
          },
          "profile_acquirer_id": {
            "type": "string",
            "description": "Profile Acquirer ID get from profile acquirer configuration",
            "nullable": true
          },
          "customer_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "AuthenticationRetrieveEligibilityCheckRequest": {
        "type": "object"
      },
      "AuthenticationRetrieveEligibilityCheckResponse": {
        "type": "object",
        "required": [
          "eligibility_check_data"
        ],
        "properties": {
          "eligibility_check_data": {
            "$ref": "#/components/schemas/AuthenticationEligibilityCheckResponseData"
          }
        }
      },
      "AuthenticationSdkNextAction": {
        "oneOf": [
          {
            "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"
                  }
                }
              }
            }
          },
          {
            "type": "string",
            "description": "The next action is to proceed with the payment",
            "enum": [
              "proceed"
            ]
          }
        ]
      },
      "AuthenticationSessionResponse": {
        "type": "object",
        "required": [
          "authentication_id",
          "session_token"
        ],
        "properties": {
          "authentication_id": {
            "type": "string",
            "description": "The identifier for the payment"
          },
          "session_token": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuthenticationSessionToken"
            },
            "description": "The list of session token object"
          }
        }
      },
      "AuthenticationSessionToken": {
        "oneOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/ClickToPaySessionResponse"
              },
              {
                "type": "object",
                "required": [
                  "wallet_name"
                ],
                "properties": {
                  "wallet_name": {
                    "type": "string",
                    "enum": [
                      "click_to_pay"
                    ]
                  }
                }
              }
            ]
          },
          {
            "type": "object",
            "required": [
              "wallet_name"
            ],
            "properties": {
              "wallet_name": {
                "type": "string",
                "enum": [
                  "no_session_token_received"
                ]
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "wallet_name"
        }
      },
      "AuthenticationSessionTokenRequest": {
        "type": "object",
        "required": [
          "client_secret"
        ],
        "properties": {
          "client_secret": {
            "type": "string",
            "description": "Client Secret for the authentication"
          }
        }
      },
      "AuthenticationStatus": {
        "type": "string",
        "enum": [
          "started",
          "pending",
          "success",
          "failed"
        ]
      },
      "AuthenticationSyncPostUpdateRequest": {
        "type": "object"
      },
      "AuthenticationSyncRequest": {
        "type": "object",
        "required": [
          "client_secret"
        ],
        "properties": {
          "client_secret": {
            "type": "string",
            "description": "The client secret for this authentication."
          },
          "payment_method_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PostAuthenticationRequestPaymentMethodData"
              }
            ],
            "nullable": true
          }
        }
      },
      "AuthenticationSyncResponse": {
        "type": "object",
        "required": [
          "authentication_id",
          "merchant_id",
          "status",
          "amount",
          "currency",
          "created_at",
          "profile_id"
        ],
        "properties": {
          "authentication_id": {
            "type": "string",
            "description": "The unique identifier for this authentication.",
            "example": "auth_mbabizu24mvu3mela5njyhpit4"
          },
          "merchant_id": {
            "type": "string",
            "description": "This is an identifier for the merchant account.",
            "example": "merchant_abc"
          },
          "status": {
            "$ref": "#/components/schemas/AuthenticationStatus"
          },
          "client_secret": {
            "type": "string",
            "description": "The client secret for this authentication.",
            "nullable": true
          },
          "amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "authentication_connector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationConnectors"
              }
            ],
            "nullable": true
          },
          "force_3ds_challenge": {
            "type": "boolean",
            "description": "Whether 3DS challenge was forced.",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to which the user should be redirected after authentication.",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "example": "2022-09-10T10:11:12Z"
          },
          "profile_id": {
            "type": "string",
            "description": "The business profile that is associated with this authentication."
          },
          "psd2_sca_exemption_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ScaExemptionType"
              }
            ],
            "nullable": true
          },
          "acquirer_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AcquirerDetails"
              }
            ],
            "nullable": true
          },
          "threeds_server_transaction_id": {
            "type": "string",
            "description": "The unique identifier from the 3DS server.",
            "nullable": true
          },
          "maximum_supported_3ds_version": {
            "type": "string",
            "description": "The maximum supported 3DS version.",
            "nullable": true
          },
          "connector_authentication_id": {
            "type": "string",
            "description": "The unique identifier from the connector.",
            "nullable": true
          },
          "three_ds_method_data": {
            "type": "string",
            "description": "The data required to perform the 3DS method.",
            "nullable": true
          },
          "three_ds_method_url": {
            "type": "string",
            "description": "The URL for the 3DS method.",
            "nullable": true
          },
          "message_version": {
            "type": "string",
            "description": "The version of the message.",
            "nullable": true
          },
          "connector_metadata": {
            "description": "The metadata for this authentication.",
            "nullable": true
          },
          "directory_server_id": {
            "type": "string",
            "description": "The unique identifier for the directory server.",
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationPaymentMethodDataResponse"
              }
            ],
            "nullable": true
          },
          "vault_token_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationVaultTokenData"
              }
            ],
            "nullable": true
          },
          "authentication_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationDetails"
              }
            ],
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "browser_information": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Email.",
            "nullable": true
          },
          "trans_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionStatus"
              }
            ],
            "nullable": true
          },
          "acs_url": {
            "type": "string",
            "description": "Access Server URL for challenge submission.",
            "nullable": true
          },
          "challenge_request": {
            "type": "string",
            "description": "Challenge request to be sent to acs_url.",
            "nullable": true
          },
          "acs_reference_number": {
            "type": "string",
            "description": "Unique identifier assigned by EMVCo.",
            "nullable": true
          },
          "acs_trans_id": {
            "type": "string",
            "description": "Unique identifier assigned by the ACS.",
            "nullable": true
          },
          "acs_signed_content": {
            "type": "string",
            "description": "JWS object created by the ACS for the ARes message.",
            "nullable": true
          },
          "three_ds_requestor_url": {
            "type": "string",
            "description": "Three DS Requestor URL.",
            "nullable": true
          },
          "three_ds_requestor_app_url": {
            "type": "string",
            "description": "Merchant app URL for OOB authentication.",
            "nullable": true
          },
          "eci": {
            "type": "string",
            "description": "ECI value for this authentication, only available in case of server to server request. Unavailable in case of client request due to security concern.",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "description": "Error message if any.",
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "description": "Error code if any.",
            "nullable": true
          },
          "profile_acquirer_id": {
            "type": "string",
            "description": "Profile Acquirer ID",
            "nullable": true
          }
        }
      },
      "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"
        ]
      },
      "AuthenticationVaultTokenData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "card_number": {
                "type": "string",
                "description": "token representing card_number",
                "nullable": true
              },
              "card_expiry_year": {
                "type": "string",
                "description": "token representing card_expiry_year",
                "nullable": true
              },
              "card_expiry_month": {
                "type": "string",
                "description": "token representing card_expiry_month",
                "nullable": true
              },
              "card_cvc": {
                "type": "string",
                "description": "token representing card_cvc",
                "nullable": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "card_data"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "network_token": {
                "type": "string",
                "description": "token representing payment_token",
                "nullable": true
              },
              "network_token_expiry_year": {
                "type": "string",
                "description": "token representing token_expiry_year",
                "nullable": true
              },
              "network_token_expiry_month": {
                "type": "string",
                "description": "token representing token_expiry_month",
                "nullable": true
              },
              "network_token_cryptogram": {
                "type": "string",
                "description": "token representing token_cryptogram",
                "nullable": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "network_token_data"
                ]
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "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"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        ]
      },
      "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"
              }
            }
          }
        ]
      },
      "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"
        ]
      },
      "BatchBlocklistJobStatus": {
        "type": "string",
        "enum": [
          "initiated",
          "processing",
          "completed",
          "failed"
        ]
      },
      "BatchBlocklistJobStatusResponse": {
        "type": "object",
        "description": "Response for `GET /blocklist/batch/{job_id}`.",
        "required": [
          "job_id",
          "merchant_id",
          "status",
          "total_rows",
          "succeeded_rows",
          "failed_rows",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "job_id": {
            "type": "string"
          },
          "merchant_id": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/BatchBlocklistJobStatus"
          },
          "total_rows": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "succeeded_rows": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "failed_rows": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BatchBlocklistUploadResponse": {
        "type": "object",
        "description": "Response returned on a successful `POST /blocklist/batch`.",
        "required": [
          "job_id",
          "total_rows",
          "status"
        ],
        "properties": {
          "job_id": {
            "type": "string"
          },
          "total_rows": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "status": {
            "$ref": "#/components/schemas/BatchBlocklistJobStatus"
          }
        }
      },
      "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
          }
        }
      },
      "BillingDescriptor": {
        "type": "object",
        "description": "Billing Descriptor information to be sent to the payment gateway",
        "properties": {
          "name": {
            "type": "string",
            "description": "name to be put in billing description",
            "example": "The Online Retailer",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "city to be put in billing description",
            "example": "San Francisco",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "phone to be put in billing description",
            "example": "9123456789",
            "nullable": true
          },
          "statement_descriptor": {
            "type": "string",
            "description": "a short description for the payment",
            "nullable": true
          },
          "statement_descriptor_suffix": {
            "type": "string",
            "description": "Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor.",
            "nullable": true
          },
          "reference": {
            "type": "string",
            "description": "A reference to be shown on billing description",
            "nullable": true
          }
        }
      },
      "BillingFrequency": {
        "type": "string",
        "description": "Billing frequency for a card installment plan",
        "enum": [
          "month"
        ]
      },
      "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"
          }
        }
      },
      "BlocklistRowError": {
        "type": "object",
        "description": "A single validation error found in a batch-upload CSV row.",
        "required": [
          "row_index",
          "data_kind",
          "data",
          "reason"
        ],
        "properties": {
          "row_index": {
            "type": "integer",
            "description": "0-based row index in the CSV (excluding header).",
            "minimum": 0
          },
          "data_kind": {
            "$ref": "#/components/schemas/BlocklistDataKind"
          },
          "data": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        }
      },
      "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"
        ]
      },
      "CancelOption": {
        "type": "string",
        "enum": [
          "immediately",
          "end_of_term",
          "specific_date"
        ]
      },
      "CancelSubscriptionRequest": {
        "type": "object",
        "description": "Request payload for cancelling a subscription.",
        "properties": {
          "cancel_option": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CancelOption"
              }
            ],
            "nullable": true
          },
          "cancel_at": {
            "type": "string",
            "description": "Optional date when the subscription should be cancelled (if not provided, cancels immediately)",
            "nullable": true
          },
          "unbilled_charges_option": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UnbilledChargesOption"
              }
            ],
            "nullable": true
          },
          "credit_option_for_current_term_charges": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CreditOption"
              }
            ],
            "nullable": true
          },
          "account_receivables_handling": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AccountReceivablesHandling"
              }
            ],
            "nullable": true
          },
          "refundable_credits_handling": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RefundableCreditsHandling"
              }
            ],
            "nullable": true
          },
          "cancel_reason_code": {
            "type": "string",
            "description": "Reason code for canceling the subscription",
            "nullable": true
          }
        }
      },
      "CancelSubscriptionResponse": {
        "type": "object",
        "description": "Response payload returned after successfully cancelling a subscription.",
        "required": [
          "id",
          "status",
          "profile_id",
          "merchant_id",
          "customer_id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/SubscriptionId"
          },
          "status": {
            "$ref": "#/components/schemas/SubscriptionStatus"
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "Merchant specific Unique identifier.",
            "nullable": true
          },
          "profile_id": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "merchant_id": {
            "$ref": "#/components/schemas/MerchantId"
          },
          "customer_id": {
            "$ref": "#/components/schemas/CustomerId"
          },
          "cancelled_at": {
            "type": "string",
            "description": "Date when the subscription was cancelled",
            "nullable": true
          }
        }
      },
      "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"
          }
        }
      },
      "CardBlockingConfig": {
        "type": "object",
        "description": "Card-specific blocking configuration",
        "properties": {
          "issuing_country": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CountryAlpha2"
            },
            "description": "Set of issuing countries to block using ISO 3166-1 alpha-2 codes (e.g., [\"IN\", \"US\"])",
            "nullable": true
          },
          "card_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardType"
            },
            "description": "Set of card types to block (e.g., [\"Credit\", \"Debit\"])",
            "nullable": true
          },
          "card_subtypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of card subtypes to block",
            "nullable": true
          },
          "issuers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Set of card issuer IDs to block",
            "uniqueItems": true,
            "nullable": true
          },
          "block_if_bin_info_unavailable": {
            "type": "boolean",
            "description": "Whether to block if BIN is provided but no matching record found in cards_info table.\nDefaults to false (allow payment if BIN not found in database).",
            "nullable": true
          },
          "card_networks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardNetwork"
            },
            "description": "Set of card networks to block",
            "nullable": true
          },
          "funding_sources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FundingSource"
            },
            "description": "Set of card funding sources to block",
            "nullable": true
          },
          "card_segment_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardSegmentType"
            },
            "description": "Set of card segment types to block",
            "nullable": true
          },
          "block_virtual_cards": {
            "type": "boolean",
            "description": "Whether virtual cards should be blocked",
            "nullable": true
          },
          "block_non_reloadable_prepaid_cards": {
            "type": "boolean",
            "description": "Whether non-reloadable prepaid cards should be blocked",
            "nullable": true
          },
          "gambling_blocked": {
            "type": "boolean",
            "description": "Whether cards from BINs marked for gambling should be blocked",
            "nullable": true
          }
        }
      },
      "CardDetail": {
        "type": "object",
        "required": [
          "card_number",
          "card_exp_month",
          "card_exp_year",
          "card_holder_name"
        ],
        "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_cvc": {
            "type": "string",
            "description": "Card CVC for Volatile Storage",
            "example": "123",
            "nullable": true
          },
          "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": {
            "type": "string",
            "description": "Card Issuing Country",
            "nullable": true
          },
          "card_issuing_country_code": {
            "type": "string",
            "description": "Card Issuing Country Code",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_issuer": {
            "type": "string",
            "description": "Issuer Bank for Card",
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "description": "Card Type",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CardDetailFromLocker": {
        "type": "object",
        "required": [
          "saved_to_locker"
        ],
        "properties": {
          "scheme": {
            "type": "string",
            "nullable": true
          },
          "issuer_country": {
            "type": "string",
            "nullable": true
          },
          "issuer_country_code": {
            "type": "string",
            "nullable": true
          },
          "last4_digits": {
            "type": "string",
            "nullable": true
          },
          "expiry_month": {
            "type": "string",
            "nullable": true
          },
          "expiry_year": {
            "type": "string",
            "nullable": true
          },
          "card_token": {
            "type": "string",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "nullable": true
          },
          "card_fingerprint": {
            "type": "string",
            "nullable": true
          },
          "nick_name": {
            "type": "string",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "card_isin": {
            "type": "string",
            "nullable": true
          },
          "card_issuer": {
            "type": "string",
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "nullable": true
          },
          "saved_to_locker": {
            "type": "boolean"
          }
        }
      },
      "CardDetailUpdate": {
        "type": "object",
        "required": [
          "card_exp_month",
          "card_exp_year",
          "card_holder_name"
        ],
        "properties": {
          "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
          },
          "last4_digits": {
            "type": "string",
            "description": "Card's Last 4 Digits",
            "example": "1111",
            "nullable": true
          },
          "card_issuer": {
            "type": "string",
            "description": "Issuing Bank of the Particular Card",
            "example": "Bank of America",
            "nullable": true
          },
          "issuer_country": {
            "type": "string",
            "description": "The country where that particular card was issued",
            "example": "US",
            "nullable": true
          },
          "issuer_country_code": {
            "type": "string",
            "description": "The country code where that particular card was issued",
            "example": "US",
            "nullable": true
          },
          "card_network": {
            "type": "string",
            "description": "The card network",
            "example": "VISA",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CardDiscovery": {
        "type": "string",
        "description": "Indicates the method by which a card is discovered during a payment",
        "enum": [
          "manual",
          "saved_card",
          "click_to_pay"
        ]
      },
      "CardIssuerDeleteResponse": {
        "type": "object",
        "required": [
          "id",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "deleted": {
            "type": "boolean",
            "example": true
          }
        }
      },
      "CardIssuerListQuery": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Optional search term to filter issuers by name (case-insensitive prefix match)",
            "example": "hdfc",
            "nullable": true
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of results to return (default: 30, max: 255)",
            "default": 30,
            "example": 30,
            "maximum": 255,
            "minimum": 0
          }
        }
      },
      "CardIssuerListResponse": {
        "type": "object",
        "required": [
          "issuers"
        ],
        "properties": {
          "issuers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardIssuerResponse"
            }
          }
        }
      },
      "CardIssuerRequest": {
        "type": "object",
        "required": [
          "issuer_name"
        ],
        "properties": {
          "issuer_name": {
            "type": "string",
            "description": "The name of the card issuer to add",
            "example": "STATE BANK OF INDIA"
          }
        }
      },
      "CardIssuerResponse": {
        "type": "object",
        "required": [
          "id",
          "issuer_name"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "issuer_name": {
            "type": "string"
          }
        }
      },
      "CardIssuerUpdateRequest": {
        "type": "object",
        "required": [
          "issuer_name"
        ],
        "properties": {
          "issuer_name": {
            "type": "string",
            "description": "The new name for the card issuer",
            "example": "STATE BANK OF INDIA UPDATED"
          }
        }
      },
      "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
          }
        }
      },
      "CardSegmentType": {
        "type": "string",
        "enum": [
          "business",
          "commercial",
          "consumer",
          "government"
        ]
      },
      "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
          }
        }
      },
      "ChargesHandling": {
        "type": "string",
        "enum": [
          "invoice_immediately",
          "add_to_unbilled_charges"
        ]
      },
      "ClickToPayDetails": {
        "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
          }
        }
      },
      "ClickToPayEligibilityCheckData": {
        "type": "object",
        "properties": {
          "visa": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VisaEligibilityCheckData"
              }
            ],
            "nullable": true
          },
          "mastercard": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MasterCardEligibilityCheckData"
              }
            ],
            "nullable": true
          }
        }
      },
      "ClickToPayEligibilityCheckResponseData": {
        "type": "object",
        "properties": {
          "visa": {
            "type": "boolean",
            "nullable": true
          },
          "mastercard": {
            "type": "boolean",
            "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
          }
        }
      },
      "ClientSecret": {
        "type": "string",
        "description": "For Client based calls, SDK will use the client_secret\\nin order to call /payment_methods\\nClient secret will be generated whenever a new\\npayment method is created"
      },
      "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"
        ]
      },
      "ConfirmSubscriptionPaymentDetails": {
        "type": "object",
        "required": [
          "payment_method"
        ],
        "properties": {
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDataRequest"
              }
            ],
            "nullable": true
          },
          "customer_acceptance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerAcceptance"
              }
            ],
            "nullable": true
          },
          "payment_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentType"
              }
            ],
            "nullable": true
          },
          "payment_token": {
            "type": "string",
            "example": "token_sxJdmpUnpNsJk5VWzcjl",
            "nullable": true
          }
        }
      },
      "ConfirmSubscriptionRequest": {
        "type": "object",
        "required": [
          "payment_details"
        ],
        "properties": {
          "client_secret": {
            "type": "string",
            "description": "This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK",
            "nullable": true
          },
          "payment_details": {
            "$ref": "#/components/schemas/ConfirmSubscriptionPaymentDetails"
          }
        }
      },
      "ConfirmSubscriptionResponse": {
        "type": "object",
        "required": [
          "id",
          "status",
          "profile_id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/SubscriptionId"
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "Merchant specific Unique identifier.",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/SubscriptionStatus"
          },
          "plan_id": {
            "type": "string",
            "description": "Identifier for the associated subscription plan.",
            "nullable": true
          },
          "item_price_id": {
            "type": "string",
            "description": "Identifier for the associated item_price_id for the subscription.",
            "nullable": true
          },
          "coupon": {
            "type": "string",
            "description": "Optional coupon code applied to this subscription.",
            "nullable": true
          },
          "profile_id": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "payment": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentResponseData"
              }
            ],
            "nullable": true
          },
          "customer_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerId"
              }
            ],
            "nullable": true
          },
          "invoice": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Invoice"
              }
            ],
            "nullable": true
          },
          "billing_processor_subscription_id": {
            "type": "string",
            "description": "Billing Processor subscription ID.",
            "nullable": true
          }
        }
      },
      "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"
        ]
      },
      "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
      },
      "ConnectorWebhookEventType": {
        "oneOf": [
          {
            "type": "string",
            "enum": [
              "all_events"
            ]
          },
          {
            "type": "object",
            "required": [
              "specific_event"
            ],
            "properties": {
              "specific_event": {
                "$ref": "#/components/schemas/EventType"
              }
            }
          }
        ]
      },
      "ConnectorWebhookListResponse": {
        "type": "object",
        "required": [
          "connector",
          "webhooks"
        ],
        "properties": {
          "connector": {
            "type": "string"
          },
          "webhooks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectorWebhookResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "ConnectorWebhookRegisterRequest": {
        "type": "object",
        "description": "Register a webhook at the connector",
        "properties": {
          "scope": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Scope"
              }
            ],
            "nullable": true
          },
          "event_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorWebhookEventType"
              }
            ],
            "nullable": true
          }
        }
      },
      "ConnectorWebhookResponse": {
        "type": "object",
        "required": [
          "connector_webhook_id"
        ],
        "properties": {
          "connector_webhook_id": {
            "type": "string"
          },
          "event_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorWebhookEventType"
              }
            ],
            "nullable": true
          },
          "scope": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorWebhookScope"
              }
            ],
            "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"
        ]
      },
      "Country": {
        "type": "string",
        "enum": [
          "Afghanistan",
          "AlandIslands",
          "Albania",
          "Algeria",
          "AmericanSamoa",
          "Andorra",
          "Angola",
          "Anguilla",
          "Antarctica",
          "AntiguaAndBarbuda",
          "Argentina",
          "Armenia",
          "Aruba",
          "Australia",
          "Austria",
          "Azerbaijan",
          "Bahamas",
          "Bahrain",
          "Bangladesh",
          "Barbados",
          "Belarus",
          "Belgium",
          "Belize",
          "Benin",
          "Bermuda",
          "Bhutan",
          "BoliviaPlurinationalState",
          "BonaireSintEustatiusAndSaba",
          "BosniaAndHerzegovina",
          "Botswana",
          "BouvetIsland",
          "Brazil",
          "BritishIndianOceanTerritory",
          "BruneiDarussalam",
          "Bulgaria",
          "BurkinaFaso",
          "Burundi",
          "CaboVerde",
          "Cambodia",
          "Cameroon",
          "Canada",
          "CaymanIslands",
          "CentralAfricanRepublic",
          "Chad",
          "Chile",
          "China",
          "ChristmasIsland",
          "CocosKeelingIslands",
          "Colombia",
          "Comoros",
          "Congo",
          "CongoDemocraticRepublic",
          "CookIslands",
          "CostaRica",
          "CotedIvoire",
          "Croatia",
          "Cuba",
          "Curacao",
          "Cyprus",
          "Czechia",
          "Denmark",
          "Djibouti",
          "Dominica",
          "DominicanRepublic",
          "Ecuador",
          "Egypt",
          "ElSalvador",
          "EquatorialGuinea",
          "Eritrea",
          "Estonia",
          "Ethiopia",
          "FalklandIslandsMalvinas",
          "FaroeIslands",
          "Fiji",
          "Finland",
          "France",
          "FrenchGuiana",
          "FrenchPolynesia",
          "FrenchSouthernTerritories",
          "Gabon",
          "Gambia",
          "Georgia",
          "Germany",
          "Ghana",
          "Gibraltar",
          "Greece",
          "Greenland",
          "Grenada",
          "Guadeloupe",
          "Guam",
          "Guatemala",
          "Guernsey",
          "Guinea",
          "GuineaBissau",
          "Guyana",
          "Haiti",
          "HeardIslandAndMcDonaldIslands",
          "HolySee",
          "Honduras",
          "HongKong",
          "Hungary",
          "Iceland",
          "India",
          "Indonesia",
          "IranIslamicRepublic",
          "Iraq",
          "Ireland",
          "IsleOfMan",
          "Israel",
          "Italy",
          "Jamaica",
          "Japan",
          "Jersey",
          "Jordan",
          "Kazakhstan",
          "Kenya",
          "Kiribati",
          "KoreaDemocraticPeoplesRepublic",
          "KoreaRepublic",
          "Kuwait",
          "Kyrgyzstan",
          "LaoPeoplesDemocraticRepublic",
          "Latvia",
          "Lebanon",
          "Lesotho",
          "Liberia",
          "Libya",
          "Liechtenstein",
          "Lithuania",
          "Luxembourg",
          "Macao",
          "MacedoniaTheFormerYugoslavRepublic",
          "Madagascar",
          "Malawi",
          "Malaysia",
          "Maldives",
          "Mali",
          "Malta",
          "MarshallIslands",
          "Martinique",
          "Mauritania",
          "Mauritius",
          "Mayotte",
          "Mexico",
          "MicronesiaFederatedStates",
          "MoldovaRepublic",
          "Monaco",
          "Mongolia",
          "Montenegro",
          "Montserrat",
          "Morocco",
          "Mozambique",
          "Myanmar",
          "Namibia",
          "Nauru",
          "Nepal",
          "Netherlands",
          "NewCaledonia",
          "NewZealand",
          "Nicaragua",
          "Niger",
          "Nigeria",
          "Niue",
          "NorfolkIsland",
          "NorthernMarianaIslands",
          "Norway",
          "Oman",
          "Pakistan",
          "Palau",
          "PalestineState",
          "Panama",
          "PapuaNewGuinea",
          "Paraguay",
          "Peru",
          "Philippines",
          "Pitcairn",
          "Poland",
          "Portugal",
          "PuertoRico",
          "Qatar",
          "Reunion",
          "Romania",
          "RussianFederation",
          "Rwanda",
          "SaintBarthelemy",
          "SaintHelenaAscensionAndTristandaCunha",
          "SaintKittsAndNevis",
          "SaintLucia",
          "SaintMartinFrenchpart",
          "SaintPierreAndMiquelon",
          "SaintVincentAndTheGrenadines",
          "Samoa",
          "SanMarino",
          "SaoTomeAndPrincipe",
          "SaudiArabia",
          "Senegal",
          "Serbia",
          "Seychelles",
          "SierraLeone",
          "Singapore",
          "SintMaartenDutchpart",
          "Slovakia",
          "Slovenia",
          "SolomonIslands",
          "Somalia",
          "SouthAfrica",
          "SouthGeorgiaAndTheSouthSandwichIslands",
          "SouthSudan",
          "Spain",
          "SriLanka",
          "Sudan",
          "Suriname",
          "SvalbardAndJanMayen",
          "Swaziland",
          "Sweden",
          "Switzerland",
          "SyrianArabRepublic",
          "TaiwanProvinceOfChina",
          "Tajikistan",
          "TanzaniaUnitedRepublic",
          "Thailand",
          "TimorLeste",
          "Togo",
          "Tokelau",
          "Tonga",
          "TrinidadAndTobago",
          "Tunisia",
          "Turkey",
          "Turkmenistan",
          "TurksAndCaicosIslands",
          "Tuvalu",
          "Uganda",
          "Ukraine",
          "UnitedArabEmirates",
          "UnitedKingdomOfGreatBritainAndNorthernIreland",
          "UnitedStatesOfAmerica",
          "UnitedStatesMinorOutlyingIslands",
          "Uruguay",
          "Uzbekistan",
          "Vanuatu",
          "VenezuelaBolivarianRepublic",
          "Vietnam",
          "VirginIslandsBritish",
          "VirginIslandsUS",
          "WallisAndFutuna",
          "WesternSahara",
          "Yemen",
          "Zambia",
          "Zimbabwe"
        ]
      },
      "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"
        ]
      },
      "CreateAndConfirmSubscriptionRequest": {
        "type": "object",
        "required": [
          "item_price_id",
          "customer_id",
          "payment_details"
        ],
        "properties": {
          "plan_id": {
            "type": "string",
            "description": "Identifier for the associated plan_id.",
            "nullable": true
          },
          "item_price_id": {
            "type": "string",
            "description": "Identifier for the associated item_price_id for the subscription."
          },
          "coupon_code": {
            "type": "string",
            "description": "Identifier for the coupon code for the subscription.",
            "nullable": true
          },
          "customer_id": {
            "$ref": "#/components/schemas/CustomerId"
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "payment_details": {
            "$ref": "#/components/schemas/PaymentDetails"
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "Merchant specific Unique identifier.",
            "nullable": true
          }
        }
      },
      "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"
          }
        }
      },
      "CreateFileResponse": {
        "type": "object",
        "required": [
          "file_id"
        ],
        "properties": {
          "file_id": {
            "type": "string",
            "description": "ID of the file created"
          }
        }
      },
      "CreateSubscriptionPaymentDetails": {
        "type": "object",
        "required": [
          "return_url"
        ],
        "properties": {
          "return_url": {
            "type": "string",
            "description": "The url to which user must be redirected to after completion of the purchase"
          },
          "setup_future_usage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FutureUsage"
              }
            ],
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "nullable": true
          },
          "payment_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentType"
              }
            ],
            "nullable": true
          }
        }
      },
      "CreateSubscriptionRequest": {
        "type": "object",
        "description": "Request payload for creating a subscription.\n\nThis struct captures details required to create a subscription,\nincluding plan, profile, merchant connector, and optional customer info.",
        "required": [
          "item_price_id",
          "customer_id",
          "payment_details"
        ],
        "properties": {
          "merchant_reference_id": {
            "type": "string",
            "description": "Merchant specific Unique identifier.",
            "nullable": true
          },
          "item_price_id": {
            "type": "string",
            "description": "Identifier for the associated item_price_id for the subscription."
          },
          "plan_id": {
            "type": "string",
            "description": "Identifier for the subscription plan.",
            "nullable": true
          },
          "coupon_code": {
            "type": "string",
            "description": "Optional coupon code applied to the subscription.",
            "nullable": true
          },
          "customer_id": {
            "$ref": "#/components/schemas/CustomerId"
          },
          "payment_details": {
            "$ref": "#/components/schemas/CreateSubscriptionPaymentDetails"
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          }
        }
      },
      "CreditOption": {
        "type": "string",
        "enum": [
          "none",
          "prorate",
          "full"
        ]
      },
      "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": [
          "customer_id",
          "payment_method"
        ],
        "properties": {
          "default_payment_method_id": {
            "type": "string",
            "description": "The unique identifier of the Payment method",
            "example": "card_rGK4Vi5iSW70MY7J2mIg",
            "nullable": true
          },
          "customer_id": {
            "type": "string",
            "description": "The unique identifier of the customer.",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64,
            "minLength": 1
          },
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          }
        }
      },
      "CustomerDeleteResponse": {
        "type": "object",
        "required": [
          "customer_id",
          "customer_deleted",
          "address_deleted",
          "payment_methods_deleted"
        ],
        "properties": {
          "customer_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": {
          "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
          },
          "customer_document_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDocumentDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "CustomerDeviceData": {
        "type": "object",
        "description": "Represents data about the customer's device used in the 3DS decision rule.",
        "properties": {
          "platform": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDevicePlatform"
              }
            ],
            "nullable": true
          },
          "device_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDeviceType"
              }
            ],
            "nullable": true
          },
          "display_size": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDeviceDisplaySize"
              }
            ],
            "nullable": true
          }
        }
      },
      "CustomerDeviceDisplaySize": {
        "type": "string",
        "enum": [
          "size320x568",
          "size375x667",
          "size390x844",
          "size414x896",
          "size428x926",
          "size768x1024",
          "size834x1112",
          "size834x1194",
          "size1024x1366",
          "size1280x720",
          "size1366x768",
          "size1440x900",
          "size1920x1080",
          "size2560x1440",
          "size3840x2160",
          "size500x600",
          "size600x400",
          "size360x640",
          "size412x915",
          "size800x1280"
        ]
      },
      "CustomerDevicePlatform": {
        "type": "string",
        "enum": [
          "web",
          "android",
          "ios"
        ]
      },
      "CustomerDeviceType": {
        "type": "string",
        "enum": [
          "mobile",
          "tablet",
          "desktop",
          "gaming_console"
        ]
      },
      "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
          }
        }
      },
      "CustomerId": {
        "type": "string",
        "description": "A type for customer_id that can be used for customer ids"
      },
      "CustomerPaymentMethod": {
        "type": "object",
        "required": [
          "payment_token",
          "payment_method_id",
          "customer_id",
          "payment_method",
          "requires_cvv",
          "default_payment_method_set"
        ],
        "properties": {
          "payment_token": {
            "type": "string",
            "description": "Token for payment method in temporary card locker which gets refreshed often",
            "example": "7ebf443f-a050-4067-84e5-e6f6d4800aef"
          },
          "payment_method_id": {
            "type": "string",
            "description": "The unique identifier of the customer.",
            "example": "pm_iouuy468iyuowqs"
          },
          "customer_id": {
            "type": "string",
            "description": "The unique identifier of the customer.",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64,
            "minLength": 1
          },
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "payment_method_issuer": {
            "type": "string",
            "description": "The name of the bank/ provider issuing the payment method to the end user",
            "example": "Citibank",
            "nullable": true
          },
          "payment_method_issuer_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodIssuerCode"
              }
            ],
            "nullable": true
          },
          "recurring_enabled": {
            "type": "boolean",
            "description": "Indicates whether the payment method supports recurring payments. Optional.",
            "example": true,
            "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
          },
          "payment_experience": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentExperience"
            },
            "description": "Type of payment experience enabled with the connector",
            "example": [
              "redirect_to_url"
            ],
            "nullable": true
          },
          "card": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardDetailFromLocker"
              }
            ],
            "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
          },
          "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
          },
          "bank_transfer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Bank"
              }
            ],
            "nullable": true
          },
          "bank": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MaskedBankDetails"
              }
            ],
            "nullable": true
          },
          "surcharge_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SurchargeDetailsResponse"
              }
            ],
            "nullable": true
          },
          "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",
            "nullable": true
          },
          "default_payment_method_set": {
            "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
          }
        }
      },
      "CustomerPaymentMethodUpdateResponse": {
        "type": "object",
        "required": [
          "merchant_id",
          "payment_method_id",
          "payment_method"
        ],
        "properties": {
          "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": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "payment_method_id": {
            "type": "string",
            "description": "The unique identifier of the Payment method",
            "example": "card_rGK4Vi5iSW70MY7J2mIg"
          },
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "card": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardDetailFromLocker"
              }
            ],
            "nullable": true
          },
          "wallet": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDataWalletInfo"
              }
            ],
            "nullable": true
          },
          "recurring_enabled": {
            "type": "boolean",
            "description": "Indicates whether the payment method supports recurring payments. Optional.",
            "example": true,
            "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
          },
          "payment_experience": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentExperience"
            },
            "description": "Type of payment experience enabled with the connector",
            "example": [
              "redirect_to_url"
            ],
            "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
          },
          "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
          },
          "bank_transfer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Bank"
              }
            ],
            "nullable": true
          },
          "last_used_at": {
            "type": "string",
            "format": "date-time",
            "example": "2024-02-24T11:04:09.922Z",
            "nullable": true
          },
          "client_secret": {
            "type": "string",
            "description": "For Client based calls",
            "nullable": true
          }
        }
      },
      "CustomerPaymentMethodsListResponse": {
        "type": "object",
        "required": [
          "customer_payment_methods"
        ],
        "properties": {
          "customer_payment_methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerPaymentMethod"
            },
            "description": "List of payment methods for customer"
          },
          "is_guest_customer": {
            "type": "boolean",
            "description": "Returns whether a customer id is not tied to a payment intent (only when the request is made against a client secret)",
            "nullable": true
          }
        }
      },
      "CustomerRequest": {
        "type": "object",
        "description": "The customer details",
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer object. If not provided the customer ID will be autogenerated.",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "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
          },
          "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
          },
          "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": "Customer's tax registration ID",
            "example": "123456789",
            "nullable": true,
            "maxLength": 255
          },
          "document_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDocumentDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "CustomerResponse": {
        "type": "object",
        "required": [
          "customer_id",
          "created_at"
        ],
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer object",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64,
            "minLength": 1
          },
          "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
          },
          "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": "pm_djh2837dwduh890123",
            "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",
        "description": "The identifier for the customer object. If not provided the customer ID will be autogenerated.",
        "properties": {
          "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
          },
          "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
          },
          "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": "Customer's tax registration ID",
            "example": "123456789",
            "nullable": true,
            "maxLength": 255
          },
          "document_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDocumentDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "DDCData": {
        "type": "object",
        "required": [
          "iframe_url"
        ],
        "properties": {
          "iframe_url": {
            "type": "string"
          },
          "timeout_ms": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "DeRoutableConnectorChoice": {
        "type": "object",
        "description": "Connector representation used in API request/response.\n\nRepresents a Merchant Connector Account.",
        "required": [
          "gateway_name",
          "gateway_id"
        ],
        "properties": {
          "gateway_name": {
            "$ref": "#/components/schemas/RoutableConnectors"
          },
          "gateway_id": {
            "type": "string",
            "description": "Merchant Connector Account ID.\n\nExample:\n```json\n\"mca_ExbsYfO1xFErhNtwY1PX\"\n```",
            "example": "authipay_1705"
          }
        }
      },
      "DecideGatewayResponse": {
        "type": "object",
        "properties": {
          "decided_gateway": {
            "type": "string",
            "description": "The gateway decided by the routing engine",
            "example": "stripe:mca1",
            "nullable": true
          },
          "gateway_priority_map": {
            "type": "object",
            "description": "Map of gateways with their priority scores",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "example": {
              "adyen:mca2": 1.0,
              "stripe:mca1": 1.0
            },
            "nullable": true
          },
          "filter_wise_gateways": {
            "type": "object",
            "description": "Gateways organized by filter criteria",
            "nullable": true
          },
          "priority_logic_tag": {
            "type": "string",
            "description": "Tag identifying the priority logic used",
            "nullable": true
          },
          "routing_approach": {
            "type": "string",
            "description": "The routing approach used for decision making",
            "example": "SR_SELECTION_V3_ROUTING",
            "nullable": true
          },
          "gateway_before_evaluation": {
            "type": "string",
            "description": "The gateway that was evaluated before the final decision",
            "example": "adyen:mca2",
            "nullable": true
          },
          "priority_logic_output": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PriorityLogicOutput"
              }
            ],
            "nullable": true
          },
          "reset_approach": {
            "type": "string",
            "description": "The reset approach applied during routing",
            "example": "NO_RESET",
            "nullable": true
          },
          "routing_dimension": {
            "type": "string",
            "description": "Dimensions used for routing decision (payment type, method, etc.)",
            "example": "ORDER_PAYMENT, UPI, upi",
            "nullable": true
          },
          "routing_dimension_level": {
            "type": "string",
            "description": "Level at which routing dimension is evaluated",
            "example": "PM_LEVEL",
            "nullable": true
          },
          "is_scheduled_outage": {
            "type": "boolean",
            "description": "Indicates if routing decision was affected by scheduled outage",
            "example": false,
            "nullable": true
          },
          "is_dynamic_mga_enabled": {
            "type": "boolean",
            "description": "Indicates if dynamic merchant gateway account is enabled",
            "example": false,
            "nullable": true
          },
          "gateway_mga_id_map": {
            "type": "object",
            "description": "Map of gateways to their MGA IDs",
            "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"
        ]
      },
      "DefaultPaymentMethod": {
        "type": "object",
        "required": [
          "customer_id",
          "payment_method_id"
        ],
        "properties": {
          "customer_id": {
            "type": "string",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64,
            "minLength": 1
          },
          "payment_method_id": {
            "type": "string"
          }
        }
      },
      "DeleteEvidenceRequest": {
        "type": "object",
        "required": [
          "dispute_id",
          "evidence_type"
        ],
        "properties": {
          "dispute_id": {
            "type": "string",
            "description": "Id of the dispute"
          },
          "evidence_type": {
            "$ref": "#/components/schemas/EvidenceType"
          }
        }
      },
      "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"
          }
        }
      },
      "DisputeEvidenceBlock": {
        "type": "object",
        "required": [
          "evidence_type",
          "file_metadata_response"
        ],
        "properties": {
          "evidence_type": {
            "$ref": "#/components/schemas/EvidenceType"
          },
          "file_metadata_response": {
            "$ref": "#/components/schemas/FileMetadataResponse"
          }
        }
      },
      "DisputeListFilters": {
        "type": "object",
        "required": [
          "connector",
          "currency",
          "dispute_status",
          "dispute_stage"
        ],
        "properties": {
          "connector": {
            "type": "object",
            "description": "The map of available connector filters, where the key is the connector name and the value is a list of MerchantConnectorInfo instances",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/MerchantConnectorInfo"
              }
            }
          },
          "currency": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Currency"
            },
            "description": "The list of available currency filters"
          },
          "dispute_status": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisputeStatus"
            },
            "description": "The list of available dispute status filters"
          },
          "dispute_stage": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisputeStage"
            },
            "description": "The list of available dispute stage filters"
          }
        }
      },
      "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"
        ]
      },
      "DisputesAggregateResponse": {
        "type": "object",
        "required": [
          "status_with_count"
        ],
        "properties": {
          "status_with_count": {
            "type": "object",
            "description": "Different status of disputes with their count",
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          }
        }
      },
      "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"
        ]
      },
      "DynamicRoutingFeatures": {
        "type": "string",
        "enum": [
          "metrics",
          "dynamic_connector_selection",
          "none"
        ]
      },
      "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
              }
            }
          }
        ]
      },
      "EligibilityCard": {
        "type": "object",
        "description": "Card data for eligibility check — only card_number is required, no CVV needed",
        "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_cvc": {
            "type": "string",
            "description": "The card's CVC/CVV",
            "example": "123",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "example": "John Test",
            "nullable": true
          },
          "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
          }
        }
      },
      "EligibilityPaymentMethodData": {
        "oneOf": [
          {
            "type": "object",
            "title": "EligibilityCard",
            "required": [
              "card"
            ],
            "properties": {
              "card": {
                "$ref": "#/components/schemas/EligibilityCard"
              }
            }
          },
          {
            "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"
              }
            }
          }
        ],
        "description": "Payment method data for eligibility check"
      },
      "EligibilityPaymentMethodDataRequest": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/EligibilityPaymentMethodData"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "properties": {
              "billing": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Address"
                  }
                ],
                "nullable": true
              }
            }
          }
        ],
        "description": "Payment method data request for eligibility check"
      },
      "EligibilityResponseParams": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "ThreeDsData"
            ],
            "properties": {
              "ThreeDsData": {
                "$ref": "#/components/schemas/ThreeDsData"
              }
            }
          }
        ]
      },
      "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
      },
      "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
          }
        }
      },
      "EphemeralKeyCreateResponse": {
        "type": "object",
        "description": "ephemeral_key for the customer_id mentioned",
        "required": [
          "customer_id",
          "created_at",
          "expires",
          "secret"
        ],
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "customer_id to which this ephemeral key belongs to",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64,
            "minLength": 1
          },
          "created_at": {
            "type": "integer",
            "format": "int64",
            "description": "time at which this ephemeral key was created"
          },
          "expires": {
            "type": "integer",
            "format": "int64",
            "description": "time at which this ephemeral key would expire"
          },
          "secret": {
            "type": "string",
            "description": "ephemeral key"
          }
        }
      },
      "ErrorCategory": {
        "type": "string",
        "enum": [
          "frm_decline",
          "processor_downtime",
          "processor_decline_unauthorized",
          "issue_with_payment_method",
          "processor_decline_incorrect_data",
          "hard_decline",
          "soft_decline"
        ]
      },
      "EstimateSubscriptionQuery": {
        "type": "object",
        "required": [
          "item_price_id"
        ],
        "properties": {
          "plan_id": {
            "type": "string",
            "description": "Identifier for the associated subscription plan.",
            "nullable": true
          },
          "item_price_id": {
            "type": "string",
            "description": "Identifier for the associated item_price_id for the subscription."
          },
          "coupon_code": {
            "type": "string",
            "description": "Identifier for the coupon code for the subscription.",
            "nullable": true
          }
        }
      },
      "EstimateSubscriptionResponse": {
        "type": "object",
        "required": [
          "amount",
          "currency",
          "line_items"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "plan_id": {
            "type": "string",
            "description": "Identifier for the associated plan_id.",
            "nullable": true
          },
          "item_price_id": {
            "type": "string",
            "description": "Identifier for the associated item_price_id for the subscription.",
            "nullable": true
          },
          "coupon_code": {
            "type": "string",
            "description": "Identifier for the coupon code for the subscription.",
            "nullable": true
          },
          "customer_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerId"
              }
            ],
            "nullable": true
          },
          "line_items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionLineItem"
            }
          }
        }
      },
      "EventClass": {
        "type": "string",
        "enum": [
          "payments",
          "refunds",
          "disputes",
          "mandates",
          "payouts",
          "subscriptions"
        ]
      },
      "EventListConstraints": {
        "type": "object",
        "description": "The constraints to apply when filtering events.",
        "properties": {
          "created_after": {
            "type": "string",
            "format": "date-time",
            "description": "Filter events created after the specified time.",
            "nullable": true
          },
          "created_before": {
            "type": "string",
            "format": "date-time",
            "description": "Filter events created before the specified time.",
            "nullable": true
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "description": "Include at most the specified number of events.",
            "nullable": true,
            "minimum": 0
          },
          "offset": {
            "type": "integer",
            "format": "int32",
            "description": "Include events after the specified offset.",
            "nullable": true,
            "minimum": 0
          },
          "object_id": {
            "type": "string",
            "description": "Filter all events associated with the specified object identifier (Payment Intent ID,\nRefund ID, etc.)",
            "nullable": true
          },
          "event_id": {
            "type": "string",
            "description": "Filter all events associated with the specified Event_id",
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "Filter all events associated with the specified business profile ID.",
            "nullable": true
          },
          "event_classes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventClass"
            },
            "description": "Filter events by their class.",
            "uniqueItems": true,
            "nullable": true
          },
          "event_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventType"
            },
            "description": "Filter events by their type.",
            "uniqueItems": true,
            "nullable": true
          },
          "is_delivered": {
            "type": "boolean",
            "description": "Filter all events by `is_overall_delivery_successful` field of the event.",
            "nullable": true
          },
          "recipient": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EventRecipient"
              }
            ],
            "nullable": true
          }
        }
      },
      "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"
          }
        }
      },
      "EventRecipient": {
        "type": "string",
        "enum": [
          "merchant",
          "connector"
        ]
      },
      "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"
        ]
      },
      "EvidenceType": {
        "type": "string",
        "enum": [
          "cancellation_policy",
          "customer_communication",
          "customer_signature",
          "receipt",
          "refund_policy",
          "service_documentation",
          "shipping_documentation",
          "invoice_showing_distinct_transactions",
          "recurring_transaction_agreement",
          "uncategorized_file"
        ]
      },
      "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"
          }
        }
      },
      "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",
        "required": [
          "transaction_status"
        ],
        "properties": {
          "authentication_cryptogram": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Cryptogram"
              }
            ],
            "nullable": true
          },
          "ds_trans_id": {
            "type": "string",
            "description": "Directory Server Transaction ID generated during the 3DS process.",
            "nullable": true
          },
          "version": {
            "type": "string",
            "description": "The version of the 3DS protocol used (e.g., \"2.1.0\" or \"2.2.0\").",
            "nullable": true
          },
          "eci": {
            "type": "string",
            "description": "Electronic Commerce Indicator (ECI) value representing the 3DS authentication result.",
            "nullable": true
          },
          "transaction_status": {
            "$ref": "#/components/schemas/TransactionStatus"
          }
        }
      },
      "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
          }
        }
      },
      "ExternalVaultEnabled": {
        "type": "string",
        "enum": [
          "enable",
          "skip"
        ]
      },
      "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
          },
          "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"
      },
      "FileMetadataResponse": {
        "type": "object",
        "required": [
          "file_id",
          "file_size",
          "file_type",
          "available"
        ],
        "properties": {
          "file_id": {
            "type": "string",
            "description": "ID of the file created"
          },
          "file_name": {
            "type": "string",
            "description": "Name of the file",
            "nullable": true
          },
          "file_size": {
            "type": "integer",
            "format": "int32",
            "description": "Size of the file"
          },
          "file_type": {
            "type": "string",
            "description": "Type of the file"
          },
          "available": {
            "type": "boolean",
            "description": "File availability"
          }
        }
      },
      "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
          }
        }
      },
      "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"
        ]
      },
      "FundingSource": {
        "type": "string",
        "enum": [
          "CREDIT",
          "DEBIT",
          "DEFERRED DEBIT",
          "PREPAID",
          "CHARGE CARD"
        ]
      },
      "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
          }
        }
      },
      "GetSubscriptionItemsQuery": {
        "type": "object",
        "required": [
          "item_type"
        ],
        "properties": {
          "client_secret": {
            "type": "string",
            "description": "This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK",
            "nullable": true
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "minimum": 0
          },
          "offset": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "minimum": 0
          },
          "item_type": {
            "$ref": "#/components/schemas/SubscriptionItemType"
          }
        }
      },
      "GetSubscriptionItemsResponse": {
        "type": "object",
        "required": [
          "item_id",
          "name",
          "price_id"
        ],
        "properties": {
          "item_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "price_id": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionItemPrices"
            }
          }
        }
      },
      "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"
        ]
      },
      "HyperswitchVaultData": {
        "type": "object",
        "required": [
          "sdk_authorization"
        ],
        "properties": {
          "sdk_authorization": {
            "type": "string",
            "description": "Base64-encoded SDK authorization token for the Hyperswitch Vault session"
          }
        }
      },
      "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"
        ]
      },
      "InstallmentData": {
        "type": "object",
        "description": "Installment selection made by the customer during payment confirmation.",
        "required": [
          "number_of_installments",
          "billing_frequency"
        ],
        "properties": {
          "number_of_installments": {
            "type": "integer",
            "format": "int32",
            "description": "Number of installments chosen by the customer",
            "minimum": 0
          },
          "billing_frequency": {
            "$ref": "#/components/schemas/BillingFrequency"
          },
          "installment_interest": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          }
        }
      },
      "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
          }
        }
      },
      "InstallmentOption": {
        "type": "object",
        "description": "Installment options grouped by payment method",
        "required": [
          "payment_method",
          "installments"
        ],
        "properties": {
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "installments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstallmentOptionData"
            },
            "description": "List of available installment configurations"
          }
        }
      },
      "InstallmentOptionData": {
        "type": "object",
        "description": "A single installment plan option accepted in request payloads",
        "required": [
          "number_of_installments",
          "billing_frequency",
          "interest_rate"
        ],
        "properties": {
          "number_of_installments": {
            "type": "string",
            "format": "binary",
            "description": "Number of installments (e.g., [3, 6, 12])"
          },
          "billing_frequency": {
            "$ref": "#/components/schemas/BillingFrequency"
          },
          "interest_rate": {
            "type": "number",
            "format": "double",
            "description": "Interest rate per installment as a percentage max 2 decimal places"
          }
        }
      },
      "InstallmentRequest": {
        "type": "object",
        "description": "Installment selection sent by the customer during payment confirmation.",
        "required": [
          "number_of_installments",
          "billing_frequency"
        ],
        "properties": {
          "number_of_installments": {
            "type": "integer",
            "format": "int32",
            "description": "Number of installments chosen by the customer",
            "minimum": 0
          },
          "billing_frequency": {
            "$ref": "#/components/schemas/BillingFrequency"
          }
        }
      },
      "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
          }
        }
      },
      "InternalNetworkTokenizationCredentials": {
        "type": "object",
        "required": [
          "token_service_api_key",
          "public_key",
          "private_key",
          "key_id"
        ],
        "properties": {
          "token_service_api_key": {
            "type": "string",
            "description": "The API key to contact the network tokenization provider",
            "example": "MDRFRDU3Mzc1Q0Q0N2893727712QzQjJEQzlENTBCOg==",
            "maxLength": 255
          },
          "public_key": {
            "type": "string",
            "description": "The public key to encrypt the card details before sending to the network tokenization provider",
            "example": "-----BEGIN PUBLIC KEY-----\nsom8723hj1bajhgd123==\n-----END PUBLIC KEY-----",
            "maxLength": 255
          },
          "private_key": {
            "type": "string",
            "description": "The private key to decrypt the tokenized card details received from the network tokenization provider",
            "example": "-----BEGIN RSA PRIVATE KEY-----\n897238huhbsdbjh12==\n-----END RSA PRIVATE KEY-----",
            "maxLength": 255
          },
          "key_id": {
            "type": "string",
            "description": "The key_id used in encryption",
            "example": "key_1ac9895a6d85414897213gahdac838a8",
            "maxLength": 255
          }
        },
        "additionalProperties": false
      },
      "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"
          }
        }
      },
      "Invoice": {
        "type": "object",
        "required": [
          "id",
          "subscription_id",
          "merchant_id",
          "profile_id",
          "merchant_connector_id",
          "customer_id",
          "amount",
          "currency",
          "status"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/InvoiceId"
          },
          "subscription_id": {
            "$ref": "#/components/schemas/SubscriptionId"
          },
          "merchant_id": {
            "$ref": "#/components/schemas/MerchantId"
          },
          "profile_id": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "merchant_connector_id": {
            "$ref": "#/components/schemas/MerchantConnectorAccountId"
          },
          "payment_intent_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentId"
              }
            ],
            "nullable": true
          },
          "payment_method_id": {
            "type": "string",
            "description": "Identifier for Payment Method",
            "example": "pm_01926c58bc6e77c09e809964e72af8c8",
            "nullable": true
          },
          "customer_id": {
            "$ref": "#/components/schemas/CustomerId"
          },
          "amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "status": {
            "$ref": "#/components/schemas/InvoiceStatus"
          },
          "billing_processor_invoice_id": {
            "type": "string",
            "description": "billing processor invoice id",
            "nullable": true
          }
        }
      },
      "InvoiceId": {
        "type": "string",
        "description": "A type for invoice_id that can be used for invoice ids"
      },
      "InvoiceStatus": {
        "type": "string",
        "enum": [
          "invoice_created",
          "payment_pending",
          "payment_pending_timeout",
          "payment_succeeded",
          "payment_failed",
          "payment_canceled",
          "invoice_paid",
          "manual_review",
          "voided"
        ]
      },
      "IssuerData": {
        "type": "object",
        "description": "Represents data about the issuer used in the 3DS decision rule.",
        "required": [
          "country"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the issuer.",
            "nullable": true
          },
          "country": {
            "$ref": "#/components/schemas/Country"
          }
        }
      },
      "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"
            }
          }
        ]
      },
      "ListBatchBlocklistJobsResponse": {
        "type": "object",
        "description": "Response for `GET /blocklist/batch`.",
        "required": [
          "count",
          "total_count",
          "data"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "minimum": 0
          },
          "total_count": {
            "type": "integer",
            "minimum": 0
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BatchBlocklistJobStatusResponse"
            }
          }
        }
      },
      "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
          }
        }
      },
      "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"
          }
        }
      },
      "MasterCardEligibilityCheckData": {
        "type": "object",
        "required": [
          "consumerPresent"
        ],
        "properties": {
          "consumerPresent": {
            "type": "boolean"
          },
          "idLookupSessionId": {
            "type": "string",
            "nullable": true
          },
          "lastUsedCardTimestamp": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "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_id"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64,
            "minLength": 1
          },
          "merchant_name": {
            "type": "string",
            "description": "Name of the Merchant Account",
            "example": "NewAge Retailer",
            "nullable": true
          },
          "merchant_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantDetails"
              }
            ],
            "nullable": true
          },
          "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
          },
          "webhook_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookDetails"
              }
            ],
            "nullable": true
          },
          "payout_routing_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StaticRoutingAlgorithm"
              }
            ],
            "nullable": true
          },
          "sub_merchants_enabled": {
            "type": "boolean",
            "description": "A boolean value to indicate if the merchant is a sub-merchant under a master or a parent merchant. By default, its value is false.",
            "default": false,
            "example": false,
            "nullable": true
          },
          "parent_merchant_id": {
            "type": "string",
            "description": "Refers to the Parent Merchant ID if the merchant being created is a sub-merchant",
            "example": "xkkdf909012sdjki2dkh5sdf",
            "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": false,
            "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
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object",
            "nullable": true
          },
          "publishable_key": {
            "type": "string",
            "description": "API key that will be used for client side API access. A publishable key has to be always paired with a `client_secret`.\nA `client_secret` can be obtained by creating a payment with `confirm` set to false",
            "example": "AH3423bkjbkjdsfbkj",
            "nullable": true
          },
          "locker_id": {
            "type": "string",
            "description": "An identifier for the vault used to store payment method information.",
            "example": "locker_abc123",
            "nullable": true
          },
          "primary_business_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PrimaryBusinessDetails"
              }
            ],
            "nullable": true
          },
          "frm_routing_algorithm": {
            "type": "object",
            "description": "The frm routing algorithm to be used for routing payments to desired FRM's",
            "nullable": true
          },
          "organization_id": {
            "type": "string",
            "description": "The id of the organization to which the merchant belongs to, if not passed an organization is created",
            "example": "org_q98uSGAYbjEwqs0mJwnz",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "pm_collect_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessCollectLinkConfig"
              }
            ],
            "nullable": true
          },
          "product_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantProductType"
              }
            ],
            "nullable": true
          },
          "merchant_account_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantAccountType"
              }
            ],
            "nullable": true
          },
          "network_tokenization_credentials": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokeizationProviderCredentials"
              }
            ],
            "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
          }
        }
      },
      "MerchantAccountRequestType": {
        "type": "string",
        "enum": [
          "standard",
          "connected"
        ]
      },
      "MerchantAccountResponse": {
        "type": "object",
        "required": [
          "merchant_id",
          "enable_payment_response_hash",
          "redirect_to_merchant_with_http_post",
          "primary_business_details",
          "organization_id",
          "is_recon_enabled",
          "recon_status",
          "merchant_account_type"
        ],
        "properties": {
          "merchant_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",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to redirect after completion of the payment",
            "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": false,
            "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.",
            "example": "xkkdf909012sdjki2dkh5sdf",
            "nullable": true,
            "maxLength": 255
          },
          "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
          },
          "merchant_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantDetails"
              }
            ],
            "nullable": true
          },
          "webhook_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookDetails"
              }
            ],
            "nullable": true
          },
          "payout_routing_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StaticRoutingAlgorithm"
              }
            ],
            "nullable": true
          },
          "sub_merchants_enabled": {
            "type": "boolean",
            "description": "A boolean value to indicate if the merchant is a sub-merchant under a master or a parent merchant. By default, its value is false.",
            "default": false,
            "example": false,
            "nullable": true
          },
          "parent_merchant_id": {
            "type": "string",
            "description": "Refers to the Parent Merchant ID if the merchant being created is a sub-merchant",
            "example": "xkkdf909012sdjki2dkh5sdf",
            "nullable": true,
            "maxLength": 255
          },
          "publishable_key": {
            "type": "string",
            "description": "API key that will be used for server side API access",
            "example": "AH3423bkjbkjdsfbkj",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "locker_id": {
            "type": "string",
            "description": "An identifier for the vault used to store payment method information.",
            "example": "locker_abc123",
            "nullable": true
          },
          "primary_business_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrimaryBusinessDetails"
            },
            "description": "Details about the primary business unit of the merchant account"
          },
          "frm_routing_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StaticRoutingAlgorithm"
              }
            ],
            "nullable": true
          },
          "organization_id": {
            "type": "string",
            "description": "The organization id merchant is associated with",
            "example": "org_q98uSGAYbjEwqs0mJwnz",
            "maxLength": 64,
            "minLength": 1
          },
          "is_recon_enabled": {
            "type": "boolean",
            "description": "A boolean value to indicate if the merchant has recon service is enabled or not, by default value is false"
          },
          "default_profile": {
            "type": "string",
            "description": "The default profile that must be used for creating merchant accounts and payments",
            "nullable": true,
            "maxLength": 64
          },
          "recon_status": {
            "$ref": "#/components/schemas/ReconStatus"
          },
          "pm_collect_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessCollectLinkConfig"
              }
            ],
            "nullable": true
          },
          "product_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantProductType"
              }
            ],
            "nullable": true
          },
          "merchant_account_type": {
            "$ref": "#/components/schemas/MerchantAccountType"
          },
          "network_tokenization_credentials": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokeizationProviderCredentials"
              }
            ],
            "nullable": true
          }
        }
      },
      "MerchantAccountType": {
        "type": "string",
        "enum": [
          "standard",
          "platform",
          "connected"
        ]
      },
      "MerchantAccountUpdate": {
        "type": "object",
        "required": [
          "merchant_id"
        ],
        "properties": {
          "merchant_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",
            "nullable": true
          },
          "merchant_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantDetails"
              }
            ],
            "nullable": true
          },
          "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
          },
          "webhook_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookDetails"
              }
            ],
            "nullable": true
          },
          "payout_routing_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StaticRoutingAlgorithm"
              }
            ],
            "nullable": true
          },
          "sub_merchants_enabled": {
            "type": "boolean",
            "description": "A boolean value to indicate if the merchant is a sub-merchant under a master or a parent merchant. By default, its value is false.",
            "default": false,
            "example": false,
            "nullable": true
          },
          "parent_merchant_id": {
            "type": "string",
            "description": "Refers to the Parent Merchant ID if the merchant being created is a sub-merchant",
            "example": "xkkdf909012sdjki2dkh5sdf",
            "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": false,
            "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.",
            "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
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "publishable_key": {
            "type": "string",
            "description": "API key that will be used for server side API access",
            "example": "AH3423bkjbkjdsfbkj",
            "nullable": true
          },
          "locker_id": {
            "type": "string",
            "description": "An identifier for the vault used to store payment method information.",
            "example": "locker_abc123",
            "nullable": true
          },
          "primary_business_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrimaryBusinessDetails"
            },
            "description": "Details about the primary business unit of the merchant account",
            "nullable": true
          },
          "frm_routing_algorithm": {
            "type": "object",
            "description": "The frm routing algorithm to be used for routing payments to desired FRM's",
            "nullable": true
          },
          "default_profile": {
            "type": "string",
            "description": "The default profile that must be used for creating merchant accounts and payments",
            "nullable": true,
            "maxLength": 64
          },
          "pm_collect_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessCollectLinkConfig"
              }
            ],
            "nullable": true
          },
          "network_tokenization_credentials": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokeizationProviderCredentials"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MerchantApplicationDetails": {
        "type": "object",
        "description": "Information identifying merchant details",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the the merchant application",
            "nullable": true
          },
          "version": {
            "type": "string",
            "description": "Version of the merchant application",
            "nullable": true
          }
        }
      },
      "MerchantCategoryCode": {
        "type": "string",
        "title": "4 digit Merchant category code (MCC)",
        "example": "5411"
      },
      "MerchantConnectorAccountId": {
        "type": "string",
        "description": "A type for merchant_connector_id that can be used for merchant_connector_account ids"
      },
      "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"
        ],
        "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. 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",
            "nullable": true,
            "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",
            "example": [
              {
                "accepted_countries": {
                  "list": [
                    "FR",
                    "DE",
                    "IN"
                  ],
                  "type": "disable_only"
                },
                "accepted_currencies": {
                  "list": [
                    "USD",
                    "EUR"
                  ],
                  "type": "enable_only"
                },
                "installment_payment_enabled": true,
                "maximum_amount": 68607706,
                "minimum_amount": 1,
                "payment_method": "wallet",
                "payment_method_issuers": [
                  "labore magna ipsum",
                  "aute"
                ],
                "payment_method_types": [
                  "upi_collect",
                  "upi_intent"
                ],
                "payment_schemes": [
                  "Discover",
                  "Discover"
                ],
                "recurring_enabled": true
              }
            ],
            "nullable": true
          },
          "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
          },
          "test_mode": {
            "type": "boolean",
            "description": "A boolean value to indicate if the connector is in Test mode. By default, its value is false.",
            "default": false,
            "example": false,
            "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
          },
          "business_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "business_label": {
            "type": "string",
            "description": "The business label to which the connector account is attached. To be deprecated soon. Use the 'profile_id' instead",
            "deprecated": true,
            "nullable": true
          },
          "business_sub_label": {
            "type": "string",
            "description": "The business sublabel to which the connector account is attached. To be deprecated soon. Use the 'profile_id' instead",
            "deprecated": true,
            "example": "chase",
            "nullable": true
          },
          "merchant_connector_id": {
            "type": "string",
            "description": "Unique ID of the connector",
            "example": "mca_5apGeP94tMts6rg3U3kR",
            "nullable": true
          },
          "pm_auth_config": {
            "type": "object",
            "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
          }
        },
        "additionalProperties": false
      },
      "MerchantConnectorDeleteResponse": {
        "type": "object",
        "required": [
          "merchant_id",
          "merchant_connector_id",
          "deleted"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 255
          },
          "merchant_connector_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": [
          "merchant_id",
          "merchant_connector_id"
        ],
        "properties": {
          "merchant_id": {
            "type": "string"
          },
          "merchant_connector_id": {
            "type": "string"
          }
        }
      },
      "MerchantConnectorInfo": {
        "type": "object",
        "required": [
          "connector_label",
          "merchant_connector_id",
          "connector_type"
        ],
        "properties": {
          "connector_label": {
            "type": "string"
          },
          "merchant_connector_id": {
            "type": "string"
          },
          "connector_type": {
            "$ref": "#/components/schemas/ConnectorType"
          }
        }
      },
      "MerchantConnectorListResponse": {
        "type": "object",
        "required": [
          "connector_type",
          "connector_name",
          "merchant_connector_id",
          "profile_id",
          "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
          },
          "merchant_connector_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",
            "example": [
              {
                "accepted_countries": {
                  "list": [
                    "FR",
                    "DE",
                    "IN"
                  ],
                  "type": "disable_only"
                },
                "accepted_currencies": {
                  "list": [
                    "USD",
                    "EUR"
                  ],
                  "type": "enable_only"
                },
                "installment_payment_enabled": true,
                "maximum_amount": 68607706,
                "minimum_amount": 1,
                "payment_method": "wallet",
                "payment_method_issuers": [
                  "labore magna ipsum",
                  "aute"
                ],
                "payment_method_types": [
                  "upi_collect",
                  "upi_intent"
                ],
                "payment_schemes": [
                  "Discover",
                  "Discover"
                ],
                "recurring_enabled": true
              }
            ],
            "nullable": true
          },
          "test_mode": {
            "type": "boolean",
            "description": "A boolean value to indicate if the connector is in Test mode. By default, its value is false.",
            "default": false,
            "example": false,
            "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
          },
          "business_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "business_label": {
            "type": "string",
            "description": "The business label to which the connector account is attached. To be deprecated soon. Use the 'profile_id' instead",
            "deprecated": true,
            "example": "travel",
            "nullable": true
          },
          "business_sub_label": {
            "type": "string",
            "description": "The business sublabel to which the connector account is attached. To be deprecated soon. Use the 'profile_id' instead",
            "deprecated": true,
            "example": "chase",
            "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",
          "merchant_connector_id",
          "profile_id",
          "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
          },
          "merchant_connector_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",
            "example": [
              {
                "accepted_countries": {
                  "list": [
                    "FR",
                    "DE",
                    "IN"
                  ],
                  "type": "disable_only"
                },
                "accepted_currencies": {
                  "list": [
                    "USD",
                    "EUR"
                  ],
                  "type": "enable_only"
                },
                "installment_payment_enabled": true,
                "maximum_amount": 68607706,
                "minimum_amount": 1,
                "payment_method": "wallet",
                "payment_method_issuers": [
                  "labore magna ipsum",
                  "aute"
                ],
                "payment_method_types": [
                  "upi_collect",
                  "upi_intent"
                ],
                "payment_schemes": [
                  "Discover",
                  "Discover"
                ],
                "recurring_enabled": true
              }
            ],
            "nullable": true
          },
          "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
          },
          "test_mode": {
            "type": "boolean",
            "description": "A boolean value to indicate if the connector is in Test mode. By default, its value is false.",
            "default": false,
            "example": false,
            "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
          },
          "business_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "business_label": {
            "type": "string",
            "description": "The business label to which the connector account is attached. To be deprecated soon. Use the 'profile_id' instead",
            "deprecated": true,
            "example": "travel",
            "nullable": true
          },
          "business_sub_label": {
            "type": "string",
            "description": "The business sublabel to which the connector account is attached. To be deprecated soon. Use the 'profile_id' instead",
            "deprecated": true,
            "example": "chase",
            "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"
          },
          "additional_merchant_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AdditionalMerchantData"
              }
            ],
            "nullable": true
          },
          "connector_wallets_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorWalletDetails"
              }
            ],
            "nullable": true
          },
          "webhook_setup_capabilities": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookSetupCapabilities"
              }
            ],
            "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"
        ],
        "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. 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",
            "example": [
              {
                "accepted_countries": {
                  "list": [
                    "FR",
                    "DE",
                    "IN"
                  ],
                  "type": "disable_only"
                },
                "accepted_currencies": {
                  "list": [
                    "USD",
                    "EUR"
                  ],
                  "type": "enable_only"
                },
                "installment_payment_enabled": true,
                "maximum_amount": 68607706,
                "minimum_amount": 1,
                "payment_method": "wallet",
                "payment_method_issuers": [
                  "labore magna ipsum",
                  "aute"
                ],
                "payment_method_types": [
                  "upi_collect",
                  "upi_intent"
                ],
                "payment_schemes": [
                  "Discover",
                  "Discover"
                ],
                "recurring_enabled": true
              }
            ],
            "nullable": true
          },
          "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
          },
          "test_mode": {
            "type": "boolean",
            "description": "A boolean value to indicate if the connector is in Test mode. By default, its value is false.",
            "default": false,
            "example": false,
            "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"
          },
          "additional_merchant_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AdditionalMerchantData"
              }
            ],
            "nullable": true
          },
          "connector_wallets_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorWalletDetails"
              }
            ],
            "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
      },
      "MerchantId": {
        "type": "string",
        "description": "A type for merchant_id that can be used for merchant ids"
      },
      "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"
      },
      "MitCategory": {
        "type": "string",
        "description": "Specifies the category of a Merchant Initiated Transaction (MIT). In the case of MIT, `mit_category` tells what kind of MIT is being processed. In the case of CIT, it tells the future intended MIT type.",
        "enum": [
          "installment",
          "unscheduled",
          "recurring",
          "resubmission"
        ]
      },
      "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"
          }
        }
      },
      "NetworkDetails": {
        "type": "object",
        "properties": {
          "network_advice_code": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "NetworkParams": {
        "type": "object",
        "description": "Represents additional network-level parameters for 3DS processing.",
        "properties": {
          "cartes_bancaires": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CartesBancairesParams"
              }
            ],
            "nullable": true
          }
        }
      },
      "NetworkTokeizationProviderCredentials": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "internal_network_token_service"
            ],
            "properties": {
              "internal_network_token_service": {
                "$ref": "#/components/schemas/InternalNetworkTokenizationCredentials"
              }
            }
          }
        ],
        "description": "The credentials required for calling the network tokenization provider APIs"
      },
      "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
          }
        }
      },
      "NetworkTokenResponse": {
        "type": "object",
        "properties": {
          "last4": {
            "type": "string",
            "description": "The last four digit of the network token",
            "nullable": true
          },
          "card_type": {
            "type": "string",
            "description": "The type of the card such as Credit, Debit",
            "nullable": true
          },
          "card_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardNetwork"
              }
            ],
            "nullable": true
          },
          "token_isin": {
            "type": "string",
            "description": "The ISIN of the token",
            "nullable": true
          },
          "card_issuer": {
            "type": "string",
            "description": "The name of the issuer of card",
            "nullable": true
          },
          "card_issuing_country": {
            "type": "string",
            "description": "The country in which the card was issued",
            "nullable": true
          },
          "token_exp_month": {
            "type": "string",
            "description": "The expiry month of the network token",
            "nullable": true
          },
          "token_exp_year": {
            "type": "string",
            "description": "The expiry year of the network token",
            "nullable": true
          },
          "card_holder_name": {
            "type": "string",
            "description": "The card holder's name",
            "nullable": true
          },
          "par": {
            "type": "string",
            "description": "The Payment Account Reference (PAR) for this card",
            "nullable": true
          }
        }
      },
      "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
          }
        }
      },
      "NextAction": {
        "type": "object",
        "required": [
          "url",
          "http_method"
        ],
        "properties": {
          "url": {
            "type": "string",
            "description": "The URL for authenticatating the user."
          },
          "http_method": {
            "$ref": "#/components/schemas/Method"
          }
        }
      },
      "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"
              },
              "type": {
                "type": "string",
                "enum": [
                  "redirect_to_url"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "popup_url",
              "redirect_response_url",
              "type"
            ],
            "properties": {
              "popup_url": {
                "type": "string"
              },
              "redirect_response_url": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "redirect_inside_popup"
                ]
              }
            }
          },
          {
            "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"
          }
        }
      },
      "OpenRouterDecideGatewayRequest": {
        "type": "object",
        "description": "Request to decide the optimal gateway for routing a payment",
        "required": [
          "paymentInfo",
          "merchantId"
        ],
        "properties": {
          "paymentInfo": {
            "$ref": "#/components/schemas/PaymentInfo"
          },
          "merchantId": {
            "type": "string",
            "description": "Profile ID of the merchant",
            "example": "pro_aMoPnEkgCVnh2WVsFe32"
          },
          "eligibleGatewayList": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of eligible gateways for routing consideration",
            "example": "[\"stripe:mca_123\", \"adyen:mca_456\"]",
            "nullable": true
          },
          "rankingAlgorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RankingAlgorithm"
              }
            ],
            "nullable": true
          },
          "eliminationEnabled": {
            "type": "boolean",
            "description": "Whether elimination logic is enabled for filtering gateways",
            "example": true,
            "nullable": true
          }
        }
      },
      "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
          }
        }
      },
      "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": [
          "organization_id",
          "modified_at",
          "created_at"
        ],
        "properties": {
          "organization_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"
              }
            }
          },
          {
            "type": "object",
            "title": "ConfirmSubscriptionResponse",
            "required": [
              "type",
              "object"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "subscription_details"
                ]
              },
              "object": {
                "$ref": "#/components/schemas/ConfirmSubscriptionResponse"
              }
            }
          }
        ],
        "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
          }
        }
      },
      "PartnerApplicationDetails": {
        "type": "object",
        "description": "Information identifying partner / external platform details",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the partner/external platform",
            "nullable": true
          },
          "version": {
            "type": "string",
            "description": "Version of the partner/external platform",
            "example": "1.0.0",
            "nullable": true
          },
          "integrator": {
            "type": "string",
            "description": "Integrator",
            "nullable": true
          }
        }
      },
      "PartnerMerchantIdentifierDetails": {
        "type": "object",
        "description": "Information identifying partner and merchant application initiating the request",
        "properties": {
          "partner_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PartnerApplicationDetails"
              }
            ],
            "nullable": true
          },
          "merchant_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantApplicationDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "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"
          }
        }
      },
      "PauseOption": {
        "type": "string",
        "enum": [
          "immediately",
          "end_of_term",
          "specific_date"
        ]
      },
      "PauseSubscriptionRequest": {
        "type": "object",
        "description": "Request payload for pausing a subscription.",
        "properties": {
          "pause_option": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PauseOption"
              }
            ],
            "nullable": true
          },
          "pause_at": {
            "type": "string",
            "description": "Optional date when the subscription should be paused (if not provided, pauses immediately)",
            "nullable": true
          }
        }
      },
      "PauseSubscriptionResponse": {
        "type": "object",
        "description": "Response payload returned after successfully pausing a subscription.",
        "required": [
          "id",
          "status",
          "profile_id",
          "merchant_id",
          "customer_id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/SubscriptionId"
          },
          "status": {
            "$ref": "#/components/schemas/SubscriptionStatus"
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "Merchant specific Unique identifier.",
            "nullable": true
          },
          "profile_id": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "merchant_id": {
            "$ref": "#/components/schemas/MerchantId"
          },
          "customer_id": {
            "$ref": "#/components/schemas/CustomerId"
          },
          "paused_at": {
            "type": "string",
            "description": "Date when the subscription was paused",
            "nullable": true
          }
        }
      },
      "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"
          }
        }
      },
      "PaymentAttemptResponse": {
        "type": "object",
        "required": [
          "attempt_id",
          "status",
          "amount",
          "created_at",
          "modified_at"
        ],
        "properties": {
          "attempt_id": {
            "type": "string",
            "description": "A unique identifier for this specific payment attempt."
          },
          "status": {
            "$ref": "#/components/schemas/AttemptStatus"
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payment attempt 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
          },
          "order_tax_amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payment attempt tax_amount.",
            "example": 6540,
            "nullable": true
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ],
            "nullable": true
          },
          "connector": {
            "type": "string",
            "description": "The name of the payment connector (e.g., 'stripe', 'adyen') used for this attempt.",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "description": "A human-readable message from the connector explaining the error, if one occurred during this payment attempt.",
            "nullable": true
          },
          "payment_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethod"
              }
            ],
            "nullable": true
          },
          "connector_transaction_id": {
            "type": "string",
            "description": "A unique identifier for a payment provided by the connector",
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "three_ds",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time at which the payment attempt was created",
            "example": "2022-09-10T10:11:12Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time at which the payment attempt was last modified",
            "example": "2022-09-10T10:11:12Z"
          },
          "cancellation_reason": {
            "type": "string",
            "description": "If the payment was cancelled the reason will be provided here",
            "nullable": true
          },
          "mandate_id": {
            "type": "string",
            "description": "If this payment attempt is associated with a mandate (e.g., for a recurring or subsequent payment), this field will contain the ID of that mandate.",
            "deprecated": true,
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "description": "The error code returned by the connector if this payment attempt failed. This code is specific to the connector.",
            "nullable": true
          },
          "payment_token": {
            "type": "string",
            "description": "If a tokenized (saved) payment method was used for this attempt, this field contains the payment token representing that payment method.",
            "nullable": true
          },
          "connector_metadata": {
            "description": "Additional data related to some connectors",
            "nullable": true
          },
          "payment_experience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentExperience"
              }
            ],
            "nullable": true
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "reference_id": {
            "type": "string",
            "description": "The connector's own reference or transaction ID for this specific payment attempt. Useful for reconciliation with the connector.",
            "example": "993672945374576J",
            "nullable": true
          },
          "unified_code": {
            "type": "string",
            "description": "(This field is not live yet)Error code unified across the connectors is received here if there was an error while calling connector",
            "nullable": true
          },
          "unified_message": {
            "type": "string",
            "description": "(This field is not live yet)Error message unified across the connectors is received here if there was an error while calling connector",
            "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
          },
          "error_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentErrorDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentChannel": {
        "oneOf": [
          {
            "type": "string",
            "enum": [
              "ecommerce"
            ]
          },
          {
            "type": "string",
            "enum": [
              "mail_order"
            ]
          },
          {
            "type": "string",
            "enum": [
              "telephone_order"
            ]
          },
          {
            "type": "object",
            "required": [
              "other"
            ],
            "properties": {
              "other": {
                "type": "string"
              }
            }
          }
        ],
        "description": "Describes the channel through which the payment was initiated."
      },
      "PaymentChargeType": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "Stripe"
            ],
            "properties": {
              "Stripe": {
                "$ref": "#/components/schemas/StripeChargeType"
              }
            }
          }
        ]
      },
      "PaymentCreatePaymentLinkConfig": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkConfigRequest"
              }
            ],
            "nullable": true
          },
          {
            "type": "object"
          }
        ],
        "description": "Configure a custom payment link for the particular payment"
      },
      "PaymentData": {
        "type": "object",
        "description": "Represents the payment data used in the 3DS decision rule.",
        "required": [
          "amount",
          "currency"
        ],
        "properties": {
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The amount of the payment in minor units (e.g., cents for USD)."
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "business_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Country"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentDetails": {
        "type": "object",
        "properties": {
          "payment_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethod"
              }
            ],
            "nullable": true
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDataRequest"
              }
            ],
            "nullable": true
          },
          "setup_future_usage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FutureUsage"
              }
            ],
            "nullable": true
          },
          "customer_acceptance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerAcceptance"
              }
            ],
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The url to which user must be redirected to after completion of the purchase",
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "nullable": true
          },
          "payment_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentType"
              }
            ],
            "nullable": true
          },
          "payment_method_id": {
            "type": "string",
            "example": "pm_01926c58bc6e77c09e809964e72af8c8",
            "nullable": true
          }
        }
      },
      "PaymentErrorDetails": {
        "type": "object",
        "description": "Complete error details for V1 PaymentsResponse containing unified, issuer, and connector-level error information.",
        "properties": {
          "unified_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApiUnifiedErrorDetails"
              }
            ],
            "nullable": true
          },
          "issuer_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApiIssuerErrorDetails"
              }
            ],
            "nullable": true
          },
          "connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ApiConnectorErrorDetails"
              }
            ],
            "nullable": true
          }
        }
      },
      "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"
            ]
          }
        }
      },
      "PaymentId": {
        "type": "string",
        "description": "A type for payment_id that can be used for payment ids"
      },
      "PaymentInfo": {
        "type": "object",
        "description": "Payment information used for routing decision-making",
        "required": [
          "paymentId",
          "amount",
          "currency",
          "paymentType",
          "metadata",
          "paymentMethodType",
          "paymentMethod",
          "cardIsin"
        ],
        "properties": {
          "paymentId": {
            "type": "string",
            "description": "Unique identifier for the payment transaction",
            "example": "pay_12345"
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "Payment amount in minor units",
            "example": "100"
          },
          "currency": {
            "type": "string",
            "description": "Currency code for the payment",
            "example": "USD"
          },
          "paymentType": {
            "type": "string",
            "description": "Type of payment transaction being processed",
            "example": "ORDER_PAYMENT"
          },
          "metadata": {
            "type": "string",
            "description": "Optional metadata associated with the payment",
            "example": "metadata"
          },
          "paymentMethodType": {
            "type": "string",
            "description": "Specific payment method type being used",
            "example": "upi"
          },
          "paymentMethod": {
            "type": "string",
            "description": "General payment method category",
            "example": "upi"
          },
          "cardIsin": {
            "type": "string",
            "description": "Card Issuer Identification Number (first 6 digits of card)",
            "example": "424242"
          }
        }
      },
      "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
          }
        }
      },
      "PaymentListConstraints": {
        "type": "object",
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "The identifier for customer",
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "starting_after": {
            "type": "string",
            "description": "A cursor for use in pagination, fetch the next list after some object",
            "example": "pay_fafa124123",
            "nullable": true
          },
          "ending_before": {
            "type": "string",
            "description": "A cursor for use in pagination, fetch the previous list before some object",
            "example": "pay_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 payment is created",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "created.lt": {
            "type": "string",
            "format": "date-time",
            "description": "Time less than the payment created time",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "created.gt": {
            "type": "string",
            "format": "date-time",
            "description": "Time greater than the payment created time",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "created.lte": {
            "type": "string",
            "format": "date-time",
            "description": "Time less than or equals to the payment created time",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "created.gte": {
            "type": "string",
            "format": "date-time",
            "description": "Time greater than or equals to the payment created time",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentListResponse": {
        "type": "object",
        "required": [
          "size",
          "data"
        ],
        "properties": {
          "size": {
            "type": "integer",
            "description": "The number of payments included in the list",
            "minimum": 0
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentsResponse"
            }
          }
        }
      },
      "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"
        ]
      },
      "PaymentMethodBlockingConfig": {
        "type": "object",
        "description": "Configuration for payment method blocking based on card attributes",
        "properties": {
          "card": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardBlockingConfig"
              }
            ],
            "nullable": true
          },
          "wallet": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WalletBlockingConfig"
              }
            ],
            "nullable": true
          }
        }
      },
      "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"
        ],
        "properties": {
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "payment_method_issuer": {
            "type": "string",
            "description": "The name of the bank/ provider issuing the payment method to the end user",
            "example": "Citibank",
            "nullable": true
          },
          "payment_method_issuer_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodIssuerCode"
              }
            ],
            "nullable": true
          },
          "card": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardDetail"
              }
            ],
            "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": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "card_network": {
            "type": "string",
            "description": "The card network",
            "example": "Visa",
            "nullable": true
          },
          "bank_transfer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Bank"
              }
            ],
            "nullable": true
          },
          "bank_transfer_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BankTransfer"
              }
            ],
            "nullable": true
          },
          "wallet": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Wallet"
              }
            ],
            "nullable": true
          },
          "client_secret": {
            "type": "string",
            "description": "For Client based calls, SDK will use the client_secret\nin order to call /payment_methods\nClient secret will be generated whenever a new\npayment method is created",
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodCreateData"
              }
            ],
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentMethodCreateData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "card"
            ],
            "properties": {
              "card": {
                "$ref": "#/components/schemas/CardDetail"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "bank_debit"
            ],
            "properties": {
              "bank_debit": {
                "$ref": "#/components/schemas/BankDebitDetail"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "wallet"
            ],
            "properties": {
              "wallet": {
                "$ref": "#/components/schemas/WalletDetail"
              }
            }
          }
        ]
      },
      "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": [
          "payment_method_id",
          "deleted"
        ],
        "properties": {
          "payment_method_id": {
            "type": "string",
            "description": "The unique identifier of the Payment method",
            "example": "card_rGK4Vi5iSW70MY7J2mIg"
          },
          "deleted": {
            "type": "boolean",
            "description": "Whether payment method was deleted or not",
            "example": true
          }
        }
      },
      "PaymentMethodIssuerCode": {
        "type": "string",
        "enum": [
          "jp_hdfc",
          "jp_icici",
          "jp_googlepay",
          "jp_applepay",
          "jp_phonepay",
          "jp_wechat",
          "jp_sofort",
          "jp_giropay",
          "jp_sepa",
          "jp_bacs"
        ]
      },
      "PaymentMethodListInstallmentAmountDetails": {
        "type": "object",
        "description": "Amount breakdown for a single installment plan",
        "required": [
          "amount_per_installment",
          "total_amount"
        ],
        "properties": {
          "amount_per_installment": {
            "type": "number",
            "format": "double",
            "description": "Amount charged per installment in major units"
          },
          "total_amount": {
            "type": "number",
            "format": "double",
            "description": "Total amount across all installments in major units (may differ slightly from order amount due to ceiling)"
          }
        }
      },
      "PaymentMethodListInstallmentOption": {
        "type": "object",
        "description": "Installment options for a payment method, as returned in the payment method list response",
        "required": [
          "payment_method",
          "available_plans"
        ],
        "properties": {
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "available_plans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodListInstallmentPlan"
            },
            "description": "Individual installment plans with computed amounts"
          }
        }
      },
      "PaymentMethodListInstallmentPlan": {
        "type": "object",
        "description": "A single installment plan with pre-computed amount breakdown",
        "required": [
          "number_of_installments",
          "billing_frequency",
          "interest_rate",
          "amount_details"
        ],
        "properties": {
          "number_of_installments": {
            "type": "integer",
            "format": "int32",
            "description": "Number of installments for this plan",
            "minimum": 0
          },
          "billing_frequency": {
            "$ref": "#/components/schemas/BillingFrequency"
          },
          "interest_rate": {
            "type": "number",
            "format": "double",
            "description": "Interest rate as a percentage"
          },
          "amount_details": {
            "$ref": "#/components/schemas/PaymentMethodListInstallmentAmountDetails"
          }
        }
      },
      "PaymentMethodListIntentData": {
        "type": "object",
        "description": "Intent-only payment details returned as part of the Payment Method List response",
        "required": [
          "payment_id",
          "status",
          "amount",
          "attempt_count"
        ],
        "properties": {
          "payment_id": {
            "type": "string",
            "description": "Unique identifier for the payment"
          },
          "status": {
            "$ref": "#/components/schemas/IntentStatus"
          },
          "amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ],
            "nullable": true
          },
          "client_secret": {
            "type": "string",
            "description": "Client secret for client-side payment confirmation",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A description for the payment",
            "nullable": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer identifier",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to redirect to after payment completion",
            "nullable": true
          },
          "setup_future_usage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FutureUsage"
              }
            ],
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The email associated with the payment",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "description": "Additional metadata",
            "nullable": true
          },
          "order_details": {
            "type": "array",
            "items": {
              "type": "object"
            },
            "description": "Order details for the payment",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the payment was created",
            "nullable": true
          },
          "expires_on": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the client secret expires",
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "The profile identifier",
            "nullable": true
          },
          "merchant_order_reference_id": {
            "type": "string",
            "description": "Merchant-provided reference identifier",
            "nullable": true
          },
          "attempt_count": {
            "type": "integer",
            "format": "int32",
            "description": "Number of payment attempts made"
          },
          "installment_options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodListInstallmentOption"
            },
            "description": "Installment options available for this payment",
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "merchant_name": {
            "type": "string",
            "description": "The merchant's display name",
            "nullable": true
          },
          "mandate_payment": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MandateData"
              }
            ],
            "nullable": true
          },
          "payment_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentType"
              }
            ],
            "nullable": true
          },
          "request_external_three_ds_authentication": {
            "type": "boolean",
            "description": "Whether external 3DS authentication was requested",
            "nullable": true
          },
          "is_tax_calculation_enabled": {
            "type": "boolean",
            "description": "Whether tax calculation is enabled for this payment",
            "nullable": true
          },
          "is_guest_customer": {
            "type": "boolean",
            "description": "Whether the customer is a guest (not saved)",
            "nullable": true
          }
        }
      },
      "PaymentMethodListResponse": {
        "type": "object",
        "required": [
          "currency",
          "payment_methods",
          "mandate_payment",
          "show_surcharge_breakup_screen",
          "request_external_three_ds_authentication",
          "is_tax_calculation_enabled",
          "sdk_next_action",
          "is_guest_customer"
        ],
        "properties": {
          "redirect_url": {
            "type": "string",
            "description": "Redirect URL of the merchant",
            "example": "https://www.google.com",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "payment_methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResponsePaymentMethodsEnabled"
            },
            "description": "Information about the payment method"
          },
          "mandate_payment": {
            "$ref": "#/components/schemas/MandateType"
          },
          "merchant_name": {
            "type": "string",
            "nullable": true
          },
          "show_surcharge_breakup_screen": {
            "type": "boolean",
            "description": "flag to indicate if surcharge and tax breakup screen should be shown or not"
          },
          "payment_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentType"
              }
            ],
            "nullable": true
          },
          "request_external_three_ds_authentication": {
            "type": "boolean",
            "description": "flag to indicate whether to perform external 3ds authentication",
            "example": true
          },
          "collect_shipping_details_from_wallets": {
            "type": "boolean",
            "description": "flag that indicates whether to collect shipping details from wallets or from the customer",
            "nullable": true
          },
          "collect_billing_details_from_wallets": {
            "type": "boolean",
            "description": "flag that indicates whether to collect billing details from wallets or from the customer",
            "nullable": true
          },
          "is_tax_calculation_enabled": {
            "type": "boolean",
            "description": "flag that indicates whether to calculate tax on the order amount"
          },
          "sdk_next_action": {
            "$ref": "#/components/schemas/SdkNextAction"
          },
          "is_guest_customer": {
            "type": "boolean",
            "description": "indicates whether this is a guest customer flow"
          },
          "intent_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodListIntentData"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentMethodMetaData": {
        "type": "object",
        "description": "Represents metadata about the payment method used in the 3DS decision rule.",
        "required": [
          "card_network",
          "card_discovery"
        ],
        "properties": {
          "card_network": {
            "$ref": "#/components/schemas/CardNetwork"
          },
          "card_discovery": {
            "$ref": "#/components/schemas/CardDiscovery"
          }
        }
      },
      "PaymentMethodResponse": {
        "type": "object",
        "required": [
          "merchant_id",
          "payment_method_id",
          "payment_method"
        ],
        "properties": {
          "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": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "payment_method_id": {
            "type": "string",
            "description": "The unique identifier of the Payment method",
            "example": "card_rGK4Vi5iSW70MY7J2mIg"
          },
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "card": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardDetailFromLocker"
              }
            ],
            "nullable": true
          },
          "recurring_enabled": {
            "type": "boolean",
            "description": "Indicates whether the payment method supports recurring payments. Optional.",
            "example": true,
            "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
          },
          "payment_experience": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentExperience"
            },
            "description": "Type of payment experience enabled with the connector",
            "example": [
              "redirect_to_url"
            ],
            "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
          },
          "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
          },
          "bank_transfer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Bank"
              }
            ],
            "nullable": true
          },
          "last_used_at": {
            "type": "string",
            "format": "date-time",
            "example": "2024-02-24T11:04:09.922Z",
            "nullable": true
          },
          "client_secret": {
            "type": "string",
            "description": "For Client based calls",
            "nullable": true
          }
        }
      },
      "PaymentMethodSpecificFeatures": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/CardSpecificFeatures"
          }
        ]
      },
      "PaymentMethodStatus": {
        "type": "string",
        "description": "Payment Method Status",
        "enum": [
          "active",
          "inactive",
          "processing",
          "awaiting_data",
          "new",
          "redacted"
        ]
      },
      "PaymentMethodTokenizationDetails": {
        "type": "object",
        "required": [
          "payment_method_id",
          "psp_tokenization",
          "network_tokenization",
          "is_eligible_for_mit_payment"
        ],
        "properties": {
          "payment_method_id": {
            "type": "string",
            "description": "The unique identifier for the payment method"
          },
          "payment_method_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodStatus"
              }
            ],
            "nullable": true
          },
          "psp_tokenization": {
            "type": "boolean",
            "description": "This indicates whether there is at least one active PSP token available"
          },
          "network_tokenization": {
            "type": "boolean",
            "description": "This indicates whether a payment method is tokenized with card network"
          },
          "network_transaction_id": {
            "type": "string",
            "description": "This is the transaction id generated by the network",
            "nullable": true
          },
          "network_transaction_link_id": {
            "type": "string",
            "description": "The Mastercard Transaction Link Identifier (TLID) stored on the saved payment method.",
            "nullable": true
          },
          "is_eligible_for_mit_payment": {
            "type": "boolean",
            "description": "This indicates whether a payment method is eligible for performing a mit transaction"
          }
        }
      },
      "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": {
          "card": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardDetailUpdate"
              }
            ],
            "nullable": true
          },
          "wallet": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDataWalletInfo"
              }
            ],
            "nullable": true
          },
          "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
          }
        },
        "additionalProperties": false
      },
      "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"
        ],
        "properties": {
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequestPaymentMethodTypes"
            },
            "description": "Subtype of payment method",
            "example": [
              "credit"
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "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"
        }
      },
      "PaymentResponseData": {
        "type": "object",
        "required": [
          "payment_id",
          "status",
          "amount",
          "currency"
        ],
        "properties": {
          "payment_id": {
            "$ref": "#/components/schemas/PaymentId"
          },
          "status": {
            "$ref": "#/components/schemas/IntentStatus"
          },
          "amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "profile_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProfileId"
              }
            ],
            "nullable": true
          },
          "connector": {
            "type": "string",
            "nullable": true
          },
          "payment_method_id": {
            "type": "string",
            "description": "Identifier for Payment Method",
            "example": "pm_01926c58bc6e77c09e809964e72af8c8",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The url to which user must be redirected to after completion of the purchase",
            "nullable": true
          },
          "next_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NextActionData"
              }
            ],
            "nullable": true
          },
          "payment_experience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentExperience"
              }
            ],
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "nullable": true
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "client_secret": {
            "type": "string",
            "description": "This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK",
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "payment_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentType"
              }
            ],
            "nullable": true
          },
          "payment_token": {
            "type": "string",
            "example": "token_sxJdmpUnpNsJk5VWzcjl",
            "nullable": true
          }
        }
      },
      "PaymentRetrieveBody": {
        "type": "object",
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account.",
            "nullable": true
          },
          "force_sync": {
            "type": "boolean",
            "description": "Decider to enable or disable the connector call for retrieve request",
            "nullable": true
          },
          "client_secret": {
            "type": "string",
            "description": "This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK",
            "nullable": true
          },
          "expand_captures": {
            "type": "boolean",
            "description": "If enabled provides list of captures linked to latest attempt",
            "nullable": true
          },
          "expand_attempts": {
            "type": "boolean",
            "description": "If enabled provides list of attempts linked to payment intent",
            "nullable": true
          },
          "all_keys_required": {
            "type": "boolean",
            "description": "If enabled, provides whole connector response",
            "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"
        ]
      },
      "PaymentsCancelPostCaptureRequest": {
        "type": "object",
        "description": "Request to cancel a payment when the payment is already captured",
        "properties": {
          "cancellation_reason": {
            "type": "string",
            "description": "The reason for the payment cancel",
            "nullable": true
          }
        }
      },
      "PaymentsCancelRequest": {
        "type": "object",
        "properties": {
          "cancellation_reason": {
            "type": "string",
            "description": "The reason for the payment cancel",
            "nullable": true
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorDetailsWrap"
              }
            ],
            "nullable": true
          },
          "all_keys_required": {
            "type": "boolean",
            "description": "If enabled, provides whole connector response",
            "nullable": true
          }
        }
      },
      "PaymentsCaptureRequest": {
        "type": "object",
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The unique identifier for the merchant. This is usually inferred from the API key.",
            "nullable": true
          },
          "amount_to_capture": {
            "type": "integer",
            "format": "int64",
            "description": "The amount to capture, in the lowest denomination of the currency. If omitted, the entire `amount_capturable` of the payment will be captured. Must be less than or equal to the current `amount_capturable`.",
            "example": 6540,
            "nullable": true
          },
          "refund_uncaptured_amount": {
            "type": "boolean",
            "description": "Decider to refund the uncaptured amount. (Currently not fully supported or behavior may vary by connector).",
            "nullable": true
          },
          "statement_descriptor_suffix": {
            "type": "string",
            "description": "A dynamic suffix that appears on your customer's credit card statement. This is concatenated with the (shortened) descriptor prefix set on your account to form the complete statement descriptor. The combined length should not exceed connector-specific limits (typically 22 characters). To be deprecated soon, use billing_descriptor instead.",
            "deprecated": true,
            "nullable": true
          },
          "statement_descriptor_prefix": {
            "type": "string",
            "description": "An optional prefix for the statement descriptor that appears on your customer's credit card statement. This can override the default prefix set on your merchant account. The combined length of prefix and suffix should not exceed connector-specific limits (typically 22 characters).",
            "nullable": true
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorDetailsWrap"
              }
            ],
            "nullable": true
          },
          "all_keys_required": {
            "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
          }
        }
      },
      "PaymentsConfirmRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The primary amount for the payment, provided in the lowest denomination of the specified currency (e.g., 6540 for $65.40 USD). This field is mandatory for creating a payment.",
            "example": 6540,
            "nullable": true,
            "minimum": 0
          },
          "order_tax_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Total tax amount applicable to the order, in the lowest denomination of the currency.",
            "example": 6540,
            "nullable": true
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ],
            "nullable": true
          },
          "amount_to_capture": {
            "type": "integer",
            "format": "int64",
            "description": "The amount to be captured from the user's payment method, in the lowest denomination. If not provided, and `capture_method` is `automatic`, the full payment `amount` will be captured. If `capture_method` is `manual`, this can be specified in the `/capture` call. Must be less than or equal to the authorized amount.",
            "example": 6540,
            "nullable": true
          },
          "shipping_cost": {
            "type": "integer",
            "format": "int64",
            "description": "The shipping cost for the payment. This is required for tax calculation in some regions.",
            "example": 6540,
            "nullable": true
          },
          "payment_id": {
            "type": "string",
            "description": "Optional. A merchant-provided unique identifier for the payment, contains 30 characters long (e.g., \"pay_mbabizu24mvu3mela5njyhpit4\"). If provided, it ensures idempotency for the payment creation request. If omitted, Hyperswitch generates a unique ID for the payment.",
            "example": "pay_mbabizu24mvu3mela5njyhpit4",
            "nullable": true,
            "maxLength": 30,
            "minLength": 30
          },
          "routing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StraightThroughAlgorithm"
              }
            ],
            "nullable": true
          },
          "connector": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Connector"
            },
            "description": "This allows to manually select a connector with which the payment can go through.",
            "example": [
              "stripe",
              "adyen"
            ],
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "three_ds",
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "confirm": {
            "type": "boolean",
            "description": "If set to `true`, Hyperswitch attempts to confirm and authorize the payment immediately after creation, provided sufficient payment method details are included. If `false` or omitted (default is `false`), the payment is created with a status such as `requires_payment_method` or `requires_confirmation`, and a separate `POST /payments/{payment_id}/confirm` call is necessary to proceed with authorization.",
            "default": false,
            "example": true,
            "nullable": true
          },
          "customer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDetails"
              }
            ],
            "nullable": true
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer",
            "deprecated": true,
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "off_session": {
            "type": "boolean",
            "description": "Set to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. When making a recurring payment by passing a mandate_id, this parameter is mandatory",
            "example": true,
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "An arbitrary string attached to the payment. Often useful for displaying to users or for your own internal record-keeping.",
            "example": "It's my first payment request",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to redirect the customer to after they complete the payment process or authentication. This is crucial for flows that involve off-site redirection (e.g., 3DS, some bank redirects, wallet payments).",
            "example": "https://hyperswitch.io",
            "nullable": true,
            "maxLength": 2048
          },
          "setup_future_usage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FutureUsage"
              }
            ],
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDataRequest"
              }
            ],
            "nullable": true
          },
          "payment_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethod"
              }
            ],
            "nullable": true
          },
          "payment_token": {
            "type": "string",
            "description": "As Hyperswitch tokenises the sensitive details about the payments method, it provides the payment_token as a reference to a stored payment method, ensuring that the sensitive details are not exposed in any manner.",
            "example": "187282ab-40ef-47a9-9206-5099ba31e432",
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "statement_descriptor_name": {
            "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. To be deprecated soon, use billing_descriptor instead.",
            "deprecated": true,
            "example": "Hyperswitch Router",
            "nullable": true,
            "maxLength": 255
          },
          "statement_descriptor_suffix": {
            "type": "string",
            "description": "Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor. To be deprecated soon, use billing_descriptor instead.",
            "deprecated": true,
            "example": "Payment for shoes purchase",
            "nullable": true,
            "maxLength": 255
          },
          "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
          },
          "client_secret": {
            "type": "string",
            "description": "It's a token used for client side verification.",
            "example": "pay_U42c409qyHwOkWo3vK60_secret_el9ksDkiB8hi6j9N78yo",
            "nullable": true
          },
          "mandate_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MandateData"
              }
            ],
            "nullable": true
          },
          "customer_acceptance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerAcceptance"
              }
            ],
            "nullable": true
          },
          "mandate_id": {
            "type": "string",
            "description": "A unique identifier to link the payment to a mandate. To do Recurring payments after a mandate has been created, pass the mandate_id instead of payment_method_data",
            "deprecated": true,
            "example": "mandate_iwer89rnjef349dni3",
            "nullable": true,
            "maxLength": 64
          },
          "browser_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "payment_experience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentExperience"
              }
            ],
            "nullable": true
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorDetailsWrap"
              }
            ],
            "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
          },
          "retry_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RetryAction"
              }
            ],
            "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
          },
          "connector_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorMetadata"
              }
            ],
            "nullable": true
          },
          "payment_link": {
            "type": "boolean",
            "description": "Whether to generate the payment link for this payment or not (if applicable)",
            "default": false,
            "example": true,
            "nullable": true
          },
          "payment_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentCreatePaymentLinkConfig"
              }
            ],
            "nullable": true
          },
          "payment_link_config_id": {
            "type": "string",
            "description": "Custom payment link config id set at business profile, send only if business_specific_configs is configured",
            "nullable": true
          },
          "payment_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentType"
              }
            ],
            "nullable": true
          },
          "request_incremental_authorization": {
            "type": "boolean",
            "description": "Request an incremental authorization, i.e., increase the authorized amount on a confirmed payment before you capture it.",
            "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
          },
          "frm_metadata": {
            "type": "object",
            "description": "Additional data related to some frm(Fraud Risk Management) connectors",
            "nullable": true
          },
          "request_external_three_ds_authentication": {
            "type": "boolean",
            "description": "Whether to perform external authentication (if applicable)",
            "example": true,
            "nullable": true
          },
          "three_ds_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalThreeDsData"
              }
            ],
            "nullable": true
          },
          "recurring_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecurringDetails"
              }
            ],
            "nullable": true
          },
          "split_payments": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SplitPaymentsRequest"
              }
            ],
            "nullable": true
          },
          "request_extended_authorization": {
            "type": "boolean",
            "description": "Optional boolean value to extent authorization period of this payment\n\ncapture method must be manual or manual_multiple",
            "default": false,
            "nullable": true
          },
          "merchant_order_reference_id": {
            "type": "string",
            "description": "Your unique identifier for this payment or order. This ID helps you reconcile payments on your system. If provided, it is passed to the connector if supported.",
            "example": "Custom_Order_id_123",
            "nullable": true,
            "maxLength": 255
          },
          "skip_external_tax_calculation": {
            "type": "boolean",
            "description": "Whether to calculate tax for this payment intent",
            "nullable": true
          },
          "psd2_sca_exemption_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ScaExemptionType"
              }
            ],
            "nullable": true
          },
          "ctp_service_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CtpServiceDetails"
              }
            ],
            "nullable": true
          },
          "force_3ds_challenge": {
            "type": "boolean",
            "description": "Indicates if 3ds challenge is forced",
            "nullable": true
          },
          "threeds_method_comp_ind": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThreeDsCompletionIndicator"
              }
            ],
            "nullable": true
          },
          "is_iframe_redirection_enabled": {
            "type": "boolean",
            "description": "Indicates if the redirection has to open in the iframe",
            "nullable": true
          },
          "all_keys_required": {
            "type": "boolean",
            "description": "If enabled, provides whole connector response",
            "nullable": true
          },
          "payment_channel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentChannel"
              }
            ],
            "nullable": true
          },
          "tax_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TaxStatus"
              }
            ],
            "nullable": true
          },
          "discount_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Total amount of the discount you have applied to the order or transaction.",
            "example": 6540,
            "nullable": true
          },
          "shipping_amount_tax": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "duty_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "order_date": {
            "type": "string",
            "format": "date-time",
            "description": "Date the payer placed the order.",
            "nullable": true
          },
          "enable_partial_authorization": {
            "type": "boolean",
            "description": "Allow partial authorization for this payment",
            "default": false,
            "nullable": true
          },
          "is_stored_credential": {
            "type": "boolean",
            "description": "Boolean flag indicating whether this payment method is stored and has been previously used for payments",
            "example": true,
            "nullable": true
          },
          "mit_category": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MitCategory"
              }
            ],
            "nullable": true
          },
          "billing_descriptor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BillingDescriptor"
              }
            ],
            "nullable": true
          },
          "tokenization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Tokenization"
              }
            ],
            "nullable": true
          },
          "partner_merchant_identifier_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PartnerMerchantIdentifierDetails"
              }
            ],
            "nullable": true
          },
          "installment_options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstallmentOption"
            },
            "description": "Installment payment options grouped by payment method. When provided, the payment is treated as an installment payment.",
            "nullable": true
          },
          "installment_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InstallmentRequest"
              }
            ],
            "nullable": true
          },
          "profile_acquirer_id": {
            "type": "string",
            "description": "Identification for the profile acquirer to be used for this payment.",
            "nullable": true
          },
          "external_surcharge_strategy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SurchargeStrategy"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentsCreateRequest": {
        "type": "object",
        "required": [
          "amount",
          "currency"
        ],
        "properties": {
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The primary amount for the payment, provided in the lowest denomination of the specified currency (e.g., 6540 for $65.40 USD). This field is mandatory for creating a payment.",
            "minimum": 0
          },
          "order_tax_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Total tax amount applicable to the order, in the lowest denomination of the currency.",
            "example": 6540,
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "amount_to_capture": {
            "type": "integer",
            "format": "int64",
            "description": "The amount to be captured from the user's payment method, in the lowest denomination. If not provided, and `capture_method` is `automatic`, the full payment `amount` will be captured. If `capture_method` is `manual`, this can be specified in the `/capture` call. Must be less than or equal to the authorized amount.",
            "example": 6540,
            "nullable": true
          },
          "shipping_cost": {
            "type": "integer",
            "format": "int64",
            "description": "The shipping cost for the payment. This is required for tax calculation in some regions.",
            "example": 6540,
            "nullable": true
          },
          "payment_id": {
            "type": "string",
            "description": "Optional. A merchant-provided unique identifier for the payment, contains 30 characters long (e.g., \"pay_mbabizu24mvu3mela5njyhpit4\"). If provided, it ensures idempotency for the payment creation request. If omitted, Hyperswitch generates a unique ID for the payment.",
            "example": "pay_mbabizu24mvu3mela5njyhpit4",
            "nullable": true,
            "maxLength": 30,
            "minLength": 30
          },
          "routing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StraightThroughAlgorithm"
              }
            ],
            "nullable": true
          },
          "connector": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Connector"
            },
            "description": "This allows to manually select a connector with which the payment can go through.",
            "example": [
              "stripe",
              "adyen"
            ],
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "three_ds",
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "confirm": {
            "type": "boolean",
            "description": "If set to `true`, Hyperswitch attempts to confirm and authorize the payment immediately after creation, provided sufficient payment method details are included. If `false` or omitted (default is `false`), the payment is created with a status such as `requires_payment_method` or `requires_confirmation`, and a separate `POST /payments/{payment_id}/confirm` call is necessary to proceed with authorization.",
            "default": false,
            "example": true,
            "nullable": true
          },
          "customer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDetails"
              }
            ],
            "nullable": true
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer",
            "deprecated": true,
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "off_session": {
            "type": "boolean",
            "description": "Set to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. When making a recurring payment by passing a mandate_id, this parameter is mandatory",
            "example": true,
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "An arbitrary string attached to the payment. Often useful for displaying to users or for your own internal record-keeping.",
            "example": "It's my first payment request",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to redirect the customer to after they complete the payment process or authentication. This is crucial for flows that involve off-site redirection (e.g., 3DS, some bank redirects, wallet payments).",
            "example": "https://hyperswitch.io",
            "nullable": true,
            "maxLength": 2048
          },
          "setup_future_usage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FutureUsage"
              }
            ],
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDataRequest"
              }
            ],
            "nullable": true
          },
          "payment_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethod"
              }
            ],
            "nullable": true
          },
          "payment_token": {
            "type": "string",
            "description": "As Hyperswitch tokenises the sensitive details about the payments method, it provides the payment_token as a reference to a stored payment method, ensuring that the sensitive details are not exposed in any manner.",
            "example": "187282ab-40ef-47a9-9206-5099ba31e432",
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "statement_descriptor_name": {
            "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. To be deprecated soon, use billing_descriptor instead.",
            "deprecated": true,
            "example": "Hyperswitch Router",
            "nullable": true,
            "maxLength": 255
          },
          "statement_descriptor_suffix": {
            "type": "string",
            "description": "Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor. To be deprecated soon, use billing_descriptor instead.",
            "deprecated": true,
            "example": "Payment for shoes purchase",
            "nullable": true,
            "maxLength": 255
          },
          "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
          },
          "mandate_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MandateData"
              }
            ],
            "nullable": true
          },
          "customer_acceptance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerAcceptance"
              }
            ],
            "nullable": true
          },
          "mandate_id": {
            "type": "string",
            "description": "A unique identifier to link the payment to a mandate. To do Recurring payments after a mandate has been created, pass the mandate_id instead of payment_method_data",
            "deprecated": true,
            "example": "mandate_iwer89rnjef349dni3",
            "nullable": true,
            "maxLength": 64
          },
          "browser_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "payment_experience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentExperience"
              }
            ],
            "nullable": true
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "business_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "business_label": {
            "type": "string",
            "description": "Business label of the merchant for this payment.\nTo be deprecated soon. Pass the profile_id instead",
            "deprecated": true,
            "example": "food",
            "nullable": true
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorDetailsWrap"
              }
            ],
            "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": "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
          },
          "connector_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorMetadata"
              }
            ],
            "nullable": true
          },
          "payment_link": {
            "type": "boolean",
            "description": "Whether to generate the payment link for this payment or not (if applicable)",
            "default": false,
            "example": true,
            "nullable": true
          },
          "payment_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentCreatePaymentLinkConfig"
              }
            ],
            "nullable": true
          },
          "payment_link_config_id": {
            "type": "string",
            "description": "Custom payment link config id set at business profile, send only if business_specific_configs is configured",
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "The business profile to be used for this payment, if not passed the default business profile associated with the merchant account will be used. It is mandatory in case multiple business profiles have been set up.",
            "nullable": true
          },
          "surcharge_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RequestSurchargeDetails"
              }
            ],
            "nullable": true
          },
          "payment_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentType"
              }
            ],
            "nullable": true
          },
          "request_incremental_authorization": {
            "type": "boolean",
            "description": "Request an incremental authorization, i.e., increase the authorized amount on a confirmed payment before you capture it.",
            "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
          },
          "frm_metadata": {
            "type": "object",
            "description": "Additional data related to some frm(Fraud Risk Management) connectors",
            "nullable": true
          },
          "request_external_three_ds_authentication": {
            "type": "boolean",
            "description": "Whether to perform external authentication (if applicable)",
            "example": true,
            "nullable": true
          },
          "three_ds_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalThreeDsData"
              }
            ],
            "nullable": true
          },
          "recurring_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecurringDetails"
              }
            ],
            "nullable": true
          },
          "split_payments": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SplitPaymentsRequest"
              }
            ],
            "nullable": true
          },
          "request_extended_authorization": {
            "type": "boolean",
            "description": "Optional boolean value to extent authorization period of this payment\n\ncapture method must be manual or manual_multiple",
            "default": false,
            "nullable": true
          },
          "merchant_order_reference_id": {
            "type": "string",
            "description": "Your unique identifier for this payment or order. This ID helps you reconcile payments on your system. If provided, it is passed to the connector if supported.",
            "example": "Custom_Order_id_123",
            "nullable": true,
            "maxLength": 255
          },
          "skip_external_tax_calculation": {
            "type": "boolean",
            "description": "Whether to calculate tax for this payment intent",
            "nullable": true
          },
          "psd2_sca_exemption_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ScaExemptionType"
              }
            ],
            "nullable": true
          },
          "ctp_service_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CtpServiceDetails"
              }
            ],
            "nullable": true
          },
          "force_3ds_challenge": {
            "type": "boolean",
            "description": "Indicates if 3ds challenge is forced",
            "nullable": true
          },
          "threeds_method_comp_ind": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThreeDsCompletionIndicator"
              }
            ],
            "nullable": true
          },
          "is_iframe_redirection_enabled": {
            "type": "boolean",
            "description": "Indicates if the redirection has to open in the iframe",
            "nullable": true
          },
          "all_keys_required": {
            "type": "boolean",
            "description": "If enabled, provides whole connector response",
            "nullable": true
          },
          "payment_channel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentChannel"
              }
            ],
            "nullable": true
          },
          "tax_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TaxStatus"
              }
            ],
            "nullable": true
          },
          "discount_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Total amount of the discount you have applied to the order or transaction.",
            "example": 6540,
            "nullable": true
          },
          "shipping_amount_tax": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "duty_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "order_date": {
            "type": "string",
            "format": "date-time",
            "description": "Date the payer placed the order.",
            "nullable": true
          },
          "enable_partial_authorization": {
            "type": "boolean",
            "description": "Allow partial authorization for this payment",
            "default": false,
            "nullable": true
          },
          "enable_overcapture": {
            "type": "boolean",
            "description": "Boolean indicating whether to enable overcapture for this payment",
            "example": true,
            "nullable": true
          },
          "is_stored_credential": {
            "type": "boolean",
            "description": "Boolean flag indicating whether this payment method is stored and has been previously used for payments",
            "example": true,
            "nullable": true
          },
          "mit_category": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MitCategory"
              }
            ],
            "nullable": true
          },
          "billing_descriptor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BillingDescriptor"
              }
            ],
            "nullable": true
          },
          "tokenization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Tokenization"
              }
            ],
            "nullable": true
          },
          "partner_merchant_identifier_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PartnerMerchantIdentifierDetails"
              }
            ],
            "nullable": true
          },
          "installment_options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstallmentOption"
            },
            "description": "Installment payment options grouped by payment method. When provided, the payment is treated as an installment payment.",
            "nullable": true
          },
          "installment_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InstallmentRequest"
              }
            ],
            "nullable": true
          },
          "profile_acquirer_id": {
            "type": "string",
            "description": "Identification for the profile acquirer to be used for this payment.",
            "nullable": true
          },
          "external_surcharge_strategy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SurchargeStrategy"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentsCreateResponseOpenApi": {
        "type": "object",
        "required": [
          "payment_id",
          "merchant_id",
          "status",
          "amount",
          "net_amount",
          "amount_capturable",
          "processor_merchant_id",
          "currency",
          "payment_method",
          "attempt_count"
        ],
        "properties": {
          "payment_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",
            "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
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntentStatus"
              }
            ],
            "default": "requires_confirmation"
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payment 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
          },
          "net_amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payment net amount. net_amount = amount + surcharge_details.surcharge_amount + surcharge_details.tax_amount + shipping_cost + order_tax_amount,\nIf no surcharge_details, shipping_cost, order_tax_amount, net_amount = amount",
            "example": 6540
          },
          "shipping_cost": {
            "type": "integer",
            "format": "int64",
            "description": "The shipping cost for the payment.",
            "example": 6540,
            "nullable": true
          },
          "amount_capturable": {
            "type": "integer",
            "format": "int64",
            "description": "The amount (in minor units) that can still be captured for this payment. This is relevant when `capture_method` is `manual`. Once fully captured, or if `capture_method` is `automatic` and payment succeeded, this will be 0.",
            "example": 6540,
            "minimum": 100
          },
          "amount_received": {
            "type": "integer",
            "format": "int64",
            "description": "The total amount (in minor units) that has been captured for this payment. For `fauxpay` sandbox connector, this might reflect the authorized amount if `status` is `succeeded` even if `capture_method` was `manual`.",
            "example": 6540,
            "nullable": true
          },
          "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
          },
          "sdk_authorization": {
            "type": "string",
            "description": "Token containing encoded information for sdk authorization.",
            "example": "cHJvZmlsZV9pZD1wcm9mXzEyMyxwdWJsaXNoYWJsZV9rZXk9cGtfbGl2ZV8xMjM=",
            "nullable": true
          },
          "connector": {
            "type": "string",
            "description": "The name of the payment connector (e.g., 'stripe', 'adyen') that processed or is processing this payment.",
            "example": "stripe",
            "nullable": true
          },
          "state_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentIntentStateMetadata"
              }
            ],
            "nullable": true
          },
          "client_secret": {
            "type": "string",
            "description": "A secret token unique to this payment intent. It is primarily used by client-side applications (e.g., Hyperswitch SDKs) to authenticate actions like confirming the payment or handling next actions. This secret should be handled carefully and not exposed publicly beyond its intended client-side use.",
            "example": "pay_U42c409qyHwOkWo3vK60_secret_el9ksDkiB8hi6j9N78yo",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp indicating when this payment intent was created, in ISO 8601 format.",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp indicating when this payment intent was last modified, in ISO 8601 format.",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "connector_customer_id": {
            "type": "string",
            "description": "A unique identifier for a customer provided by the connector.",
            "example": "cus_Rnm2pDKGyQi506",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer object. If not provided the customer ID will be autogenerated.\nThis field will be deprecated soon. Please refer to `customer.id`",
            "deprecated": true,
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "description": {
            "type": "string",
            "description": "An arbitrary string providing a description for the payment, often useful for display or internal record-keeping.",
            "example": "It's my first payment request",
            "nullable": true
          },
          "refunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RefundResponse"
            },
            "description": "An array of refund objects associated with this payment. Empty or null if no refunds have been processed.",
            "nullable": true
          },
          "disputes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisputeResponsePaymentsRetrieve"
            },
            "description": "List of disputes that happened on this intent",
            "nullable": true
          },
          "attempts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentAttemptResponse"
            },
            "description": "List of attempts that happened on this intent",
            "nullable": true
          },
          "captures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CaptureResponse"
            },
            "description": "List of captures done on latest attempt",
            "nullable": true
          },
          "mandate_id": {
            "type": "string",
            "description": "A unique identifier to link the payment to a mandate, can be used instead of payment_method_data, in case of setting up recurring payments",
            "deprecated": true,
            "example": "mandate_iwer89rnjef349dni3",
            "nullable": true,
            "maxLength": 255
          },
          "mandate_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MandateData"
              }
            ],
            "nullable": true
          },
          "setup_future_usage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FutureUsage"
              }
            ],
            "nullable": true
          },
          "off_session": {
            "type": "boolean",
            "description": "Set to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. This parameter can only be used with confirm=true.",
            "example": true,
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDataResponseWithBilling"
              }
            ],
            "nullable": true
          },
          "payment_token": {
            "type": "string",
            "description": "Provide a reference to a stored payment method",
            "example": "187282ab-40ef-47a9-9206-5099ba31e432",
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "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
          },
          "email": {
            "type": "string",
            "description": "description: The customer's email address\nThis field will be deprecated soon. Please refer to `customer.email` object",
            "deprecated": true,
            "example": "johntest@test.com",
            "nullable": true,
            "maxLength": 255
          },
          "name": {
            "type": "string",
            "description": "description: The customer's name\nThis field will be deprecated soon. Please refer to `customer.name` object",
            "deprecated": true,
            "example": "John Test",
            "nullable": true,
            "maxLength": 255
          },
          "phone": {
            "type": "string",
            "description": "The customer's phone number\nThis field will be deprecated soon. Please refer to `customer.phone` object",
            "deprecated": true,
            "example": "9123456789",
            "nullable": true,
            "maxLength": 255
          },
          "return_url": {
            "type": "string",
            "description": "The URL to redirect after the completion of the operation",
            "example": "https://hyperswitch.io",
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "three_ds",
            "nullable": true
          },
          "statement_descriptor_name": {
            "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. To be deprecated soon, use billing_descriptor instead.",
            "deprecated": true,
            "example": "Hyperswitch Router",
            "nullable": true,
            "maxLength": 255
          },
          "statement_descriptor_suffix": {
            "type": "string",
            "description": "Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 255 characters for the concatenated descriptor. To be deprecated soon, use billing_descriptor instead.",
            "deprecated": true,
            "example": "Payment for shoes purchase",
            "nullable": true,
            "maxLength": 255
          },
          "next_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NextActionData"
              }
            ],
            "nullable": true
          },
          "cancellation_reason": {
            "type": "string",
            "description": "If the payment intent was cancelled, this field provides a textual reason for the cancellation (e.g., \"requested_by_customer\", \"abandoned\").",
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "description": "The connector-specific error code from the last failed payment attempt associated with this payment intent.",
            "example": "E0001",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "description": "A human-readable error message from the last failed payment attempt associated with this payment intent.",
            "example": "Failed while verifying the card",
            "nullable": true
          },
          "error_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentErrorDetails"
              }
            ],
            "nullable": true
          },
          "payment_experience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentExperience"
              }
            ],
            "nullable": true
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "connector_label": {
            "type": "string",
            "description": "A label identifying the specific merchant connector account (MCA) used for this payment. This often combines the connector name, business country, and a custom label (e.g., \"stripe_US_primary\").",
            "example": "stripe_US_food",
            "nullable": true
          },
          "business_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "business_label": {
            "type": "string",
            "description": "The label identifying the specific business unit or profile under which this payment was processed by the merchant. To be deprecated soon. Pass the profile_id instead",
            "deprecated": true,
            "nullable": true
          },
          "business_sub_label": {
            "type": "string",
            "description": "An optional sub-label for further categorization of the business unit or profile used for this payment. To be deprecated soon. Pass the profile_id instead",
            "deprecated": true,
            "nullable": true
          },
          "allowed_payment_method_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodType"
            },
            "description": "Allowed Payment Method Types for a given PaymentIntent",
            "nullable": true
          },
          "manual_retry_allowed": {
            "type": "boolean",
            "description": "If true the payment can be retried with same or different payment method which means the confirm call can be made again.",
            "nullable": true
          },
          "connector_transaction_id": {
            "type": "string",
            "description": "A unique identifier for a payment provided by the connector",
            "example": "993672945374576J",
            "nullable": true
          },
          "frm_message": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FrmMessage"
              }
            ],
            "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
          },
          "connector_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorMetadata"
              }
            ],
            "nullable": true
          },
          "connector_response_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorMetadataResponse"
              }
            ],
            "nullable": true
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeatureMetadata"
              }
            ],
            "nullable": true
          },
          "reference_id": {
            "type": "string",
            "description": "reference(Identifier) to the payment at connector side",
            "example": "993672945374576J",
            "nullable": true
          },
          "payment_link": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkResponse"
              }
            ],
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "The business profile that is associated with this payment",
            "nullable": true
          },
          "surcharge_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RequestSurchargeDetails"
              }
            ],
            "nullable": true
          },
          "attempt_count": {
            "type": "integer",
            "format": "int32",
            "description": "Total number of attempts associated with this payment"
          },
          "merchant_decision": {
            "type": "string",
            "description": "Denotes the action(approve or reject) taken by merchant in case of manual review. Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment",
            "nullable": true
          },
          "merchant_connector_id": {
            "type": "string",
            "description": "Identifier of the connector ( merchant connector account ) which was chosen to make the payment",
            "nullable": true
          },
          "incremental_authorization_allowed": {
            "type": "boolean",
            "description": "If true, incremental authorization can be performed on this payment, in case the funds authorized initially fall short.",
            "nullable": true
          },
          "authorization_count": {
            "type": "integer",
            "format": "int32",
            "description": "Total number of authorizations happened in an incremental_authorization payment",
            "nullable": true
          },
          "incremental_authorizations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncrementalAuthorizationResponse"
            },
            "description": "List of incremental authorizations happened to the payment",
            "nullable": true
          },
          "external_authentication_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalAuthenticationDetailsResponse"
              }
            ],
            "nullable": true
          },
          "external_3ds_authentication_attempted": {
            "type": "boolean",
            "description": "Flag indicating if external 3ds authentication is made or not",
            "nullable": true
          },
          "expires_on": {
            "type": "string",
            "format": "date-time",
            "description": "Date Time for expiry of the payment",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "fingerprint": {
            "type": "string",
            "description": "Payment Fingerprint, to identify a particular card.\nIt is a 20 character long alphanumeric code.",
            "nullable": true
          },
          "browser_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "payment_channel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentChannel"
              }
            ],
            "nullable": true
          },
          "payment_method_id": {
            "type": "string",
            "description": "A unique identifier for the payment method used in this payment. If the payment method was saved or tokenized, this ID can be used to reference it for future transactions or recurring payments.\nRefer `payment_method_tokenization_details` for detailed view of payment method tokenization",
            "nullable": true
          },
          "network_transaction_id": {
            "type": "string",
            "description": "The network transaction ID is a unique identifier for the transaction as recognized by the payment network (e.g., Visa, Mastercard), this ID can be used to reference it for future transactions or recurring payments.\nRefer `payment_method_tokenization_details` for detailed view of payment method tokenization",
            "nullable": true
          },
          "network_transaction_link_id": {
            "type": "string",
            "description": "The Mastercard Transaction Link Identifier (TLID) for this payment. Returned on CITs that set up\nstored credentials. External-vault merchants should persist this and echo it back on subsequent\nMIT requests. Mandatory for Mastercard recurring/MIT (no static fallback).",
            "nullable": true
          },
          "payment_method_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodStatus"
              }
            ],
            "nullable": true
          },
          "updated": {
            "type": "string",
            "format": "date-time",
            "description": "Date time at which payment was updated",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "split_payments": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorChargeResponseData"
              }
            ],
            "nullable": true
          },
          "frm_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. FRM Metadata is useful for storing additional, structured information on an object related to FRM.",
            "nullable": true
          },
          "extended_authorization_applied": {
            "type": "boolean",
            "description": "flag that indicates if extended authorization is applied on this payment or not",
            "nullable": true
          },
          "extended_authorization_last_applied_at": {
            "type": "string",
            "format": "date-time",
            "description": "date and time at which extended authorization was last applied on this payment",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "request_extended_authorization": {
            "type": "boolean",
            "description": "Optional boolean value to extent authorization period of this payment\n\ncapture method must be manual or manual_multiple",
            "default": false,
            "nullable": true
          },
          "capture_before": {
            "type": "string",
            "format": "date-time",
            "description": "date and time after which this payment cannot be captured",
            "nullable": true
          },
          "merchant_order_reference_id": {
            "type": "string",
            "description": "Merchant's identifier for the payment/invoice. This will be sent to the connector\nif the connector provides support to accept multiple reference ids.\nIn case the connector supports only one reference id, Hyperswitch's Payment ID will be sent as reference.",
            "example": "Custom_Order_id_123",
            "nullable": true,
            "maxLength": 255
          },
          "order_tax_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "connector_mandate_id": {
            "type": "string",
            "description": "Connector Identifier for the payment method",
            "nullable": true
          },
          "card_discovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardDiscovery"
              }
            ],
            "nullable": true
          },
          "force_3ds_challenge": {
            "type": "boolean",
            "description": "Indicates if 3ds challenge is forced",
            "nullable": true
          },
          "force_3ds_challenge_trigger": {
            "type": "boolean",
            "description": "Indicates if 3ds challenge is triggered",
            "nullable": true
          },
          "issuer_error_code": {
            "type": "string",
            "description": "Error code received from the issuer in case of failed payments",
            "nullable": true
          },
          "issuer_error_message": {
            "type": "string",
            "description": "Error message received from the issuer in case of failed payments",
            "nullable": true
          },
          "is_iframe_redirection_enabled": {
            "type": "boolean",
            "description": "Indicates if the redirection has to open in the iframe",
            "nullable": true
          },
          "whole_connector_response": {
            "type": "string",
            "description": "Contains whole connector response",
            "nullable": true
          },
          "enable_partial_authorization": {
            "type": "boolean",
            "description": "Allow partial authorization for this payment",
            "default": false,
            "nullable": true
          },
          "enable_overcapture": {
            "type": "boolean",
            "description": "Bool indicating if overcapture  must be requested for this payment",
            "nullable": true
          },
          "is_overcapture_enabled": {
            "type": "boolean",
            "description": "Boolean indicating whether overcapture is effectively enabled for this payment",
            "nullable": true
          },
          "network_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkDetails"
              }
            ],
            "nullable": true
          },
          "is_stored_credential": {
            "type": "boolean",
            "description": "Boolean flag indicating whether this payment method is stored and has been previously used for payments",
            "example": true,
            "nullable": true
          },
          "mit_category": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MitCategory"
              }
            ],
            "nullable": true
          },
          "billing_descriptor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BillingDescriptor"
              }
            ],
            "nullable": true
          },
          "tokenization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Tokenization"
              }
            ],
            "nullable": true
          },
          "partner_merchant_identifier_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PartnerMerchantIdentifierDetails"
              }
            ],
            "nullable": true
          },
          "payment_method_tokenization_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodTokenizationDetails"
              }
            ],
            "nullable": true
          },
          "installment_options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstallmentOption"
            },
            "description": "Installment payment options associated with this payment, grouped by payment method",
            "nullable": true
          },
          "installment_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InstallmentData"
              }
            ],
            "nullable": true
          },
          "sender_payment_instrument_id": {
            "type": "string",
            "description": "A connector-specific identifier representing the stored payment instrument",
            "nullable": true,
            "maxLength": 255
          }
        }
      },
      "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"
          }
        }
      },
      "PaymentsEligibilityCheckRequest": {
        "type": "object",
        "required": [
          "client_secret",
          "payment_method_type",
          "payment_token"
        ],
        "properties": {
          "client_secret": {
            "type": "string",
            "description": "Token used for client side verification",
            "example": "pay_U42c409qyHwOkWo3vK60_secret_el9ksDkiB8hi6j9N78yo"
          },
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EligibilityPaymentMethodDataRequest"
              }
            ],
            "nullable": true
          },
          "browser_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "payment_token": {
            "type": "string",
            "description": "The payment token to look up the saved payment method\nWhen provided, the system will fetch the payment method data from the locker/vault",
            "example": "token_abc123xyz"
          }
        }
      },
      "PaymentsEligibilityCheckResponse": {
        "type": "object",
        "required": [
          "payment_id",
          "sdk_next_action"
        ],
        "properties": {
          "payment_id": {
            "type": "string",
            "description": "The identifier for the payment"
          },
          "sdk_next_action": {
            "$ref": "#/components/schemas/SdkNextAction"
          }
        }
      },
      "PaymentsEligibilityRequest": {
        "type": "object",
        "description": "Request body for the eligibility endpoint.\nCombines eligibility checks with external surcharge calculation in a single call.",
        "required": [
          "client_secret",
          "payment_method_type",
          "payment_token"
        ],
        "properties": {
          "client_secret": {
            "type": "string",
            "description": "Token used for client side verification",
            "example": "pay_U42c409qyHwOkWo3vK60_secret_el9ksDkiB8hi6j9N78yo"
          },
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_subtype": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EligibilityPaymentMethodDataRequest"
              }
            ],
            "nullable": true
          },
          "browser_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "payment_token": {
            "type": "string",
            "description": "The payment token to look up the saved payment method",
            "example": "token_abc123xyz"
          }
        }
      },
      "PaymentsEligibilityResponse": {
        "type": "object",
        "description": "Response body for the eligibility endpoint.",
        "required": [
          "payment_id",
          "sdk_next_action"
        ],
        "properties": {
          "payment_id": {
            "type": "string",
            "description": "The identifier for the payment"
          },
          "sdk_next_action": {
            "$ref": "#/components/schemas/SdkNextAction"
          },
          "surcharge_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SurchargeDetailsResponse"
              }
            ],
            "nullable": true
          }
        }
      },
      "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
          }
        }
      },
      "PaymentsPostSessionTokensRequest": {
        "type": "object",
        "required": [
          "payment_method_type",
          "payment_method"
        ],
        "properties": {
          "client_secret": {
            "type": "string",
            "description": "It's a token used for client side verification.",
            "nullable": true
          },
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethodType"
          },
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          }
        }
      },
      "PaymentsPostSessionTokensResponse": {
        "type": "object",
        "required": [
          "payment_id",
          "status"
        ],
        "properties": {
          "payment_id": {
            "type": "string",
            "description": "The identifier for the payment"
          },
          "next_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NextActionData"
              }
            ],
            "nullable": true
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntentStatus"
              }
            ],
            "default": "requires_confirmation"
          }
        }
      },
      "PaymentsRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The primary amount for the payment, provided in the lowest denomination of the specified currency (e.g., 6540 for $65.40 USD). This field is mandatory for creating a payment.",
            "example": 6540,
            "nullable": true,
            "minimum": 0
          },
          "order_tax_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Total tax amount applicable to the order, in the lowest denomination of the currency.",
            "example": 6540,
            "nullable": true
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ],
            "nullable": true
          },
          "amount_to_capture": {
            "type": "integer",
            "format": "int64",
            "description": "The amount to be captured from the user's payment method, in the lowest denomination. If not provided, and `capture_method` is `automatic`, the full payment `amount` will be captured. If `capture_method` is `manual`, this can be specified in the `/capture` call. Must be less than or equal to the authorized amount.",
            "example": 6540,
            "nullable": true
          },
          "shipping_cost": {
            "type": "integer",
            "format": "int64",
            "description": "The shipping cost for the payment. This is required for tax calculation in some regions.",
            "example": 6540,
            "nullable": true
          },
          "payment_id": {
            "type": "string",
            "description": "Optional. A merchant-provided unique identifier for the payment, contains 30 characters long (e.g., \"pay_mbabizu24mvu3mela5njyhpit4\"). If provided, it ensures idempotency for the payment creation request. If omitted, Hyperswitch generates a unique ID for the payment.",
            "example": "pay_mbabizu24mvu3mela5njyhpit4",
            "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\nprovided during the request",
            "example": "merchant_1668273825",
            "nullable": true,
            "maxLength": 255
          },
          "routing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StraightThroughAlgorithm"
              }
            ],
            "nullable": true
          },
          "connector": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Connector"
            },
            "description": "This allows to manually select a connector with which the payment can go through.",
            "example": [
              "stripe",
              "adyen"
            ],
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "three_ds",
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "capture_on": {
            "type": "string",
            "format": "date-time",
            "description": "A timestamp (ISO 8601 code) that determines when the payment should be captured.\nProviding this field will automatically set `capture` to true",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "confirm": {
            "type": "boolean",
            "description": "If set to `true`, Hyperswitch attempts to confirm and authorize the payment immediately after creation, provided sufficient payment method details are included. If `false` or omitted (default is `false`), the payment is created with a status such as `requires_payment_method` or `requires_confirmation`, and a separate `POST /payments/{payment_id}/confirm` call is necessary to proceed with authorization.",
            "default": false,
            "example": true,
            "nullable": true
          },
          "customer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDetails"
              }
            ],
            "nullable": true
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer",
            "deprecated": true,
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "email": {
            "type": "string",
            "description": "The customer's email address.\nThis field will be deprecated soon, use the customer object instead",
            "deprecated": true,
            "example": "johntest@test.com",
            "nullable": true,
            "maxLength": 255
          },
          "name": {
            "type": "string",
            "description": "The customer's name.\nThis field will be deprecated soon, use the customer object instead.",
            "deprecated": true,
            "example": "John Test",
            "nullable": true,
            "maxLength": 255
          },
          "phone": {
            "type": "string",
            "description": "The customer's phone number\nThis field will be deprecated soon, use the customer object instead",
            "deprecated": true,
            "example": "9123456789",
            "nullable": true,
            "maxLength": 255
          },
          "phone_country_code": {
            "type": "string",
            "description": "The country code for the customer phone number\nThis field will be deprecated soon, use the customer object instead",
            "deprecated": true,
            "example": "+1",
            "nullable": true,
            "maxLength": 255
          },
          "off_session": {
            "type": "boolean",
            "description": "Set to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. When making a recurring payment by passing a mandate_id, this parameter is mandatory",
            "example": true,
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "An arbitrary string attached to the payment. Often useful for displaying to users or for your own internal record-keeping.",
            "example": "It's my first payment request",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to redirect the customer to after they complete the payment process or authentication. This is crucial for flows that involve off-site redirection (e.g., 3DS, some bank redirects, wallet payments).",
            "example": "https://hyperswitch.io",
            "nullable": true,
            "maxLength": 2048
          },
          "setup_future_usage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FutureUsage"
              }
            ],
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDataRequest"
              }
            ],
            "nullable": true
          },
          "payment_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethod"
              }
            ],
            "nullable": true
          },
          "payment_token": {
            "type": "string",
            "description": "As Hyperswitch tokenises the sensitive details about the payments method, it provides the payment_token as a reference to a stored payment method, ensuring that the sensitive details are not exposed in any manner.",
            "example": "187282ab-40ef-47a9-9206-5099ba31e432",
            "nullable": true
          },
          "card_cvc": {
            "type": "string",
            "description": "This is used along with the payment_token field while collecting during saved card payments. This field will be deprecated soon, use the payment_method_data.card_token object instead",
            "deprecated": true,
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "statement_descriptor_name": {
            "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. To be deprecated soon, use billing_descriptor instead.",
            "deprecated": true,
            "example": "Hyperswitch Router",
            "nullable": true,
            "maxLength": 255
          },
          "statement_descriptor_suffix": {
            "type": "string",
            "description": "Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor. To be deprecated soon, use billing_descriptor instead.",
            "deprecated": true,
            "example": "Payment for shoes purchase",
            "nullable": true,
            "maxLength": 255
          },
          "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
          },
          "client_secret": {
            "type": "string",
            "description": "It's a token used for client side verification.",
            "example": "pay_U42c409qyHwOkWo3vK60_secret_el9ksDkiB8hi6j9N78yo",
            "nullable": true
          },
          "mandate_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MandateData"
              }
            ],
            "nullable": true
          },
          "customer_acceptance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerAcceptance"
              }
            ],
            "nullable": true
          },
          "mandate_id": {
            "type": "string",
            "description": "A unique identifier to link the payment to a mandate. To do Recurring payments after a mandate has been created, pass the mandate_id instead of payment_method_data",
            "deprecated": true,
            "example": "mandate_iwer89rnjef349dni3",
            "nullable": true,
            "maxLength": 64
          },
          "browser_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "payment_experience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentExperience"
              }
            ],
            "nullable": true
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "business_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "business_label": {
            "type": "string",
            "description": "Business label of the merchant for this payment.\nTo be deprecated soon. Pass the profile_id instead",
            "deprecated": true,
            "example": "food",
            "nullable": true
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorDetailsWrap"
              }
            ],
            "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
          },
          "business_sub_label": {
            "type": "string",
            "description": "Business sub label for the payment. To be deprecated soon. Pass the profile_id instead",
            "deprecated": true,
            "nullable": true
          },
          "retry_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RetryAction"
              }
            ],
            "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
          },
          "connector_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorMetadata"
              }
            ],
            "nullable": true
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeatureMetadata"
              }
            ],
            "nullable": true
          },
          "payment_link": {
            "type": "boolean",
            "description": "Whether to generate the payment link for this payment or not (if applicable)",
            "default": false,
            "example": true,
            "nullable": true
          },
          "payment_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentCreatePaymentLinkConfig"
              }
            ],
            "nullable": true
          },
          "payment_link_config_id": {
            "type": "string",
            "description": "Custom payment link config id set at business profile, send only if business_specific_configs is configured",
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "The business profile to be used for this payment, if not passed the default business profile associated with the merchant account will be used. It is mandatory in case multiple business profiles have been set up.",
            "nullable": true
          },
          "surcharge_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RequestSurchargeDetails"
              }
            ],
            "nullable": true
          },
          "payment_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentType"
              }
            ],
            "nullable": true
          },
          "request_incremental_authorization": {
            "type": "boolean",
            "description": "Request an incremental authorization, i.e., increase the authorized amount on a confirmed payment before you capture it.",
            "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
          },
          "frm_metadata": {
            "type": "object",
            "description": "Additional data related to some frm(Fraud Risk Management) connectors",
            "nullable": true
          },
          "request_external_three_ds_authentication": {
            "type": "boolean",
            "description": "Whether to perform external authentication (if applicable)",
            "example": true,
            "nullable": true
          },
          "three_ds_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalThreeDsData"
              }
            ],
            "nullable": true
          },
          "recurring_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecurringDetails"
              }
            ],
            "nullable": true
          },
          "split_payments": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SplitPaymentsRequest"
              }
            ],
            "nullable": true
          },
          "request_extended_authorization": {
            "type": "boolean",
            "description": "Optional boolean value to extent authorization period of this payment\n\ncapture method must be manual or manual_multiple",
            "default": false,
            "nullable": true
          },
          "merchant_order_reference_id": {
            "type": "string",
            "description": "Your unique identifier for this payment or order. This ID helps you reconcile payments on your system. If provided, it is passed to the connector if supported.",
            "example": "Custom_Order_id_123",
            "nullable": true,
            "maxLength": 255
          },
          "skip_external_tax_calculation": {
            "type": "boolean",
            "description": "Whether to calculate tax for this payment intent",
            "nullable": true
          },
          "psd2_sca_exemption_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ScaExemptionType"
              }
            ],
            "nullable": true
          },
          "ctp_service_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CtpServiceDetails"
              }
            ],
            "nullable": true
          },
          "force_3ds_challenge": {
            "type": "boolean",
            "description": "Indicates if 3ds challenge is forced",
            "nullable": true
          },
          "threeds_method_comp_ind": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThreeDsCompletionIndicator"
              }
            ],
            "nullable": true
          },
          "is_iframe_redirection_enabled": {
            "type": "boolean",
            "description": "Indicates if the redirection has to open in the iframe",
            "nullable": true
          },
          "all_keys_required": {
            "type": "boolean",
            "description": "If enabled, provides whole connector response",
            "nullable": true
          },
          "payment_channel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentChannel"
              }
            ],
            "nullable": true
          },
          "tax_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TaxStatus"
              }
            ],
            "nullable": true
          },
          "discount_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Total amount of the discount you have applied to the order or transaction.",
            "example": 6540,
            "nullable": true
          },
          "shipping_amount_tax": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "duty_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "order_date": {
            "type": "string",
            "format": "date-time",
            "description": "Date the payer placed the order.",
            "nullable": true
          },
          "enable_partial_authorization": {
            "type": "boolean",
            "description": "Allow partial authorization for this payment",
            "default": false,
            "nullable": true
          },
          "enable_overcapture": {
            "type": "boolean",
            "description": "Boolean indicating whether to enable overcapture for this payment",
            "example": true,
            "nullable": true
          },
          "is_stored_credential": {
            "type": "boolean",
            "description": "Boolean flag indicating whether this payment method is stored and has been previously used for payments",
            "example": true,
            "nullable": true
          },
          "mit_category": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MitCategory"
              }
            ],
            "nullable": true
          },
          "billing_descriptor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BillingDescriptor"
              }
            ],
            "nullable": true
          },
          "tokenization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Tokenization"
              }
            ],
            "nullable": true
          },
          "partner_merchant_identifier_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PartnerMerchantIdentifierDetails"
              }
            ],
            "nullable": true
          },
          "installment_options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstallmentOption"
            },
            "description": "Installment payment options grouped by payment method. When provided, the payment is treated as an installment payment.",
            "nullable": true
          },
          "installment_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InstallmentRequest"
              }
            ],
            "nullable": true
          },
          "profile_acquirer_id": {
            "type": "string",
            "description": "Identification for the profile acquirer to be used for this payment.",
            "nullable": true
          },
          "external_surcharge_strategy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SurchargeStrategy"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentsResponse": {
        "type": "object",
        "required": [
          "payment_id",
          "merchant_id",
          "status",
          "amount",
          "net_amount",
          "amount_capturable",
          "processor_merchant_id",
          "currency",
          "payment_method",
          "attempt_count"
        ],
        "properties": {
          "payment_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",
            "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
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntentStatus"
              }
            ],
            "default": "requires_confirmation"
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payment 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
          },
          "net_amount": {
            "type": "integer",
            "format": "int64",
            "description": "The payment net amount. net_amount = amount + surcharge_details.surcharge_amount + surcharge_details.tax_amount + shipping_cost + order_tax_amount,\nIf no surcharge_details, shipping_cost, order_tax_amount, net_amount = amount",
            "example": 6540
          },
          "shipping_cost": {
            "type": "integer",
            "format": "int64",
            "description": "The shipping cost for the payment.",
            "example": 6540,
            "nullable": true
          },
          "amount_capturable": {
            "type": "integer",
            "format": "int64",
            "description": "The amount (in minor units) that can still be captured for this payment. This is relevant when `capture_method` is `manual`. Once fully captured, or if `capture_method` is `automatic` and payment succeeded, this will be 0.",
            "example": 6540,
            "minimum": 100
          },
          "amount_received": {
            "type": "integer",
            "format": "int64",
            "description": "The total amount (in minor units) that has been captured for this payment. For `fauxpay` sandbox connector, this might reflect the authorized amount if `status` is `succeeded` even if `capture_method` was `manual`.",
            "example": 6540,
            "nullable": true
          },
          "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
          },
          "sdk_authorization": {
            "type": "string",
            "description": "Token containing encoded information for sdk authorization.",
            "example": "cHJvZmlsZV9pZD1wcm9mXzEyMyxwdWJsaXNoYWJsZV9rZXk9cGtfbGl2ZV8xMjM=",
            "nullable": true
          },
          "connector": {
            "type": "string",
            "description": "The name of the payment connector (e.g., 'stripe', 'adyen') that processed or is processing this payment.",
            "example": "stripe",
            "nullable": true
          },
          "state_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentIntentStateMetadata"
              }
            ],
            "nullable": true
          },
          "client_secret": {
            "type": "string",
            "description": "A secret token unique to this payment intent. It is primarily used by client-side applications (e.g., Hyperswitch SDKs) to authenticate actions like confirming the payment or handling next actions. This secret should be handled carefully and not exposed publicly beyond its intended client-side use.",
            "example": "pay_U42c409qyHwOkWo3vK60_secret_el9ksDkiB8hi6j9N78yo",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp indicating when this payment intent was created, in ISO 8601 format.",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp indicating when this payment intent was last modified, in ISO 8601 format.",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "connector_customer_id": {
            "type": "string",
            "description": "A unique identifier for a customer provided by the connector.",
            "example": "cus_Rnm2pDKGyQi506",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer object. If not provided the customer ID will be autogenerated.\nThis field will be deprecated soon. Please refer to `customer.id`",
            "deprecated": true,
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "customer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDetailsResponse"
              }
            ],
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "An arbitrary string providing a description for the payment, often useful for display or internal record-keeping.",
            "example": "It's my first payment request",
            "nullable": true
          },
          "refunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RefundResponse"
            },
            "description": "An array of refund objects associated with this payment. Empty or null if no refunds have been processed.",
            "nullable": true
          },
          "disputes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisputeResponsePaymentsRetrieve"
            },
            "description": "List of disputes that happened on this intent",
            "nullable": true
          },
          "attempts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentAttemptResponse"
            },
            "description": "List of attempts that happened on this intent",
            "nullable": true
          },
          "captures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CaptureResponse"
            },
            "description": "List of captures done on latest attempt",
            "nullable": true
          },
          "mandate_id": {
            "type": "string",
            "description": "A unique identifier to link the payment to a mandate, can be used instead of payment_method_data, in case of setting up recurring payments",
            "deprecated": true,
            "example": "mandate_iwer89rnjef349dni3",
            "nullable": true,
            "maxLength": 255
          },
          "mandate_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MandateData"
              }
            ],
            "nullable": true
          },
          "setup_future_usage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FutureUsage"
              }
            ],
            "nullable": true
          },
          "off_session": {
            "type": "boolean",
            "description": "Set to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. This parameter can only be used with confirm=true.",
            "example": true,
            "nullable": true
          },
          "capture_on": {
            "type": "string",
            "format": "date-time",
            "description": "A timestamp (ISO 8601 code) that determines when the payment should be captured.\nProviding this field will automatically set `capture` to true",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "payment_method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDataResponseWithBilling"
              }
            ],
            "nullable": true
          },
          "payment_token": {
            "type": "string",
            "description": "Provide a reference to a stored payment method",
            "example": "187282ab-40ef-47a9-9206-5099ba31e432",
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "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
          },
          "email": {
            "type": "string",
            "description": "description: The customer's email address\nThis field will be deprecated soon. Please refer to `customer.email` object",
            "deprecated": true,
            "example": "johntest@test.com",
            "nullable": true,
            "maxLength": 255
          },
          "name": {
            "type": "string",
            "description": "description: The customer's name\nThis field will be deprecated soon. Please refer to `customer.name` object",
            "deprecated": true,
            "example": "John Test",
            "nullable": true,
            "maxLength": 255
          },
          "phone": {
            "type": "string",
            "description": "The customer's phone number\nThis field will be deprecated soon. Please refer to `customer.phone` object",
            "deprecated": true,
            "example": "9123456789",
            "nullable": true,
            "maxLength": 255
          },
          "return_url": {
            "type": "string",
            "description": "The URL to redirect after the completion of the operation",
            "example": "https://hyperswitch.io",
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "three_ds",
            "nullable": true
          },
          "statement_descriptor_name": {
            "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. To be deprecated soon, use billing_descriptor instead.",
            "deprecated": true,
            "example": "Hyperswitch Router",
            "nullable": true,
            "maxLength": 255
          },
          "statement_descriptor_suffix": {
            "type": "string",
            "description": "Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 255 characters for the concatenated descriptor. To be deprecated soon, use billing_descriptor instead.",
            "deprecated": true,
            "example": "Payment for shoes purchase",
            "nullable": true,
            "maxLength": 255
          },
          "next_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NextActionData"
              }
            ],
            "nullable": true
          },
          "cancellation_reason": {
            "type": "string",
            "description": "If the payment intent was cancelled, this field provides a textual reason for the cancellation (e.g., \"requested_by_customer\", \"abandoned\").",
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "description": "The connector-specific error code from the last failed payment attempt associated with this payment intent.",
            "example": "E0001",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "description": "A human-readable error message from the last failed payment attempt associated with this payment intent.",
            "example": "Failed while verifying the card",
            "nullable": true
          },
          "unified_code": {
            "type": "string",
            "description": "error code unified across the connectors is received here if there was an error while calling connector",
            "nullable": true
          },
          "unified_message": {
            "type": "string",
            "description": "error message unified across the connectors is received here if there was an error while calling connector",
            "nullable": true
          },
          "error_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentErrorDetails"
              }
            ],
            "nullable": true
          },
          "payment_experience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentExperience"
              }
            ],
            "nullable": true
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "connector_label": {
            "type": "string",
            "description": "A label identifying the specific merchant connector account (MCA) used for this payment. This often combines the connector name, business country, and a custom label (e.g., \"stripe_US_primary\").",
            "example": "stripe_US_food",
            "nullable": true
          },
          "business_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "business_label": {
            "type": "string",
            "description": "The label identifying the specific business unit or profile under which this payment was processed by the merchant. To be deprecated soon. Pass the profile_id instead",
            "deprecated": true,
            "nullable": true
          },
          "business_sub_label": {
            "type": "string",
            "description": "An optional sub-label for further categorization of the business unit or profile used for this payment. To be deprecated soon. Pass the profile_id instead",
            "deprecated": true,
            "nullable": true
          },
          "allowed_payment_method_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodType"
            },
            "description": "Allowed Payment Method Types for a given PaymentIntent",
            "nullable": true
          },
          "manual_retry_allowed": {
            "type": "boolean",
            "description": "If true the payment can be retried with same or different payment method which means the confirm call can be made again.",
            "nullable": true
          },
          "connector_transaction_id": {
            "type": "string",
            "description": "A unique identifier for a payment provided by the connector",
            "example": "993672945374576J",
            "nullable": true
          },
          "frm_message": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FrmMessage"
              }
            ],
            "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
          },
          "connector_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorMetadata"
              }
            ],
            "nullable": true
          },
          "connector_response_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorMetadataResponse"
              }
            ],
            "nullable": true
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeatureMetadata"
              }
            ],
            "nullable": true
          },
          "reference_id": {
            "type": "string",
            "description": "reference(Identifier) to the payment at connector side",
            "example": "993672945374576J",
            "nullable": true
          },
          "payment_link": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentLinkResponse"
              }
            ],
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "The business profile that is associated with this payment",
            "nullable": true
          },
          "surcharge_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RequestSurchargeDetails"
              }
            ],
            "nullable": true
          },
          "attempt_count": {
            "type": "integer",
            "format": "int32",
            "description": "Total number of attempts associated with this payment"
          },
          "merchant_decision": {
            "type": "string",
            "description": "Denotes the action(approve or reject) taken by merchant in case of manual review. Manual review can occur when the transaction is marked as risky by the frm_processor, payment processor or when there is underpayment/over payment incase of crypto payment",
            "nullable": true
          },
          "merchant_connector_id": {
            "type": "string",
            "description": "Identifier of the connector ( merchant connector account ) which was chosen to make the payment",
            "nullable": true
          },
          "incremental_authorization_allowed": {
            "type": "boolean",
            "description": "If true, incremental authorization can be performed on this payment, in case the funds authorized initially fall short.",
            "nullable": true
          },
          "authorization_count": {
            "type": "integer",
            "format": "int32",
            "description": "Total number of authorizations happened in an incremental_authorization payment",
            "nullable": true
          },
          "incremental_authorizations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncrementalAuthorizationResponse"
            },
            "description": "List of incremental authorizations happened to the payment",
            "nullable": true
          },
          "external_authentication_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalAuthenticationDetailsResponse"
              }
            ],
            "nullable": true
          },
          "external_3ds_authentication_attempted": {
            "type": "boolean",
            "description": "Flag indicating if external 3ds authentication is made or not",
            "nullable": true
          },
          "expires_on": {
            "type": "string",
            "format": "date-time",
            "description": "Date Time for expiry of the payment",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "fingerprint": {
            "type": "string",
            "description": "Payment Fingerprint, to identify a particular card.\nIt is a 20 character long alphanumeric code.",
            "nullable": true
          },
          "browser_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "payment_channel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentChannel"
              }
            ],
            "nullable": true
          },
          "payment_method_id": {
            "type": "string",
            "description": "A unique identifier for the payment method used in this payment. If the payment method was saved or tokenized, this ID can be used to reference it for future transactions or recurring payments.\nRefer `payment_method_tokenization_details` for detailed view of payment method tokenization",
            "nullable": true
          },
          "network_transaction_id": {
            "type": "string",
            "description": "The network transaction ID is a unique identifier for the transaction as recognized by the payment network (e.g., Visa, Mastercard), this ID can be used to reference it for future transactions or recurring payments.\nRefer `payment_method_tokenization_details` for detailed view of payment method tokenization",
            "nullable": true
          },
          "network_transaction_link_id": {
            "type": "string",
            "description": "The Mastercard Transaction Link Identifier (TLID) for this payment. Returned on CITs that set up\nstored credentials. External-vault merchants should persist this and echo it back on subsequent\nMIT requests. Mandatory for Mastercard recurring/MIT (no static fallback).",
            "nullable": true
          },
          "payment_method_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodStatus"
              }
            ],
            "nullable": true
          },
          "updated": {
            "type": "string",
            "format": "date-time",
            "description": "Date time at which payment was updated",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "split_payments": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorChargeResponseData"
              }
            ],
            "nullable": true
          },
          "frm_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. FRM Metadata is useful for storing additional, structured information on an object related to FRM.",
            "nullable": true
          },
          "extended_authorization_applied": {
            "type": "boolean",
            "description": "flag that indicates if extended authorization is applied on this payment or not",
            "nullable": true
          },
          "extended_authorization_last_applied_at": {
            "type": "string",
            "format": "date-time",
            "description": "date and time at which extended authorization was last applied on this payment",
            "example": "2022-09-10T10:11:12Z",
            "nullable": true
          },
          "request_extended_authorization": {
            "type": "boolean",
            "description": "Optional boolean value to extent authorization period of this payment\n\ncapture method must be manual or manual_multiple",
            "default": false,
            "nullable": true
          },
          "capture_before": {
            "type": "string",
            "format": "date-time",
            "description": "date and time after which this payment cannot be captured",
            "nullable": true
          },
          "merchant_order_reference_id": {
            "type": "string",
            "description": "Merchant's identifier for the payment/invoice. This will be sent to the connector\nif the connector provides support to accept multiple reference ids.\nIn case the connector supports only one reference id, Hyperswitch's Payment ID will be sent as reference.",
            "example": "Custom_Order_id_123",
            "nullable": true,
            "maxLength": 255
          },
          "order_tax_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "connector_mandate_id": {
            "type": "string",
            "description": "Connector Identifier for the payment method",
            "nullable": true
          },
          "card_discovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardDiscovery"
              }
            ],
            "nullable": true
          },
          "force_3ds_challenge": {
            "type": "boolean",
            "description": "Indicates if 3ds challenge is forced",
            "nullable": true
          },
          "force_3ds_challenge_trigger": {
            "type": "boolean",
            "description": "Indicates if 3ds challenge is triggered",
            "nullable": true
          },
          "issuer_error_code": {
            "type": "string",
            "description": "Error code received from the issuer in case of failed payments",
            "nullable": true
          },
          "issuer_error_message": {
            "type": "string",
            "description": "Error message received from the issuer in case of failed payments",
            "nullable": true
          },
          "is_iframe_redirection_enabled": {
            "type": "boolean",
            "description": "Indicates if the redirection has to open in the iframe",
            "nullable": true
          },
          "whole_connector_response": {
            "type": "string",
            "description": "Contains whole connector response",
            "nullable": true
          },
          "enable_partial_authorization": {
            "type": "boolean",
            "description": "Allow partial authorization for this payment",
            "default": false,
            "nullable": true
          },
          "enable_overcapture": {
            "type": "boolean",
            "description": "Bool indicating if overcapture  must be requested for this payment",
            "nullable": true
          },
          "is_overcapture_enabled": {
            "type": "boolean",
            "description": "Boolean indicating whether overcapture is effectively enabled for this payment",
            "nullable": true
          },
          "network_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkDetails"
              }
            ],
            "nullable": true
          },
          "is_stored_credential": {
            "type": "boolean",
            "description": "Boolean flag indicating whether this payment method is stored and has been previously used for payments",
            "example": true,
            "nullable": true
          },
          "mit_category": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MitCategory"
              }
            ],
            "nullable": true
          },
          "billing_descriptor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BillingDescriptor"
              }
            ],
            "nullable": true
          },
          "tokenization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Tokenization"
              }
            ],
            "nullable": true
          },
          "partner_merchant_identifier_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PartnerMerchantIdentifierDetails"
              }
            ],
            "nullable": true
          },
          "payment_method_tokenization_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodTokenizationDetails"
              }
            ],
            "nullable": true
          },
          "installment_options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstallmentOption"
            },
            "description": "Installment payment options associated with this payment, grouped by payment method",
            "nullable": true
          },
          "installment_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InstallmentData"
              }
            ],
            "nullable": true
          },
          "sender_payment_instrument_id": {
            "type": "string",
            "description": "A connector-specific identifier representing the stored payment instrument",
            "nullable": true,
            "maxLength": 255
          }
        }
      },
      "PaymentsRetrieveRequest": {
        "type": "object",
        "required": [
          "resource_id",
          "force_sync"
        ],
        "properties": {
          "resource_id": {
            "type": "string",
            "description": "The type of ID (ex: payment intent id, payment attempt id or connector txn id)"
          },
          "merchant_id": {
            "type": "string",
            "description": "The identifier for the Merchant Account.",
            "nullable": true
          },
          "force_sync": {
            "type": "boolean",
            "description": "Decider to enable or disable the connector call for retrieve request"
          },
          "param": {
            "type": "string",
            "description": "Optional query parameters that might be specific to a connector or flow, passed through during the retrieve operation. Use with caution and refer to specific connector documentation if applicable.",
            "nullable": true
          },
          "connector": {
            "type": "string",
            "description": "Optionally specifies the connector to be used for a 'force_sync' retrieve operation. If provided, Hyperswitch will attempt to sync the payment status from this specific connector.",
            "nullable": true
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorDetailsWrap"
              }
            ],
            "nullable": true
          },
          "client_secret": {
            "type": "string",
            "description": "This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK",
            "nullable": true
          },
          "expand_captures": {
            "type": "boolean",
            "description": "If enabled provides list of captures linked to latest attempt",
            "nullable": true
          },
          "expand_attempts": {
            "type": "boolean",
            "description": "If enabled provides list of attempts linked to payment intent",
            "nullable": true
          },
          "all_keys_required": {
            "type": "boolean",
            "description": "If enabled, provides whole connector response",
            "nullable": true
          }
        }
      },
      "PaymentsSessionRequest": {
        "type": "object",
        "required": [
          "payment_id",
          "wallets"
        ],
        "properties": {
          "payment_id": {
            "type": "string",
            "description": "The identifier for the payment"
          },
          "client_secret": {
            "type": "string",
            "description": "This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK",
            "nullable": true
          },
          "wallets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMethodType"
            },
            "description": "The list of the supported wallets"
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorDetailsWrap"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentsSessionResponse": {
        "type": "object",
        "required": [
          "payment_id",
          "client_secret",
          "session_token"
        ],
        "properties": {
          "payment_id": {
            "type": "string",
            "description": "The identifier for the payment"
          },
          "client_secret": {
            "type": "string",
            "description": "This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK"
          },
          "session_token": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SessionToken"
            },
            "description": "The list of session token object"
          },
          "vault_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VaultDetailsResponse"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentsUpdateMetadataRequest": {
        "type": "object",
        "required": [
          "metadata"
        ],
        "properties": {
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object."
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeatureMetadata"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentsUpdateMetadataResponse": {
        "type": "object",
        "required": [
          "payment_id"
        ],
        "properties": {
          "payment_id": {
            "type": "string",
            "description": "The identifier for the payment"
          },
          "metadata": {
            "type": "object",
            "description": "Metadata is useful for storing additional, unstructured information on an object.",
            "nullable": true
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntentStatus"
              }
            ],
            "default": "requires_confirmation",
            "nullable": true
          },
          "feature_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeatureMetadata"
              }
            ],
            "nullable": true
          }
        }
      },
      "PaymentsUpdateRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The primary amount for the payment, provided in the lowest denomination of the specified currency (e.g., 6540 for $65.40 USD). This field is mandatory for creating a payment.",
            "example": 6540,
            "nullable": true,
            "minimum": 0
          },
          "order_tax_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Total tax amount applicable to the order, in the lowest denomination of the currency.",
            "example": 6540,
            "nullable": true
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ],
            "nullable": true
          },
          "amount_to_capture": {
            "type": "integer",
            "format": "int64",
            "description": "The amount to be captured from the user's payment method, in the lowest denomination. If not provided, and `capture_method` is `automatic`, the full payment `amount` will be captured. If `capture_method` is `manual`, this can be specified in the `/capture` call. Must be less than or equal to the authorized amount.",
            "example": 6540,
            "nullable": true
          },
          "shipping_cost": {
            "type": "integer",
            "format": "int64",
            "description": "The shipping cost for the payment. This is required for tax calculation in some regions.",
            "example": 6540,
            "nullable": true
          },
          "payment_id": {
            "type": "string",
            "description": "Optional. A merchant-provided unique identifier for the payment, contains 30 characters long (e.g., \"pay_mbabizu24mvu3mela5njyhpit4\"). If provided, it ensures idempotency for the payment creation request. If omitted, Hyperswitch generates a unique ID for the payment.",
            "example": "pay_mbabizu24mvu3mela5njyhpit4",
            "nullable": true,
            "maxLength": 30,
            "minLength": 30
          },
          "routing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StraightThroughAlgorithm"
              }
            ],
            "nullable": true
          },
          "connector": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Connector"
            },
            "description": "This allows to manually select a connector with which the payment can go through.",
            "example": [
              "stripe",
              "adyen"
            ],
            "nullable": true
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          },
          "authentication_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AuthenticationType"
              }
            ],
            "default": "three_ds",
            "nullable": true
          },
          "billing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "confirm": {
            "type": "boolean",
            "description": "If set to `true`, Hyperswitch attempts to confirm and authorize the payment immediately after creation, provided sufficient payment method details are included. If `false` or omitted (default is `false`), the payment is created with a status such as `requires_payment_method` or `requires_confirmation`, and a separate `POST /payments/{payment_id}/confirm` call is necessary to proceed with authorization.",
            "default": false,
            "example": true,
            "nullable": true
          },
          "customer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDetails"
              }
            ],
            "nullable": true
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier for the customer",
            "deprecated": true,
            "example": "cus_y3oqhf46pyzuxjbcn2giaqnb44",
            "nullable": true,
            "maxLength": 64,
            "minLength": 1
          },
          "off_session": {
            "type": "boolean",
            "description": "Set to true to indicate that the customer is not in your checkout flow during this payment, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and charge them later. When making a recurring payment by passing a mandate_id, this parameter is mandatory",
            "example": true,
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "An arbitrary string attached to the payment. Often useful for displaying to users or for your own internal record-keeping.",
            "example": "It's my first payment request",
            "nullable": true
          },
          "return_url": {
            "type": "string",
            "description": "The URL to redirect the customer to after they complete the payment process or authentication. This is crucial for flows that involve off-site redirection (e.g., 3DS, some bank redirects, wallet payments).",
            "example": "https://hyperswitch.io",
            "nullable": true,
            "maxLength": 2048
          },
          "setup_future_usage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FutureUsage"
              }
            ],
            "nullable": true
          },
          "payment_method_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodDataRequest"
              }
            ],
            "nullable": true
          },
          "payment_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethod"
              }
            ],
            "nullable": true
          },
          "payment_token": {
            "type": "string",
            "description": "As Hyperswitch tokenises the sensitive details about the payments method, it provides the payment_token as a reference to a stored payment method, ensuring that the sensitive details are not exposed in any manner.",
            "example": "187282ab-40ef-47a9-9206-5099ba31e432",
            "nullable": true
          },
          "shipping": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "statement_descriptor_name": {
            "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. To be deprecated soon, use billing_descriptor instead.",
            "deprecated": true,
            "example": "Hyperswitch Router",
            "nullable": true,
            "maxLength": 255
          },
          "statement_descriptor_suffix": {
            "type": "string",
            "description": "Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor. To be deprecated soon, use billing_descriptor instead.",
            "deprecated": true,
            "example": "Payment for shoes purchase",
            "nullable": true,
            "maxLength": 255
          },
          "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
          },
          "mandate_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MandateData"
              }
            ],
            "nullable": true
          },
          "customer_acceptance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerAcceptance"
              }
            ],
            "nullable": true
          },
          "browser_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          },
          "payment_experience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentExperience"
              }
            ],
            "nullable": true
          },
          "payment_method_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodType"
              }
            ],
            "nullable": true
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorDetailsWrap"
              }
            ],
            "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
          },
          "retry_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RetryAction"
              }
            ],
            "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
          },
          "connector_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorMetadata"
              }
            ],
            "nullable": true
          },
          "payment_link": {
            "type": "boolean",
            "description": "Whether to generate the payment link for this payment or not (if applicable)",
            "default": false,
            "example": true,
            "nullable": true
          },
          "payment_link_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentCreatePaymentLinkConfig"
              }
            ],
            "nullable": true
          },
          "payment_link_config_id": {
            "type": "string",
            "description": "Custom payment link config id set at business profile, send only if business_specific_configs is configured",
            "nullable": true
          },
          "surcharge_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RequestSurchargeDetails"
              }
            ],
            "nullable": true
          },
          "payment_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentType"
              }
            ],
            "nullable": true
          },
          "request_incremental_authorization": {
            "type": "boolean",
            "description": "Request an incremental authorization, i.e., increase the authorized amount on a confirmed payment before you capture it.",
            "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
          },
          "frm_metadata": {
            "type": "object",
            "description": "Additional data related to some frm(Fraud Risk Management) connectors",
            "nullable": true
          },
          "request_external_three_ds_authentication": {
            "type": "boolean",
            "description": "Whether to perform external authentication (if applicable)",
            "example": true,
            "nullable": true
          },
          "three_ds_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalThreeDsData"
              }
            ],
            "nullable": true
          },
          "recurring_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecurringDetails"
              }
            ],
            "nullable": true
          },
          "split_payments": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SplitPaymentsRequest"
              }
            ],
            "nullable": true
          },
          "request_extended_authorization": {
            "type": "boolean",
            "description": "Optional boolean value to extent authorization period of this payment\n\ncapture method must be manual or manual_multiple",
            "default": false,
            "nullable": true
          },
          "merchant_order_reference_id": {
            "type": "string",
            "description": "Your unique identifier for this payment or order. This ID helps you reconcile payments on your system. If provided, it is passed to the connector if supported.",
            "example": "Custom_Order_id_123",
            "nullable": true,
            "maxLength": 255
          },
          "skip_external_tax_calculation": {
            "type": "boolean",
            "description": "Whether to calculate tax for this payment intent",
            "nullable": true
          },
          "psd2_sca_exemption_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ScaExemptionType"
              }
            ],
            "nullable": true
          },
          "ctp_service_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CtpServiceDetails"
              }
            ],
            "nullable": true
          },
          "force_3ds_challenge": {
            "type": "boolean",
            "description": "Indicates if 3ds challenge is forced",
            "nullable": true
          },
          "threeds_method_comp_ind": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThreeDsCompletionIndicator"
              }
            ],
            "nullable": true
          },
          "is_iframe_redirection_enabled": {
            "type": "boolean",
            "description": "Indicates if the redirection has to open in the iframe",
            "nullable": true
          },
          "all_keys_required": {
            "type": "boolean",
            "description": "If enabled, provides whole connector response",
            "nullable": true
          },
          "payment_channel": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentChannel"
              }
            ],
            "nullable": true
          },
          "tax_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TaxStatus"
              }
            ],
            "nullable": true
          },
          "discount_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Total amount of the discount you have applied to the order or transaction.",
            "example": 6540,
            "nullable": true
          },
          "shipping_amount_tax": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "duty_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MinorUnit"
              }
            ],
            "nullable": true
          },
          "order_date": {
            "type": "string",
            "format": "date-time",
            "description": "Date the payer placed the order.",
            "nullable": true
          },
          "enable_partial_authorization": {
            "type": "boolean",
            "description": "Allow partial authorization for this payment",
            "default": false,
            "nullable": true
          },
          "enable_overcapture": {
            "type": "boolean",
            "description": "Boolean indicating whether to enable overcapture for this payment",
            "example": true,
            "nullable": true
          },
          "is_stored_credential": {
            "type": "boolean",
            "description": "Boolean flag indicating whether this payment method is stored and has been previously used for payments",
            "example": true,
            "nullable": true
          },
          "mit_category": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MitCategory"
              }
            ],
            "nullable": true
          },
          "billing_descriptor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BillingDescriptor"
              }
            ],
            "nullable": true
          },
          "tokenization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Tokenization"
              }
            ],
            "nullable": true
          },
          "partner_merchant_identifier_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PartnerMerchantIdentifierDetails"
              }
            ],
            "nullable": true
          },
          "installment_options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InstallmentOption"
            },
            "description": "Installment payment options grouped by payment method. When provided, the payment is treated as an installment payment.",
            "nullable": true
          },
          "installment_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InstallmentRequest"
              }
            ],
            "nullable": true
          },
          "profile_acquirer_id": {
            "type": "string",
            "description": "Identification for the profile acquirer to be used for this payment.",
            "nullable": true
          },
          "external_surcharge_strategy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SurchargeStrategy"
              }
            ],
            "nullable": true
          }
        }
      },
      "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
          }
        }
      },
      "PayoutCancelRequest": {
        "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
          }
        }
      },
      "PayoutConfirmRequest": {
        "type": "object",
        "required": [
          "client_secret"
        ],
        "properties": {
          "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
          },
          "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."
          },
          "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
          }
        }
      },
      "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."
      },
      "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"
        ]
      },
      "PayoutFulfillRequest": {
        "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
          }
        }
      },
      "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"
              }
            }
          }
        ]
      },
      "PayoutListFilters": {
        "type": "object",
        "required": [
          "connector",
          "currency",
          "status",
          "payout_method"
        ],
        "properties": {
          "connector": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutConnectors"
            },
            "description": "The list of available connector filters"
          },
          "currency": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Currency"
            },
            "description": "The list of available currency filters"
          },
          "status": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutStatus"
            },
            "description": "The list of available payout status filters"
          },
          "payout_method": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutType"
            },
            "description": "The list of available payout method filters"
          }
        }
      },
      "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"
      },
      "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"
        ]
      },
      "PayoutUpdateRequest": {
        "type": "object",
        "properties": {
          "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
          }
        }
      },
      "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
          }
        }
      },
      "PayoutsCreateRequest": {
        "type": "object",
        "required": [
          "amount",
          "currency"
        ],
        "properties": {
          "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.,",
            "minimum": 0
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "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
          },
          "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
          }
        }
      },
      "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
          }
        }
      },
      "PeriodUnit": {
        "type": "string",
        "enum": [
          "Day",
          "Week",
          "Month",
          "Year"
        ]
      },
      "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"
          }
        }
      },
      "PlatformAccountCreateRequest": {
        "type": "object",
        "required": [
          "organization_name"
        ],
        "properties": {
          "organization_name": {
            "type": "string",
            "example": "organization_abc",
            "maxLength": 64
          }
        }
      },
      "PlatformAccountCreateResponse": {
        "type": "object",
        "required": [
          "org_id",
          "org_type",
          "merchant_id",
          "merchant_account_type"
        ],
        "properties": {
          "org_id": {
            "type": "string",
            "example": "org_abc",
            "maxLength": 64,
            "minLength": 1
          },
          "org_name": {
            "type": "string",
            "example": "organization_abc",
            "nullable": true
          },
          "org_type": {
            "$ref": "#/components/schemas/OrganizationType"
          },
          "merchant_id": {
            "type": "string",
            "example": "merchant_abc"
          },
          "merchant_account_type": {
            "$ref": "#/components/schemas/MerchantAccountType"
          }
        }
      },
      "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"
        ]
      },
      "PostAuthenticationRequestPaymentMethodData": {
        "type": "object",
        "required": [
          "payment_method_type",
          "payment_method_data"
        ],
        "properties": {
          "payment_method_type": {
            "$ref": "#/components/schemas/AuthenticationPaymentMethodType"
          },
          "payment_method_data": {
            "$ref": "#/components/schemas/AuthenticationPaymentMethodData"
          }
        }
      },
      "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"
        ]
      },
      "PrimaryBusinessDetails": {
        "type": "object",
        "required": [
          "country",
          "business"
        ],
        "properties": {
          "country": {
            "$ref": "#/components/schemas/CountryAlpha2"
          },
          "business": {
            "type": "string",
            "example": "food"
          }
        },
        "additionalProperties": false
      },
      "PriorityLogicData": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the logic",
            "example": "success_rate_logic",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "Status of the logic execution",
            "example": "success",
            "nullable": true
          },
          "failure_reason": {
            "type": "string",
            "description": "Reason for failure if the logic failed",
            "example": "insufficient_data",
            "nullable": true
          }
        }
      },
      "PriorityLogicOutput": {
        "type": "object",
        "properties": {
          "isEnforcement": {
            "type": "boolean",
            "description": "Whether enforcement mode is enabled",
            "example": false,
            "nullable": true
          },
          "gws": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of gateways returned by the priority logic",
            "example": [
              "stripe:mca1",
              "adyen:mca2"
            ],
            "nullable": true
          },
          "priorityLogicTag": {
            "type": "string",
            "description": "Tag identifying the priority logic used",
            "nullable": true
          },
          "gatewayReferenceIds": {
            "type": "object",
            "description": "Map of gateway reference IDs",
            "nullable": true
          },
          "primaryLogic": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PriorityLogicData"
              }
            ],
            "nullable": true
          },
          "fallbackLogic": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PriorityLogicData"
              }
            ],
            "nullable": true
          }
        }
      },
      "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"
        ]
      },
      "ProfileAcquirerConfigsResponse": {
        "type": "object",
        "required": [
          "configs"
        ],
        "properties": {
          "default_acquirer_config": {
            "type": "string",
            "description": "The default bucket for acquirer configurations",
            "example": "pro_acq_LCRdERuylQvNQ4qh3QE0",
            "nullable": true
          },
          "configs": {
            "type": "object",
            "description": "Flattened map of acquirer configuration buckets",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/AcquirerBucketConfigResponse"
              }
            }
          }
        }
      },
      "ProfileAcquirerCreate": {
        "type": "object",
        "required": [
          "acquirer_assigned_merchant_id",
          "merchant_name",
          "network",
          "acquirer_bin",
          "profile_id"
        ],
        "properties": {
          "acquirer_assigned_merchant_id": {
            "type": "string",
            "description": "The merchant id assigned by the acquirer",
            "example": "M123456789"
          },
          "merchant_name": {
            "type": "string",
            "description": "merchant name",
            "example": "NewAge Retailer"
          },
          "network": {
            "type": "string",
            "description": "Network provider",
            "example": "VISA"
          },
          "acquirer_bin": {
            "type": "string",
            "description": "Acquirer bin",
            "example": "456789"
          },
          "acquirer_ica": {
            "type": "string",
            "description": "Acquirer ica provided by acquirer",
            "example": "401288",
            "nullable": true
          },
          "acquirer_fraud_rate": {
            "type": "number",
            "format": "double",
            "description": "Fraud rate for the particular acquirer configuration",
            "example": 0.01,
            "nullable": true
          },
          "acquirer_country_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "Parent profile id to link the acquirer account with",
            "example": "pro_ky0yNyOXXlA5hF8JzE5q"
          },
          "is_default": {
            "type": "boolean",
            "description": "Whether this configuration bucket is the default fallback for the profile.",
            "nullable": true
          }
        }
      },
      "ProfileAcquirerId": {
        "type": "string",
        "description": "A type for profile_acquirer_id that can be used for profile acquirer ids"
      },
      "ProfileAcquirerResponse": {
        "type": "object",
        "required": [
          "profile_acquirer_id",
          "profile_id",
          "is_default"
        ],
        "properties": {
          "profile_acquirer_id": {
            "type": "string",
            "description": "The unique identifier of the profile acquirer",
            "example": "pro_acq_LCRdERuylQvNQ4qh3QE0"
          },
          "acquirer_assigned_merchant_id": {
            "type": "string",
            "description": "The merchant id assigned by the acquirer",
            "example": "M123456789",
            "nullable": true
          },
          "merchant_name": {
            "type": "string",
            "description": "Merchant name",
            "example": "NewAge Retailer",
            "nullable": true
          },
          "network": {
            "type": "string",
            "description": "Network provider",
            "example": "VISA",
            "nullable": true
          },
          "acquirer_bin": {
            "type": "string",
            "description": "Acquirer bin",
            "example": "456789",
            "nullable": true
          },
          "acquirer_ica": {
            "type": "string",
            "description": "Acquirer ica provided by acquirer",
            "example": "401288",
            "nullable": true
          },
          "acquirer_fraud_rate": {
            "type": "number",
            "format": "double",
            "description": "Fraud rate for the particular acquirer configuration",
            "example": 0.01,
            "nullable": true
          },
          "acquirer_country_code": {
            "type": "string",
            "description": "Acquirer country code",
            "example": "US",
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "Parent profile id to link the acquirer account with",
            "example": "pro_ky0yNyOXXlA5hF8JzE5q"
          },
          "is_default": {
            "type": "boolean",
            "description": "Whether this configuration bucket is the default fallback for the profile."
          }
        }
      },
      "ProfileAcquirerUpdate": {
        "type": "object",
        "properties": {
          "acquirer_assigned_merchant_id": {
            "type": "string",
            "example": "M987654321",
            "nullable": true
          },
          "merchant_name": {
            "type": "string",
            "example": "Updated Retailer Name",
            "nullable": true
          },
          "network": {
            "type": "string",
            "description": "The card network this configuration entry targets — optional if updating just the default.",
            "example": "MASTERCARD",
            "nullable": true
          },
          "acquirer_bin": {
            "type": "string",
            "example": "987654",
            "nullable": true
          },
          "acquirer_ica": {
            "type": "string",
            "example": "501299",
            "nullable": true
          },
          "acquirer_fraud_rate": {
            "type": "number",
            "format": "double",
            "example": "0.02",
            "nullable": true
          },
          "acquirer_country_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryAlpha2"
              }
            ],
            "nullable": true
          },
          "is_default": {
            "type": "boolean",
            "description": "Whether this configuration bucket is the default fallback for the profile.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProfileCreate": {
        "type": "object",
        "properties": {
          "profile_name": {
            "type": "string",
            "description": "The name of profile",
            "nullable": true,
            "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
          },
          "routing_algorithm": {
            "type": "object",
            "description": "The routing algorithm to be used for routing payments to desired connectors",
            "nullable": true
          },
          "intent_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
          },
          "frm_routing_algorithm": {
            "type": "object",
            "description": "The frm routing algorithm to be used for routing payments to desired FRM's",
            "nullable": true
          },
          "payout_routing_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StaticRoutingAlgorithm"
              }
            ],
            "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": {
            "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": {
            "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_auto_retries_enabled": {
            "type": "boolean",
            "description": "Indicates if is_auto_retries_enabled is enabled or not.",
            "nullable": true
          },
          "max_auto_retries_enabled": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of auto retries allowed for a payment",
            "nullable": true,
            "minimum": 0
          },
          "always_request_extended_authorization": {
            "type": "boolean",
            "description": "Bool indicating if extended authentication must be requested for all payments",
            "nullable": true
          },
          "is_click_to_pay_enabled": {
            "type": "boolean",
            "description": "Indicates if click to pay is enabled or not."
          },
          "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
          },
          "force_3ds_challenge": {
            "type": "boolean",
            "description": "Indicates if 3ds challenge is forced",
            "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_pre_network_tokenization_enabled": {
            "type": "boolean",
            "description": "Indicates if pre network tokenization is enabled or not",
            "nullable": true
          },
          "merchant_category_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantCategoryCode"
              }
            ],
            "nullable": true
          },
          "merchant_country_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantCountryCode"
              }
            ],
            "nullable": true
          },
          "dispute_polling_interval": {
            "type": "integer",
            "format": "int32",
            "description": "Time interval (in hours) for polling the connector to check  for new disputes",
            "example": 2,
            "nullable": true
          },
          "is_manual_retry_enabled": {
            "type": "boolean",
            "description": "Indicates if manual retry for payment is enabled or not",
            "nullable": true
          },
          "always_enable_overcapture": {
            "type": "boolean",
            "description": "Bool indicating if overcapture  must be requested for all payments",
            "nullable": true
          },
          "is_external_vault_enabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalVaultEnabled"
              }
            ],
            "nullable": true
          },
          "external_vault_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalVaultConnectorDetails"
              }
            ],
            "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
          },
          "network_tokenization_credentials": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokeizationProviderCredentials"
              }
            ],
            "nullable": true
          },
          "payment_method_blocking": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodBlockingConfig"
              }
            ],
            "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```"
          }
        }
      },
      "ProfileId": {
        "type": "string",
        "description": "A type for profile_id that can be used for business profile ids"
      },
      "ProfileResponse": {
        "type": "object",
        "required": [
          "merchant_id",
          "profile_id",
          "profile_name",
          "enable_payment_response_hash",
          "redirect_to_merchant_with_http_post",
          "is_tax_connector_enabled",
          "is_network_tokenization_enabled",
          "is_auto_retries_enabled",
          "is_click_to_pay_enabled",
          "is_clear_pan_retries_enabled",
          "force_3ds_challenge",
          "is_pre_network_tokenization_enabled"
        ],
        "properties": {
          "merchant_id": {
            "type": "string",
            "description": "The identifier for Merchant Account",
            "example": "y3oqhf46pyzuxjbcn2giaqnb44",
            "maxLength": 64
          },
          "profile_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
          },
          "routing_algorithm": {
            "type": "object",
            "description": "The routing algorithm to be used for routing payments to desired connectors",
            "nullable": true
          },
          "intent_fulfillment_time": {
            "type": "integer",
            "format": "int64",
            "description": "Will be used to determine the time till which your payment will be active once the payment session starts",
            "example": 900,
            "nullable": true
          },
          "frm_routing_algorithm": {
            "type": "object",
            "description": "The routing algorithm to be used to process the incoming request from merchant to outgoing payment processor or payment method. The default is 'Custom'",
            "nullable": true
          },
          "payout_routing_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StaticRoutingAlgorithm"
              }
            ],
            "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": {
            "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": {
            "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
          },
          "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
          },
          "is_auto_retries_enabled": {
            "type": "boolean",
            "description": "Indicates if is_auto_retries_enabled is enabled or not.",
            "default": false,
            "example": false
          },
          "max_auto_retries_enabled": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of auto retries allowed for a payment",
            "nullable": true
          },
          "always_request_extended_authorization": {
            "type": "boolean",
            "description": "Bool indicating if extended authentication must be requested for all payments",
            "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."
          },
          "force_3ds_challenge": {
            "type": "boolean",
            "description": "Indicates if 3ds challenge is forced"
          },
          "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_pre_network_tokenization_enabled": {
            "type": "boolean",
            "description": "Indicates if pre network tokenization is enabled or not",
            "default": false,
            "example": false
          },
          "acquirer_configs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileAcquirerResponse"
            },
            "description": "Acquirer configs (Deprecated - use `acquirer_config_bucket` instead)",
            "deprecated": true,
            "nullable": true
          },
          "acquirer_config_bucket": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProfileAcquirerConfigsResponse"
              }
            ],
            "nullable": true
          },
          "is_iframe_redirection_enabled": {
            "type": "boolean",
            "description": "Indicates if the redirection has to open in the iframe",
            "example": false,
            "nullable": true
          },
          "merchant_category_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantCategoryCode"
              }
            ],
            "nullable": true
          },
          "merchant_country_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantCountryCode"
              }
            ],
            "nullable": true
          },
          "dispute_polling_interval": {
            "type": "integer",
            "format": "int32",
            "description": "Time interval (in hours) for polling the connector to check dispute statuses",
            "example": 2,
            "nullable": true,
            "minimum": 0
          },
          "is_manual_retry_enabled": {
            "type": "boolean",
            "description": "Indicates if manual retry for payment is enabled or not",
            "nullable": true
          },
          "always_enable_overcapture": {
            "type": "boolean",
            "description": "Bool indicating if overcapture  must be requested for all payments",
            "nullable": true
          },
          "is_external_vault_enabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalVaultEnabled"
              }
            ],
            "nullable": true
          },
          "external_vault_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalVaultConnectorDetails"
              }
            ],
            "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
          },
          "network_tokenization_credentials": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NetworkTokeizationProviderCredentials"
              }
            ],
            "nullable": true
          },
          "payment_method_blocking": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodBlockingConfig"
              }
            ],
            "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"
          }
        }
      },
      "RankingAlgorithm": {
        "type": "string",
        "enum": [
          "SR_BASED_ROUTING",
          "PL_BASED_ROUTING",
          "NTW_BASED_ROUTING"
        ]
      },
      "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
          }
        }
      },
      "RecipientCardData": {
        "type": "object",
        "required": [
          "card_number",
          "card_exp_month",
          "card_exp_year"
        ],
        "properties": {
          "card_number": {
            "type": "string",
            "example": "4000000000009995"
          },
          "card_exp_month": {
            "type": "string",
            "example": "03"
          },
          "card_exp_year": {
            "type": "string",
            "example": "30"
          },
          "card_holder_name": {
            "type": "string",
            "example": "John Doe",
            "nullable": true
          }
        }
      },
      "RecipientPaymentMethodData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "card"
            ],
            "properties": {
              "card": {
                "$ref": "#/components/schemas/RecipientCardData"
              }
            }
          }
        ]
      },
      "RecommendedAction": {
        "type": "string",
        "enum": [
          "do_not_retry",
          "retry_after_10_days",
          "retry_after_1_hour",
          "retry_after_24_hours",
          "retry_after_2_days",
          "retry_after_4_days",
          "retry_after_6_days",
          "retry_after_8_days",
          "retry_after_instrument_update",
          "retry_later",
          "retry_with_different_payment_method_data",
          "stop_recurring"
        ]
      },
      "ReconStatus": {
        "type": "string",
        "enum": [
          "not_requested",
          "requested",
          "active",
          "disabled"
        ]
      },
      "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
          }
        }
      },
      "RefundListRequest": {
        "allOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/TimeRange"
              }
            ],
            "nullable": true
          },
          {
            "type": "object",
            "properties": {
              "payment_id": {
                "type": "string",
                "description": "The identifier for the payment",
                "nullable": true
              },
              "refund_id": {
                "type": "string",
                "description": "The identifier for the refund",
                "nullable": true
              },
              "profile_id": {
                "type": "string",
                "description": "The identifier for business profile",
                "nullable": true
              },
              "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
              },
              "merchant_connector_id": {
                "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"
          }
        }
      },
      "RefundRequest": {
        "type": "object",
        "required": [
          "payment_id"
        ],
        "properties": {
          "payment_id": {
            "type": "string",
            "description": "The payment id against which refund is to be initiated",
            "example": "pay_mbabizu24mvu3mela5njyhpit4",
            "maxLength": 30,
            "minLength": 30
          },
          "refund_id": {
            "type": "string",
            "description": "Unique Identifier for the Refund. This is to ensure idempotency for multiple partial refunds initiated against the same payment. If this is not passed by the merchant, this field shall be auto generated and provided in the API response. It is recommended to generate uuid(v4) as the refund_id.",
            "example": "ref_mbabizu24mvu3mela5njyhpit4",
            "nullable": true,
            "maxLength": 30,
            "minLength": 30
          },
          "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 full payment amount",
            "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. In case the payment went through Stripe, this field needs to be passed with one of these enums: `duplicate`, `fraudulent`, or `requested_by_customer`",
            "example": "Customer returned the product",
            "nullable": true,
            "maxLength": 255
          },
          "refund_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RefundType"
              }
            ],
            "default": "Instant",
            "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
          },
          "merchant_connector_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantConnectorDetailsWrap"
              }
            ],
            "nullable": true
          },
          "split_refunds": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SplitRefund"
              }
            ],
            "nullable": true
          },
          "all_keys_required": {
            "type": "boolean",
            "description": "If true, returns stringified connector raw response body",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RefundResponse": {
        "type": "object",
        "required": [
          "refund_id",
          "payment_id",
          "amount",
          "currency",
          "status",
          "connector"
        ],
        "properties": {
          "refund_id": {
            "type": "string",
            "description": "Unique Identifier for the refund"
          },
          "payment_id": {
            "type": "string",
            "description": "The payment id against which refund is initiated"
          },
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The refund amount, which should be less than or equal to the total payment 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,
            "minimum": 100
          },
          "currency": {
            "type": "string",
            "description": "The three-letter ISO currency code"
          },
          "status": {
            "$ref": "#/components/schemas/RefundStatus"
          },
          "reason": {
            "type": "string",
            "description": "An arbitrary string attached to the object. Often useful for displaying to users and your customer support executive",
            "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
          },
          "error_message": {
            "type": "string",
            "description": "The error message",
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "description": "The code for the error",
            "nullable": true
          },
          "unified_code": {
            "type": "string",
            "description": "Error code unified across the connectors is received here if there was an error while calling connector",
            "nullable": true
          },
          "unified_message": {
            "type": "string",
            "description": "Error message unified across the connectors is received here if there was an error while calling connector",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp at which refund is created",
            "nullable": true
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp at which refund is updated",
            "nullable": true
          },
          "connector": {
            "type": "string",
            "description": "The connector used for the refund and the corresponding payment",
            "example": "stripe"
          },
          "profile_id": {
            "type": "string",
            "description": "The id of business profile for this refund",
            "nullable": true
          },
          "merchant_connector_id": {
            "type": "string",
            "description": "The merchant_connector_id of the processor through which this payment went through",
            "nullable": true
          },
          "split_refunds": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SplitRefund"
              }
            ],
            "nullable": true
          },
          "issuer_error_code": {
            "type": "string",
            "description": "Error code received from the issuer in case of failed refunds",
            "nullable": true
          },
          "issuer_error_message": {
            "type": "string",
            "description": "Error message received from the issuer in case of failed refunds",
            "nullable": true
          },
          "raw_connector_response": {
            "type": "string",
            "description": "Contains whole connector response",
            "nullable": true
          },
          "connector_refund_id": {
            "type": "string",
            "description": "A unique identifier for a payment provided by the connector",
            "nullable": true
          }
        }
      },
      "RefundStatus": {
        "type": "string",
        "description": "The status for refunds",
        "enum": [
          "succeeded",
          "failed",
          "pending",
          "review"
        ]
      },
      "RefundType": {
        "type": "string",
        "description": "To indicate whether to refund needs to be instant or scheduled",
        "enum": [
          "scheduled",
          "instant"
        ]
      },
      "RefundUpdateRequest": {
        "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
      },
      "RefundableCreditsHandling": {
        "type": "string",
        "enum": [
          "no_action",
          "schedule_refund"
        ]
      },
      "RegisterConnectorWebhookResponse": {
        "type": "object",
        "description": "Response for registering connector webhooks.\nThe response shape mirrors the request shape:\nlegacy requests that use `event_type` receive the legacy fields, while new requests that use `scope` receive `scope_type`, `requested`, and `results`.",
        "properties": {
          "event_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorWebhookEventType"
              }
            ],
            "nullable": true
          },
          "connector_webhook_id": {
            "type": "string",
            "description": "To be Deprecated soon; prefer `results` for per-identifier registration outcomes.",
            "nullable": true
          },
          "webhook_registration_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookRegistrationStatus"
              }
            ],
            "nullable": true
          },
          "error_code": {
            "type": "string",
            "description": "To be Deprecated soon; prefer `results` for per-identifier registration outcomes.",
            "nullable": true
          },
          "error_message": {
            "type": "string",
            "description": "To be Deprecated soon; prefer `results` for per-identifier registration outcomes.",
            "nullable": true
          },
          "secret_generation_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookSecretGenerationStatus"
              }
            ],
            "nullable": true
          },
          "secret_error": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookSecretErrorDetails"
              }
            ],
            "nullable": true
          },
          "scope_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ScopeType"
              }
            ],
            "nullable": true
          },
          "requested": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScopeIdentifier"
            },
            "description": "List of identifiers that were requested to be registered.",
            "nullable": true
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebhookRegistrationResult"
            },
            "description": "Per-identifier registration results.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RelayCaptureRequestData": {
        "type": "object",
        "required": [
          "authorized_amount",
          "amount_to_capture",
          "currency"
        ],
        "properties": {
          "authorized_amount": {
            "type": "integer",
            "format": "int64",
            "description": "The amount that is authorized for capture",
            "example": 6540
          },
          "amount_to_capture": {
            "type": "integer",
            "format": "int64",
            "description": "The amount that is being captured",
            "example": 6540
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "capture_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CaptureMethod"
              }
            ],
            "nullable": true
          }
        }
      },
      "RelayData": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "refund"
            ],
            "properties": {
              "refund": {
                "$ref": "#/components/schemas/RelayRefundRequestData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "capture"
            ],
            "properties": {
              "capture": {
                "$ref": "#/components/schemas/RelayCaptureRequestData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "incremental_authorization"
            ],
            "properties": {
              "incremental_authorization": {
                "$ref": "#/components/schemas/RelayIncrementalAuthorizationRequestData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "void"
            ],
            "properties": {
              "void": {
                "$ref": "#/components/schemas/RelayVoidRequestData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "unreferenced_refund"
            ],
            "properties": {
              "unreferenced_refund": {
                "$ref": "#/components/schemas/RelayUnreferencedRefundData"
              }
            }
          }
        ]
      },
      "RelayError": {
        "type": "object",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "The error code"
          },
          "message": {
            "type": "string",
            "description": "The error message"
          }
        }
      },
      "RelayIncrementalAuthorizationRequestData": {
        "type": "object",
        "required": [
          "total_amount",
          "additional_amount",
          "currency"
        ],
        "properties": {
          "total_amount": {
            "type": "integer",
            "format": "int64",
            "description": "Original amount + additional amount of the transaction",
            "example": 6540
          },
          "additional_amount": {
            "type": "integer",
            "format": "int64",
            "description": "The amount by which the payment needs is incremented",
            "example": 6540
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          }
        }
      },
      "RelayRefundRequestData": {
        "type": "object",
        "required": [
          "amount",
          "currency"
        ],
        "properties": {
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The amount that is being refunded",
            "example": 6540
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "reason": {
            "type": "string",
            "description": "The reason for the refund",
            "example": "Customer returned the product",
            "nullable": true,
            "maxLength": 255
          }
        }
      },
      "RelayRequest": {
        "type": "object",
        "required": [
          "connector_resource_id",
          "connector_id",
          "type"
        ],
        "properties": {
          "connector_resource_id": {
            "type": "string",
            "description": "The identifier that is associated to a resource at the connector reference to which the relay request is being made",
            "example": "7256228702616471803954"
          },
          "connector_id": {
            "type": "string",
            "description": "Identifier of the connector ( merchant connector account ) which was chosen to make the payment",
            "example": "mca_5apGeP94tMts6rg3U3kR"
          },
          "type": {
            "$ref": "#/components/schemas/RelayType"
          },
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RelayData"
              }
            ],
            "nullable": true
          }
        }
      },
      "RelayResponse": {
        "type": "object",
        "required": [
          "id",
          "status",
          "connector_resource_id",
          "connector_id",
          "profile_id",
          "type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the Relay",
            "example": "relay_mbabizu24mvu3mela5njyhpit4"
          },
          "status": {
            "$ref": "#/components/schemas/RelayStatus"
          },
          "connector_resource_id": {
            "type": "string",
            "description": "The identifier that is associated to a resource at the connector reference to which the relay request is being made",
            "example": "pi_3MKEivSFNglxLpam0ZaL98q9"
          },
          "error": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RelayError"
              }
            ],
            "nullable": true
          },
          "connector_reference_id": {
            "type": "string",
            "description": "The identifier that is associated to a resource at the connector to which the relay request is being made",
            "example": "re_3QY4TnEOqOywnAIx1Mm1p7GQ",
            "nullable": true
          },
          "connector_id": {
            "type": "string",
            "description": "Identifier of the connector ( merchant connector account ) which was chosen to make the payment",
            "example": "mca_5apGeP94tMts6rg3U3kR"
          },
          "profile_id": {
            "type": "string",
            "description": "The business profile that is associated with this relay request.",
            "example": "pro_abcdefghijklmnopqrstuvwxyz"
          },
          "type": {
            "$ref": "#/components/schemas/RelayType"
          },
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RelayData"
              }
            ],
            "nullable": true
          }
        }
      },
      "RelayStatus": {
        "type": "string",
        "enum": [
          "created",
          "pending",
          "success",
          "failure"
        ]
      },
      "RelayType": {
        "type": "string",
        "enum": [
          "refund",
          "capture",
          "incremental_authorization",
          "void",
          "unreferenced_refund"
        ]
      },
      "RelayUnreferencedRefundData": {
        "type": "object",
        "required": [
          "amount",
          "currency",
          "customer_id",
          "recipient_payment_method_data"
        ],
        "properties": {
          "amount": {
            "type": "integer",
            "format": "int64",
            "example": 6540
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "customer_id": {
            "type": "string"
          },
          "recipient_payment_method_data": {
            "$ref": "#/components/schemas/RecipientPaymentMethodData"
          }
        }
      },
      "RelayVoidRequestData": {
        "type": "object",
        "required": [
          "amount"
        ],
        "properties": {
          "amount": {
            "type": "integer",
            "format": "int64",
            "description": "The amount of the transaction that is being voided",
            "example": 6540
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Currency"
              }
            ],
            "nullable": true
          },
          "cancellation_reason": {
            "type": "string",
            "description": "The cancellation reason for voiding the transaction",
            "example": "Requested by merchant",
            "nullable": true
          }
        }
      },
      "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
          }
        }
      },
      "ResponsePaymentMethodTypes": {
        "type": "object",
        "required": [
          "payment_method_type"
        ],
        "properties": {
          "payment_method_type": {
            "$ref": "#/components/schemas/PaymentMethodType"
          },
          "payment_experience": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentExperienceTypes"
            },
            "description": "The list of payment experiences enabled, if applicable for a payment method type",
            "nullable": true
          },
          "card_networks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardNetworkTypes"
            },
            "description": "The list of card networks enabled, if applicable for a payment method type",
            "nullable": true
          },
          "bank_names": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BankCodeResponse"
            },
            "description": "The list of banks enabled, if applicable for a payment method type . To be deprecated soon.",
            "deprecated": true,
            "nullable": true
          },
          "bank_debits": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BankDebitTypes"
              }
            ],
            "nullable": true
          },
          "bank_transfers": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BankTransferTypes"
              }
            ],
            "nullable": true
          },
          "required_fields": {
            "type": "object",
            "description": "Required fields for the payment_method_type.",
            "additionalProperties": {
              "$ref": "#/components/schemas/RequiredFieldInfo"
            },
            "nullable": true
          },
          "surcharge_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SurchargeDetailsResponse"
              }
            ],
            "nullable": true
          },
          "pm_auth_connector": {
            "type": "string",
            "description": "auth service connector label for this payment method type, if exists",
            "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"
          }
        }
      },
      "ResumeOption": {
        "type": "string",
        "enum": [
          "immediately",
          "specific_date"
        ]
      },
      "ResumeSubscriptionRequest": {
        "type": "object",
        "description": "Request payload for resuming a subscription.",
        "properties": {
          "resume_option": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ResumeOption"
              }
            ],
            "nullable": true
          },
          "resume_date": {
            "type": "string",
            "description": "Optional date when the subscription should be resumed (if not provided, resumes immediately)",
            "nullable": true
          },
          "charges_handling": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ChargesHandling"
              }
            ],
            "nullable": true
          },
          "unpaid_invoices_handling": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UnpaidInvoicesHandling"
              }
            ],
            "nullable": true
          }
        }
      },
      "ResumeSubscriptionResponse": {
        "type": "object",
        "description": "Response payload returned after successfully resuming a subscription.",
        "required": [
          "id",
          "status",
          "profile_id",
          "merchant_id",
          "customer_id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/SubscriptionId"
          },
          "status": {
            "$ref": "#/components/schemas/SubscriptionStatus"
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "Merchant specific Unique identifier.",
            "nullable": true
          },
          "profile_id": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "merchant_id": {
            "$ref": "#/components/schemas/MerchantId"
          },
          "customer_id": {
            "$ref": "#/components/schemas/CustomerId"
          },
          "next_billing_at": {
            "type": "string",
            "description": "Date when the subscription was resumed",
            "nullable": true
          }
        }
      },
      "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"
          }
        }
      },
      "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"
        ]
      },
      "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",
        "properties": {
          "name": {
            "type": "string",
            "description": "Unique name of the routing configuration.\n\nThis identifier is used to reference the routing config internally.\n\nExample:\n```json\n\"default_card_routing\"\n```",
            "example": "default_card_routing",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Optional human-readable description of the routing configuration.\n\nExample:\n```json\n\"Primary routing strategy for card payments in India\"\n```",
            "example": "Primary routing strategy for card payments in Middle east",
            "nullable": true
          },
          "algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StaticRoutingAlgorithm"
              }
            ],
            "nullable": true
          },
          "profile_id": {
            "type": "string",
            "description": "Profile ID associated with this routing configuration.\n\nRouting configs can be scoped per business profile.\n\nExample:\n```json\n\"profile_123\"\n```",
            "example": "profile_123",
            "nullable": true
          },
          "transaction_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionType"
              }
            ],
            "nullable": true
          }
        }
      },
      "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
          }
        }
      },
      "RoutingEvaluateRequest": {
        "type": "object",
        "description": "Request body used to evaluate routing rules.\n\nThis API evaluates routing logic based on dynamic parameters\nlike payment method, amount, country, card_bin, etc.",
        "required": [
          "created_by",
          "parameters",
          "fallback_output"
        ],
        "properties": {
          "created_by": {
            "type": "string",
            "description": "Identifier of the user/system triggering routing evaluation.\n\nExample:\n```json\n\"created_by\": \"some_id\"\n```",
            "example": "profile_123"
          },
          "payment_id": {
            "type": "string",
            "description": "Payment ID for debugging and tracing routing decisions.\n\nExample:\n```json\n\"payment_id\": \"pay_abc123\"\n```",
            "example": "pay_abc123",
            "nullable": true
          },
          "parameters": {
            "type": "object",
            "description": "Dynamic parameters used during routing evaluation.\n\nEach key represents a routing attribute.\n\nExample fields:\n\n- `payment_method`\n- `payment_method_type`\n- `amount`\n- `currency`\n- `authentication_type`\n- `card_bin`\n- `capture_method`\n- `business_country`\n- `billing_country`\n- `business_label`\n- `setup_future_usage`\n- `card_network`\n- `payment_type`\n- `mandate_type`\n- `mandate_acceptance_type`\n- `metadata`\n\nExample:\n```json\n{\n\"payment_method\": { \"type\": \"enum_variant\", \"value\": \"card\" },\n\"amount\": { \"type\": \"number\", \"value\": 10 },\n\"currency\": { \"type\": \"str_value\", \"value\": \"INR\" },\n\"authentication_type\": { \"type\": \"enum_variant\", \"value\": \"three_ds\" },\n\"card_bin\": { \"type\": \"str_value\", \"value\": \"424242\" },\n\"business_country\": { \"type\": \"str_value\", \"value\": \"IN\" },\n\"setup_future_usage\": { \"type\": \"enum_variant\", \"value\": \"off_session\" },\n\"card_network\": { \"type\": \"enum_variant\", \"value\": \"visa\" },\n\"metadata\": {\n\"type\": \"metadata_variant\",\n\"value\": { \"key\": \"key1\", \"value\": \"value1\" }\n}\n}\n```\n\nFor the complete superset of supported routing keys,\nrefer to `routing_configs.keys` in:\nhttps://github.com/juspay/decision-engine/blob/main/config/development.toml"
          },
          "fallback_output": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeRoutableConnectorChoice"
            },
            "description": "Fallback connectors used if routing rule evaluation fails.\n\nThese connectors will be returned if no rule matches.\n\nExample:\n```json\n[\n{\n\"gateway_name\": \"stripe\",\n\"gateway_id\": \"mca_123\"\n}\n]\n```"
          }
        }
      },
      "RoutingEvaluateResponse": {
        "type": "object",
        "description": "Response returned after routing evaluation.\n\nContains:\n- Routing status\n- Raw output structure (priority / volume_split)\n- Final evaluated connectors\n- Eligible connectors list",
        "required": [
          "status",
          "output",
          "evaluated_output",
          "eligible_connectors"
        ],
        "properties": {
          "status": {
            "type": "string",
            "description": "Status of routing evaluation.\n\nExample:\n```json\n\"success\"\n```",
            "example": "success"
          },
          "output": {
            "description": "Raw routing output returned by routing engine.\n\nPossible structures:\n\n1. Volume Split:\n```json\n{\n\"type\": \"volume_split\",\n\"splits\": [\n{\n\"connector\": { \"gateway_name\": \"adyen\", \"gateway_id\": \"mca_124\" },\n\"split\": 60\n},\n{\n\"connector\": { \"gateway_name\": \"stripe\", \"gateway_id\": \"mca_123\" },\n\"split\": 40\n}\n]\n}\n```\n\n2. Priority:\n```json\n{\n\"type\": \"priority\",\n\"connectors\": [\n{ \"gateway_name\": \"stripe\", \"gateway_id\": \"mca_123\" },\n{ \"gateway_name\": \"adyen\", \"gateway_id\": \"mca_124\" }\n]\n}\n```"
          },
          "evaluated_output": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutableConnectorChoice"
            },
            "description": "Final connector(s) selected after evaluation.\n\nExample:\n```json\n[\n{\n\"connector\": \"stripe\",\n\"merchant_connector_id\": \"mca_123\"\n}\n]\n```"
          },
          "eligible_connectors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutableConnectorChoice"
            }
          }
        }
      },
      "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
          }
        }
      },
      "RoutingVolumeSplitResponse": {
        "type": "object",
        "required": [
          "split"
        ],
        "properties": {
          "split": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          }
        }
      },
      "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"
      },
      "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."
      },
      "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"
        }
      },
      "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
      },
      "SubmitEvidenceRequest": {
        "type": "object",
        "required": [
          "dispute_id"
        ],
        "properties": {
          "dispute_id": {
            "type": "string",
            "description": "Dispute Id"
          },
          "access_activity_log": {
            "type": "string",
            "description": "Logs showing the usage of service by customer",
            "nullable": true
          },
          "billing_address": {
            "type": "string",
            "description": "Billing address of the customer",
            "nullable": true
          },
          "cancellation_policy": {
            "type": "string",
            "description": "File Id of cancellation policy",
            "nullable": true
          },
          "cancellation_policy_disclosure": {
            "type": "string",
            "description": "Details of showing cancellation policy to customer before purchase",
            "nullable": true
          },
          "cancellation_rebuttal": {
            "type": "string",
            "description": "Details telling why customer's subscription was not cancelled",
            "nullable": true
          },
          "customer_communication": {
            "type": "string",
            "description": "File Id of customer communication",
            "nullable": true
          },
          "customer_email_address": {
            "type": "string",
            "description": "Customer email address",
            "nullable": true
          },
          "customer_name": {
            "type": "string",
            "description": "Customer name",
            "nullable": true
          },
          "customer_purchase_ip": {
            "type": "string",
            "description": "IP address of the customer",
            "nullable": true
          },
          "customer_signature": {
            "type": "string",
            "description": "Fild Id of customer signature",
            "nullable": true
          },
          "product_description": {
            "type": "string",
            "description": "Product Description",
            "nullable": true
          },
          "receipt": {
            "type": "string",
            "description": "File Id of receipt",
            "nullable": true
          },
          "refund_policy": {
            "type": "string",
            "description": "File Id of refund policy",
            "nullable": true
          },
          "refund_policy_disclosure": {
            "type": "string",
            "description": "Details of showing refund policy to customer before purchase",
            "nullable": true
          },
          "refund_refusal_explanation": {
            "type": "string",
            "description": "Details why customer is not entitled to refund",
            "nullable": true
          },
          "service_date": {
            "type": "string",
            "description": "Customer service date",
            "nullable": true
          },
          "service_documentation": {
            "type": "string",
            "description": "File Id service documentation",
            "nullable": true
          },
          "shipping_address": {
            "type": "string",
            "description": "Shipping address of the customer",
            "nullable": true
          },
          "shipping_carrier": {
            "type": "string",
            "description": "Delivery service that shipped the product",
            "nullable": true
          },
          "shipping_date": {
            "type": "string",
            "description": "Shipping date",
            "nullable": true
          },
          "shipping_documentation": {
            "type": "string",
            "description": "File Id shipping documentation",
            "nullable": true
          },
          "shipping_tracking_number": {
            "type": "string",
            "description": "Tracking number of shipped product",
            "nullable": true
          },
          "invoice_showing_distinct_transactions": {
            "type": "string",
            "description": "File Id showing two distinct transactions when customer claims a payment was charged twice",
            "nullable": true
          },
          "recurring_transaction_agreement": {
            "type": "string",
            "description": "File Id of recurring transaction agreement",
            "nullable": true
          },
          "uncategorized_file": {
            "type": "string",
            "description": "Any additional supporting file",
            "nullable": true
          },
          "uncategorized_text": {
            "type": "string",
            "description": "Any additional evidence statements",
            "nullable": true
          }
        }
      },
      "SubscriptionId": {
        "type": "string",
        "description": "A type for subscription_id that can be used for subscription ids"
      },
      "SubscriptionItemPrices": {
        "type": "object",
        "required": [
          "price_id",
          "amount",
          "currency",
          "interval",
          "interval_count"
        ],
        "properties": {
          "price_id": {
            "type": "string"
          },
          "item_id": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "interval": {
            "$ref": "#/components/schemas/PeriodUnit"
          },
          "interval_count": {
            "type": "integer",
            "format": "int64"
          },
          "trial_period": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "trial_period_unit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PeriodUnit"
              }
            ],
            "nullable": true
          }
        }
      },
      "SubscriptionItemType": {
        "type": "string",
        "enum": [
          "plan",
          "addon"
        ]
      },
      "SubscriptionLineItem": {
        "type": "object",
        "required": [
          "item_id",
          "item_type",
          "description",
          "amount",
          "currency",
          "quantity"
        ],
        "properties": {
          "item_id": {
            "type": "string",
            "description": "Unique identifier for the line item."
          },
          "item_type": {
            "type": "string",
            "description": "Type of the line item."
          },
          "description": {
            "type": "string",
            "description": "Description of the line item."
          },
          "amount": {
            "$ref": "#/components/schemas/MinorUnit"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "quantity": {
            "type": "integer",
            "format": "int64",
            "description": "Quantity of the line item."
          }
        }
      },
      "SubscriptionResponse": {
        "type": "object",
        "description": "Response payload returned after successfully creating a subscription.\n\nIncludes details such as subscription ID, status, plan, merchant, and customer info.",
        "required": [
          "id",
          "status",
          "profile_id",
          "merchant_id",
          "customer_id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/SubscriptionId"
          },
          "merchant_reference_id": {
            "type": "string",
            "description": "Merchant specific Unique identifier.",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/SubscriptionStatus"
          },
          "plan_id": {
            "type": "string",
            "description": "Identifier for the associated subscription plan.",
            "nullable": true
          },
          "item_price_id": {
            "type": "string",
            "description": "Identifier for the associated item_price_id for the subscription.",
            "nullable": true
          },
          "profile_id": {
            "$ref": "#/components/schemas/ProfileId"
          },
          "client_secret": {
            "type": "string",
            "description": "This is a token which expires after 15 minutes, used from the client to authenticate and create sessions from the SDK",
            "nullable": true
          },
          "merchant_id": {
            "$ref": "#/components/schemas/MerchantId"
          },
          "coupon_code": {
            "type": "string",
            "description": "Optional coupon code applied to this subscription.",
            "nullable": true
          },
          "customer_id": {
            "$ref": "#/components/schemas/CustomerId"
          },
          "payment": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentResponseData"
              }
            ],
            "nullable": true
          },
          "invoice": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Invoice"
              }
            ],
            "nullable": true
          }
        }
      },
      "SubscriptionStatus": {
        "type": "string",
        "description": "Possible states of a subscription lifecycle.\n\n- `Created`: Subscription was created but not yet activated.\n- `Active`: Subscription is currently active.\n- `InActive`: Subscription is inactive.\n- `Pending`: Subscription is pending activation.\n- `Trial`: Subscription is in a trial period.\n- `Paused`: Subscription is paused.\n- `Unpaid`: Subscription is unpaid.\n- `Onetime`: Subscription is a one-time payment.\n- `Cancelled`: Subscription has been cancelled.\n- `Failed`: Subscription has failed.",
        "enum": [
          "active",
          "created",
          "in_active",
          "pending",
          "trial",
          "paused",
          "unpaid",
          "onetime",
          "cancelled",
          "failed"
        ]
      },
      "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
              }
            }
          }
        ]
      },
      "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"
        }
      },
      "SurchargeStrategy": {
        "type": "string",
        "description": "Strategy for applying external surcharge",
        "enum": [
          "apply",
          "waive"
        ]
      },
      "SwishQrData": {
        "type": "object"
      },
      "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_server_transaction_id",
          "maximum_supported_3ds_version",
          "connector_authentication_id",
          "three_ds_method_data",
          "three_ds_method_url",
          "message_version",
          "directory_server_id"
        ],
        "properties": {
          "three_ds_server_transaction_id": {
            "type": "string",
            "description": "The unique identifier for this authentication from the 3DS server."
          },
          "maximum_supported_3ds_version": {
            "type": "string",
            "description": "The maximum supported 3DS version."
          },
          "connector_authentication_id": {
            "type": "string",
            "description": "The unique identifier for this authentication from the connector."
          },
          "three_ds_method_data": {
            "type": "string",
            "description": "The data required to perform the 3DS method."
          },
          "three_ds_method_url": {
            "type": "string",
            "description": "The URL to which the user should be redirected after authentication.",
            "example": "https://example.com/redirect"
          },
          "message_version": {
            "type": "string",
            "description": "The version of the message."
          },
          "directory_server_id": {
            "type": "string",
            "description": "The unique identifier for this authentication."
          }
        }
      },
      "ThreeDsDecisionRuleExecuteRequest": {
        "type": "object",
        "description": "Represents the request to execute a 3DS decision rule.",
        "required": [
          "routing_id",
          "payment"
        ],
        "properties": {
          "routing_id": {
            "type": "string",
            "description": "The ID of the routing algorithm to be executed."
          },
          "payment": {
            "$ref": "#/components/schemas/PaymentData"
          },
          "payment_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentMethodMetaData"
              }
            ],
            "nullable": true
          },
          "customer_device": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerDeviceData"
              }
            ],
            "nullable": true
          },
          "issuer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IssuerData"
              }
            ],
            "nullable": true
          },
          "acquirer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AcquirerData"
              }
            ],
            "nullable": true
          },
          "metadata": {
            "description": "Optional metadata about the payment.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ThreeDsDecisionRuleExecuteResponse": {
        "type": "object",
        "description": "Represents the response from executing a 3DS decision rule.",
        "required": [
          "decision"
        ],
        "properties": {
          "decision": {
            "$ref": "#/components/schemas/ThreeDSDecision"
          }
        }
      },
      "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"
          }
        }
      },
      "ToggleDynamicRoutingPath": {
        "type": "object",
        "required": [
          "profile_id"
        ],
        "properties": {
          "profile_id": {
            "type": "string"
          }
        }
      },
      "ToggleDynamicRoutingQuery": {
        "type": "object",
        "required": [
          "enable"
        ],
        "properties": {
          "enable": {
            "$ref": "#/components/schemas/DynamicRoutingFeatures"
          }
        }
      },
      "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
          }
        }
      },
      "TokenDataType": {
        "type": "string",
        "description": "The type of token data to fetch for get-token endpoint",
        "enum": [
          "single_use_token",
          "multi_use_token",
          "network_token"
        ]
      },
      "TokenSource": {
        "type": "string",
        "description": "Source of the token",
        "enum": [
          "google_pay",
          "apple_pay"
        ],
        "example": "google_pay, apple_pay"
      },
      "Tokenization": {
        "type": "string",
        "description": "The type of tokenization to use for the payment method",
        "enum": [
          "skip_psp",
          "tokenize_at_psp"
        ]
      },
      "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
          }
        }
      },
      "TotalEventsResponse": {
        "type": "object",
        "description": "The response body of list initial delivery attempts api call.",
        "required": [
          "events",
          "total_count"
        ],
        "properties": {
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventListItemResponse"
            },
            "description": "The list of events"
          },
          "total_count": {
            "type": "integer",
            "format": "int64",
            "description": "Count of total events"
          }
        }
      },
      "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"
          }
        }
      },
      "TxnStatus": {
        "type": "string",
        "enum": [
          "STARTED",
          "AUTHENTICATION_FAILED",
          "JUSPAY_DECLINED",
          "PENDING_VBV",
          "V_B_V_SUCCESSFUL",
          "AUTHORIZED",
          "AUTHORIZATION_FAILED",
          "CHARGED",
          "AUTHORIZING",
          "C_O_D_INITIATED",
          "VOIDED",
          "VOIDED_POST_CHARGE",
          "VOID_INITIATED",
          "NOP",
          "CAPTURE_INITIATED",
          "CAPTURE_FAILED",
          "VOID_FAILED",
          "AUTO_REFUNDED",
          "PARTIAL_CHARGED",
          "TO_BE_CHARGED",
          "PENDING",
          "FAILURE",
          "DECLINED"
        ]
      },
      "UIWidgetFormLayout": {
        "type": "string",
        "enum": [
          "tabs",
          "journey"
        ]
      },
      "UnbilledChargesOption": {
        "type": "string",
        "enum": [
          "invoice",
          "delete"
        ]
      },
      "UnifiedCode": {
        "type": "string",
        "enum": [
          "UE_1000",
          "UE_2000",
          "UE_3000",
          "UE_4000",
          "UE_9000"
        ]
      },
      "UnpaidInvoicesHandling": {
        "type": "string",
        "enum": [
          "no_action",
          "schedule_payment_collection"
        ]
      },
      "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
      },
      "UpdateScorePayload": {
        "type": "object",
        "description": "Request payload to update gateway performance score based on transaction outcome",
        "required": [
          "merchantId",
          "gateway",
          "status",
          "paymentId"
        ],
        "properties": {
          "merchantId": {
            "type": "string",
            "description": "Profile ID of the merchant",
            "example": "pro_aMoPnEkgCVnh2WVsFe32"
          },
          "gateway": {
            "type": "string",
            "description": "Payment Gateway identifier",
            "example": "stripe:mca1"
          },
          "status": {
            "$ref": "#/components/schemas/TxnStatus"
          },
          "paymentId": {
            "type": "string",
            "description": "Payment ID associated with the transaction",
            "example": "pay_1234"
          }
        }
      },
      "UpdateScoreResponse": {
        "type": "object",
        "description": "Response after updating gateway score",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string",
            "description": "Status message indicating the result of the score update",
            "example": "Gateway score updated successfully"
          }
        }
      },
      "UpdateSubscriptionRequest": {
        "type": "object",
        "required": [
          "plan_id",
          "item_price_id"
        ],
        "properties": {
          "plan_id": {
            "type": "string",
            "description": "Identifier for the associated plan_id."
          },
          "item_price_id": {
            "type": "string",
            "description": "Identifier for the associated item_price_id for the subscription."
          }
        }
      },
      "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": {
                "type": "integer",
                "format": "int64",
                "description": "Represents a number literal",
                "minimum": 0
              }
            }
          },
          {
            "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": [
                  "global_ref"
                ]
              },
              "value": {
                "type": "string",
                "description": "Represents a global reference, which is a reference to a global variable"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "number_array"
                ]
              },
              "value": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int64",
                  "minimum": 0
                },
                "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
          }
        }
      },
      "VaultDetailsResponse": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "vault_type",
              "vault_data"
            ],
            "properties": {
              "vault_type": {
                "type": "string",
                "enum": [
                  "hyperswitch"
                ]
              },
              "vault_data": {
                "$ref": "#/components/schemas/HyperswitchVaultData"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "vault_type",
              "vault_data"
            ],
            "properties": {
              "vault_type": {
                "type": "string",
                "enum": [
                  "vgs"
                ]
              },
              "vault_data": {
                "$ref": "#/components/schemas/VgsVaultData"
              }
            }
          }
        ],
        "description": "V1-facing vault details for the session-tokens response, serialized as a tagged\n`{ \"vault_type\": ..., \"vault_data\": { ... } }` object. Exactly one variant is returned:\nexternal vault details when configured, otherwise the internal Hyperswitch vault session.",
        "discriminator": {
          "propertyName": "vault_type"
        }
      },
      "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"
          }
        }
      },
      "VgsVaultData": {
        "type": "object",
        "required": [
          "vault_id",
          "environment"
        ],
        "properties": {
          "vault_id": {
            "type": "string",
            "description": "The identifier of the external vault"
          },
          "environment": {
            "type": "string",
            "description": "The environment for the external vault initiation"
          }
        }
      },
      "VisaEligibilityCheckData": {
        "type": "object",
        "required": [
          "consumerPresent"
        ],
        "properties": {
          "consumerPresent": {
            "type": "boolean"
          },
          "consumerStatus": {
            "type": "string",
            "nullable": true
          },
          "customData": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserInformation"
              }
            ],
            "nullable": true
          }
        }
      },
      "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
          }
        }
      },
      "WalletBlockingConfig": {
        "type": "object",
        "description": "Wallet-specific blocking configuration for Apple Pay and Google Pay",
        "properties": {
          "card_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardType"
            },
            "description": "Set of card types to block for all wallet payments (e.g., [\"Credit\", \"Debit\"]).\nRetained for backwards compatibility with existing configurations.",
            "nullable": true
          },
          "apple_pay": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardBlockingConfig"
              }
            ],
            "nullable": true
          },
          "google_pay": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardBlockingConfig"
              }
            ],
            "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"
              }
            }
          }
        ]
      },
      "WalletDetail": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "apple_pay_decrypted_data"
            ],
            "properties": {
              "apple_pay_decrypted_data": {
                "type": "object",
                "required": [
                  "application_primary_account_number",
                  "expiry_month",
                  "expiry_year"
                ],
                "properties": {
                  "application_primary_account_number": {
                    "type": "string",
                    "description": "The application primary account number associated with the card",
                    "example": "4242424242424242"
                  },
                  "expiry_month": {
                    "type": "string",
                    "description": "The card's expiry month"
                  },
                  "expiry_year": {
                    "type": "string",
                    "description": "The card's expiry year"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "google_pay_decrypted_data"
            ],
            "properties": {
              "google_pay_decrypted_data": {
                "type": "object",
                "required": [
                  "application_primary_account_number",
                  "expiry_month",
                  "expiry_year"
                ],
                "properties": {
                  "application_primary_account_number": {
                    "type": "string",
                    "description": "The application primary account number (PAN) associated with the card",
                    "example": "4242424242424242"
                  },
                  "expiry_month": {
                    "type": "string",
                    "description": "The card's expiry month"
                  },
                  "expiry_year": {
                    "type": "string",
                    "description": "The card's expiry year"
                  }
                }
              }
            }
          }
        ]
      },
      "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"
      },
      "WebhookConfigType": {
        "oneOf": [
          {
            "type": "string",
            "description": "Standard webhook configuration supporting all events hyperswitch provides",
            "enum": [
              "AllEvents"
            ]
          },
          {
            "type": "object",
            "required": [
              "CustomEvents"
            ],
            "properties": {
              "CustomEvents": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/EventType"
                  }
                ],
                "nullable": true
              }
            }
          }
        ],
        "description": "Enum to represent the type of webhook configuration"
      },
      "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"
        ]
      },
      "WebhookSecretErrorDetails": {
        "type": "object",
        "description": "Connector-reported error code and message from the webhook secret generation step.",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WebhookSecretGenerationStatus": {
        "type": "string",
        "description": "The status of HMAC key generation for a connector webhook",
        "enum": [
          "Success",
          "Failure"
        ]
      },
      "WebhookSetupCapabilities": {
        "type": "object",
        "description": "Connector details for webhook configuration via hyperswitch API",
        "required": [
          "is_webhook_auto_configuration_supported"
        ],
        "properties": {
          "is_webhook_auto_configuration_supported": {
            "type": "boolean",
            "description": "Indicates if the connector supports webhooks configuration via API"
          },
          "requires_webhook_secret": {
            "type": "boolean",
            "description": "Indicates whether a webhook secret must be collected from the merchant for verification",
            "nullable": true
          },
          "config_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookConfigType"
              }
            ],
            "nullable": true
          }
        }
      },
      "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": "api-key",
        "description": "Admin API keys allow you to perform some privileged actions such as creating a merchant account and Merchant Connector account."
      },
      "api_key": {
        "type": "apiKey",
        "in": "header",
        "name": "api-key",
        "description": "Use 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."
      },
      "ephemeral_key": {
        "type": "apiKey",
        "in": "header",
        "name": "api-key",
        "description": "Ephemeral keys provide temporary access to singular data, such as access to a single customer object for a short period of time."
      },
      "jwt_key": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "publishable_key": {
        "type": "apiKey",
        "in": "header",
        "name": "api-key",
        "description": "Publishable keys are a type of keys that can be public and have limited scope of usage."
      }
    }
  },
  "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"
    },
    {
      "name": "Authentication",
      "description": "Create and manage authentication"
    },
    {
      "name": "Subscriptions",
      "description": "Subscription management and billing endpoints"
    },
    {
      "name": "Card Issuer",
      "description": "Create and manage card issuers"
    }
  ]
}