> ## Documentation Index
> Fetch the complete documentation index at: https://developers.javalibridge.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Como funciona

> A remessa acontece em três fases. A cotação é apenas preço: não é vinculada a um remetente nem a um beneficiário. O remetente e o beneficiário são informados no withdrawal, então os dois precisam estar prontos antes dele: o remetente cadastrado, ativo e com nível LEVEL_1 ou superior, e o beneficiário aprovado. Eles podem ser cadastrados antes ou depois da cotação.

**1. Remetente**

*Feito uma vez por remetente. Reaproveitado em todas as remessas.*

* **Cadastro** — A MSB cadastra o seu cliente: identificação, endereço, documentos.
* **Compliance** — A LB Pay atribui um nível de compliance (`LEVEL_0` a `LEVEL_3`) e limites por janela. `LEVEL_0` não pode enviar.

**2. Preço e envio**

*Para cada remessa.*

* **Cotação** — A MSB pede um preço para um valor fixo em USD ou BRL. Um preço, validade curta. Não é vinculada a um remetente.
* **Beneficiário** — Escolha um beneficiário existente ou cadastre um novo com chave Pix. Antes ou depois da cotação; obrigatório para o withdrawal.
* **Withdrawal e funding** — A MSB cria o withdrawal com cotação, remetente, beneficiário, chave Pix, finalidade, relação e modalidade de funding. A LB Pay valida, reserva crédito ou saldo e cria a remessa.

**3. Execução e liquidação**

*Executado pela LB Pay.*

* **Câmbio e funding** — Câmbio contratado. `PREFUNDED`: USD debitado do saldo da MSB nos EUA. `CREDIT`: BRL antecipado. `INVENTORY`: o volume sai do lote, na taxa do lote.
* **Pix e comprovante** — A LB Pay confirma que a chave Pix pertence ao beneficiário e credita o BRL. Comprovante e notificação emitidos.
* **Liquidação** — No `CREDIT`, a MSB paga a liquidação até o vencimento.

> [!NOTE]
>
> **USDC Inventory.** Em vez de uma cotação por remessa, a MSB pode contratar volume de câmbio antecipadamente: solicita uma cotação com `usage = INVENTORY` e cria um Inventory Lot com `POST /v1/inventories`. Cada withdrawal usa então `funding.mode = INVENTORY`, o `inventoryId`, o valor em BRL e `senderQuote`, sem `quoteId`. Taxa e valores vêm do lote. Veja [USDC Inventory](https://developers.javalibridge.com/pt-BR/guides/inventory.md).

> [!NOTE]
>
> A cotação pode ser solicitada sem remetente e sem beneficiário. O withdrawal só pode ser criado com um remetente elegível e um beneficiário ativo, aprovado e com chave Pix válida. Como o remetente só é verificado no withdrawal, confira o status e os limites do remetente antes de mostrar o preço ao seu cliente. Se o cadastro do beneficiário demorar mais que a validade da cotação, solicite uma nova.

## Quem faz o quê, passo a passo

| # | Quem | Ação |
| - | - | - |
| 1 | MSB | Cadastra o remetente |
| 2 | LB Pay | Atribui o nível de compliance e os limites |
| 3 | MSB | Confere o status e os limites do remetente e solicita uma cotação para um valor fixo em USD ou BRL |
| 4 | LB Pay | Retorna o preço: taxa, spread de câmbio e valor em BRL |
| 5 | MSB | Escolhe ou cadastra o beneficiário com chave Pix |
| 6 | LB Pay | Faz a triagem do beneficiário e da chave Pix |
| 7 | MSB | Cria o withdrawal com cotação, remetente, beneficiário, finalidade, relação e modalidade de funding |
| 8 | LB Pay | Executa as validações (cotação, remetente, beneficiário, limites), verifica se a chave Pix existe e reserva crédito ou saldo em USD |
| 9 | LB Pay | Cria a remessa, tipo `WITHDRAWAL` (`PROCESSING` ou `ON_HOLD`) |
| 10 | LB Pay | Conclui o screening, contrata o câmbio e confirma o funding |
| 11 | LB Pay | Confirma que o titular da chave corresponde ao beneficiário e envia o Pix |
| 12 | Beneficiário | Recebe o BRL na conta |
| 13 | LB Pay | Notifica a conclusão e emite o comprovante |
| 14 | MSB | No crédito: paga a liquidação até o vencimento |

## Com USDC Inventory

| # | Quem | Ação |
| - | - | - |
| 1 | MSB | Solicita uma cotação com `usage = INVENTORY` para um volume fixo em USD ou BRL |
| 2 | LB Pay | Retorna o preço, a validade da cotação e a validade do lote (`inventoryExpiresAt`) |
| 3 | MSB | Cria o lote com `POST /v1/inventories` e o `quoteId` |
| 4 | LB Pay | Cria o Inventory Lot (`ACTIVE`) e a promessa de pagamento em USDC |
| 5 | MSB | Cria cada withdrawal com `funding.mode = INVENTORY`, `inventoryId`, `destinationAmount` e `senderQuote` |
| 6 | LB Pay | Confere o lote (existe, dentro da validade, saldo suficiente), executa as validações usuais e reserva o volume |
| 7 | LB Pay | Executa o câmbio na taxa do lote e envia o Pix |
| 8 | Beneficiário | Recebe o BRL na conta |
| 9 | LB Pay | Notifica por webhook; o saldo do lote passa de reservado a utilizado |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.