Gerar link KYC
curl --request POST \
--url https://api.sandbox.z2pay.com/v1/recipients/{id}/kyc-link \
--header 'x-api-key: <api-key>'const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sandbox.z2pay.com/v1/recipients/{id}/kyc-link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sandbox.z2pay.com/v1/recipients/{id}/kyc-link"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text){
"kycUrl": "https://kyc.z2pay.com/recipient/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"expiresAt": "2025-07-01T13:45:30.000Z"
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid API key"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Recipient not found"
}
}{
"error": "A request with this idempotency key is already being processed"
}{
"error": "Idempotency key already used with a different request body"
}Recebedores
Gerar link KYC
Cria um link temporário para o recebedor completar o próprio cadastro, sem passar por você.
POST
/
recipients
/
{id}
/
kyc-link
Gerar link KYC
curl --request POST \
--url https://api.sandbox.z2pay.com/v1/recipients/{id}/kyc-link \
--header 'x-api-key: <api-key>'const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sandbox.z2pay.com/v1/recipients/{id}/kyc-link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sandbox.z2pay.com/v1/recipients/{id}/kyc-link"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text){
"kycUrl": "https://kyc.z2pay.com/recipient/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"expiresAt": "2025-07-01T13:45:30.000Z"
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid API key"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Recipient not found"
}
}{
"error": "A request with this idempotency key is already being processed"
}{
"error": "Idempotency key already used with a different request body"
}POST /recipients/:id/kyc-link
Faz parte do recurso Recebedores — os estados do vínculo, o ciclo de aprovação
e o catálogo de pendências estão lá.
Gera uma URL que o recebedor abre para enviar documentos, completar dados pessoais e fazer a prova
de vida. A resposta é o link e a data em que ele deixa de valer.
Serve para o que você não pode fazer por ele. Documento com foto e prova de vida exigem a
presença da pessoa — não há campo de API que substitua. É o caminho quando o recebedor está em
awaiting_liveness, ou quando a análise pediu documento que você não tem.O link é efêmero: gere um a cada envio, não guarde. Ele expira na data de
expiresAt, e um
link vencido no e-mail do recebedor vira suporte. Gere na hora de enviar — chamar a rota de novo
não custa nada e não invalida o cadastro.Quem tem o link mexe no cadastro. Ele autentica pela posse, sem login, porque é assim que o
recebedor consegue completar os dados sozinho. Envie pelo canal do titular e não o deixe em log
nem em URL de analytics.
Responde
404 se o recebedor não estiver vinculado à sua conta. A rota exige o vínculo, não
só o cadastro existir.Exemplo
curl -X POST https://api.sandbox.z2pay.com/v1/recipients/rec_v57bi6ruyolouw3cpaq2ofy1k/kyc-link \
-H "x-api-key: SUA_CHAVE_DE_SANDBOX"
Resposta 201
{
"kycUrl": "https://kyc.z2pay.com/recipient/9f4c1e7a2b8d05364af1c9e0b73d825a",
"expiresAt": "2026-08-11T13:00:00.000Z"
}
A resposta tem só esses dois campos — não traz o recebedor. Para acompanhar o que a análise ainda
pede, use
GET /recipients/{id}.Authorizations
API Key da Credential (gerada no Backoffice)
Headers
Chave única para garantir idempotência da requisição
Path Parameters
ID do recebedor