1. Subcontas White-Label (BaaS)
Dotfy - Documentação
  • Dotfy Module
    • Raiz
      • Conta (Dados do Seller)
        • Identificar a conta (dados do seller)
      • Cobranças PIX
        • Criar cobrança PIX
        • Listar cobranças
        • Consultar cobrança por correlationID
        • Histórico de webhooks de uma cobrança
      • Cartão (Checkout Transparente)
        • Criar pagamento com cartão (PAN via API)
      • Saldo
        • Consultar saldo
      • Saques e Chaves PIX
        • Listar chaves PIX cadastradas
        • Cadastrar chave PIX
        • Listar saques
        • Solicitar saque
        • Cancelar saque pendente
      • Clientes
        • Listar clientes
        • Detalhe de um cliente
      • Produtos e Links de Pagamento
        • Links de compra por comprador (Purchase Links)
          • Criar link de compra (por comprador)
          • Listar links de compra do produto
          • Detalhe/status do link de compra
          • Revogar link de compra
        • Listar produtos
        • Criar produto
        • Detalhe do produto
        • Carrinhos abandonados do produto
      • Splits
        • Analytics de splits enviados
        • Splits recebidos
      • Disputas e MEDs
        • Listar disputas
        • Listar MEDs com estatísticas
        • Evidências de uma disputa
        • Histórico de uma disputa
      • Subcontas White-Label (BaaS)
        • Criar subconta
          POST
        • Listar subcontas
          GET
        • Detalhe da subconta
          GET
        • Atualizar subconta
          PATCH
        • Excluir subconta (soft delete)
          DELETE
        • Enviar KYC da subconta (multipart)
          POST
        • Consultar status do KYC da subconta
          GET
        • Cadastrar chave PIX da subconta
          POST
        • Listar chaves PIX da subconta
          GET
        • Remover chave PIX da subconta
          DELETE
        • Criar cobrança da subconta
          POST
        • Listar cobranças da subconta
          GET
        • Detalhe de cobrança da subconta
          GET
        • Saldo da subconta
          GET
        • Extrato (transações) da subconta
          GET
        • Solicitar saque da subconta
          POST
        • Listar saques da subconta
          GET
        • Atualizar taxas da subconta
          PUT
      • Webhooks (Gerenciar Endpoints)
        • Listar endpoints
        • Criar endpoint
        • Atualizar endpoint
        • Remover endpoint
      • Webhooks (Eventos Recebidos)
        • EVENT:CHARGE_CREATED — cobrança criada
        • EVENT:CHARGE_PAID — cobrança paga (atualização principal)
        • EVENT:CHARGE_EXPIRED — cobrança expirada
        • EVENT:SPLIT_RECEIVED — você recebeu um split
        • EVENT:DISPUTE_OPENED — MED/disputa aberta
        • EVENT:DISPUTE_WON — disputa ganha
        • EVENT:DISPUTE_LOST — disputa perdida
        • EVENT:DISPUTE_CANCELED — disputa cancelada
        • EVENT:WITHDRAWAL_COMPLETED — saque concluído
        • EVENT:WITHDRAWAL_FAILED — saque falhou
        • EVENT:SUBACCOUNT_KYC_APPROVED — KYC da subconta aprovado
        • EVENT:SUBACCOUNT_KYC_REJECTED — KYC da subconta recusado
        • EVENT:SUBACCOUNT_PIX_KEY_APPROVED — chave PIX da subconta aprovada
        • EVENT:SUBACCOUNT_PIX_KEY_REJECTED — chave PIX da subconta recusada
      • Notificações
        • Listar notificações
      • Dashboard / Analytics
        • Stats gerais
        • Atividade recente
        • Atividade (timeline)
        • Receita por período
        • Volume por período
        • Taxa de conversão
        • Métodos de pagamento
        • Transações (gráfico)
        • Analytics avançado
  1. Subcontas White-Label (BaaS)

Enviar KYC da subconta (multipart)

POST
/api/subaccounts/{{subaccount_id}}/kyc

Autenticação#

Esta rota exige Bearer Token (a API Key do master) no header. Envie EXATAMENTE assim:
A chave precisa do escopo subaccounts:write e a conta precisa da flag white-label habilitada. Sem a flag, a rota responde 404 (invisível). Sem o header → 401. Escopo insuficiente → 403 insufficient_scope.
Não defina o header Content-Type manualmente. Esta rota é multipart/form-data e o cliente HTTP gera o boundary automaticamente. Defini-lo à mão quebra o parsing.

Enviar KYC da subconta#

Escopo: subaccounts:write
Content-Type: multipart/form-data
Submete os documentos de verificação de identidade (KYC) de uma subconta. Os arquivos são gravados em storage privado — o master nunca recebe URL nem chave dos documentos, apenas o status da submissão. Ao enviar com sucesso, a subconta passa para kycStatus = IN_REVIEW e a submissão é criada com status = RECEIVED. A análise é feita por um operador Dotfy.

Campos do formulário (multipart)#

CampoTipoObrigatórioDescrição
payloadtext (JSON em string)simDados cadastrais da subconta. Deve ser JSON válido.
docFrontfilesimFrente do documento de identidade.
docBackfilenãoVerso do documento (quando aplicável).
selfiefilesimSelfie do titular com o documento.
extraDocsfile (repetível)nãoAté 5 documentos complementares.
Restrições de arquivo: MIME image/jpeg, image/png, image/webp, application/pdf; extensão jpg/jpeg/png/webp/pdf; tamanho máximo 10MB por arquivo.

Resposta#

201 Created com { submission: { id, status, createdAt } }. status inicial é RECEIVED. Consulte o andamento em GET /api/subaccounts/{id}/kyc.

Códigos de erro#

HTTPcodeQuando
400—payload ausente, payload não é JSON válido, docFront/selfie ausentes, ou arquivo com MIME/extensão/tamanho inválido.
401—Sem header Authorization ou chave inválida/revogada.
403insufficient_scopeChave sem o escopo subaccounts:write.
404—Flag white-label desabilitada, subconta inexistente ou não pertence ao master (invisibilidade anti-IDOR).
409KYC_PENDINGJá existe uma submissão em análise (RECEIVED/IN_REVIEW) para esta subconta.
422KYC_ALREADY_APPROVEDO KYC desta subconta já está aprovado — nada a reenviar.

Exemplo cURL#


Rate limit: 20/min por subconta (429 ao exceder).

Requisição

Authorization
Forneça seu token bearer no cabeçalho
Authorization
ao fazer requisições para recursos protegidos.
Exemplo:
Authorization: Bearer ********************
Parâmetros Header

Parâmetros Bodymultipart/form-data

Respostas

🟢201
application/json
Bodyapplication/json

🟠400
🟠409
🟠422
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --globoff '/api/subaccounts/{{subaccount_id}}/kyc' \
--header 'Authorization: Bearer <token>' \
--form 'payload="{
  \"fullName\": \"Empresa Exemplo LTDA\",
  \"taxId\": \"12345678000199\",
  \"birthDate\": \"1990-05-12\",
  \"address\": {
    \"street\": \"Av. Paulista, 1000\",
    \"city\": \"São Paulo\",
    \"state\": \"SP\",
    \"zipCode\": \"01310100\"
  }
}"' \
--form 'docFront=@""' \
--form 'docBack=@""' \
--form 'selfie=@""' \
--form 'extraDocs=@""'
Response Response Example
201 - Sucesso (201) — submissão recebida
{
  "submission": {
    "id": "clkycsub0001",
    "status": "RECEIVED",
    "createdAt": "2026-06-13T14:20:00.000Z"
  }
}
Modificado em 2026-07-02 06:57:27
Página anterior
Excluir subconta (soft delete)
Próxima página
Consultar status do KYC da subconta
Built with