← InícioFleetPay / API

Liberar uma parcela

Parâmetros, estrutura de dados e respostas do contrato versionado.

POST/carriers/parcelas-repasse/liberar
liberarParcelaRepasseBase de Homologação: https://api.fleetpay.site/v1

Descrições técnicas preservadas do contrato versionado. Exemplos de dados foram omitidos da cópia pública.

Declara que o evento âncora da parcela aconteceu no seu sistema.

Em regra MANUAL, liberar deixa a parcela apta — e nada mais. Ela fica sem vencimento e sem pagamento, esperando a ordem de pagamento. Isso é deliberado: no modo manual quem decide quando o dinheiro sai é você, e o vencimento é o momento dessa decisão, não uma data derivada do evento.

Em regra AUTOMÁTICA, os eventos internos já liberam sozinhos. Esta chamada serve como destravamento de parcela presa, e aí ela grava o vencimento (evento + prazo da regra) e o pagamento segue sem passo extra.

ocorrido_em pode ser retroativa — o evento pode ter acontecido antes de alguém registrar. Data futura é recusada: seria criar vencimento a partir de um evento que não ocorreu.

Liberar de novo é no-op, não erro: retry não vira parcela duplicada.

Autenticação

[
  {
    "oauth2": []
  },
  {
    "chaveApi": []
  }
]
A disponibilidade depende do ambiente, dos escopos habilitados e do provedor. Esta referência não executa chamadas nem recebe credenciais.

Parâmetros

Nenhum parâmetro declarado nesta operação.

Corpo da Requisição

Obrigatório

application/json

documentostringObrigatório

Os mesmos identificadores do GET: ID interno FleetPay, número do documento (internal_id) ou chave do CT-e de 44 dígitos; para contra-CT-e, também o counter_cte_id, o documento_financeiro da perna (ROUTE:...) ou a chave do contra-CT-e autorizado.

maxLength64
posicaointegerObrigatório

1 bipagem · 2 conclusão no app · 3 prestação de contas.

minimum1
maximum3
ocorrido_emstring · dateObrigatório

Quando o evento aconteceu. Pode ser retroativa; futura é recusada com data_no_futuro.

Respostas

200 Resposta HTTP

Parcela liberada (ou já liberada — a chamada é idempotente)

application/json

401 Resposta HTTP

Não autenticado (autenticacao): credencial ausente, inválida ou expirada — inclusive chave de API usada no ambiente errado. A chave de homologação não vale em produção, nem a de produção em homologação; a mensagem do erro indica o ambiente esperado.

application/json

errorobjectOpcional
403 Resposta HTTP

Credencial sem o escopo operacao habilitado.

application/json

errorobjectOpcional
404 Resposta HTTP

Documento não encontrado, ou de outra transportadora.

application/json

errorobjectOpcional
422 Resposta HTTP

A liberação foi recusada. O code é estável e é por ele que você deve ramificar:

codeO que fazer
sem_regra_parceladaO documento não está sob regra parcelada — não há o que liberar.
parcela_inexistenteA regra não tem parcela nessa posição.
evento_fora_de_ordemLibere a parcela anterior primeiro.
data_anterior_ao_evento_anteriorA data informada é anterior ao evento da parcela anterior.
data_no_futuroUse uma data até hoje.
parcela_canceladaO CT-e foi cancelado na SEFAZ; esta parcela não vai pagar nada.
servico_ainda_nao_concluidoA parcela de conclusão precisa vir antes da prestação de contas.
regra_sem_prestacao_de_contasPosição 3 numa regra que não tem a parcela de prestação de contas.
data_anterior_a_conclusaoPosição 3 com data anterior à conclusão do serviço.
falha_ao_liberarFalha interna ao gravar a liberação; repita a chamada.

application/json

errorobjectOpcional
429 Resposta HTTP

Limite de requisições excedido (limite_requisicoes). Aguarde o intervalo indicado no header Retry-After antes de repetir. Pode vir do provedor, repassado, ou do teto anti-abuso da própria FleetPay — contado por empresa autenticada e por grupo de rotas, com uma janela curta que pega a rajada e uma longa que pega o robô lento. Os tetos são folgados de propósito: integração real, inclusive lote grande processado de uma vez, não chega perto deles. Se a sua chegar, fale com a FleetPay.

application/json

errorobjectOpcional
500 Resposta HTTP

Erro interno (erro_interno)

application/json

errorobjectOpcional
Definição Completa da Operação
{
  "tags": [
    "Parcelas"
  ],
  "summary": "Liberar uma parcela",
  "operationId": "liberarParcelaRepasse",
  "description": "Declara que o evento âncora da parcela aconteceu no seu sistema.\n\n**Em regra MANUAL**, liberar deixa a parcela **apta** — e nada mais. Ela fica sem\nvencimento e sem pagamento, esperando a ordem de pagamento. Isso é deliberado: no modo\nmanual quem decide quando o dinheiro sai é você, e o vencimento é o momento dessa decisão,\nnão uma data derivada do evento.\n\n**Em regra AUTOMÁTICA**, os eventos internos já liberam sozinhos. Esta chamada serve como\ndestravamento de parcela presa, e aí ela grava o vencimento (evento + prazo da regra) e o\npagamento segue sem passo extra.\n\n`ocorrido_em` **pode ser retroativa** — o evento pode ter acontecido antes de alguém\nregistrar. Data futura é recusada: seria criar vencimento a partir de um evento que não\nocorreu.\n\nLiberar de novo é **no-op**, não erro: retry não vira parcela duplicada.\n",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/LiberarParcelaRepasse"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Parcela liberada (ou já liberada — a chamada é idempotente)",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RespostaParcelaRepasse"
          }
        }
      }
    },
    "401": {
      "$ref": "#/components/responses/Erro401"
    },
    "403": {
      "description": "Credencial sem o escopo `operacao` habilitado.",
      "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 liberação foi recusada. O `code` é estável e é por ele que você deve ramificar:\n\n| `code` | O que fazer |\n|---|---|\n| `sem_regra_parcelada` | O documento não está sob regra parcelada — não há o que liberar. |\n| `parcela_inexistente` | A regra não tem parcela nessa posição. |\n| `evento_fora_de_ordem` | Libere a parcela anterior primeiro. |\n| `data_anterior_ao_evento_anterior` | A data informada é anterior ao evento da parcela anterior. |\n| `data_no_futuro` | Use uma data até hoje. |\n| `parcela_cancelada` | O CT-e foi cancelado na SEFAZ; esta parcela não vai pagar nada. |\n| `servico_ainda_nao_concluido` | A parcela de conclusão precisa vir antes da prestação de contas. |\n| `regra_sem_prestacao_de_contas` | Posição 3 numa regra que não tem a parcela de prestação de contas. |\n| `data_anterior_a_conclusao` | Posição 3 com data anterior à conclusão do serviço. |\n| `falha_ao_liberar` | Falha interna ao gravar a liberação; repita a chamada. |\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/liberar",
  "parameters": []
}