# Banking API catalogs

> Customer identification type catalog per country in the Banking API.

- kind: api-operation
- status: stable
- api_version: 1.0.0
- last_verified: 2026-10-20
- url: https://tilopay.com/en/developers/api-bancario/catalogos

The `Catalogs` group publishes the values your integration must use in customer
identification fields, instead of hardcoding them.

```http
GET /api/public/v1/catalogs/customer-identification-types
```

Filter by two-letter `country_code` to get the types in force in that country. Fetch the
catalog when you start the integration and cache the result; read it again before adding a
new country.

## Operations [#operaciones]

### List customer identification person types [#get-catalogs-customer-identification-types]

```http
GET /api/public/v1/catalogs/customer-identification-types
```

Host: `https://api-baas-sandbox.tilopay.com` — requires `Authorization: Bearer <access_token>`.

Returns the distinct customer person types (`individual`, `business`, `both`) available
for the authenticated tenant, optionally filtered by country. This is a person-type
classification, not the payment identification-document catalog (`cedula`, `juridica`,
`dimex`, ...) used by `identification.type` on `POST /payments`.

**Parameters**

| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
| `X-Correlation-Id` | header | string | no | Optional client-supplied correlation id for end-to-end tracing. Echoed back as `correlation_id` in the response envelope. If omitted, the API generates one and still returns it. |
| `country_code` | query | string | no | Optional ISO-2 country code used to filter results. A legacy `country` query parameter is also accepted as an alias when `country_code` is omitted; prefer `country_code`. |

**200** — The request was processed successfully.

Fields in `data`:

| Field | Type | Required | Description |
|---|---|---|---|
| `items` | array<object> | yes | — |
| `items[].code` | string | yes | Values: individual, business, both |

**Response example**

```json
{
  "success": true,
  "http_status_code": 200,
  "response_code": "OK",
  "message": "The request was processed successfully.",
  "correlation_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "data": {
    "items": [
      {
        "code": "individual"
      },
      {
        "code": "business"
      },
      {
        "code": "both"
      }
    ]
  }
}
```

**Error responses**

| HTTP | response_code | Description |
|---|---|---|
| 401 | `UNAUTHORIZED` | Unauthorized. Verify your session or credentials. |
| 403 | `FORBIDDEN` | You do not have permission to perform this action. |
| 500 | `INTERNAL_ERROR` | An unexpected error occurred. Please try again later. |
| 502 | — | Dependency error |
| 503 | `SERVICE_UNAVAILABLE` | A required service is temporarily unavailable. Please try again later. |
