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

MethodWhen it occurs
AutomaticUpon reaching expirationDate. No API call is required.
ManualWhen the platform ends an active guarantee through the API.
DisablingWhen 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.
🚧

Attention

Manual 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}/escrow

In 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}/finish

In this endpoint, {id} corresponds to the Escrow Account guarantee ID, not the charge ID.

Example:

POST /v3/escrow/esc_123456/finish

See 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


Did this page help you?