---
title: "List a customer's destination identifications"
method: GET
path: "/customers/{customer_id}/destination-identifications"
tags: ["Customers"]
---

# List a customer's destination identifications

`GET /customers/{customer_id}/destination-identifications`

## Request

- Base URL: `https://developers.ozav.io/v2`
- URL: `https://developers.ozav.io/v2/customers/{customer_id}/destination-identifications`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

The wallets identified for this customer, newest first.

## Path parameters

- `customer_id` string, required

## Response `200`

The identifications.

- DestinationIdentificationList
  - `object` 'list', required: Always `list`.
  - `data` DestinationIdentification[], required: The customer's identifications, newest first (up to 200).
    - `object` 'destination_identification', required: Resource type discriminator; always `destination_identification`.
    - `customer_id` string, required: The `ozav_cus_` id of the customer.
    - `chain` string, required: The network, lowercase.
    - `address` string, required: The address as stored (EVM in lowercase).
    - `wallet_type` 'self_custodied' | 'external', required: Who holds the wallet.
    - `wallet_attested_ownership_at` string, date-time, nullable: Present with `self_custodied`.
    - `exchange` object: Present with `external`.
      - `name` string, nullable: Name of the exchange.
      - `lei` string, nullable: LEI of the exchange, when given.
    - `declared_at` string, date-time, nullable, required: When the identification was recorded.
    - `requirement_satisfied` boolean: Only on the create response - `true` when it answered an open `destination_unidentified` item of the customer.

## Other responses

- `401`: Missing or invalid API key.
- `403`: The organization lacks the entitlement (code ENTITLEMENT_REQUIRED) or the key lacks the scope (code INSUFFICIENT_SCOPE). On money-moving requests (POST /transfers, POST /wallets/{wallet_id}/transfers) a compliance hold on the customer answers with code COMPLIANCE_HOLD: the hold is reviewed and lifted on OZAV's side; retrying does not clear it. When the only hold is a pause until pending onboarding documents are received, a withdrawal answers CUSTOMER_DOCUMENTS_PENDING instead: send what `requirements` on GET /customers/{id} lists; OZAV lifts the pause after reviewing it. On OZAV Services (live without the platform's KYB), any API outside decisions, screenings, lists and self-custody wallets answers with code PRODUCTION_NOT_ACTIVATED.
- `404`: The resource does not exist, is not visible to the caller, or the id was malformed for this position (see "Resource ids" under Errors). These share one status; `code` and `message` tell them apart.

---

[API](https://skmtc.dev/ozav/apis/ozav-api.md) - [All operations](https://skmtc.dev/ozav/apis/ozav-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ozav/apis/ozav-api/revisions/4133dc2109d7?raw)
