Financeiro do seller
Saldo, extrato, comissões, saques, antecipação, dívidas e divisão de pagamentos do seller.
Em um marketplace a loja recebe o pagamento do cliente, retém uma comissão e repassa o resto ao seller. Esta seção mostra ao seller (lojista) essa conta: quanto já ganhou, quanto pode sacar, o que já recebeu, o que deve à loja e como os pagamentos diretos foram divididos.
Como funciona
- A venda gera entradas
Cada item vendido em sub-pedido gera uma entrada no razão, com a parte da loja (comissão) e a parte do seller. Nasce
P(pendente). - Passam 72 horas
A entrada vira
A(confirmada) e entra emavailable_cents. A confirmação roda sozinha e também é feita ao ler saldo ou extrato. - O seller pede saque
POST /vendor/commissions/payout-requestreserva o valor. A loja aprova, processa e paga; as entradas passam aS(liquidada). - A loja gera o repasse
O lote do período aparece em
GET /vendor/payouts. Dívidas ativas são descontadas dele.
| Letra | Entrada do razão (entries) | Comissão por pedido | Pedido de saque | Repasse |
|---|---|---|---|---|
P | pendente (janela de 72 h) | em processamento | em processamento | |
A | confirmada, disponível | aprovada | aprovado | |
S | liquidada (saque concluído) | |||
C | paga | paga | concluído | concluído |
O | pendente | aberto | pendente | |
R | recusado | |||
I | cancelada | |||
F | falhou |
Conceitos-chave
Quem é o seller e o que o token permite
O seller (lojista) é descoberto pelo token; nenhuma rota recebe vendor_id. Sub-contas (funcionários) precisam de um privilégio financeiro (vendor_financial ou um dos específicos como vendor_view_commissions). O dono da loja passa sempre. Um token de administrador responde 403.
Dinheiro
Tudo em centavos inteiros (125000 = R$ 1.250,00). Taxas em pontos-base (300 = 3%). Não existe decimal em nenhum campo desta seção.
Dois razões de comissão
A comissão por pedido (/commissions, /commissions/summary) guarda, por pedido, o percentual e a taxa fixa do plano do seller. O razão por item (/commissions/entries, saldo, extrato, saques) guarda, por item vendido, a comissão e o valor do seller. O saque e o saldo usam sempre o segundo.
Pedido de saque versus repasse
Pedido de saque é a solicitação do seller (/commissions/payout-request). Repasse é o lote de pagamento que a loja gera (/payouts). Não há rota de seller para ler o pedido de saque pelo id.
Status em letra
Estas rotas devolvem o status como letra (P, A, O...), não por extenso, com exceção de antecipações e divisões de pagamento, que saem por extenso. A tabela acima resume as letras.
Endpoints
| Método | Caminho | Para que serve | Autenticação | Página |
|---|---|---|---|---|
| GET | /api/v1/vendor/commissions/balance | Saldo disponível, pendente e retido. | seller, privilégio financeiro | Comissões |
| GET | /api/v1/vendor/commissions/statement | Extrato por período. | seller, privilégio financeiro | Comissões |
| GET | /api/v1/vendor/commissions/entries | Razão por item vendido. | seller, privilégio financeiro | Comissões |
| GET | /api/v1/vendor/commissions | Comissões do plano por pedido. | seller, privilégio financeiro | Comissões |
| GET | /api/v1/vendor/commissions/summary | Totais por status. | seller, privilégio financeiro | Comissões |
| POST | /api/v1/vendor/commissions/payout-request | Pede saque. | seller, privilégio financeiro | Saques |
| POST | /api/v1/vendor/payouts/request | Pede saque (rota antiga). | seller, privilégio financeiro | Saques |
| GET | /api/v1/vendor/payouts | Lista repasses. | seller, privilégio financeiro | Saques |
| GET | /api/v1/vendor/payouts/{id} | Detalhe de um repasse. | seller, privilégio financeiro | Saques |
| GET | /api/v1/vendor/advances/quote | Simula antecipação. | seller, privilégio financeiro | Antecipação |
| GET | /api/v1/vendor/advances | Lista antecipações. | seller, privilégio financeiro | Antecipação |
| POST | /api/v1/vendor/advances | Pede antecipação. | seller, privilégio financeiro | Antecipação |
| POST | /api/v1/vendor/advances/{id}/cancel | Cancela antecipação. | seller, privilégio financeiro | Antecipação |
| GET | /api/v1/vendor/debts | Lista dívidas. | seller, privilégio financeiro | Dívidas e divisões |
| GET | /api/v1/vendor/debts/summary | Totais das dívidas. | seller, privilégio financeiro | Dívidas e divisões |
| GET | /api/v1/vendor/payment-splits | Lista divisões de pagamento. | seller, módulo direct-payments | Dívidas e divisões |
| GET | /api/v1/vendor/payment-splits/stats | Totais das divisões. | seller, módulo direct-payments | Dívidas e divisões |
Erros comuns
- Esperar o saldo parado.
balanceestatementcompletam e confirmam o razão ao serem lidos, então o valor pode mudar entre chamadas. - Tentar um segundo pedido de saque com um aberto:
409 open_request_exists. - Mandar
bank_infoincompleto achando que a API valida. Ela grava o que receber. - Passar um id que não é UUID em
/payouts/{id}: volta500, não400. - Usar
pending_splitsdo/payment-splits/statscomo verdade. Hoje ele vem sempre zerado. - Pedir mais que o máximo na antecipação e não conferir
requested_cents: o valor é reduzido sem erro. - Esquecer de tratar
403 module_disabled. Dívidas, divisões e várias outras rotas dependem de módulos que a loja pode desligar.