Como aprovar ou rejeitar uma antecipação via API?
Quando a empresa pagadora exige aprovação, cada antecipação solicitada pelo
beneficiário fica no status PENDING antes da liquidação (Pix Out). Você
aprova ou rejeita cada solicitação via API antes que o pagamento seja enviado.
| Ação | Endpoint | Escopo |
|---|---|---|
| Listar pendentes | GET /api/v1/anticipation?status=PENDING | anticipation.request.read |
| Aprovar | POST /api/v1/anticipation/{id}/approve | anticipation.request.approve |
| Rejeitar | POST /api/v1/anticipation/{id}/reject | anticipation.request.approve |
O {id} é o id da antecipação retornado na listagem. Todas as respostas são
escopadas à sua empresa (uma antecipação de outra empresa responde 404).
1. Descubra as solicitações pendentes
Faça polling das solicitações PENDING (o beneficiaryTaxID ajuda a
reconciliar com o seu sistema):
curl 'https://api.woovi.com/api/v1/anticipation?status=PENDING' \
-H "Authorization: {SEU_APP_ID}"
Exemplo de resposta
{
"anticipations": [
{
"id": "6290ccfd42831958a405debc",
"status": "PENDING",
"beneficiaryTaxID": "12345678909",
"requestedAmount": 100000,
"feeAmount": 7000,
"netAmount": 93000,
"feeMode": "PERCENTAGE",
"monthlyFeePercentage": 7,
"daysUntilDue": 7,
"dueDate": "2026-07-25T03:00:00.000Z",
"approvedAt": null,
"cancelledAt": null,
"cancelReason": null,
"endToEndId": null,
"failureCode": null,
"failureReason": null,
"createdAt": "2026-07-18T11:59:00.000Z"
}
],
"count": 1
}
2. Aprove (dispara o Pix Out)
curl 'https://api.woovi.com/api/v1/anticipation/{id}/approve' -X POST \
-H "Content-Type: application/json" \
-H "Authorization: {SEU_APP_ID}"
Aprovar dispara a liquidação: o status passa a PROCESSING e depois a
CONFIRMED quando o pagamento é enviado.
Exemplo de resposta
{
"anticipation": {
"id": "6290ccfd42831958a405debc",
"status": "PROCESSING",
"beneficiaryTaxID": "12345678909",
"requestedAmount": 100000,
"feeAmount": 7000,
"netAmount": 93000,
"feeMode": "PERCENTAGE",
"monthlyFeePercentage": 7,
"daysUntilDue": 7,
"dueDate": "2026-07-25T03:00:00.000Z",
"approvedAt": "2026-07-18T12:00:00.000Z",
"cancelledAt": null,
"cancelReason": null,
"endToEndId": null,
"failureCode": null,
"failureReason": null,
"createdAt": "2026-07-18T11:59:00.000Z"
}
}
3. Rejeite (opcionalmente com motivo)
curl 'https://api.woovi.com/api/v1/anticipation/{id}/reject' -X POST \
-H "Content-Type: application/json" \
-H "Authorization: {SEU_APP_ID}" \
-d '{"reason": "acima do limite"}'
Exemplo de resposta
{
"anticipation": {
"id": "6290ccfd42831958a405debc",
"status": "CANCELED",
"beneficiaryTaxID": "12345678909",
"requestedAmount": 100000,
"feeAmount": 7000,
"netAmount": 93000,
"feeMode": "PERCENTAGE",
"monthlyFeePercentage": 7,
"daysUntilDue": 7,
"dueDate": "2026-07-25T03:00:00.000Z",
"approvedAt": null,
"cancelledAt": "2026-07-18T12:05:00.000Z",
"cancelReason": "acima do limite",
"endToEndId": null,
"failureCode": null,
"failureReason": null,
"createdAt": "2026-07-18T11:59:00.000Z"
}
}
Idempotência e estados
- As duas ações são idempotentes: reenviar a mesma decisão retorna
200com o estado atual. Aprovar uma solicitação já aprovada, ou rejeitar uma já cancelada, é um no-op. - Uma decisão que conflita com o estado atual (ex.: aprovar uma rejeitada)
retorna
409. - Se você não decidir, a solicitação expira automaticamente conforme o
prazo configurado (
expirationDays) e é cancelada.