API de Pendências — Documentação Funcional
Índice
- Visão geral
- Atores e contexto
- Pendências suportadas
- Fluxo de onboarding ponta a ponta
- Operações
- Catálogo de atributos data_grid
- Regras de negócio e restrições
- Significados de erros
Visão geral
Usando esta API, um parceiro pode:
- Consultar as pendências abertas de um comerciante e seu status atual.
- Enviar ou atualizar dados de registro.
- Solicitar e validar códigos de verificação de canal de contato (SMS / email / WhatsApp).
- Fazer upload de documentos obrigatórios (como conteúdo Base64).
- Aceitar documentos e termos.
- Baixar documentos gerados quando disponíveis.
snake_case, datas estão em ISO-8601 UTC e o tipo
de conteúdo é application/json.Atores e contexto
| Campo | Descrição |
|---|---|
partnerId | Identificador único da aplicação parceira. |
merchantId | Identificador do comerciante cujo onboarding está sendo gerenciado. |
Ambos os identificadores aparecem no caminho de cada endpoint:
person_type:natural_person— o documento legal do comerciante é um CPF (pessoa física).company— o documento legal do comerciante é um CNPJ (pessoa jurídica).
O tipo de pessoa determina quais atributos de registro se aplicam (veja Catálogo de atributos data_grid).
Pendências suportadas
Apenas as pendências abaixo são expostas aos parceiros. Qualquer outra pendência que a plataforma rastreia internamente nunca é retornada.
| Pendência | Significado | Resolvida via |
|---|---|---|
cell_phone_validation | A propriedade do celular deve ser verificada | solicitação de token + validação |
email_validation | A propriedade do email deve ser verificada | solicitação de token + validação |
data_grid | Atributos de registro devem ser fornecidos/atualizados | PUT /data-grid |
selfie_upload | Selfie deve ser enviada | POST /upload-document |
identification_document_upload | Documento de identificação deve ser enviado | POST /upload-document |
social_contract_upload | Contrato social deve ser enviado | POST /upload-document |
letter_of_attorney_upload | Procuração deve ser enviada | POST /upload-document |
order_summary | Resumo do pedido deve ser aceito | PUT /acceptance-document |
terms_and_conditions | Termos e condições devem ser aceitos | PUT /acceptance-document |
privacy_policy | Política de privacidade deve ser aceita | PUT /acceptance-document |
pendencies: []).data_grid é retornada, seu campo grid_info lista exatamente quais
atributos de registro devem ser enviados.Fluxo de onboarding ponta a ponta
Um parceiro primeiro consulta as pendências do comerciante e depois resolve cada uma respeitando as regras de ordenação abaixo. Apenas as pendências que estão realmente abertas para esse comerciante precisam ser resolvidas.
- Validação de contato vem primeiro. Um código de verificação só pode ser solicitado após o valor
correspondente de
email/cell_phonejá existir no registro. Envie esses atributosdata_gridantes de solicitar/validar um token para esse canal. - Documento de identificação após a selfie, quando a selfie é obrigatória.
- Contrato social antes de procuração. O comerciante fornece o contrato social ou a procuração dependendo de sua situação.
Operações
/api/v1/partner/{partnerId}/merchant/{merchantId}/pendencies/swagger-ui.html; a especificação OpenAPI em /api-docs.1. Consultar pendências
GET (caminho base)person_type do comerciante e situações gerais. Quando uma pendência é do tipo data_grid,
grid_info informa ao parceiro quais atributos devem ser resolvidos.- Comerciante não encontrado / não acessível →
404. - Sem pendências aplicáveis →
200com uma lista vazia.
2002. Solicitar código de validação
POST /token-requestSolicita um código de verificação único a ser enviado ao comerciante através de um canal de contato.
| Campo | Obrigatório | Descrição |
|---|---|---|
type | sim | Canal de contato: cell_phone, email (WhatsApp também é suportado como canal). |
value | sim | O valor do canal (ex: email@email.com ou um número de telefone). |
O código é despachado de forma assíncrona para o comerciante.
202 (aceito / despachado)3. Validar código
POST /token-validationEnvia o código que o comerciante recebeu para confirmar a propriedade do canal de contato.
| Campo | Obrigatório | Descrição |
|---|---|---|
token | sim | O código único recebido pelo comerciante. |
type | não | Canal de contato para o qual o código foi enviado. |
value | não | O valor do canal. |
device_fingerprint | não | Impressão digital do dispositivo para prevenção de fraude. |
200 (propriedade do canal confirmada)4. Resolver data_grid
PUT /data-griddata_grid. O corpo carrega um envelope de
pendências; apenas data_grid é aceito, e cada item grid_info é discriminado por seu attribute:{
"pendencies": [
{
"name": "data_grid",
"grid_info": [
{ "attribute": "email", "email": "teste@email.com" },
{ "attribute": "cell_phone", "cell_phone": "51992547923" }
]
}
]
}{
"pendencies": [
{
"name": "data_grid",
"grid_info": [
{ "attribute": "email", "email": "teste@email.com" },
{ "attribute": "cell_phone", "cell_phone": "51992547923" }
]
}
]
}- O comerciante deve ter uma pendência
data_gridativa (status pendente); caso contrário, a requisição é rejeitada com422. - Apenas atributos no catálogo de atributos são aceitos; qualquer
outro atributo, um campo desconhecido, um corpo vazio ou um valor malformado →
400.
204 (sem conteúdo)5. Fazer upload de documento
POST /upload-documentFaz upload de um documento obrigatório como conteúdo Base64. Retorna a situação atual (status e data da última atualização) do documento enviado.
| Campo | Obrigatório | Descrição |
|---|---|---|
document_type | sim | Ex: social_contract, identification_document, selfie. |
side | sim | Lado da imagem, ex: front, back. |
file_type | sim | Formato do arquivo, ex: pdf, jpg, png. |
file_base64 | sim | Conteúdo do arquivo codificado em Base64 (deve ser Base64 válido). |
device_fingerprint | não | Impressão digital do dispositivo. |
400.2006. Aceitar documento
PUT /acceptance-documentAceita um documento ou termos. O corpo carrega um envelope de pendências; a resposta retorna o nome e a situação atual da pendência aceita.
{
"pendencies": [
{
"name": "privacy_policy",
"device_fingerprint": "abc123",
"situation": { "status": "..." }
}
]
}{
"pendencies": [
{
"name": "privacy_policy",
"device_fingerprint": "abc123",
"situation": { "status": "..." }
}
]
}2007. Baixar documento
GET /download-document/{documentType}documentType deve ser um de
terms_and_conditions ou order_summary; qualquer outro valor → 400.200 (retorna o document_type e seu conteúdo Base64)Catálogo de atributos data_grid
data_grid é retornada, grid_info lista os atributos que devem ser enviados.
O conjunto aplicável depende do tipo de pessoa do comerciante.Pessoa Física (PF)
country_of_birth, cell_phone, email, gross_monthly_income, net_worth,
residential_address, merchant_category_code, commercial_address, business_addressPessoa Jurídica (PJ)
merchant_category_code e business_address, mais os dados do
representante legal:legal_representative.email, legal_representative.cell_phone,
legal_representative.country_of_birth, legal_representative.residential_address,
legal_representative.gross_monthly_income, legal_representative.net_worthRegras de valor por atributo
| Atributo | Formato do valor | Regra |
|---|---|---|
email / legal_representative.email | email | Endereço de email válido, não em branco. |
cell_phone / legal_representative.cell_phone | cell_phone | 10 a 13 dígitos. |
country_of_birth / legal_representative.country_of_birth | country | ISO 3166-1 alpha-2 (ex: BR). |
residential_address, business_address, commercial_address (e legal_representative.residential_address) | address | Veja campos de endereço abaixo. |
merchant_category_code | merchant_category_code + economic_activity_classification_code, ou acquirer_merchant_category_code | Forneça o par MCC (MCC = 4 dígitos, CNAE = 1–7 dígitos) ou o MCC do adquirente. |
gross_monthly_income / legal_representative.gross_monthly_income | gross_monthly_income | Valor inteiro em BRL (reais, não centavos). |
net_worth / legal_representative.net_worth | net_worth | Valor inteiro em BRL (reais, não centavos). |
street (obrigatório), number (em branco é tratado como "0"), district
(obrigatório), city, state, postal_code (obrigatório, apenas dígitos), country (obrigatório, ISO alpha-2).Regras de negócio e restrições
- Apenas pendências abertas podem ser resolvidas. Resolver
data_gridrequer uma pendênciadata_gridativa (pendente); caso contrário422. - Exposição seletiva. Apenas as pendências suportadas são retornadas; tipos de pendência internos nunca são expostos.
- Entrada rigorosa. Corpos de requisição de parceiros rejeitam campos desconhecidos (
400), e corpos vazios ({}/[]) são rejeitados. - Documentos devem conter conteúdo Base64 válido.
- Ordenação de validação de contato. Um código de verificação só pode ser enviado para um valor
de
email/cell_phoneque já existe no registro. - Tipo de pessoa é derivado do documento legal do comerciante: CPF →
natural_person, CNPJ →company. - Sem pendências abertas retorna uma lista vazia.
- Dados sensíveis devem ser transmitidos via HTTPS, e todas as requisições requerem autenticação.
Significados de erros
| HTTP | Significado |
|---|---|
200 | Sucesso |
202 | Aceito (código de validação despachado) |
204 | Sucesso, sem conteúdo retornado |
400 | Requisição inválida (corpo malformado, campo desconhecido, valor inválido, canal/tipo de documento não suportado) |
401 | Autenticação ausente ou inválida |
403 | Chamador autenticado não tem permissão para acessar o recurso |
404 | Comerciante não encontrado ou não acessível pelo parceiro |
422 | Violação de regra de negócio (ex: sem pendência data_grid ativa para resolver) |
500 | Erro inesperado |
504 | Requisição expirou |
Respostas de erro compartilham uma forma comum:
{ "status_code": 422, "message": "No active data_grid pendency to resolve for this merchant.", "details": [] }{ "status_code": 422, "message": "No active data_grid pendency to resolve for this merchant.", "details": [] }Nesta página