BlendFi
OfframpOperações

Standby e liquidação manual

O que dispara standby, o que `/liquidate` faz, por que a taxa muda, prazo de 7 dias.

Standby é o ponto operacional mais importante do offramp. É o estado em que a conversão está "parada com dinheiro retido", esperando uma decisão sua. Esta página cobre os motivos de standby, como sair via /liquidate, e o desfecho abandoned se você não agir em 7 dias.

O que dispara standby

Qualquer um destes cenários coloca a conversão em standby:

standby_reasonO que aconteceu
under_fundedO depósito on-chain confirmou com received_amount < expected_source_amount.
over_fundedO depósito on-chain confirmou com received_amount > expected_source_amount.
window_expiredA janela de 15 minutos passou com received_amount > 0 mas ainda em awaiting_deposit.
duplicate_depositMais de um depósito on-chain foi detectado para a mesma conversão.
wrong_addressUm depósito chegou em um endereço que não corresponde ao emitido para esta conversão.
late_post_windowUm depósito chegou depois do fechamento da janela, mas ainda foi aceito para resolução.

Em todos os três, o depósito ficou em custódia da BlendFi e a conversão não vai avançar sozinha. A política é deliberada: qualquer divergência exige uma decisão explícita do parceiro, e a operação não roda em automatico com valor diferente do contratado.

O que você vê

Webhook conversion.standby com payload contendo standby_reason, received_amount, e expected_source_amount. A conversão na resposta de GET /v1/conversions/:id mostra status='standby', standby_at (quando entrou), standby_expires_at (standby_at + 7 dias).

A decisão: liquidar ou esperar

Você tem três caminhos:

  1. Liquidar pelo valor efetivamente recebido via POST /v1/conversions/:id/liquidate. A BlendFi cota uma nova taxa server-side, executa a liquidação pelo received_amount, e a conversão termina em completed (caminho feliz) ou failed (erro de execução).
  2. Não fazer nada por até 7 dias. A conversão segue em standby; depósitos tardios continuam sendo creditados em received_amount mas não promovem a conversão. Após 7 dias, ela vira abandoned (veja Conversão abandonada).
  3. Combinar 1 e 2: segurar enquanto avalia, depois liquidar a qualquer momento dentro do prazo de 7 dias.

O que /liquidate faz

POST /v1/conversions/:id/liquidate é válido apenas em standby. A chamada, em uma única transação:

  1. Cota uma nova taxa server-side sobre o received_amount atual (não sobre expected_source_amount). A nova cotação é registrada como quote(consumed) e referenciada pela conversão via liquidation_quote_id.
  2. Ajusta a reserva de limite para o valor efetivo da operação.
  3. Cria o registro interno de execução e dispara a liquidação do Pix.
  4. Transita a conversão para liquidated (transitório); a liquidação subsequente leva para completed ou failed.

A resposta carrega a conversão com liquidation_quote_id populado, status liquidated, e os campos de execução já em curso.

A taxa em `/liquidate` é nova, não a original

A taxa aplicada na liquidação manual é cotada no momento da chamada, não a exchange_rate da cotação original. O cliente final pode receber um valor de BRL diferente do mostrado no aceite, especialmente se o ativo se moveu entre o aceite e a sua decisão de liquidar. Considere isso ao desenhar a UX.

Por que a taxa muda

A cotação original valeu por 5 minutos no momento de criação. A janela de depósito durou 15 minutos no aceite. Quando você liquida em standby, o tempo decorrido pode ser horas ou dias. Aplicar a taxa antiga jogaria o risco de mercado integralmente sobre a BlendFi. A política é simétrica: o parceiro que não agiu dentro da janela combinada paga a taxa do momento em que efetivamente decide executar.

Erros comuns no /liquidate

  • Conversão fora de standby: erro de validação. A operação só é aceita em standby.
  • Limite insuficiente para o received_amount atualizado: erro de validação. A reserva ajustada não cabe no limite vigente do cliente final.

A taxonomia completa vai na referência da API quando publicada.

TTL de 7 dias e abandoned

standby_expires_at = standby_at + 7 dias. Se você não chamar /liquidate dentro desse prazo, a conversão transita para abandoned. A resolução de abandoned é manual e fora da plataforma. Veja Conversão abandonada.

Sem webhooks de lembrete durante os 7 dias

A BlendFi não envia webhooks de aviso durante a janela de 7 dias. O acompanhamento do prazo é responsabilidade da sua integração. Considere uma rotina de varredura sobre GET /v1/conversions?status=standby se a operação for sensível ao prazo.

Reference em breve

A documentação detalhada de POST /v1/conversions/:id/liquidate vai aparecer aqui em conjunto com a disponibilidade da API.

Próximos passos

Nesta página