> ## Documentation Index
> Fetch the complete documentation index at: https://developer.tazapay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Fetch Verification Metadata

> This lets you fetch verification capabilities and required fields for a given corridor.

<Warning>
  This feature is coming soon. The APIs listed here are for reference only
  and are not yet available in production or sandbox.
</Warning>

```bash cURL theme={null}
curl --request GET \
  --url 'https://service-sandbox.tazapay.com/v3/verification/payee/metadata?country=IN&currency=INR' \
  --header 'Authorization: Basic <encoded-value>'
```

```json 200 theme={null}
{
  "status": "success",
  "message": "",
  "data": {
    "object": "list",
    "has_more": false,
    "results": [
      {
        "country": "IN",
        "currency": "INR",
        "payout_type": "local",
        "destination_type": "bank",
        "coverage_percent": 95,
        "required_bank_fields": [
          "account_number",
          "country",
          "currency"
        ],
        "required_bank_codes": [
          "ifsc_code"
        ],
        "required_beneficiary_fields": [
          "name",
          "type"
        ],
        "supported_verification_capabilities": {
          "account_exists": true,
          "name_check": true,
          "match_score": true,
          "match_type": true,
          "corrected_name_returned": false,
          "matched_name_translation": false,
          "transaction_activity": false
        }
      },
      {
        "country": "IN",
        "currency": "INR",
        "payout_type": "local_payment_network",
        "destination_type": "local_payment_network",
        "local_payment_network": {
          "type": "upi_inr",
          "deposit_key": "example@upi",
          "deposit_key_type": ""
        },
        "coverage_percent": 95,
        "required_bank_fields": [],
        "required_bank_codes": [],
        "required_beneficiary_fields": [
          "name",
          "type"
        ],
        "supported_verification_capabilities": {
          "account_exists": true,
          "name_check": true,
          "match_score": true,
          "match_type": true,
          "corrected_name_returned": false,
          "matched_name_translation": false,
          "transaction_activity": false
        }
      },
      {
        "country": "IN",
        "currency": "INR",
        "payout_type": "swift",
        "destination_type": "bank",
        "coverage_percent": 60,
        "required_bank_fields": [
          "account_number",
          "country",
          "currency"
        ],
        "required_bank_codes": [
          "swift_code"
        ],
        "required_beneficiary_fields": [
          "name",
          "type"
        ],
        "supported_verification_capabilities": {
          "account_exists": true,
          "name_check": true,
          "match_score": true,
          "match_type": true,
          "corrected_name_returned": false,
          "matched_name_translation": false,
          "transaction_activity": false
        }
      }
    ]
  }
}
```

# Get Verification Metadata

GET `/v3/verification/payee/metadata`

Use this endpoint before initiating a verification to check whether payee
verification is supported for a given corridor, and to retrieve the exact
fields required to run a verification.

#### Authorizations

<ParamField header="Authorization" type="string" required>
  Basic authentication header of the form `Basic <encoded-value>`, where
  `<encoded-value>` is the base64-encoded string `username:password`.
</ParamField>

#### Query Parameters

<ParamField query="country" type="string">
  Destination country (ISO 3166-1 alpha-2, e.g. `IN`, `US`, `GB`).
</ParamField>

<ParamField query="type" type="enum">
  Type of payout rail for which verification metadata is being requested.
  Allowed: `local`, `swift`, `local_payment_network`.
</ParamField>

<ParamField query="currency" type="string">
  Currency of the destination account (ISO 4217, e.g. `INR`, `USD`).
  Required for currency-bound rails.
</ParamField>

<ParamField query="local_payment_network.type" type="string">
  Type of local payment network. Required if `type = local_payment_network`
  (e.g. `upi_inr`, `pix_brl`, `promptpay_thb`).
</ParamField>

#### Response

<ResponseField name="status" type="string">
  Indicates whether the request to retrieve verification metadata was
  successful.
</ResponseField>

<ResponseField name="message" type="string">
  Additional message providing context or status information about the
  request.
</ResponseField>

<ResponseField name="data" type="object">
  Contains the verification capability details for the requested corridor
  and rail.

  <Expandable title="data">
    <ResponseField name="object" type="string">
      Fixed value: `list`.
    </ResponseField>

    <ResponseField name="has_more" type="boolean">
      Indicates if more results exist beyond the current page.
    </ResponseField>

    <ResponseField name="results" type="array">
      List of verification method objects, each representing a supported
      corridor.

      <Expandable title="results[]">
        <ResponseField name="country" type="string">
          Destination country (ISO 3166-1 alpha-2).
        </ResponseField>

        <ResponseField name="currency" type="string">
          Currency of the destination account (ISO 4217).
        </ResponseField>

        <ResponseField name="payout_type" type="enum">
          Type of payout rail for this corridor. Allowed: `local`, `swift`,
          `local_payment_network`.
        </ResponseField>

        <ResponseField name="local_payment_network" type="object">
          Present when `payout_type = local_payment_network`.

          <Expandable title="local_payment_network">
            <ResponseField name="type" type="string">
              Type of local payment network (e.g. `upi_inr`, `pix_brl`,
              `promptpay_thb`).
            </ResponseField>

            <ResponseField name="deposit_key" type="string">
              Deposit key for the network (e.g. UPI handle, PIX key).
            </ResponseField>

            <ResponseField name="deposit_key_type" type="string">
              Type of deposit key. Required for some networks (e.g. `email`,
              `cpf`, `phone` for `pix_brl`).
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="destination_type" type="string">
          Type of payout destination supported for verification. Allowed:
          `bank`, `local_payment_network`.
        </ResponseField>

        <ResponseField name="coverage_percent" type="integer">
          Estimated coverage percentage for this corridor.
        </ResponseField>

        <ResponseField name="required_bank_fields" type="string[]">
          Bank fields required for verification (e.g. `account_number`,
          `iban`, `bank_name`, `branch_name`, `country`, `currency`,
          `account_type`). Applicable when `destination_type = bank`.
        </ResponseField>

        <ResponseField name="required_bank_codes" type="string[]">
          Bank routing codes required for verification (e.g. `ifsc_code`,
          `swift_code`, `aba_code`, `sort_code`, `branch_code`, `bsb_code`,
          `bank_code`, `cnaps`). Applicable when `destination_type = bank`.
        </ResponseField>

        <ResponseField name="required_beneficiary_fields" type="string[]">
          Beneficiary fields required to complete the verification (e.g.
          `name`, `type`, `phone`, `email`, `address`, `tax_id`).
        </ResponseField>

        <ResponseField name="supported_verification_capabilities" type="object">
          Verification capabilities supported for this corridor and rail,
          based on Tazapay's providers.

          <Expandable title="supported_verification_capabilities">
            <ResponseField name="account_exists" type="boolean">
              Whether the provider can confirm if the account exists.
            </ResponseField>

            <ResponseField name="name_check" type="boolean">
              Whether the provider supports name matching against the
              account holder.
            </ResponseField>

            <ResponseField name="match_score" type="boolean">
              Whether the provider returns a normalised confidence score
              (0 to 1) for the name match.
            </ResponseField>

            <ResponseField name="match_type" type="boolean">
              Whether the provider classifies the match as strong, partial,
              weak, or no match.
            </ResponseField>

            <ResponseField name="corrected_name_returned" type="boolean">
              Whether the provider returns a corrected or suggested name
              when a close but imperfect match is found.
            </ResponseField>

            <ResponseField name="matched_name_translation" type="boolean">
              Whether the provider returns a translation of the matched
              name in local script.
            </ResponseField>

            <ResponseField name="transaction_activity" type="boolean">
              Whether the provider can confirm recent transaction activity
              on the account (Kinexys only).
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>
