documentostringObligatoriomaxLength64Parámetros, estructura de datos y respuestas del contrato versionado.
/carriers/parcelas-repasse/pagarLas descripciones técnicas se traducen del contrato versionado. Se conservan los identificadores y el JSON originales; se omiten los ejemplos de datos.
La orden de pago: el segundo acto del modo manual. Solo se aplica a una cuota en espera de una orden de pago (status: 5), el estado que produce liberar.
No mueve dinero de inmediato. Esta llamada pone la cuota en cola: el vencimiento pasa a ser hoy, se crea el pago y la transferencia se envía al banco en el siguiente procesamiento, normalmente en minutos. Esperar que el dinero aparezca en la cuenta del conductor en el instante de la respuesta podría llevarle a interpretar un fallo y repetir la llamada.
No acepta una fecha; omitirla es lo previsto: en modo manual, el vencimiento es el momento de esta llamada. Si incluye ocorrido_em, el campo se ignora sin aviso y el vencimiento sigue siendo hoy. No es un error: el campo pertenece a liberar y no forma parte de esta operación.
Repetir la orden es una operación sin efecto adicional: el doble clic y los reintentos no generan otro pago ni sobrescriben la fecha de la primera orden.
[
{
"oauth2": []
},
{
"chaveApi": []
}
]No hay parámetros declarados para esta operación.
Obligatorio
application/jsondocumentostringObligatoriomaxLength64posicaointegerObligatoriominimum1maximum3200 Respuesta HTTPCuota en la cola de pago (o ya estaba en ella; la llamada es idempotente)
401 Respuesta HTTPSin autenticación (autenticacao): credencial ausente, inválida o vencida, incluida una clave API utilizada en el entorno incorrecto. La clave de homologación no es válida en producción, ni la de producción en homologación; el mensaje de error indica el entorno esperado.
403 Respuesta HTTPLa credencial no tiene habilitado el ámbito operacao. Este endpoint ordena el pago; el ámbito garantiza que solo quienes pueden mover fondos lo utilicen.
404 Respuesta HTTPDocumento no encontrado o perteneciente a otro transportista.
422 Respuesta HTTPSe rechazó la orden. El code es estable:
code | Qué hacer |
|---|---|
parcela_nao_liberada | Llame primero a liberar: la cuota todavía espera el evento. |
parcela_anterior_sem_ordem | Ordene primero el pago de la cuota anterior. |
servico_inexistente | El servicio de este documento todavía no existe; primero debe registrarse la finalización. |
parcela_inexistente | La regla no tiene una cuota en esta posición. |
parcela_cancelada | El CT-e fue cancelado ante SEFAZ. |
sem_regra_parcelada | El documento no está sujeto a una regla de cuotas. |
documento_cancelado | El documento financiero fue invalidado; no hay una transferencia que pagar, aunque la cuota haya quedado abierta. |
429 Respuesta HTTPLímite de solicitudes excedido (limite_requisicoes). Espera el intervalo indicado en el encabezado Retry-After antes de reintentar. Puede provenir del proveedor o del límite antiabuso de FleetPay, calculado por empresa autenticada y grupo de rutas, con una ventana corta para ráfagas y otra larga para tráfico automatizado lento. Los límites son amplios deliberadamente: las integraciones reales, incluidos lotes grandes procesados de una vez, deberían quedar muy por debajo. Si tu integración alcanza un límite, contacta con 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": []
}