Máquina de Estados da Operação de Crédito

Os 14 estados de uma operação de crédito (CreditOperationStatus), suas transições e regras de bloqueio.

Toda operação de crédito (CreditOperation) tem um campo status que representa sua posição no ciclo de vida. O valor está sempre disponível em GET /credit-operations/{externalContractId} e é a base de decisão para todas as ações seguintes.

Estados (CreditOperationStatus)

StatusSignificado
RECEIVEDOperação criada, aguardando aprovação.
APPROVEDOperação aprovada, pronta para gerar a CCB.
REJECTEDOperação recusada — estado terminal.
CCB_REQUESTEDGeração da CCB solicitada, em processamento.
CCB_GENERATEDCCB gerada com sucesso, pronta para assinatura.
CCB_GENERATION_FAILEDFalha ao gerar a CCB.
CCB_SIGNING_PENDINGAssinatura eletrônica solicitada, aguardando o tomador assinar.
CCB_SIGNEDCCB assinada, pronta para solicitar o desembolso.
DISBURSEMENT_REQUESTEDDesembolso solicitado à plataforma de crédito.
DISBURSEDValor desembolsado ao tomador — estado terminal de sucesso.
DISBURSEMENT_FAILEDFalha ao desembolsar o valor.
CANCELLEDOperação cancelada pelo parceiro — estado terminal.

Transições e pré-requisitos

RECEIVED
  → APPROVED           (POST /credit-operations/{id}/approve)
  → REJECTED

APPROVED
  → CCB_REQUESTED → CCB_GENERATED       (POST /credit-operations/{id}/ccb)
                  → CCB_GENERATION_FAILED

CCB_GENERATED
  → CCB_SIGNING_PENDING → CCB_SIGNED    (POST /credit-operations/{id}/ccb/sign)

CCB_SIGNED
  → DISBURSEMENT_REQUESTED → ROUTED → DISBURSED     (POST /credit-operations/{id}/disbursement)
                           → FAILED_TO_ROUTE
                    → DISBURSEMENT_FAILED

(qualquer estado não-terminal)
  → CANCELLED          (POST /credit-operations/{id}/cancel)

Regras de bloqueio (HTTP 409)

Cada endpoint de transição valida o estado atual antes de agir. Chamadas fora de ordem retornam 409 Conflict:

  • Gerar CCB (POST .../ccb) exige status APPROVED.
  • Assinar CCB (POST .../ccb/sign) exige status CCB_GENERATED.
  • Solicitar desembolso (POST .../disbursement) exige status CCB_SIGNED.
  • Cancelar (POST .../cancel) é bloqueado se a operação já estiver DISBURSED.
  • Solicitar KYC (POST .../kyc) é executado uma única vez por operação e é bloqueado em estados terminais (DISBURSED, REJECTED, CANCELLED).

Acompanhando mudanças de estado

Toda transição de status dispara o evento de webhook CREDIT_OPERATION_STATUS_CHANGED — veja Notificação de Mudança de Status, o que evita a necessidade de polling em GET /credit-operations/{externalContractId}.


Did this page help you?