Release of Guaranteed Funds
The guarantee can be ended automatically, manually through the API, or by disabling the subaccount's Escrow Account.
Use manual release when your platform needs to make the amount available before expirationDate, after validating that the conditions of the operation have been met.
Release methods
| Method | When it occurs |
|---|---|
| Automatic | Upon reaching expirationDate. No API call is required. |
| Manual | When the platform ends an active guarantee through the API. |
| Disabling | When the Escrow Account is disabled, all existing guarantees of the subaccount are ended. |
If the operation must wait for the configured period, do not perform a manual release.
Before releasing manually
Check that:
- the guarantee is still active;
- the condition that authorizes the release has been met;
- you have the Escrow Account guarantee ID.
AttentionManual release immediately ends the guarantee, regardless of the date configured in
expirationDate.After this operation, the amount is no longer held and becomes part of the subaccount's available balance.
How to release a guarantee
%%{init: {"flowchart": {"nodeSpacing": 18,"rankSpacing": 24,"diagramPadding": 4,"padding": 7}}}%%
flowchart TD
A["Locate the charge"] --> B["Retrieve the guarantee"]
B --> C["Obtain the guarantee ID"]
C --> D["Validate the release condition"]
D --> E["End the guarantee"]
E --> F["Make the amount available in the balance"]
classDef inicio fill:#DBEAFE,stroke:#2563EB,color:#1E3A8A,stroke-width:3px
classDef validacao fill:#E0F2FE,stroke:#0284C7,color:#0C4A6E,stroke-width:2px
classDef sucesso fill:#DCFCE7,stroke:#16A34A,color:#14532D,stroke-width:3px
class A inicio
class B,C,D,E validacao
class F sucesso
linkStyle default stroke:#94A3B8,stroke-width:2px
1. Retrieve the guarantee ID
If your application does not yet have the guarantee identifier, retrieve it from the charge:
GET /v3/payments/{id}/escrowIn this endpoint, {id} corresponds to the charge ID.
See the Retrieve payment escrow in the Escrow Account endpoint.
Store the returned id to use when ending the guarantee.
2. End the guarantee
After validating that the amount can be released, send:
POST /v3/escrow/{id}/finishIn this endpoint, {id} corresponds to the Escrow Account guarantee ID, not the charge ID.
Example:
POST /v3/escrow/esc_123456/finishSee the Finish payment escrow in the Escrow Account endpoint.
Expected result
A 200 OK response confirms that the guarantee has ended.
After it ends:
- the guarantee is no longer active;
- the amount is no longer held;
- the funds become part of the subaccount's available balance.
Ending a guarantee is final. There is no mechanism to reactivate it after completion.
Common errors
If the guarantee cannot be ended, check that:
- the ID provided belongs to the guarantee, not to the charge;
- the guarantee exists for the authenticated account;
- the guarantee is still active;
- the same guarantee has not been ended previously.
Do not send multiple end requests for the same guarantee.
Release when disabling the Escrow Account
Disabling the Escrow Account has a different effect from manually releasing a single guarantee: all existing guarantees of the subaccount are ended.
Use this flow only when the subaccount should no longer keep new receipts under guarantee.
See how to disable the Escrow Account.
Next steps
Updated 18 days ago
