documentostringRequiredmaxLength64Parameters, data structure and responses from the versioned contract.
/carriers/parcelas-repasse/pagarTechnical descriptions are translated from the versioned contract. Original identifiers and JSON are preserved; data examples are omitted.
The payment order — the second action in manual mode. Applies only to an installment waiting for a payment order (status: 5), the state produced by liberar.
Does not move funds immediately. This request queues the installment: its due date becomes today, the payment is created, and the transfer is sent to the bank during the next processing cycle — normally within minutes. Expecting funds to appear in the driver's account at the instant of the response could lead you to assume failure and submit the request again.
Does not accept a date; omitting it is intentional: in manual mode, the due date is the moment of this request. If you include ocorrido_em, the field is silently ignored, and the due date is still today — this is not an error; the field belongs to liberar and is not part of this operation.
Repeating the order is a no-op: double clicks and retries do not create another payment, and the first order's date is not overwritten.
[
{
"oauth2": []
},
{
"chaveApi": []
}
]No parameters declared for this operation.
Required
application/jsondocumentostringRequiredmaxLength64posicaointegerRequiredminimum1maximum3200 HTTP ResponseInstallment queued for payment (or already queued; the call is idempotent)
401 HTTP ResponseUnauthenticated (autenticacao): missing, invalid or expired credentials, including an API key used in the wrong environment. A sandbox key is not valid in production, nor a production key in the sandbox; the error message indicates the expected environment.
403 HTTP ResponseThe credential does not have the operacao scope enabled. This endpoint orders payment; the scope ensures only those authorized to move funds can call it.
404 HTTP ResponseDocument not found or belongs to another carrier.
422 HTTP ResponseThe order was rejected. The code is stable:
code | What to do |
|---|---|
parcela_nao_liberada | Call liberar first — the installment is still waiting for its event. |
parcela_anterior_sem_ordem | Order payment of the previous installment first. |
servico_inexistente | This document's service does not exist yet; completion must come first. |
parcela_inexistente | The rule has no installment at this position. |
parcela_cancelada | The CT-e was canceled at SEFAZ. |
sem_regra_parcelada | The document is not governed by an installment rule. |
documento_cancelado | The financial document was invalidated; there is no transfer to pay, even if the installment remained open. |
429 HTTP ResponseRequest limit exceeded (limite_requisicoes). Wait for the interval specified in the Retry-After header before retrying. This may be a limit forwarded from the provider or FleetPay's own anti-abuse limit, counted per authenticated company and route group, with a short window for bursts and a long window for slower automated traffic. Limits are intentionally generous: genuine integrations, including large batches processed at once, should remain well below them. If yours reaches a limit, contact FleetPay.
{
"tags": [
"Parcelas"
],
"summary": "Pagar uma parcela",
"operationId": "pagarParcelaRepasse",
"description": "A ordem de pagamento — o segundo ato do modo manual. Só se aplica a parcela que está\n**aguardando ordem de pagamento** (`status: 5`), o estado em que `liberar` a deixa.\n\n**Não move dinheiro na hora.** Esta chamada coloca a parcela na fila: o vencimento passa a\nser hoje, o pagamento é criado e o repasse é enviado ao banco no processamento seguinte —\nnormalmente em minutos. Se você espera ver o valor na conta do motorista no instante da\nresposta, vai concluir que falhou e chamar de novo.\n\n**Não aceita data**, e a ausência é a regra: no modo manual o vencimento é o instante desta\nchamada. Se você mandar `ocorrido_em` junto, o campo é **ignorado em silêncio** e o\nvencimento sai hoje do mesmo jeito — não é erro, é o campo do `liberar`, que aqui não\nexiste.\n\nRepetir a ordem é **no-op**: duplo clique e retry não viram segundo pagamento, e a data da\nprimeira ordem não é reescrita.\n",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PagarParcelaRepasse"
}
}
}
},
"responses": {
"200": {
"description": "Parcela na fila de pagamento (ou já estava — a chamada é idempotente)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RespostaParcelaRepasse"
}
}
}
},
"401": {
"$ref": "#/components/responses/Erro401"
},
"403": {
"description": "Credencial sem o escopo `operacao` habilitado. Esta porta manda pagar — o escopo existe para que só quem pode mover dinheiro a acione.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Erro"
}
}
}
},
"404": {
"description": "Documento não encontrado, ou de outra transportadora.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Erro"
}
}
}
},
"422": {
"description": "A ordem foi recusada. O `code` é estável:\n\n| `code` | O que fazer |\n|---|---|\n| `parcela_nao_liberada` | Chame `liberar` antes — a parcela ainda espera o evento. |\n| `parcela_anterior_sem_ordem` | Mande pagar a parcela anterior primeiro. |\n| `servico_inexistente` | O serviço deste documento ainda não existe; a conclusão precisa vir antes. |\n| `parcela_inexistente` | A regra não tem parcela nessa posição. |\n| `parcela_cancelada` | O CT-e foi cancelado na SEFAZ. |\n| `sem_regra_parcelada` | O documento não está sob regra parcelada. |\n| `documento_cancelado` | O documento financeiro foi invalidado; não há repasse a pagar mesmo que a parcela tenha ficado aberta. |\n",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Erro"
}
}
}
},
"429": {
"$ref": "#/components/responses/Erro429"
},
"500": {
"$ref": "#/components/responses/Erro500"
}
},
"method": "POST",
"path": "/carriers/parcelas-repasse/pagar",
"parameters": []
}