Visão geral
Um recebível (receivable) representa um valor a receber na sua conta, gerado automaticamente quando uma transação é aprovada. Cada parcela de uma venda e cada destinatário de um split viram recebíveis
Um recebível (receivable) representa um valor a receber na sua conta, gerado automaticamente quando uma transação é aprovada. Cada parcela de uma venda e cada destinatário de um split viram recebíveis independentes, com data prevista de liberação (expectedOn) e status próprio — e este recurso permite consultá-los para conciliação financeira.
Na API pública, Recebíveis é um recurso somente leitura: você lista (GET /v1/receivables) e consulta analytics (GET /v1/receivables/analytics). A criação, a liberação e a mudança de status acontecem por conta do servidor, conforme as transações são processadas — você acompanha essas mudanças pelos webhooks receivable.*, nunca por polling.
O que é um recebível (e por que existe)
Quando um cliente paga, o dinheiro não cai imediatamente disponível na sua conta. Ele entra como um valor a receber, com uma data prevista de liberação que depende do método de pagamento, do parcelamento e das suas condições de antecipação. O recebível é o registro contábil desse valor: quanto é, de qual transação veio, quando deve ser liberado e em que estágio está.
- Vendas parceladas geram um recebível por parcela — cada parcela tem seu próprio
installmentNumbere seu próprioexpectedOn. - Splits (divisão de pagamento entre destinatários) geram um recebível por destinatário, ligados pelo
splitId. - O saldo disponível (
/v1/finance/balance) é a soma dos recebíveis já liberados (paid).
Use Recebíveis para conciliar o que você recebeu e o que ainda vai receber: relatórios de fluxo de caixa, previsão de liberação, conferência de taxas e auditoria por transação.
Modelo do objeto
O exemplo abaixo é a projeção completa retornada por GET /v1/receivables (cada item de data[]):
{
"id": "rec_01hqzvabc",
"transactionId": "tra_01hqzvabc",
"recipientId": null,
"splitId": null,
"currency": "BRL",
"amount": 4850,
"grossAmount": 5000,
"status": "pending",
"installmentNumber": 1,
"anticipationFee": 0,
"liable": true,
"chargeProcessingFee": true,
"description": "Payment successfully completed.",
"paidAt": null,
"refundedAt": null,
"canceledAt": null,
"expectedOn": "2026-04-20T00:00:00.000Z",
"updatedAt": "2026-04-12T17:56:33.000Z",
"createdAt": "2026-04-12T17:56:33.000Z"
}Campos
| Campo | Tipo | Descrição |
|---|---|---|
id | string | Identificador opaco do recebível (prefixo rec_). |
transactionId | string | Transação de origem (prefixo tra_). |
recipientId | string | null | Destinatário do valor, quando o recebível pertence a outro destinatário (split/sub-conta). null quando é da própria conta. |
splitId | string | null | Split que originou o recebível, se aplicável. null quando não houve split. |
currency | string | Moeda ISO 4217 (atualmente BRL). |
amount | integer | Valor líquido em centavos (após taxas). 4850 = R$ 48,50. |
grossAmount | integer | Valor bruto em centavos, antes das taxas. 5000 = R$ 50,00. |
status | string | Estado atual do recebível (veja Ciclo de vida). |
installmentNumber | integer | Número da parcela que gerou este recebível (1 na primeira/à vista). |
anticipationFee | integer | Taxa de antecipação aplicada, em centavos. 0 quando não há antecipação. |
liable | boolean | Se o destinatário responde por eventuais chargebacks deste valor. |
chargeProcessingFee | boolean | Se a taxa de processamento incide sobre este recebível. |
description | string | Descrição legível do recebível. |
paidAt | string | null | Quando foi liberado/pago (ISO 8601 UTC) ou null se ainda não. |
refundedAt | string | null | Quando foi reembolsado, ou null. |
canceledAt | string | null | Quando foi cancelado, ou null. |
expectedOn | string | Data prevista de liberação (ISO 8601 UTC). |
updatedAt | string | Última atualização (ISO 8601 UTC). |
createdAt | string | Criação do recebível (ISO 8601 UTC). |
Importante
Todo valor monetário é inteiro em centavos e toda data é ISO 8601 em UTC (sufixo Z). amount é o líquido (o que de fato entra na sua conta); grossAmount é o bruto. Trate id, transactionId, recipientId e splitId como strings opacas — não faça parsing. Veja Convenções.
Nota
A listagem retorna projeções leves: os itens de data[] trazem o conjunto de campos acima. O endpoint de analytics retorna um recorte ainda mais enxuto (sem transactionId, recipientId, splitId, installmentNumber, description nem os timestamps paidAt/refundedAt/canceledAt). Veja Analytics para os campos exatos.
Ciclo de vida e status
O status de um recebível acompanha o da transação de origem. Um recebível nasce agendado ou pendente, é liberado na data prevista e pode ser afetado por reembolsos, disputas ou chargebacks.
O diagrama ilustra as transições típicas; as transições reais são determinadas pelo ciclo da transação de origem e podem variar conforme o método de pagamento e a adquirente.
Valores de status
Estes são os valores possíveis de status (enum exposto pelo filtro de status em GET /v1/receivables/analytics):
| Status | Significado |
|---|---|
scheduled | Agendado para liberação futura (em expectedOn). |
pending | Aguardando liquidação/liberação. |
paid | Liberado — o valor entrou no saldo disponível. |
canceled | Cancelado (a transação não se concretizou). |
refunded | Reembolsado (transação estornada). |
chargeback | Afetado por chargeback. |
dispute | Afetado por uma disputa em andamento. |
fraud-hold | Retido por suspeita de fraude, aguardando análise. |
O parâmetro
released(yes/no) é um atalho de filtro por "já liberado vs. ainda não liberado", complementar aostatus.
Operações disponíveis
| Operação | Método e caminho | Descrição |
|---|---|---|
| Listar | GET /v1/receivables | Lista paginada de recebíveis, com filtros de status, liberação, ID e período. Projeção completa. |
| Analytics | GET /v1/receivables/analytics | Recorte agregado por período (initdate/enddate obrigatórios) para relatórios. |
As respostas trazem _links (HATEOAS): a listagem aponta para analytics e a analytics aponta para list, permitindo navegar entre as duas visões sem montar URLs à mão. Veja Convenções.
Exemplo rápido
Listar os recebíveis pendentes mais recentes:
curl -s "https://api.selectwin.io/v1/receivables?status=pending&sort=descending&limit=20" \
-H "SelectKey: sl_live_aBcDeFgHiJkLmNoPqRsTuVwXyZ"Autenticação é sempre pelo header
SelectKey(em sandbox a chave começa comsl_test_). Nunca useAuthorization: Bearer/Basic. Veja Autenticação.
Erros
Recebíveis usa os códigos transversais da API — não há códigos error.code específicos deste recurso. Trate sempre pelo error.code (estável), não pela message.
error.code | HTTP | Quando ocorre |
|---|---|---|
invalidParameters | 400 | Parâmetro de filtro/paginação inválido (ex.: limit fora de 1..50, data malformada). Veja error.params. |
unauthorized | 401 | SelectKey ausente, inválida ou revogada. |
forbidden | 403 | Autenticado, mas sem permissão para o recurso. |
notFound | 404 | Recurso não encontrado. |
unprocessableEntity | 422 | Combinação de parâmetros não processável (ex.: período inválido em analytics). |
tooManyRequests | 429 | Limite de requisições excedido — respeite error.retryAfterMinutes no backoff. |
serverError | 500 | Erro interno — repita com backoff. |
Para o envelope de erro completo e como tratá-lo, veja Tratamento de Erros e o Catálogo de Códigos de Erro.
Boas práticas
- Concilie por
transactionId. Vincule cada recebível à sua transação de origem; uma venda parcelada gera vários recebíveis com o mesmotransactionIdeinstallmentNumberdistintos. - Use
expectedOnpara previsão de caixa, não para confirmação. Só considere o dinheiro disponível quando ostatusforpaid(e/oupaidAtestiver preenchido). - Some
amount, nãogrossAmount, para o líquido. OgrossAmounté o bruto; as taxas (incluindoanticipationFee) explicam a diferença. - Reaja a mudanças via webhooks
receivable.*, não por polling. Listar repetidamente para detectar liberações desperdiça rate limit e atrasa a reação. Veja Proibição de Polling. - Filtre por período com os parâmetros
daterange*(daterangegte/daterangeltepara intervalos inclusivos) em vez de baixar tudo e filtrar no cliente. - Pagine com
offset/limit(limitmáximo 50) e usehasMore/_linkspara percorrer páginas. Veja Paginação. - Trate os IDs como opacos e armazene a string inteira; o prefixo
rec_é só leitura humana.
Veja também
- Listar Recebíveis — filtros, paginação e a projeção completa.
- Analytics de Recebíveis — agregados por período para relatórios.
- Transactions — Visão Geral — a origem de todo recebível.
- Catálogo de Eventos — eventos
receivable.*. - Convenções · Paginação · Autenticação · Proibição de Polling
How is this guide?