V VATEX PaySANDBOX EVEO

GUIA DO PROJETO

Entenda o Pay.

Acesso, fluxos e referência das APIs em um só lugar.

← Início
Documentação · Sandbox EVEO

Todos os valores e provedores são simulados. Esta página é de consulta. As operações continuam sujeitas à autenticação e às permissões de cada conta.

CONTRATO 0.49.0

131 rotas documentadas

Baixe o contrato OpenAPI para consultar métodos, entradas, autenticação e respostas. Os objetos de resposta extensíveis devem ser lidos junto aos guias do projeto.

01 · PRIMEIRO ACESSO

Sua conta de teste

  1. Crie uma conta com dados fictícios na página inicial.
  2. Abra LER-EMAIL-PAY-EVEO.ps1 na pasta do Pay e confirme o link da caixa simulada.
  3. Entre e configure o autenticador em duas etapas.

Não existe usuário ou senha administrativa padrão. O operador local atribui o perfil a uma conta confirmada pelo comando pay_role, descrito em docs/IDENTITY.md. Alterar perfil encerra sessões.

Abrir acesso →

02 · AUTORIZAÇÃO

Três formas de acesso

Sessão: portal e operações próprias. POST exige cookie e token CSRF; ações administrativas exigem perfil e 2FA.

Chave Bearer: consultas e criação de cobranças da empresa, conforme permissões específicas; sem cookie ou CSRF. Não substitui a sessão do administrador nem permite débitos.

Assinatura HMAC: valida notificações Lightning de teste. Não autoriza débito de uma conta.

03 · MOVIMENTAÇÃO SIMULADA

Da prévia ao extrato

  1. Cadastro aprovado: abrir carteiras zeradas por ativo.
  2. Preparação: conferir a prévia ou cotação, sem reservar saldo.
  3. Confirmação: revalidar senha, cadastro, saldo e limites.
  4. Contabilização: gravar resultado e lançamentos equilibrados na mesma transação.
  5. Consulta: recuperar o comprovante e conferir o extrato.

Em resultado incerto, consulte ou repita o identificador original. Uma nova solicitação pode gerar outro movimento. Estorno é outro lançamento; o histórico original permanece.

04 · REVISÃO E OPERAÇÃO

Compliance e acompanhamento

KYC/KYB verifica o cadastro fictício e sua versão. A análise de risco de movimentações acontece manualmente, depois da contabilização: análise → alerta quando houver sinal → decisão de um operador autorizado.

Participantes não revisam os próprios casos. Escalonar registra uma decisão local; não envia notificações nem bloqueia saldo. Monitoramento acompanha métricas e pendências, e a conciliação registra diferenças sem fazer ajustes financeiros.

REFERÊNCIA DA API

Encontre uma operação

Expanda uma operação para consultar o formato de entrada. Para respostas, erros e schemas referenciados, use o OpenAPI completo. POST usa objeto JSON UTF-8 de até 16 KiB e 32 níveis. Campos JSON e parâmetros de consulta repetidos não são aceitos. Valores monetários são strings com ponto decimal.

Aprovações de transferências

POST /api/v1/approvals/create

Solicitar aprovação de transferência

Acesso: Sessão

pricing_mode omitido = ZERO. FEES_V1 cobra 50 bps (0,5%) sobre o principal, arredondado para cima na menor unidade do ativo; tarifa somada ao débito do remetente. Destinatário recebe amount integral. Principal + tarifa contam nos limites. Política e custo preservados no pedido/prévia e no retry. Resposta inclui fee, total e pricing_mode. Guia docs/TRANSFER-FEES.md. Fluxo opcional no padrão OFF; obrigatório para titular em ALL_INTERNAL (USD/USDC/BTC, sem mínimo). Solicitação captura versão da política, que deve continuar vigente ao revisar/executar. Mudança de política exige nova solicitação, sem alterar histórico. Campos review_policy, review_required, policy_bound, policy_current, can_review/can_execute; flags não dispensam autorização atual. Guia docs/REQUIRED-REVIEW.md. Sem reserva de saldo. Prazo fixo de 15 minutos; no máximo 20 solicitações ativas por titular. Guia docs/APPROVALS.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "destination": { "type": "string", "format": "uuid" }, "amount": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "idempotency_key": { "type": "string", "format": "uuid" }, "pricing_mode": { "type": "string", "enum": [ "ZERO", "FEES_V1" ] } }, "additionalProperties": false, "required": [ "source", "destination", "amount", "idempotency_key" ] }
GET /api/v1/approvals/policy

Consultar minha política de revisão

Acesso: Sessão

Sem filtros; somente modo, versão e canal TRANSFERS/ativos USD/USDC/BTC. OFF padrão sem ativação automática; não expõe motivos administrativos. Guia docs/REQUIRED-REVIEW.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/admin/review-policy/detail

Consultar política de revisão e até 50 eventos

Acesso: Sessão · approvals.policy_manage

Outro titular cliente ou alvo com histórico; exige MFA e e-mail confirmado. history_has_more indica eventos adicionais. Guia docs/REQUIRED-REVIEW.md. Exige approvals.policy_manage e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
POST /api/v1/admin/review-policy/change

Alterar política de revisão por titular

Acesso: Sessão · approvals.policy_manage

OFF padrão. ALL_INTERNAL exige cliente ativo/confirmado e motivo REQUIRE_INTERNAL_REVIEW; OFF exige política anterior ligada e RESTORE_DIRECT_INTERNAL. Sem valor mínimo nem ativação em lote. Nova revisão invalida prévias/solicitações abertas. Senha/MFA/CSRF; replay devolve evento original e estado atual. Locks ocupados retornam 503 sem efeito. Guia docs/REQUIRED-REVIEW.md. Exige approvals.policy_manage e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "target_id": { "type": "string", "format": "uuid" }, "mode": { "type": "string", "enum": [ "OFF", "ALL_INTERNAL" ] }, "reason": { "type": "string", "enum": [ "REQUIRE_INTERNAL_REVIEW", "RESTORE_DIRECT_INTERNAL" ] }, "expected_revision": { "type": "integer", "minimum": 0, "maximum": 2147483646 }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "target_id", "mode", "reason", "expected_revision", "idempotency_key", "password" ] }
GET /api/v1/approvals/list

Listar até 50 solicitações recentes

Acesso: Sessão

Titular vê suas solicitações. ADMIN/SUPER_ADMIN com 2FA vê a fila administrativa. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/approvals/detail

Consultar solicitação e histórico

Acesso: Sessão

Acesso do titular ou approvals.review com 2FA. Expiração é derivada do prazo; eventos são imutáveis. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
POST /api/v1/approvals/review

Aprovar ou rejeitar solicitação

Acesso: Sessão · approvals.review

Solicitante e destinatário não podem revisar. Aprovar exige REVIEW_APPROVED; rejeitar exige DATA_MISMATCH ou RISK_REVIEW. Não movimenta saldo nem estende o prazo. Exige approvals.review e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "expected_revision": { "type": "integer", "minimum": 0, "maximum": 3 }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." }, "action": { "type": "string", "enum": [ "APPROVED", "REJECTED" ] }, "reason": { "type": "string", "enum": [ "REVIEW_APPROVED", "DATA_MISMATCH", "RISK_REVIEW" ] } }, "additionalProperties": false, "required": [ "id", "expected_revision", "idempotency_key", "password", "action", "reason" ] }
POST /api/v1/approvals/cancel

Cancelar solicitação própria

Acesso: Sessão

Titular; somente PENDING ou APPROVED dentro do prazo. Nenhum débito. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "expected_revision": { "type": "integer", "minimum": 0, "maximum": 3 }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "id", "expected_revision", "idempotency_key", "password" ] }
POST /api/v1/approvals/execute

Executar transferência aprovada

Acesso: Sessão

Titular com senha; somente APPROVED dentro do prazo. Revalida cadastro, saldo, limites e bloqueios; consome limite de TRANSFERS. Repetição do comando com mesma chave recupera resultado sem novo débito. Guia docs/APPROVALS.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "expected_revision": { "type": "integer", "minimum": 0, "maximum": 3 }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "id", "expected_revision", "idempotency_key", "password" ] }

Limites de movimentação

GET /api/v1/limits/policy

Consultar limites vigentes de teste

Acesso: Sessão

Política global por ativo. Contagem por usuário e módulo; cripto e Lightning também por direção. Dia UTC. Confirmações usam a versão vigente. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/limits/effective

Consultar limites efetivos próprios

Acesso: Sessão

Sem filtros. Global, individual e efetivo; não expõe operador. Menor teto por campo; consumo por titular/módulo/direção, UTC, incluindo DEPOSIT/RECEIVE mock. Sem reserva. Guia docs/INDIVIDUAL-LIMITS.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/admin/individual-limits/detail

Consultar limites individuais e até 50 eventos

Acesso: Sessão · limits.manage

UUID de outro titular cliente; histórico adicional indicado. Global, armazenado e efetivo separados. Exige e-mail administrativo confirmado. Guia docs/INDIVIDUAL-LIMITS.md. Exige limits.manage e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
POST /api/v1/admin/individual-limits/change

Alterar limites individuais

Acesso: Sessão · limits.manage

SET_LIMITS exige limites completos positivos <= global vigente e quantidade inteira. INHERIT_GLOBAL exige assets/daily_count nulos e motivo RESTORE_GLOBAL. Senha, MFA, alvo elegível, revisões global/individual e chave idempotente. Replay devolve evento original e estado atual. Não ativa revisão obrigatória. Guia docs/INDIVIDUAL-LIMITS.md. Exige limits.manage e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "target_id": { "type": "string", "format": "uuid" }, "action": { "type": "string", "enum": [ "SET_LIMITS", "INHERIT_GLOBAL" ] }, "assets": { "type": "object", "properties": { "USD": { "type": "object", "properties": { "per_operation": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "per_day": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." } }, "additionalProperties": false, "required": [ "per_operation", "per_day" ] }, "USDC": { "type": "object", "properties": { "per_operation": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "per_day": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." } }, "additionalProperties": false, "required": [ "per_operation", "per_day" ] }, "BTC": { "type": "object", "properties": { "per_operation": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "per_day": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." } }, "additionalProperties": false, "required": [ "per_operation", "per_day" ] } }, "additionalProperties": false, "required": [ "USD", "USDC", "BTC" ], "nullable": true }, "daily_count": { "type": "integer", "minimum": 1, "maximum": 10, "nullable": true }, "reason": { "type": "string", "enum": [ "POLICY_REVIEW", "OWNER_REQUEST", "RESTORE_GLOBAL" ] }, "expected_revision": { "type": "integer", "minimum": 0, "maximum": 2147483646 }, "expected_global_revision": { "type": "integer", "minimum": 0, "maximum": 2147483646 }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "target_id", "action", "assets", "daily_count", "reason", "expected_revision", "expected_global_revision", "idempotency_key", "password" ] }
GET /api/v1/limits/detail

Consultar política e até 50 versões

Acesso: Sessão · limits.manage

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Exige limits.manage e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

POST /api/v1/limits/change

Publicar nova versão de limites

Acesso: Sessão · limits.manage

Exige ADMIN/SUPER_ADMIN, 2FA e senha. Valores por operação <= diário, dentro dos máximos originais do sandbox. Motivo RESTORE_DEFAULTS exige todos os valores originais. Revisão inicial zero; repetição retorna event_id original e política atual. Guia docs/LIMITS.md. Exige limits.manage e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "assets": { "type": "object", "properties": { "USD": { "type": "object", "properties": { "per_operation": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "per_day": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." } }, "additionalProperties": false, "required": [ "per_operation", "per_day" ] }, "USDC": { "type": "object", "properties": { "per_operation": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "per_day": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." } }, "additionalProperties": false, "required": [ "per_operation", "per_day" ] }, "BTC": { "type": "object", "properties": { "per_operation": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "per_day": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." } }, "additionalProperties": false, "required": [ "per_operation", "per_day" ] } }, "additionalProperties": false, "required": [ "USD", "USDC", "BTC" ] }, "daily_count": { "type": "integer", "minimum": 1, "maximum": 10 }, "reason": { "type": "string", "enum": [ "POLICY_REVIEW", "RESTORE_DEFAULTS" ] }, "expected_revision": { "type": "integer", "minimum": 0, "maximum": 2147483646 }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "assets", "daily_count", "reason", "expected_revision", "idempotency_key", "password" ] }

Identidade e acesso

GET /api/v1/csrf

Obter token CSRF

Acesso: Público

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

POST /api/v1/auth/register

Cadastrar conta de teste

Acesso: Público

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 100 }, "email": { "type": "string", "format": "email" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs.", "minLength": 12 } }, "additionalProperties": false, "required": [ "name", "email", "password" ] }
POST /api/v1/auth/verify-email

Confirmar e-mail simulado

Acesso: Público

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "token": { "type": "string", "maxLength": 1024 } }, "additionalProperties": true, "required": [ "token" ] }
POST /api/v1/auth/login

Entrar na conta

Acesso: Público

Login pode iniciar desafio MFA de cinco minutos. Reobtenha CSRF após login/2FA; cookies são rotacionados. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "email": { "type": "string", "format": "email" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": true, "required": [ "email", "password" ] }
POST /api/v1/auth/mfa-login

Concluir desafio 2FA

Acesso: Público

Requer o cookie da sessão com desafio pendente. Código TOTP ou recuperação de uso único. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "code": { "type": "string", "maxLength": 64, "writeOnly": true } }, "additionalProperties": true, "required": [ "code" ] }
POST /api/v1/auth/logout

Encerrar sessão

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": {}, "additionalProperties": true }
POST /api/v1/auth/password-reset

Solicitar recuperação simulada

Acesso: Público

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "email": { "type": "string", "format": "email" } }, "additionalProperties": true, "required": [ "email" ] }
POST /api/v1/auth/password-reset/confirm

Confirmar recuperação

Acesso: Público

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "uid": { "type": "string", "format": "uuid" }, "token": { "type": "string", "maxLength": 256 }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs.", "minLength": 12 } }, "additionalProperties": true, "required": [ "uid", "token", "password" ] }
POST /api/v1/auth/password-change

Alterar senha

Acesso: Sessão

code obrigatório se 2FA ativo. Revoga todas as sessões. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "current_password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs.", "minLength": 12 }, "code": { "type": "string", "maxLength": 64, "writeOnly": true } }, "additionalProperties": true, "required": [ "current_password", "password" ] }
GET /api/v1/me

Consultar perfil próprio

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/sessions

Listar até 50 sessões próprias

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

POST /api/v1/sessions/revoke

Revogar sessão própria

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "id": { "type": "string", "format": "uuid" } }, "additionalProperties": true, "required": [ "id" ] }
GET /api/v1/devices

Listar navegadores lembrados próprios

Acesso: Sessão

Opt-in DEV/TEST, desligado por padrão; 503 quando indisponível. Reconhecimento não dispensa autenticação/MFA. Token somente em Set-Cookie, sem Domain, HttpOnly, SameSite=Strict; Secure e prefixo __Host- em HTTPS. Validade técnica fixa de 30 dias, sem prazo de retenção presumido. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • cursor · opcional
POST /api/v1/devices/remember

Lembrar navegador após confirmação de senha

Acesso: Sessão

Opt-in DEV/TEST, desligado por padrão; 503 quando indisponível. Reconhecimento não dispensa autenticação/MFA. Token somente em Set-Cookie, sem Domain, HttpOnly, SameSite=Strict; Secure e prefixo __Host- em HTTPS. Validade técnica fixa de 30 dias, sem prazo de retenção presumido. Até 20 ativos. Replay não reemite token. Resposta perdida: replay recupera ID e nova confirmação com replaces_id próprio substitui a tentativa de forma atômica. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "current_password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." }, "idempotency_key": { "type": "string", "format": "uuid" }, "replaces_id": { "type": "string", "format": "uuid" } }, "additionalProperties": false, "required": [ "current_password", "idempotency_key" ] }
POST /api/v1/devices/forget

Esquecer reconhecimento próprio

Acesso: Sessão

Opt-in DEV/TEST, desligado por padrão; 503 quando indisponível. Reconhecimento não dispensa autenticação/MFA. Token somente em Set-Cookie, sem Domain, HttpOnly, SameSite=Strict; Secure e prefixo __Host- em HTTPS. Validade técnica fixa de 30 dias, sem prazo de retenção presumido. Não encerra sessões ativas. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "current_password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "id", "current_password" ] }
POST /api/v1/devices/forget-all

Esquecer todos os reconhecimentos próprios

Acesso: Sessão

Opt-in DEV/TEST, desligado por padrão; 503 quando indisponível. Reconhecimento não dispensa autenticação/MFA. Token somente em Set-Cookie, sem Domain, HttpOnly, SameSite=Strict; Secure e prefixo __Host- em HTTPS. Validade técnica fixa de 30 dias, sem prazo de retenção presumido. Não encerra sessões ativas. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "current_password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "current_password" ] }
GET /api/v1/access-notices

Consultar avisos de acesso próprios

Acesso: Sessão

Opt-in DEV/TEST, desligado por padrão; 503 quando indisponível. Reconhecimento não dispensa autenticação/MFA. Token somente em Set-Cookie, sem Domain, HttpOnly, SameSite=Strict; Secure e prefixo __Host- em HTTPS. Validade técnica fixa de 30 dias, sem prazo de retenção presumido. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • cursor · opcional
POST /api/v1/access-notices/read

Marcar aviso próprio como lido

Acesso: Sessão

Opt-in DEV/TEST, desligado por padrão; 503 quando indisponível. Reconhecimento não dispensa autenticação/MFA. Token somente em Set-Cookie, sem Domain, HttpOnly, SameSite=Strict; Secure e prefixo __Host- em HTTPS. Validade técnica fixa de 30 dias, sem prazo de retenção presumido. Leitura idempotente; não decide risco ou encerra acesso. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "id": { "type": "string", "format": "uuid" } }, "additionalProperties": false, "required": [ "id" ] }
POST /api/v1/mfa/setup

Preparar autenticador

Acesso: Sessão

Chave sensível de configuração; confirmar em dez minutos. Não persistir em documentação ou logs. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "current_password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": true, "required": [ "current_password" ] }
POST /api/v1/mfa/enable

Ativar segundo fator

Acesso: Sessão

Exibe oito códigos de recuperação uma única vez e encerra sessões. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "code": { "type": "string", "minLength": 1, "maxLength": 6, "writeOnly": true } }, "additionalProperties": true, "required": [ "code" ] }
POST /api/v1/mfa/disable

Desativar segundo fator

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "current_password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." }, "code": { "type": "string", "maxLength": 64, "writeOnly": true } }, "additionalProperties": true, "required": [ "current_password", "code" ] }
GET /api/v1/audit

Consultar até 100 eventos

Acesso: Sessão · audit.read

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Exige audit.read e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/admin/users

Consultar até 100 usuários

Acesso: Sessão · users.read

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Exige users.read e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/admin/global-outgoing-controls/detail

Consultar controle global de saídas e até 50 eventos

Acesso: Sessão · users.outgoing_control

Todas as carteiras CUSTOMER atuais/futuras do titular. Sem suspensão de login ou recebimentos. Guia docs/GLOBAL-OUTGOING.md. Exige users.outgoing_control e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
POST /api/v1/admin/global-outgoing-controls/change

Bloquear ou desbloquear novas saídas do titular

Acesso: Sessão · users.outgoing_control

Senha atual, 2FA, motivo correspondente e revisão esperada. Sem autorrevisão. Novo bloqueio exige cliente ativo/confirmado; desbloqueio aceita alvo com histórico bloqueado que mudou role/atividade. Histórico imutável; replay devolve evento original e estado atual. Conflito concorrente devolve 503, comando desfeito: repetir mesma chave/conteúdo. Não remove bloqueio por conta nem suspensão de acesso. Guia docs/GLOBAL-OUTGOING.md. Exige users.outgoing_control e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "target_id": { "type": "string", "format": "uuid" }, "action": { "type": "string", "enum": [ "BLOCK_OUTGOING", "UNBLOCK_OUTGOING" ] }, "reason": { "type": "string", "enum": [ "SECURITY_REVIEW", "OWNER_REQUEST", "REVIEW_COMPLETED" ] }, "expected_revision": { "type": "integer", "minimum": 0, "maximum": 2147483646 }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "target_id", "action", "reason", "expected_revision", "idempotency_key", "password" ] }
GET /api/v1/admin/user-controls/detail

Consultar acesso e até 50 alterações de um cliente

Acesso: Sessão · users.control

Cliente ativo e confirmado, distinto do operador; perfis internos excluídos. Estado inicial permitido. Guia docs/USER-ACCESS.md. Exige users.control e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
POST /api/v1/admin/user-controls/change

Suspender ou restaurar acesso de cliente

Acesso: Sessão · users.control

Motivo deve corresponder à ação. Exige senha atual e revisão; sem autorrevisão ou alvo interno. Encerra sessões, invalida desafios MFA, pausa Bearer e novas entregas de webhook; preserva créditos e regras financeiras. Repetição recupera evento original e estado atual. Não congela dinheiro nem altera KYC/KYB. Guia docs/USER-ACCESS.md. Exige users.control e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "action": { "type": "string", "enum": [ "SUSPEND_ACCESS", "RESTORE_ACCESS" ] }, "reason": { "type": "string", "enum": [ "SECURITY_REVIEW", "OWNER_REQUEST", "REVIEW_COMPLETED" ] }, "expected_revision": { "type": "integer", "minimum": 0, "maximum": 2147483646 }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "id", "action", "reason", "expected_revision", "idempotency_key", "password" ] }

Cadastro e KYC/KYB

GET /api/v1/customers/summary

Consultar cadastros próprios

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

POST /api/v1/customers/save

Salvar cadastro fictício

Acesso: Sessão

kind seleciona o formato de data. Revisão zero no primeiro cadastro; edição invalida aprovação da versão anterior. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "kind": { "type": "string", "enum": [ "PF", "PJ" ] }, "expected_revision": { "type": "integer", "minimum": 0, "maximum": 2147483646 }, "data": { "oneOf": [ { "$ref": "#/components/schemas/ProfilePF" }, { "$ref": "#/components/schemas/ProfilePJ" } ] } }, "additionalProperties": false, "required": [ "kind", "expected_revision", "data" ] }
POST /api/v1/customers/verify

Simular KYC/KYB

Acesso: Sessão

Timeout produz caso ERROR persistido; repetir a chave devolve o caso original. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "kind": { "type": "string", "enum": [ "PF", "PJ" ] }, "expected_revision": { "type": "integer", "minimum": 0, "maximum": 2147483646 }, "scenario": { "type": "string", "enum": [ "approve", "review", "reject", "timeout" ] }, "idempotency_key": { "type": "string", "format": "uuid" } }, "additionalProperties": false, "required": [ "kind", "expected_revision", "scenario", "idempotency_key" ] }
GET /api/v1/customers/reviews

Listar até 50 revisões de terceiros

Acesso: Sessão · customers.review

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Exige customers.review e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

POST /api/v1/customers/review

Decidir revisão cadastral

Acesso: Sessão · customers.review

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Exige customers.review e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "case_id": { "type": "string", "format": "uuid" }, "outcome": { "type": "string", "enum": [ "APPROVED", "REJECTED" ] } }, "additionalProperties": false, "required": [ "case_id", "outcome" ] }

Contas contábeis

GET /api/v1/ledger/summary

Consultar contas e ativos próprios

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

POST /api/v1/ledger/open

Abrir contas zeradas

Acesso: Sessão

Exige cadastro próprio com aprovação atual; repetição não cria contas duplicadas. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "profile_id": { "type": "string", "format": "uuid" } }, "additionalProperties": false, "required": [ "profile_id" ] }
GET /api/v1/ledger/controls/list

Consultar contas de terceiros

Acesso: Sessão · accounts.control

Até 50 contas recentes. ADMIN/SUPER_ADMIN com segundo fator confirmado. Não inclui contas próprias. Exige accounts.control e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • status · opcional
GET /api/v1/ledger/controls/detail

Consultar situação e histórico de saídas

Acesso: Sessão · accounts.control

Até 50 decisões recentes de uma conta de terceiro. Exige accounts.control e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • account_id · obrigatório
POST /api/v1/ledger/controls/transition

Bloquear ou liberar novas saídas

Acesso: Sessão · accounts.control

Motivo SECURITY_REVIEW/OWNER_REQUEST para bloqueio, REVIEW_COMPLETED para desbloqueio. Revisão inicial zero. Exige senha do administrador. Repetição idêntica devolve event_id original com situação atual. Novos débitos são impedidos no banco; entradas, consultas e replays concluídos continuam disponíveis. Guia docs/ACCOUNT-CONTROLS.md. Exige accounts.control e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "account_id": { "type": "string", "format": "uuid" }, "blocked": { "type": "boolean" }, "reason": { "type": "string", "enum": [ "SECURITY_REVIEW", "OWNER_REQUEST", "REVIEW_COMPLETED" ] }, "expected_revision": { "type": "integer", "minimum": 0, "maximum": 2147483646 }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "account_id", "blocked", "reason", "expected_revision", "idempotency_key", "password" ] }

Carteiras e extrato

GET /api/v1/wallets/summary

Consultar carteiras próprias

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/wallets/statement

Consultar extrato por snapshot

Acesso: Sessão

Datas UTC inclusivas, entre 2000 e 2100; cursor assinado dura 15 minutos, vincula usuário, carteira, filtros e snapshot. Não repetir filtros nem adicionar campos desconhecidos. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • wallet_id · obrigatório
  • from · opcional
  • to · opcional
  • direction · opcional
  • limit · opcional
  • cursor · opcional
GET /api/v1/wallets/statement.pdf

Baixar extrato próprio em PDF

Acesso: Sessão

PDF paginado do sandbox: resumo mesmo sem movimentos e até 200 registros, sem truncamento. Nova captura comum para saldos, totais e movimentos. Filtro de direção não recalcula saldos/totais. Sem cursor/limit. Sessão revalidada sob lock, MFA quando ativado e carteira própria; administrador sem vínculo recebe 404. Download no-store e auditado; dez tentativas por conta em cinco minutos. Excesso de registros retorna JSON 409. X-Export-Count conta movimentos e X-Export-Captured-At identifica a consulta. Guia docs/WALLET-PDF.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • wallet_id · obrigatório
  • from · opcional
  • to · opcional
  • direction · opcional
GET /api/v1/wallets/statement.csv

Exportar extrato próprio em CSV

Acesso: Sessão

Nova consulta da carteira própria; mesma posição para saldos e movimentos. Uma linha RESUMO, mesmo sem movimentos, e até 1.000 linhas MOVIMENTO. Acima do teto: JSON 409 sem truncar. Totais e saldos do período incluem ambas as direções, independentemente do filtro. Sem cursor/limit. CSV UTF-8 BOM, ponto e vírgula, proteção contra fórmulas e valores exatos. X-Export-Count conta movimentos, sem RESUMO. Sessão revalidada sob lock e MFA quando ativado; download auditado, no-store, dez tentativas por usuário em cinco minutos. Administrador sem vínculo não tem acesso. Guia docs/WALLET-CSV.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • wallet_id · obrigatório
  • from · opcional
  • to · opcional
  • direction · opcional

Transferências

POST /api/v1/transfers/prepare

Preparar transferência

Acesso: Sessão

Política ALL_INTERNAL recusa envio direto com 409/review_required. Prévia OFF vincula ID/revisão; mudança exige nova prévia (409/review_policy_changed). Replay concluído permanece válido após autenticação. Comprovante inclui review com evidência original, sem exigir política atual. Guia docs/REQUIRED-REVIEW.md. pricing_mode omitido = ZERO. FEES_V1 cobra 50 bps (0,5%) sobre o principal, arredondado para cima na menor unidade do ativo; tarifa somada ao débito do remetente. Destinatário recebe amount integral. Principal + tarifa contam nos limites. Política e custo preservados no pedido/prévia e no retry. Resposta inclui fee, total e pricing_mode. Guia docs/TRANSFER-FEES.md. Mesmo ativo, usuários diferentes; prévia de dois minutos, sem reserva de saldo. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "destination": { "type": "string", "format": "uuid" }, "amount": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "idempotency_key": { "type": "string", "format": "uuid" }, "pricing_mode": { "type": "string", "enum": [ "ZERO", "FEES_V1" ] } }, "additionalProperties": false, "required": [ "source", "destination", "amount", "idempotency_key" ] }
POST /api/v1/transfers/confirm

Confirmar transferência

Acesso: Sessão

Política ALL_INTERNAL recusa envio direto com 409/review_required. Prévia OFF vincula ID/revisão; mudança exige nova prévia (409/review_policy_changed). Replay concluído permanece válido após autenticação. Comprovante inclui review com evidência original, sem exigir política atual. Guia docs/REQUIRED-REVIEW.md. Repita o mesmo token em resultado incerto. Repetição concluída retorna o mesmo comprovante, inclusive após expiração. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "token": { "type": "string", "maxLength": 6000, "description": "Prévia assinada devolvida pelo servidor. Reutilize a mesma em resultado incerto." }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "token", "password" ] }
GET /api/v1/transfers/receipt

Consultar comprovante das partes

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
GET /api/v1/transfers/history

Consultar envios e recebimentos próprios

Acesso: Sessão

Sessão revalidada sob lock; 2FA quando ativado. Administrador vê apenas suas próprias transferências. Datas UTC inclusivas entre 2000 e 2100; parâmetros únicos. Cursor assinado de 15 minutos vinculado ao usuário, filtros, tamanho de página e snapshot. Novas transferências/estornos só aparecem ao atualizar. Inclui fluxo direto/aprovado e referência de estorno, sem alterar o registro original. Não inclui pedidos não executados nem outros módulos. Guia docs/TRANSFER-HISTORY.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • asset · opcional
  • direction · opcional
  • from · opcional
  • to · opcional
  • limit · opcional
  • cursor · opcional
GET /api/v1/transfers/history.csv

Exportar histórico próprio em CSV

Acesso: Sessão

Nova consulta dos filtros selecionados, sem cursor ou limit. Mesmas regras privadas do histórico, sessão revalidada e MFA quando ativado. Máximo 1.000 registros; excedente retorna 409 sem truncar. CSV UTF-8 com BOM, separador ponto e vírgula, campos entre aspas e proteção contra fórmulas. Valores exatos com ponto decimal e unidades mínimas em texto. Cabeçalhos X-Export-Count e X-Export-Captured-At; download no-store auditado; até dez tentativas por conta em cinco minutos. Erros retornam JSON. Guia docs/TRANSFER-CSV.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • from · opcional
  • to · opcional
  • asset · opcional
  • direction · opcional
GET /api/v1/transfers/policy

Consultar limites e cenários de tarifa

Acesso: Sessão

Tetos efetivos do próprio titular; revision é global e individual_revision identifica a versão individual. fee=0 representa o cenário padrão ZERO. pricing_modes informa ZERO e FEES_V1, com bps por ativo. fee_rounding=CEILING_MINOR_UNIT; limits_basis=PRINCIPAL_PLUS_FEE. V1 tem alíquota congelada e não configura preço comercial. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/transfers/receipt.pdf

Baixar comprovante PDF da transferência

Acesso: Sessão

Somente remetente ou destinatário da transferência contabilizada. Administrador não ganha acesso a terceiros. Sessão revalidada sob lock; 2FA quando ativado. PDF privado no-store, auditoria, dez tentativas por conta/ação em cinco minutos. Valores originais, sem novo débito. Aprovação identificada pelo vínculo persistido; pedidos não executados não geram PDF. Estornos permanecem no extrato. Erros retornam JSON. Guia docs/TRANSFER-RECEIPTS.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório

Conversões

POST /api/v1/exchange/quotes

Criar cotação fictícia

Acesso: Sessão

Ativos diferentes do mesmo cadastro; validade 60 segundos. Mesma chave retorna cotação original, inclusive vencida. pricing_mode omitido = ZERO. FEES_V1: tarifa de 50 bps (0,5%) sobre amount total, convertendo o restante; spread de 100 bps (1%) sobre destino bruto. Custos arredondados para cima, destino bruto para baixo. Resposta inclui fee, net_amount_in, gross_amount_out, spread, amount_out líquido, pricing_mode e alíquotas em bps. Valores por ativo em strings decimais. Consulte docs/PRICING.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "source": { "type": "string", "format": "uuid" }, "destination": { "type": "string", "format": "uuid" }, "amount": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "idempotency_key": { "type": "string", "format": "uuid" }, "pricing_mode": { "type": "string", "enum": [ "ZERO", "FEES_V1" ] } }, "additionalProperties": false, "required": [ "source", "destination", "amount", "idempotency_key" ] }
POST /api/v1/exchange/confirm

Liquidar cotação fictícia

Acesso: Sessão

Mesma cotação liquidada retorna a ordem original sem novo débito. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "quote_id": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "quote_id", "password" ] }
GET /api/v1/exchange/quote

Consultar cotação própria

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
GET /api/v1/exchange/order

Consultar ordem própria

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
GET /api/v1/exchange/summary

Resumir conversões próprias por par de moedas

Acesso: Sessão

Resumo do conjunto completo, independente da paginação/CSV. Sessão revalidada sob lock e MFA quando ativado; inclusive ADMIN consulta somente operações próprias. Datas UTC inclusivas entre 2000 e 2100, por liquidação original; não aceita cursor/limit/ID de titular. Original = reversed + unreversed em cada par. Estornos conhecidos no snapshot são separados, mesmo ocorridos depois do período; não é fluxo de estornos do período nem saldo de carteira. Tarifa no ativo de origem, spread no destino; valores formatados e unidades mínimas em strings exatas. Nova captura independente do histórico e CSV. Sem escrita financeira, nova cotação ou auditoria de download. Guia docs/EXCHANGE-SUMMARY.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • asset_in · opcional
  • asset_out · opcional
  • from · opcional
  • to · opcional
GET /api/v1/exchange/history.csv

Exportar conversões próprias em CSV

Acesso: Sessão

Nova consulta privada dos mesmos filtros do histórico. Sem cursor ou limit; parâmetros únicos. Máximo 1.000 conversões, excesso retorna JSON 409 sem truncar. Valores debitado/recebido, tarifa na moeda de origem e spread na moeda de destino, valores e unidades mínimas em strings; estado original e estorno separados. CSV UTF-8 BOM com ponto e vírgula, proteção contra fórmulas; arquivo vazio mantém cabeçalho. Sessão revalidada sob lock e MFA quando ativado; administrador sem acesso global. Download no-store auditado; dez tentativas por conta e 60 por IP em cinco minutos. X-Export-Count e X-Export-Captured-At. Guia docs/EXCHANGE-CSV.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • asset_in · opcional
  • asset_out · opcional
  • from · opcional
  • to · opcional
GET /api/v1/exchange/history

Consultar conversões próprias liquidadas

Acesso: Sessão

Somente ordens liquidadas do titular, inclusive para administradores. Sessão revalidada sob lock e MFA quando ativado. Datas UTC inclusivas entre 2000 e 2100; parâmetros únicos. Cursor assinado de 15 minutos vinculado a usuário, filtros, tamanho de página e snapshot. Novas conversões e estornos só aparecem ao atualizar. Valores debitados/recebidos, tarifa e spread originais em strings por ativo; nenhuma soma entre ativos. Consulta sem escrita financeira ou auditoria de download. Guia docs/EXCHANGE-HISTORY.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • asset_in · opcional
  • asset_out · opcional
  • from · opcional
  • to · opcional
  • limit · opcional
  • cursor · opcional
GET /api/v1/exchange/receipt.pdf

Baixar comprovante PDF da conversão

Acesso: Sessão

Somente titular de ordem liquidada; sessão revalidada sob bloqueio e 2FA quando ativado. Download privado no-store, com auditoria e limite de 10 tentativas por conta em 5 minutos. Valores originais, inclusive tarifa e spread; não recalcula cotação nem movimenta saldo. Estornos posteriores permanecem no extrato. Erros retornam JSON. Guia docs/RECEIPTS.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório

USD simulado

POST /api/v1/fiat/prepare

Preparar depósito ou retirada USD mock

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "account_id": { "type": "string", "format": "uuid" }, "direction": { "type": "string", "enum": [ "DEPOSIT", "WITHDRAWAL" ] }, "amount": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "destination": { "type": "string", "description": "Vazio para depósito; referência MOCK-FIAT-USD válida para saque, diferente da própria." }, "scenario": { "type": "string", "enum": [ "success", "reject", "timeout" ] }, "idempotency_key": { "type": "string", "format": "uuid" } }, "additionalProperties": false, "required": [ "account_id", "direction", "amount", "destination", "scenario", "idempotency_key" ] }
POST /api/v1/fiat/confirm

Confirmar movimento mock

Acesso: Sessão

Timeout não cria movimento terminal; repetir request_id. Recusa é resultado de negócio sem journal. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "request_id": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "request_id", "password" ] }
GET /api/v1/fiat/request

Consultar solicitação própria

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
GET /api/v1/fiat/history

Últimas 20 solicitações

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/fiat/wallets

Contas USD próprias

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Cripto simulada

POST /api/v1/crypto/prepare

Preparar depósito ou saque mock

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "account_id": { "type": "string", "format": "uuid" }, "direction": { "type": "string", "enum": [ "DEPOSIT", "WITHDRAWAL" ] }, "amount": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "destination": { "type": "string", "description": "Vazio para depósito; referência MOCK válida do ativo para saque, diferente da própria." }, "scenario": { "type": "string", "enum": [ "success", "reject", "timeout" ] }, "idempotency_key": { "type": "string", "format": "uuid" } }, "additionalProperties": false, "required": [ "account_id", "direction", "amount", "destination", "scenario", "idempotency_key" ] }
POST /api/v1/crypto/confirm

Confirmar movimento mock

Acesso: Sessão

Timeout não cria movimento terminal; repetir request_id. Recusa é resultado de negócio sem journal. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "request_id": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "request_id", "password" ] }
GET /api/v1/crypto/request

Consultar solicitação própria

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
GET /api/v1/crypto/history

Últimas 20 solicitações

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/crypto/wallets

Carteiras BTC/USDC próprias

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Lightning

POST /api/v1/lightning/invoices

Criar invoice fictícia

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "account_id": { "type": "string", "format": "uuid" }, "direction": { "type": "string", "enum": [ "RECEIVE", "PAY" ] }, "amount": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "scenario": { "type": "string", "enum": [ "success", "reject", "timeout" ] }, "idempotency_key": { "type": "string", "format": "uuid" } }, "additionalProperties": false, "required": [ "account_id", "direction", "amount", "scenario", "idempotency_key" ] }
POST /api/v1/lightning/confirm

Confirmar invoice mock

Acesso: Sessão

Pagamento PAY exige confirmação autenticada. Timeout permite repetir invoice_id sem débito duplicado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "invoice_id": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "invoice_id", "password" ] }
GET /api/v1/lightning/invoice

Consultar invoice própria

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
GET /api/v1/lightning/history

Últimas 20 invoices

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/lightning/wallets

Carteiras BTC próprias

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

POST /api/v1/lightning/webhook

Receber evento Lightning assinado

Acesso: Assinatura HMAC

HMAC-SHA256(timestamp ASCII + ponto + bytes exatos do corpo); assinatura hexadecimal minúscula de 64 caracteres. Tolerância 300 segundos. Notificação externa apenas RECEIVE; não autentica débito PAY. IDs/dados conferidos contra invoice e simulador. Sem CSRF. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "event_id": { "type": "string", "format": "uuid" }, "invoice_id": { "type": "string", "format": "uuid" }, "code": { "type": "string" }, "provider": { "type": "string", "enum": [ "mock-lightning-v1" ] }, "asset": { "type": "string", "enum": [ "BTC" ] }, "amount": { "type": "string", "pattern": "^[0-9]+$" }, "status": { "type": "string", "enum": [ "SUCCEEDED", "FAILED" ] } }, "additionalProperties": false, "required": [ "event_id", "invoice_id", "code", "provider", "asset", "amount", "status" ] }

Empresas e equipes

GET /api/v1/business/list

Listar empresas e convites próprios

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/business/detail

Consultar empresa acessível

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
GET /api/v1/business/balances

Consultar carteiras PJ autorizadas

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
GET /api/v1/business/dashboard

Consultar painel Business por período

Acesso: Sessão

Requer balances.read e KYB atual. Somente contas do PJ selecionado. Datas UTC inclusivas 2000–2100, vazias sem limite; filtros desconhecidos/repetidos recusados. Todos os agregados financeiros usam uma consulta SQL. Pagamentos são transferências enviadas, Merchant e Lightning PAY concluídos; conversões contam uma vez por lançamento. Estornos entram na própria data, sem apagar a contagem original. Saldo atual independe do período. team mostra equipe atual somente com team.read. Rate limit por usuário. Guia docs/BUSINESS-DASHBOARD.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
  • from · opcional
  • to · opcional
GET /api/v1/business/dashboard.csv

Baixar resumo Business em CSV

Acesso: Sessão

Requer balances.read e KYB atual. Somente contas do PJ selecionado. Datas UTC inclusivas 2000–2100, vazias sem limite; filtros desconhecidos/repetidos recusados. Todos os agregados financeiros usam uma consulta SQL. Pagamentos são transferências enviadas, Merchant e Lightning PAY concluídos; conversões contam uma vez por lançamento. Estornos entram na própria data, sem apagar a contagem original. Saldo atual independe do período. team mostra equipe atual somente com team.read. Rate limit por usuário. Guia docs/BUSINESS-DASHBOARD.md. Nova consulta privada; UTF-8 BOM, ponto e vírgula, proteção contra fórmulas. Uma linha OPERACOES e uma SALDOS por carteira; contagens não se repetem por moeda. Sem equipe/dados pessoais. Download auditado e no-store. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
  • from · opcional
  • to · opcional
POST /api/v1/business/create

Criar empresa de teste

Acesso: Sessão

Somente titular de PJ aprovado; uma empresa por cadastro. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "profile_id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "profile_id", "name", "password" ] }
POST /api/v1/business/invite

Convidar conta interna

Acesso: Sessão

Papéis da equipe são distintos dos perfis globais. OWNER pode gerir MANAGER/VIEWER; MANAGER apenas VIEWER. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "business_id": { "type": "string", "format": "uuid" }, "recipient_email": { "type": "string", "format": "email" }, "role": { "type": "string", "enum": [ "MANAGER", "VIEWER" ] }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "business_id", "recipient_email", "role", "idempotency_key", "password" ] }
POST /api/v1/business/decide

Decidir convite

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "invitation_id": { "type": "string", "format": "uuid" }, "outcome": { "type": "string", "enum": [ "ACCEPTED", "DECLINED", "REVOKED" ] }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "invitation_id", "outcome", "password" ] }
POST /api/v1/business/member

Alterar membro

Acesso: Sessão

Não reativa membro revogado sem novo convite aceito; não altera o titular. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "business_id": { "type": "string", "format": "uuid" }, "member_id": { "type": "string", "format": "uuid" }, "role": { "type": "string", "enum": [ "MANAGER", "VIEWER" ] }, "active": { "type": "boolean" }, "expected_revision": { "type": "integer", "minimum": 0, "maximum": 2147483646 }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "business_id", "member_id", "role", "active", "expected_revision", "password" ] }

Cobranças Merchant

GET /api/v1/merchant/public

Consultar cobrança pública

Acesso: Público

Dados públicos da cobrança e nome comercial. Não divulga dados privados do pagador. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • id · obrigatório
GET /api/v1/merchant/list

Listar empresas próprias e cobranças

Acesso: Sessão

Comprovantes privados em payments e links[].receipt incluem pricing conforme MerchantReceipt. lightning_invoices mostra as últimas 20 invoices do próprio pagador, conforme MerchantLightningInvoice; códigos/source não são expostos no checkout público nem nos comprovantes da empresa. Sem consultar provedor ou alterar histórico; terceiros não recebem esses registros. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

POST /api/v1/merchant/create

Criar cobrança por link

Acesso: Sessão

SINGLE_ASSET padrão preserva links antigos. MULTI_ASSET aceita carteira USD/USDC/BTC. Principal CEIL da cobrança para a moeda paga; bruto FLOOR do principal para destino. ZERO padrão. FEES_V1 opt-in congela tarifa de 0,5% acrescentada ao pagador e spread de 1% descontado da empresa somente com conversão; custos arredondados para cima. Guia docs/MERCHANT-PRICING.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "business_id": { "type": "string", "format": "uuid" }, "asset": { "type": "string", "enum": [ "USD", "USDC", "BTC" ] }, "settlement_asset": { "type": "string", "enum": [ "USD", "USDC", "BTC" ] }, "amount": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "description": { "type": "string" }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." }, "payment_mode": { "type": "string", "enum": [ "SINGLE_ASSET", "MULTI_ASSET" ] }, "pricing_mode": { "type": "string", "enum": [ "ZERO", "FEES_V1" ] } }, "additionalProperties": false, "required": [ "business_id", "asset", "settlement_asset", "amount", "description", "idempotency_key", "password" ] }
POST /api/v1/merchant/cancel

Cancelar cobrança própria aberta

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "link_id": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "link_id", "password" ] }
POST /api/v1/merchant/prepare

Preparar pagamento de cobrança

Acesso: Sessão

Prévia assinada; pagamento próprio do lojista é recusado. Conversão usa LiquidityProviderInterface/mock-liquidity-v1; timeout, indisponibilidade ou resposta incompatível retornam 503 sem débito. Cada trecho na mesma moeda dispensa provider. Em ZERO, SINGLE_ASSET preserva merchant-zero-v1 e MULTI_ASSET usa merchant-multi-zero-v1. MULTI_ASSET converte cobrança para principal com arredondamento para cima e principal para bruto recebido para baixo; FEES_V1 usa merchant-fees-v1. Limites usam ativo/valor debitados. Custos conforme pricing_mode do link; saldo/limites incluem tarifa. Valores exatos em pricing; FEES_V1 consta no token assinado e no total da invoice Lightning. Guia docs/MERCHANT-MULTICURRENCY.md. channel=WALLET por padrão. LIGHTNING_MOCK exige BTC e cria invoice imutável por chave; scenario é permitido somente nesse canal (success padrão). Mesma chave recupera a invoice, mesmo expirada. Sem reserva de saldo. Guia docs/MERCHANT-LIGHTNING.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "link_id": { "type": "string", "format": "uuid" }, "source": { "type": "string", "format": "uuid" }, "idempotency_key": { "type": "string", "format": "uuid" }, "channel": { "type": "string", "enum": [ "WALLET", "LIGHTNING_MOCK" ] }, "scenario": { "type": "string", "enum": [ "success", "reject", "timeout" ] } }, "additionalProperties": false, "required": [ "link_id", "source", "idempotency_key" ] }
POST /api/v1/merchant/confirm

Confirmar pagamento Merchant

Acesso: Sessão

LIGHTNING_MOCK: SUCCEEDED liquida pelo Merchant; FAILED retorna 200 sem débito; timeout/retorno inválido retorna 503 sem resultado terminal. Retry da mesma prévia antes de expirar; resultado concluído recuperável depois. Não há webhook público de débito. Pagamento, journal e evento Merchant são atômicos. Confirma a prévia sem nova cotação. Repetir token concluído não cobra novamente. Compatível com tokens anteriores e registros históricos; pricing deriva dos valores originais e da política imutável da cobrança, sem reescrever histórico. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "token": { "type": "string", "maxLength": 6000, "description": "Prévia assinada devolvida pelo servidor. Reutilize a mesma em resultado incerto." }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "token", "password" ] }

Gestão de integrações

GET /api/v1/developers/list

Listar empresas e scopes

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/developers/detail

Consultar configuração própria

Acesso: Sessão

Inclui webhook_queue dos últimos 50 pares de eventos/receptores automáticos da empresa; tentativas e estados READY, WAITING, SUCCEEDED, EXHAUSTED, REVOKED, BLOCKED; next_attempt_at ISO ou null. Consulta sem disparar entregas. endpoints/deliveries incluem automatic boolean; históricos preservados. Guia docs/WEBHOOK-WORKER.md. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • business_id · obrigatório
POST /api/v1/developers/keys/create

Criar chave de integração

Acesso: Sessão

Titular do PJ aprovado; validade 30 dias, até dez ativas. Token exibido uma vez; replay retorna token null. merchant:create permite somente criar cobranças da empresa da chave; não autoriza débito nem inclui scopes de leitura. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "business_id": { "type": "string", "format": "uuid" }, "name": { "type": "string", "minLength": 2, "maxLength": 60 }, "scopes": { "type": "array", "items": { "type": "string", "enum": [ "wallets:read", "merchant:read", "events:read", "merchant:create", "exchange:quote" ] }, "minItems": 1, "maxItems": 5, "uniqueItems": true }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "business_id", "name", "scopes", "idempotency_key", "password" ] }
POST /api/v1/developers/keys/revoke

Revogar chave própria

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "key_id": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "key_id", "password" ] }
POST /api/v1/developers/webhooks/create

Criar receptor interno simulado

Acesso: Sessão

automatic=false padrão. Opt-in imutável considera eventos criados depois do receptor. Até cinco receptores ativos. Segredo exibido uma vez, null em replay. Não aceita URL de destino externa. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "business_id": { "type": "string", "format": "uuid" }, "name": { "type": "string", "minLength": 2, "maxLength": 60 }, "scenario": { "type": "string", "enum": [ "SUCCESS", "FAILURE", "TIMEOUT" ] }, "automatic": { "type": "boolean" }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "business_id", "name", "scenario", "idempotency_key", "password" ] }
POST /api/v1/developers/webhooks/revoke

Revogar receptor próprio

Acesso: Sessão

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "endpoint_id": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "endpoint_id", "password" ] }
POST /api/v1/developers/webhooks/deliver

Executar entrega manual simulada

Acesso: Sessão

Até cinco tentativas por par evento/receptor. Mesma chave recupera tentativa; nova chave cria outra tentativa quando elegível. Sucesso terminal não é repetido. Em receptor automático, novas tentativas aguardam 30/120/600/1800 segundos após a anterior; replay conserva o original. Compartilha limite de cinco com o worker interno. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "endpoint_id": { "type": "string", "format": "uuid" }, "event_id": { "type": "string", "format": "uuid" }, "idempotency_key": { "type": "string", "format": "uuid" }, "password": { "type": "string", "maxLength": 128, "writeOnly": true, "description": "Senha da própria conta; nunca registrar em logs." } }, "additionalProperties": false, "required": [ "endpoint_id", "event_id", "idempotency_key", "password" ] }

Compliance

GET /api/v1/compliance/list

Listar fila e análises elegíveis

Acesso: Sessão · compliance.review

Até 50 pendentes mais antigos e 50 análises conforme filtro. Exclui lançamentos do ator/participante. Exige compliance.review e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • status · opcional
POST /api/v1/compliance/screen

Analisar journal de terceiro

Acesso: Sessão · compliance.review

Uma análise por journal na política sandbox-kyt-v1; cria alerta apenas se houver sinal. Núcleo agrega débitos por ativo e usa KytProviderInterface/MockKytProvider puro, preservando pontos e fatos históricos. Timeout, indisponibilidade ou resposta incompatível retornam 503/kyt_unavailable sem análise parcial; repetir permite nova tentativa. Replay recupera histórico sem consultar provider, após revalidar acesso. Sem alteração financeira, varredura automática ou bloqueio por score. Guia docs/KYT-PROVIDER.md. Exige compliance.review e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "journal_id": { "type": "string", "format": "uuid" } }, "additionalProperties": false, "required": [ "journal_id" ] }
POST /api/v1/compliance/decide

Decidir alerta de terceiro

Acesso: Sessão · compliance.review

Mesma decisão pelo mesmo revisor é idempotente; outra decisão/revisor conflita. Escalonamento terminal somente local. Exige compliance.review e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "alert_id": { "type": "string", "format": "uuid" }, "outcome": { "type": "string", "enum": [ "CLEARED", "ESCALATED" ] } }, "additionalProperties": false, "required": [ "alert_id", "outcome" ] }

Operações e monitoramento

GET /api/v1/operations/dashboard

Indicadores por perfil

Acesso: Sessão

Exige 2FA e uma entre operations.read, support.review ou compliance.review. Retorna apenas indicadores autorizados, sem filtros. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/operations/monitoring

Métricas, filas e alertas locais

Acesso: Sessão · observability.read

Sem filtros; janela Redis de 15 buckets, até 20 falhas 5xx, probes puros. webhook_worker observa até 20 execuções atualizadas nas últimas 24h (AVAILABLE/NO_DATA/UNAVAILABLE/DISABLED); runs com RUNNING/STALE/COMPLETED/STOPPED/FAILED, modo, UUID aleatório, horários, fase, lotes concluídos e totais processed/succeeded/failed/timeout/blocked desses lotes. STALE significa RUNNING sem atualização por 180s, não prova de processo morto. batch_incomplete indica interrupção durante lote; resultados parciais podem estar persistidos e não entram nos totais. Falha de coleta não altera entregas. automatic_worker=false significa que o painel não ativa processos; ausência de observações não prova worker parado. Sem notificações externas. Guias docs/OBSERVABILITY.md e docs/WORKER-OBSERVABILITY.md. Exige observability.read e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/v1/operations/tickets/list

Listar chamados próprios ou fila

Acesso: Sessão

mode=mine padrão. queue exige support.review + 2FA e exclui chamados próprios. Até 50 registros. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • mode · opcional
  • status · opcional
GET /api/v1/operations/tickets/detail

Consultar chamado autorizado

Acesso: Sessão

Chamado próprio ou support.review + 2FA para terceiros; leitura de terceiro é auditada. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • ticket_id · obrigatório
POST /api/v1/operations/tickets/create

Abrir chamado fictício

Acesso: Sessão

journal_id obrigatório, pode ser null; se informado deve envolver o solicitante. Até dez chamados ativos. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "category": { "type": "string", "enum": [ "ACCESS", "VERIFICATION", "PAYMENT" ] }, "message": { "type": "string", "minLength": 10, "maxLength": 1000 }, "journal_id": { "type": "string", "format": "uuid", "nullable": true }, "idempotency_key": { "type": "string", "format": "uuid" } }, "additionalProperties": false, "required": [ "category", "message", "journal_id", "idempotency_key" ] }
POST /api/v1/operations/tickets/transition

Avançar atendimento de terceiro

Acesso: Sessão · support.review

Revisão 0 + REVIEW_STARTED inicia; revisão 1 + outro motivo encerra. Não permite autorrevisão. Exige support.review e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "ticket_id": { "type": "string", "format": "uuid" }, "expected_revision": { "type": "integer", "enum": [ 0, 1 ] }, "reason": { "type": "string", "enum": [ "REVIEW_STARTED", "GUIDANCE_PROVIDED", "TEST_REPRODUCED" ] }, "idempotency_key": { "type": "string", "format": "uuid" } }, "additionalProperties": false, "required": [ "ticket_id", "expected_revision", "reason", "idempotency_key" ] }

Conciliação

POST /api/v1/reconciliation/create

Gerar conciliação local

Acesso: Sessão · reconciliation.manage

NORMAL exige ALL; SHORTFALL/TIMEOUT exigem um provedor específico. Snapshot v3 imutável de sete linhas; v1/v2 mantêm seis linhas, sem ajuste de saldo. Receita inclui tarifas e spread por ativo; Merchant LIGHTNING_MOCK não duplica fluxo do provider Lightning. MATCHED não certifica cotas ou revisão: evidências históricas são verificadas separadamente. A função SQL revalida suspensão após bloquear o ator, inclusive no replay. Guia docs/RECONCILIATION.md. Exige reconciliation.manage e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "scenario": { "type": "string", "enum": [ "NORMAL", "SHORTFALL", "TIMEOUT" ] }, "provider": { "type": "string", "enum": [ "ALL", "mock-usdc-v1", "mock-btc-v1", "mock-lightning-v1", "mock-fiat-usd-v1" ] }, "idempotency_key": { "type": "string", "format": "uuid" } }, "additionalProperties": false, "required": [ "scenario", "provider", "idempotency_key" ] }
GET /api/v1/reconciliation/list

Últimos 50 relatórios

Acesso: Sessão · reconciliation.manage

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Exige reconciliation.manage e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • status · opcional
GET /api/v1/reconciliation/detail

Consultar relatório JSON

Acesso: Sessão · reconciliation.manage

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Exige reconciliation.manage e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • run_id · obrigatório
GET /api/v1/reconciliation/report.json

Consultar relatório JSON

Acesso: Sessão · reconciliation.manage

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Exige reconciliation.manage e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • run_id · obrigatório
GET /api/v1/reconciliation/report.csv

Consultar relatório CSV

Acesso: Sessão · reconciliation.manage

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Exige reconciliation.manage e 2FA verificado. Sessão própria válida; se 2FA estiver ativado, deve estar verificado. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Parâmetros de consulta

  • run_id · obrigatório

Integrações Bearer

GET /api/integrations/v1/wallets

Consulta de integração: wallets

Acesso: Chave Bearer

Chave da própria empresa, ativa e com scope; titular ativo e PJ aprovado. Sem filtros/corpo. Links/eventos limitados aos últimos 50. Registra DeveloperLog. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/integrations/v1/links

Consulta de integração: links

Acesso: Chave Bearer

Chave da própria empresa, ativa e com scope; titular ativo e PJ aprovado. Sem filtros/corpo. Links/eventos limitados aos últimos 50. Registra DeveloperLog. links[].receipt inclui pricing conforme MerchantReceipt; somente merchant:read, sem ampliar autorização. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

GET /api/integrations/v1/events

Consulta de integração: events

Acesso: Chave Bearer

Chave da própria empresa, ativa e com scope; titular ativo e PJ aprovado. Sem filtros/corpo. Links/eventos limitados aos últimos 50. Registra DeveloperLog. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

POST /api/integrations/v1/links/create

Criar cobrança Merchant por integração

Acesso: Chave Bearer

Somente Bearer: cookie/senha não autorizam; sem CSRF. Empresa e ator definidos pela chave, sem business_id ou parâmetros na URL. Titular ativo/verificado e PJ aprovado inclusive no replay. Padrões SINGLE_ASSET e ZERO. Mesmas regras Merchant de limites, precisão, cotação, custos e 24 horas de validade. Não debita nem reserva saldo. Idempotência por empresa/UUID compartilhada com portal e demais chaves da empresa; mesma solicitação normalizada recupera link com situação atual, diferente retorna 409. Link, evento, auditoria e log são atômicos. 10 chamadas por chave/rota/5 min; repetir também consome o limite. Guia docs/INTEGRATION-MERCHANT-CREATE.md. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "asset": { "type": "string", "enum": [ "USD", "USDC", "BTC" ] }, "settlement_asset": { "type": "string", "enum": [ "USD", "USDC", "BTC" ] }, "amount": { "type": "string", "pattern": "^[0-9]+(\\.[0-9]+)?$", "description": "Valor decimal positivo como string, ponto decimal. Precisão: USD 2, USDC 6, BTC 8; limites adicionais do módulo." }, "description": { "type": "string", "minLength": 2, "maxLength": 120 }, "idempotency_key": { "type": "string", "format": "uuid" }, "payment_mode": { "type": "string", "enum": [ "SINGLE_ASSET", "MULTI_ASSET" ] }, "pricing_mode": { "type": "string", "enum": [ "ZERO", "FEES_V1" ] } }, "additionalProperties": false, "required": [ "asset", "settlement_asset", "amount", "description", "idempotency_key" ] }
POST /api/integrations/v1/exchange/quote

Cotação indicativa por integração

Acesso: Chave Bearer

Cotação mock de 60s, não executável, entidade independente do portal. Sem saldo, reserva, débito ou consumo diário financeiro; limite por operação vigente e cem novas cotações/empresa/24h. Mesmo pedido normalizado recupera snapshot original, inclusive expirado. Empresa/carteiras PJ derivadas da chave; nenhum ID de titular/conta no corpo. Revalidar acesso, aprovação e revisão PJ no replay. Logs por chamada; falha de auditoria/log desfaz criação. Guia docs/INTEGRATION-EXCHANGE-QUOTE-SPEC.md. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais. Objeto JSON UTF-8 de até 16 KiB e 32 níveis de objetos/arrays; campos repetidos, números não finitos e surrogates isolados são recusados com 400, antes da operação.

Schema do corpo JSON

{ "type": "object", "properties": { "asset_in": { "type": "string", "enum": [ "USD", "USDC", "BTC" ] }, "asset_out": { "type": "string", "enum": [ "USD", "USDC", "BTC" ] }, "amount": { "type": "string", "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]+)?$", "maxLength": 30, "description": "Total de entrada incluindo tarifa; positivo. Precisão USD 2, USDC 6, BTC 8; sem expoente, sinal ou milhar." }, "idempotency_key": { "type": "string", "format": "uuid" }, "pricing_mode": { "type": "string", "enum": [ "ZERO", "FEES_V1" ], "default": "ZERO" } }, "additionalProperties": false, "required": [ "asset_in", "asset_out", "amount", "idempotency_key" ] }
GET /api/integrations/v1/openapi.json

Contrato das integrações Bearer

Acesso: Público

Consulte o guia do módulo para regras de negócio e detalhes de resposta. Parâmetros de consulta não podem ser repetidos, mesmo com valores iguais.

Saúde do serviço

GET /health/live

Saúde: live

Acesso: Público

Também aceita HEAD. Ready verifica banco migrado e Redis; live apenas o processo.

GET /health/ready

Saúde: ready

Acesso: Público

Também aceita HEAD. Ready verifica banco migrado e Redis; live apenas o processo.