Como usar a API
Configuração Inicial
Para utilizar a API diretamente (sem iframe), utilize a seguinte URL base:
https://kyc-api.pixtopay.com.brConsulta de Dados do Cliente
Autenticação: Todas as requisições de consulta devem incluir um token de autorização no header Authorization, obtido no dashboard da plataforma.
Pré-registro (/customer/preregister) (Opcional)
Este endpoint é opcional. Você pode consultar diretamente o endpoint de registro (/customer/register) para fazer a integração diretamente e já obter o onboarding_id necessário para prosseguir com o fluxo.
Consulta informações básicas de uma pessoa física.
Método: POST
Body:
{
"cpf": "12345678901",
"integration_id": "b64d523c-8c93-4188-b5f6-3f5f08397712"
}Parâmetros:
cpf: CPF a ser consultado (string, apenas números)integration_id: ID da integração obtido no dashboard
Resposta:
{
"birth_date": "1990-01-01",
"deceased": false,
"first_name": "João",
"surname": "Silva",
"is_pep": false
}Campos da resposta:
birth_date: Data de nascimento (formato: YYYY-MM-DD)deceased: Indica se a pessoa é falecidafirst_name: Primeiro nomesurname: Último nomeis_pep: Indica se a pessoa é politicamente exposta (PEP)
Registro do Cliente
Criar/Atualizar Registro (/customer/register)
Registra ou atualiza o cadastro de uma pessoa no sistema.
Método: POST
Body:
{
"cpf": "12345678901",
"integration_id": "b64d523c-8c93-4188-b5f6-3f5f08397712",
"webhook_url": "https://seu-servidor.com/webhook/kyc",
"transaction_id": "48663425-69fe-4ae9-baae-82ede29d0668"
}Parâmetros:
cpf: CPF a ser consultado (string, apenas números)integration_id: ID da integração obtido no dashboardwebhook_url: (Opcional) URL que receberá o webhooktransaction_id: (Opcional) ID da transação para rastreamento
Resposta:
{
"message": "Operação concluída com sucesso",
"onboarding_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}Campos da resposta:
message: Mensagem de conclusão da operaçãoonboarding_id: ID do onboarding criado/atualizado (UUID). Este ID pode ser utilizado de duas formas:- Para integração via iframe: Utilize este UUID no template do link:
https://face.pixtopay.com.br/?guid=<ONBOARDING_ID> - Para integração direta via API: Utilize como token de autorização (onboarding_id) nos próximos endpoints do fluxo de onboarding
- Para integração via iframe: Utilize este UUID no template do link:
Gerar link para onboarding (/links/generate)
Gera link para ser utilizado no onboarding
Método: POST
Body:
{
"cpf": "12345678901",
"integration_id": "b64d523c-8c93-4188-b5f6-3f5f08397712",
"webhook_url": "https://seu-servidor.com/webhook/kyc",
"transaction_id": "48663425-69fe-4ae9-baae-82ede29d0668"
}Parâmetros:
cpf: CPF a ser consultado (string, apenas números)integration_id: ID da integração obtido no dashboardwebhook_url: (Opcional) URL que receberá o webhooktransaction_id: (Opcional) ID da transação para rastreamento
Resposta:
{
"guid": "8d9b6f1f-fad1-4d96-88f6-e42334b8c3c1",
"redirect_url": "https://face.pixtopay.com.br/?guid=8d9b6f1f-fad1-4d96-88f6-e42334b8c3c1"
}Campos da resposta:
message: Mensagem de conclusão da operaçãoredirect_url: URL para redirecionar o usuário para o onboarding.
Fluxo de Onboarding
Autenticação: Todas as requisições KYC devem incluir um onboarding_id no header Authorization, obtido na request de registro.
1. Upload de Imagens (/onboarding/upload)
Realiza o upload das imagens do documento e selfie do usuário.
Método: POST
Headers:
{
"Authorization": "<ONBOARDING_ID>"
}Query Parameters:
type: Tipo de imagem a ser enviada"front_document": Frente do documento"back_document": Verso do documento"selfie": Foto selfie
Exemplo de requisição:
POST /onboarding/upload?type=front_documentResposta:
{
"message": "Upload realizado com sucesso"
}2. Submeter para Avaliação (/onboarding/submit)
Após enviar todas as imagens necessárias, submete os dados para análise.
Método: POST
Headers:
{
"Authorization": "<ONBOARDING_ID>"
}Body:
{
"lat": -23.5505,
"lng": -46.6333
}Parâmetros:
lat: Latitude da localização do usuáriolng: Longitude da localização do usuário
Resposta:
{
"guid": "abc123def456",
"matches": true,
"similarity": 0.95,
"status": "approved",
"reason": "Documentos válidos e selfie compatível",
"show_full_results": true,
"frontImageSize": 1024000,
"selfieImageSize": 512000
}Campos da resposta:
guid: Identificador único da submissãomatches: Indica se houve correspondência entre documento e selfiesimilarity: Índice de similaridade (0 a 1)status: Status da avaliaçãoreason: Motivo/detalhes do resultado em caso de erroshow_full_results: Indica se resultados completos estão disponíveisfrontImageSize: Tamanho da imagem frontal em bytesselfieImageSize: Tamanho da imagem selfie em bytes
Fluxo de Validação Facial (Liveness)
1. Upload de Selfie (/onboarding/upload)
Realiza o upload de uma nova selfie para validação de vivacidade.
Método: POST
Headers:
{
"Authorization": "<ONBOARDING_ID>"
}Query Parameters:
?type=selfieResposta:
{
"message": "Upload realizado com sucesso"
}Observações importantes:
- O onboarding da pessoa deve estar concluído antes desta etapa
- Este endpoint aceita apenas uploads do tipo
"selfie"
2. Verificar Face (/onboarding/verify)
Verifica se a selfie enviada corresponde aos dados cadastrados.
Método: POST
Headers:
{
"Authorization": "<ONBOARDING_ID>"
}Resposta:
{
"matches": true,
"similarity": 0.92,
"similarityThreshold": 0.85,
"message": "Verificação facial aprovada"
}Campos da resposta:
matches: Indica se a face corresponde ao cadastrosimilarity: Índice de similaridade obtido (0 a 1)similarityThreshold: Limiar mínimo de similaridade requeridomessage: Mensagem descritiva do resultado
Endpoints de Integração
Estes endpoints permitem recuperar dados de submissão e imagens associadas às suas integrações.
Autenticação (Dashboard API Key)
Todos os endpoints abaixo requerem autenticação via chave de API de dashboard.
Essa chave pode ser obtida no dashboard da PixToPay.
Header: Authorization: Bearer <SUA_CHAVE_API>
Listar submissões (GET /submissions/all)
Recupera uma lista paginada de submissões associadas às suas integrações, com filtros por CPF, nome, status e período.
Este é o endpoint ideal para encontrar um usuário e, a partir disso, localizar a submission_id para download das imagens.
Método: GET
URL: /submissions/all
Headers:
Authorization: Bearer <SUA_DASHBOARD_API_KEY>Parâmetros de query:
| Parâmetro | Tipo | Descrição | Obrigatório | Exemplo |
|---|---|---|---|---|
merchant_id | uuid | ID do merchant na PixToPay (fixo para sua conta) | ✅ Sim | f1c6e3d2-1234-5678-9abc-def012 |
integration_ids | string[] | (Opcional) Lista de IDs de integração a filtrar | Não | ["int-uuid-1","int-uuid-2"] |
page | number | (Opcional) Número da página (paginação por página) | Não | 1 |
limit | number | (Opcional) Itens por página | Não | 20 |
sort_field | string | (Opcional) Campo de ordenação (created_at por padrão) | Não | created_at |
sort_order | string | (Opcional) Ordenação (ASC ou DESC, default DESC) | Não | DESC |
cpf | string | (Opcional) CPF para filtro exato (aceita com ou sem máscara) | Não | 000.000.000-72 |
status | string | (Opcional) Status da submissão ou lista de status (approved, pending, rejected, error) | Não | approved ou approved,error |
type | string | (Opcional) Tipo da submission ou lista (onboarding, liveness) | Não | onboarding ou onboarding,liveness |
start_date | date | (Opcional) Data inicial de filtro em created_at (YYYY-MM-DD) | Não | 2024-01-01 |
end_date | date | (Opcional) Data final de filtro em created_at (YYYY-MM-DD) | Não | 2024-01-31 |
search | string | (Opcional) Busca por nome do cliente | Não | "João da Silva" |
Exemplo de resposta:
{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"customer_id": "987fcdeb-51a2-43d1-a456-426614174000",
"tax_id_number": "000.000.000-72",
"name": "João da Silva",
"type": "onboarding",
"integration": "Minha Integração Principal",
"integration_id": "c1b2d3e4-f567-8901-2345-6789abcdef01",
"status": "approved",
"created_at": "2024-01-15T10:00:00.000Z",
"updated_at": "2024-01-15T10:05:00.000Z"
}
],
"pagination": {
"total": 42,
"page": 1,
"limit": 20,
"totalPages": 3
}
}Consultar um onboarding e suas submissões (GET /onboarding/:id)
Caso você já tenha o onboarding_id (por exemplo, recebido no webhook), pode consultar todo o contexto do cliente, incluindo as submissões e webhooks relacionados.
Método: GET
URL: /onboarding/:id
Parâmetros de caminho:
| Parâmetro | Tipo | Descrição |
|---|---|---|
id | uuid | ID do onboarding (onboarding_id) |
Parâmetros de query:
| Parâmetro | Tipo | Descrição |
|---|---|---|
integration_id | uuid | ID da integração na PixToPay |
A resposta inclui, entre outros campos, dois arrays importantes:
submissions: lista de submissões associadas ao onboarding (já com URLs assinadas das imagens)webhooks: eventos de webhook vinculados àquele onboarding
Fluxo recomendado quando você recebe um webhook:
- Receba o webhook contendo
onboarding_id,integration_idetransaction_id. - Chame
GET /onboarding/{onboarding_id}?integration_id={integration_id}com a Dashboard API Key. - Use o array
submissionsda resposta para:- Identificar a submissão relevante (por status, data ou tipo).
- Obter diretamente as URLs assinadas de
selfie,front_documenteback_documentquando disponíveis.
Obter todas as imagens de uma submissão (GET /submissions/:submission_id/images)
Recupera todas as imagens (frente, verso e selfie) associadas a uma submissão em uma única chamada.
Método: GET
URL: /submissions/:submission_id/images
Parâmetros de caminho:
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
submission_id | uuid | Identificador único da submissão | ✅ Sim |
Exemplo de resposta:
{
"back_document_url": "https://s3.amazonaws.com/.../back_document",
"front_document_url": "https://s3.amazonaws.com/.../front_document",
"selfie_url": "https://s3.amazonaws.com/.../selfie"
}Obter uma imagem específica da submissão (GET /submissions/:submission_id/:type)
Quando você precisa apenas de uma imagem específica de uma submissão:
Método: GET
URL: /submissions/:submission_id/:type
Parâmetros de caminho:
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
submission_id | uuid | Identificador único da submissão | ✅ Sim |
type | string | Tipo da imagem: front_document, back_document ou selfie | ✅ Sim |
Exemplo de resposta:
{
"url": "https://s3.amazonaws.com/.../selfie"
}Resumo do fluxo para “achar usuário e baixar imagens”
- Para encontrar o usuário: use
GET /submissions/allcom filtros decpf,search(nome),statuse intervalo de datas. - Para baixar imagens a partir de um webhook: use o
onboarding_iddo webhook emGET /onboarding/:id, escolha a submissão desejada no arraysubmissionse então:- Use diretamente as URLs assinadas retornadas, ou
- Chame
GET /submissions/:submission_id/images/GET /submissions/:submission_id/:typeconforme sua necessidade.