Identities
KYC/AML identity management.
Returns a paginated list of the active (not deleted) identities in your organization, newest first. limit sets the page size: default 20, clamped to 10..100.
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Query Parameters
Filter by identity type. Any other value is ignored (no filter).
Value in
- "PERSON"
- "COMPANY"
- "GOVERNMENT"
Substring search on person first/last name, company legal or trade name, and government official name. Ignored when empty or longer than 100 characters.
length <= 1001-based page number, clamped to 1..10000.
1 <= value <= 100001Page size, clamped to 10..100.
10 <= value <= 10020Response Body
application/json
application/json
curl -X GET "https://example.com/v1/identity/"{ "identities": [ { "id": "6f9619ff-8b86-4d11-b42d-00c04fc964ff", "type": "COMPANY", "display_name": "ACME SAS", "country": "FR", "created_at": "2026-07-27 10:00:00", "updated_at": "2026-07-27 10:00:00" } ], "pagination": { "page": 1, "page_size": 20, "total": 1, "total_pages": 1, "has_next": false, "has_prev": false }}Creates a new identity and links it to your organization. The body must include type (case-insensitive) plus the required fields for that type. Country codes must be exactly two uppercase letters; gender, pep_status and jurisdiction_level are accepted in any case and stored uppercase.
When a COMPANY is created with a valid French SIRET (14 digits, Luhn check) in registration_number and country_of_incorporation is FR or empty, Seqlense looks it up in the SIRENE registry during the call and stores the result (see GET /v1/identity/siret). A failed lookup is silent and never blocks the create.
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/identity/" \ -H "Content-Type: application/json" \ -d '{ "type": "PERSON", "first_name": "Alice", "last_name": "Martin", "nationality": "FR", "date_of_birth": "1990-05-14", "pep_status": "NONE" }'{ "status": "ok", "id": "6f9619ff-8b86-4d11-b42d-00c04fc964ff"}Soft-deletes an identity: it leaves the active list and moves to the trash (GET /v1/identity/deleted), from which POST /v1/identity/restore brings it back. Linked wallets, tags and notes are left in place. Deleting an identity that is already in the trash also returns ok.
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Query Parameters
UUID of the identity to delete.
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/v1/identity/?id=497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "status": "ok"}Partial update of the type-specific fields of an active identity. Send id plus only the fields to change; missing fields (or fields that are not strings) keep their current value, and an empty string clears an optional field. The fields that apply depend on the identity's type, others are ignored; type itself cannot change. The same validation as create applies to the merged result.
For a COMPANY, SIRET enrichment is re-run when the resulting registration number is a valid FR SIRET (country FR or empty); otherwise any stored enrichment is deleted. A deleted (trashed) identity returns 404.
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Fields that can be updated. Send only the ones to change; the set that applies depends on the identity's type, the others are ignored.
Response Body
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/v1/identity/" \ -H "Content-Type: application/json" \ -d '{ "id": "6f9619ff-8b86-4d11-b42d-00c04fc964ff", "pep_status": "PEP" }'{ "status": "ok"}Returns the identity audit trail of your organization, newest first, 50 events per page. Events include create, update, delete, restore, merge, SIRET refresh and notes added on an identity. Pass id to scope the feed to one identity (an id that is not a UUID is ignored and the whole feed is returned). The pagination object carries only page and page_size; an empty events array means you are past the end.
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Query Parameters
Restrict the feed to one identity UUID.
uuidSearch in entity title, detail, action and actor name. Max 100 characters.
length <= 1001-based page number.
1 <= value1Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/identity/activity"{ "events": [ { "uuid": "9a1b2c3d-4e5f-4a6b-8c7d-0e1f2a3b4c5d", "entity_uuid": "6f9619ff-8b86-4d11-b42d-00c04fc964ff", "entity_title": "Alice Martin", "action": "CREATE", "detail": "Created PERSON identity", "severity": "INFO", "actor": "api_key", "actor_name": "API Key #12", "created_at": "2026-07-27T10:00:00+00:00" } ], "pagination": { "page": 1, "page_size": 50 }}Imports 1 to 1000 identities in one call. Each item has the create shape and is created independently; the response counts successes and lists failed items by index. Validation is lighter than the single create: names, country codes and the required field per type are checked, and SIRET enrichment runs for qualifying companies. An item with an unknown type reports invalid type, any other failure reports creation failed.
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/identity/bulk" \ -H "Content-Type: application/json" \ -d '{ "items": [ { "type": "PERSON", "first_name": "Alice", "last_name": "Martin" }, { "type": "COMPANY", "legal_name": "ACME SAS" } ] }'{ "status": "ok", "success": 1, "failed": 1, "errors": [ { "index": 1, "error": "creation failed" } ]}Soft-deletes 1 to 500 identities in one call. Ids that are not UUIDs or not in your organization count as failed; non-string entries in ids are dropped before the size check.
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/identity/bulk-delete" \ -H "Content-Type: application/json" \ -d '{ "ids": [ "6f9619ff-8b86-4d11-b42d-00c04fc964ff" ] }'{ "status": "ok", "success": 1, "failed": 0}Counts the active identities of your organization, in total and by type.
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/identity/count"{ "total": 42, "persons": 30, "companies": 10, "governments": 2}Returns the soft-deleted identities of your organization (the trash), newest first. Same filters and page size rules as GET /v1/identity/. The pagination object here carries page, page_size, total and total_pages only (no has_next / has_prev).
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Query Parameters
Filter by identity type.
Value in
- "PERSON"
- "COMPANY"
- "GOVERNMENT"
Name search, same fields as the active list. Max 100 characters.
length <= 1001-based page number, clamped to 1..10000.
1 <= value <= 100001Page size, clamped to 10..100.
10 <= value <= 10020Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/identity/deleted"{ "identities": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "type": "PERSON", "display_name": "string", "country": "string", "created_at": "2026-07-27 10:00:00", "updated_at": "2026-07-27 10:00:00" } ], "pagination": { "page": 0, "page_size": 0, "total": 0, "total_pages": 0, "has_next": true, "has_prev": true }}Returns one active identity with its type-specific block (person, company or government). A deleted identity returns 404.
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Query Parameters
UUID of the identity.
uuidResponse Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/identity/detail?id=497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "id": "6f9619ff-8b86-4d11-b42d-00c04fc964ff", "type": "PERSON", "created_at": "2026-07-27 10:00:00", "updated_at": "2026-07-27 10:00:00", "person": { "first_name": "Alice", "last_name": "Martin", "middle_name": "", "date_of_birth": "1990-05-14", "place_of_birth": "Lyon", "nationality": "FR", "gender": "F", "pep_status": "NONE" }}Folds a duplicate (source_id) into the identity to keep (target_id), in one database transaction: wallet links, order-book client links, IDENTITY tags and IDENTITY notes move from the source to the target, then the source is soft-deleted (it lands in the trash and can be restored, but its records stay on the target). A wallet or tag already on both sides is kept once. If any step fails, nothing is changed and the call returns 400.
Both identities must belong to your organization (404 otherwise) and the target must be active: a trashed target returns 404. The source may be active or already in the trash. The move is logged in the activity of both identities, with severity WARN.
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/identity/merge" \ -H "Content-Type: application/json" \ -d '{ "source_id": "0b7c3f55-1d2e-4a6b-9c8d-7e6f5a4b3c2d", "target_id": "6f9619ff-8b86-4d11-b42d-00c04fc964ff" }'{ "merged": true, "source_id": "0b7c3f55-1d2e-4a6b-9c8d-7e6f5a4b3c2d", "target_id": "6f9619ff-8b86-4d11-b42d-00c04fc964ff", "moved": { "wallets": 2, "ob_clients": 1, "tags": 3, "notes": 4 }}Takes an identity out of the trash and makes it active again. Restoring an identity that is already active also returns ok.
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/identity/restore" \ -H "Content-Type: application/json" \ -d '{ "id": "6f9619ff-8b86-4d11-b42d-00c04fc964ff" }'{ "status": "ok"}Returns the SIRENE registry data stored for a company identity. It is filled when a company is created or updated with a valid French SIRET, and can be forced with POST /v1/identity/siret/refresh. Returns 404 when nothing is stored or the identity is not in your organization.
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Query Parameters
UUID of the company identity.
uuidResponse Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/identity/siret?id=497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "siret": "string", "siren": "string", "denomination": "string", "forme_juridique": "string", "categorie_juridique": "string", "code_naf": "string", "libelle_naf": "string", "domaine_activite": "string", "date_creation": "string", "statut": "string", "entreprise_cessee": true, "capital": 0, "effectif": "string", "tranche_effectif": "string", "adresse": "string", "code_postal": "string", "ville": "string", "pays": "string", "latitude": 0, "longitude": 0, "fetched_at": "string"}Re-fetches the SIRENE data for a company identity, using the SIRET stored in its registration_number. Only the identity id is accepted, never a SIRET, so the endpoint cannot be used as a proxy to the registry. Returns the stored enrichment.
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer sq_YOUR_API_KEY.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/identity/siret/refresh" \ -H "Content-Type: application/json" \ -d '{ "id": "6f9619ff-8b86-4d11-b42d-00c04fc964ff" }'{ "siret": "string", "siren": "string", "denomination": "string", "forme_juridique": "string", "categorie_juridique": "string", "code_naf": "string", "libelle_naf": "string", "domaine_activite": "string", "date_creation": "string", "statut": "string", "entreprise_cessee": true, "capital": 0, "effectif": "string", "tranche_effectif": "string", "adresse": "string", "code_postal": "string", "ville": "string", "pays": "string", "latitude": 0, "longitude": 0, "fetched_at": "string"}