Skip to main content
Sandbox base URL: https://sandbox.javalibridge.com. Sandbox credentials are separate from production credentials and are issued at onboarding.

How it works

In production, validation, compliance, FX, Pix and time move your records from one status to the next. In the sandbox each record waits: you choose the next status with one endpoint, POST /v1/sandbox/simulations.
Errors of the simulation endpoint:
Every simulation is also available in the sandbox portal: open the record and use Simulate. It calls the same endpoint.

What you can simulate

Senders

POST /v1/senders creates the sender as PENDING. It stays PENDING until you simulate the compliance decision. Any status can move to any other. The compliance level is calculated from the data you send, as in production: a sender without the LEVEL_1 data is LEVEL_0 and cannot send, even when ACTIVE.

Beneficiaries and Pix keys

POST /v1/beneficiaries creates the beneficiary as PENDING and each Pix key as SCREENING. They are approved separately, as in production. A remittance needs the beneficiary ACTIVE and the Pix key APPROVED. Any Pix key is accepted at registration.

Quotes

POST /v1/fx/quotes returns a quote AVAILABLE with the standard validity. To test an expired quote without waiting, simulate QUOTE → EXPIRED.

Withdrawals

POST /v1/remittances/withdrawals creates the remittance as RECEIVED and sends the first remittance.status_changed. RECEIVED means the request was accepted and is waiting for validation. In the sandbox it stays RECEIVED until you simulate the next step. The paths you will want to test: Effects are the same as in production:
  • PROCESSING reserves the credit limit, the prefunded balance or the Inventory volume.
  • REJECTED releases what was reserved. The quote and the external ID are not released: use new ones to try again.
  • COMPLETED makes the receipt available in GET /v1/remittances/{remittanceId}/receipt. A CREDIT remittance enters the open settlement batch.
  • FUNDS_HELD_BRL and REFUNDED_BY_USER return nothing to your wallets or to your credit line.
Simulating PROCESSING runs the real validation. If the withdrawal has a real problem, such as a sender that is still PENDING, the remittance goes to REJECTED with the real code instead, and the response of the simulation shows it.

Rejections

A rejection is a remittance that goes to REJECTED, with the cause in rejectedCode and a readable text in rejectedDescription. To test one, create a withdrawal and simulate REJECTED with the code you want:
The webhook and GET /v1/remittances/{remittanceId} then return:
rejectedCode is required when you simulate REJECTED. rejectedDescription is filled with the standard text of the code: you do not send it. From RECEIVED, these codes are accepted: From PROCESSING or ON_HOLD, the only code accepted is COMPLIANCE_REJECTED: compliance declined the remittance, and the reason is not detailed.

Errors in the response

Only errors about the request itself are returned in the HTTP response of the withdrawal. You reproduce them with a real request, without the simulation endpoint.

Settlements

A batch opens when the first CREDIT remittance of the day is COMPLETED. Time and the USDC payment are simulated. CLOSED, DUE and OVERDUE follow this order. Batches do not send webhooks: read them in GET /v1/settlements.

Inventory lots

POST /v1/inventories creates the lot with status = ACTIVE and obligation.status = PENDING.

Not available in the sandbox

RATE_LIMITED (429), INTERNAL_ERROR (500) and SERVICE_UNAVAILABLE (503) cannot be reproduced on demand. Follow the retry rules in API conventions.

Balances and limits

The sandbox account starts with a prefunded USD balance, a credit line and the funding modes agreed for your account. Check them with GET /v1/wallets, GET /v1/credit-line and GET /v1/limits. No real money moves.

Before going live

Run each scenario below. A scenario is done when the API returned what is expected and every webhook shows a 2xx delivery in GET /v1/webhooks/{webhookId}/deliveries. Scenarios 15 to 17 apply only to the funding modes enabled for your account.
What you do
  • Build your integration against the production endpoints only. Nothing in it is specific to the sandbox.
  • Use the simulation endpoint, or Simulate in the portal, to move each record to the next status.
  • Check that every webhook was delivered before asking for production credentials.