DocsAdvanced FeaturesPartner Deposit Flow

Partner-Provided Deposit Flow

When using partner-provided settlement for deposits, the partner executes the crypto leg after Settle confirms fiat receipt. This page describes the modified lifecycle, the webhook event, and the request additions.

Modified Lifecycle

1

User pays fiat

The end user initiates a fiat payment (e.g. bank transfer in ARS).

2

Settle confirms fiat receipt

Settle detects the incoming bank transfer and confirms the fiat leg.

3

Settle sends FiatReceived event

A webhook event is sent to the partner's settlementWebhookUrl with order and settlement details.

4

Partner sends crypto

The partner transfers the crypto asset to the destination address provided in the order.

5

Settle confirms settlement

Settle verifies the on-chain transaction and marks the order as completed.

To activate partner-provided settlement, add the following fields to your deposit creation request (existing fields remain unchanged):

POST/settle/api/orders/deposits

Additional Fields

settlementMode (string, "partner"), settlementWebhookUrl (string, your settlement event endpoint)

Settlement Event Webhook

When Settle confirms fiat receipt, a webhook event is sent to the settlementWebhookUrl you provided during order creation. The event includes all details the partner needs to execute the crypto settlement.

POST{settlementWebhookUrl}

Headers

X-Event-Id: unique-event-idX-Timestamp: unix-timestampX-Signature: HMAC_SHA256(secret, timestamp + rawBody)

Body Fields

event, orderId, transactionRef, fromAsset, fromAmount, toAsset, toAmount, network, settlementId, confirmSettlementUrl

Note: Order status transitions to AwaitingPartnerSettlement after the FiatReceived event is sent. If settlement is not completed within the defined window, the order may expire.

Confirm Settlement

After the partner sends the crypto to the user, call this endpoint to confirm settlement. This allows Settle to close the order and finalize the transaction. The request must include the HMAC signature headers for verification.

POST/settle/api/orders/deposits/{orderId}/confirm-settlement

Headers

Content-Type: application/jsonX-Timestamp: unix-timestampX-Signature: HMAC_SHA256(secret, timestamp + rawBody)

Request Body Fields

settlementId, cryptoTxHash, confirmedAt (ISO 8601)

Status Transitions

Partner-provided deposit orders progress through the following statuses:

StatusDescription
AwaitingClientPaymentInitial status. The order is created and waiting for the user to complete the fiat transfer.
AwaitingPartnerSettlementFiat received. Settle notifies the partner via webhook and awaits crypto settlement.
CompletedPartner has sent the crypto and confirmed settlement via the confirmSettlementUrl endpoint.

Next Steps