← HomeFleetPay / API

Pay an installment

Parameters, data structure and responses from the versioned contract.

POST/carriers/parcelas-repasse/pagar
pagarParcelaRepasseSandbox Base: https://api.fleetpay.site/v1

Technical 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.

Authentication

[
  {
    "oauth2": []
  },
  {
    "chaveApi": []
  }
]
Availability depends on the environment, enabled scopes and provider. This reference does not execute requests or collect credentials.

Parameters

No parameters declared for this operation.

Request Body

Required

application/json

documentostringRequired
maxLength64
posicaointegerRequired
minimum1
maximum3

Responses

200 HTTP Response

Installment queued for payment (or already queued; the call is idempotent)

application/json

401 HTTP Response

Unauthenticated (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.

application/json

errorobjectOptional
403 HTTP Response

The credential does not have the operacao scope enabled. This endpoint orders payment; the scope ensures only those authorized to move funds can call it.

application/json

errorobjectOptional
404 HTTP Response

Document not found or belongs to another carrier.

application/json

errorobjectOptional
422 HTTP Response

The order was rejected. The code is stable:

codeWhat to do
parcela_nao_liberadaCall liberar first — the installment is still waiting for its event.
parcela_anterior_sem_ordemOrder payment of the previous installment first.
servico_inexistenteThis document's service does not exist yet; completion must come first.
parcela_inexistenteThe rule has no installment at this position.
parcela_canceladaThe CT-e was canceled at SEFAZ.
sem_regra_parceladaThe document is not governed by an installment rule.
documento_canceladoThe financial document was invalidated; there is no transfer to pay, even if the installment remained open.

application/json

errorobjectOptional
429 HTTP Response

Request 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.

application/json

errorobjectOptional
500 HTTP Response

Internal error (erro_interno)

application/json

errorobjectOptional
Complete Operation Definition
{
  "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": []
}