Overview
Deposits allow you to accept incoming transfers directly to your dedicated Ivy IBAN without requiring a Checkout Session or Order. With Deposit enabled, your account accepts all incoming transfers; you decide how to handle them.Use Cases
Choose whether you want to have depoists as a way to handle mis-matched Manual Bank Transfers, or receive all payments as Deposits.Option 1: Order‑based Deposits
Keep the current order flow with more control. Continue using orders and checkout sessions. If a customer enters the wrong amount or reference, the payment appears as an unmatched deposit. You can reconcile it to the corresponding order in your system or return the funds via API or dashboard. Integration: Create an order via/order/create
and display the IBAN, BIC and reference to the customer. If the transfer matches the order amount and reference, Ivy reconciles it automatically. If there is a mismatch, the payment is recorded as a deposit.
Option 2: Direct IBAN Deposits
Simplified IBAN flow. Show your Ivy IBAN directly in your payment instructions. Customers can transfer funds without a reference. Each incoming transfer triggers a webhook event; you reconcile the deposit yourself. Integration: Expose your Ivy IBAN to customers without creating an order. For each incoming transfer, Ivy generates adeposit.received
webhook event.
By default, Ivy automatically returns unmatched payments to the sender. To enable deposits (which prevents automatic returns and gives you control), contact our support team.
Integration Flow
1. Subscribe to Webhook Events
Ivy’s webhook system notifies you whenever a deposit or return changes state. Create a webhook subscription for the following events:deposit.received
– triggered when a new deposit arrivesreturn.initiated
– triggered when you initiate a return via the APIreturn.succeeded
– triggered when the return is processed successfullyreturn.failed
– triggered if the return cannot be completedreturn.returned
– triggered when funds from a return are credited back to the sender
2. Retrieve a Deposit
Use the/deposit/retrieve
endpoint to fetch the details of a specific deposit.
Request:
Parameter | Type | Required | Description |
---|---|---|---|
id | string | Yes | The deposit ID you want to retrieve |
3. Create a Return
If you decide to send the funds back to the sender, create a return via the/return/create
endpoint. A return links to the original deposit and triggers the return.initiated
and return.succeeded
(or return.failed
) webhook events.
Request:
4. Retrieve a Return
Retrieve return details via the/return/retrieve
endpoint. You can poll this endpoint to confirm whether the return has succeeded.
Request:
Parameter | Type | Required | Description |
---|---|---|---|
id | string | Yes | The return ID you want to retrieve |
Merchant Dashboard
Your Ivy Dashboard now includes two tables for incoming payments:-
Payin Table – lists payments successfully matched to an order (correct amount and reference provided). Order statuses transition from
authorised
topaid
when a payment is reconciled. - Deposits Table – lists payments that could not be matched automatically. From here you can return unmatched deposits.
FAQ
What happens if a customer enters the wrong reference?
What happens if a customer enters the wrong reference?
With manual bank transfer, mismatched payments are automatically rejected and returned. Deposits prevent automatic returns: the funds are accepted and recorded as an unmatched deposit. You can decide whether to match or refund.
Can I still require customers to include a reference when paying?
Can I still require customers to include a reference when paying?
Yes. When using the order‑based flow, provide the IBAN, BIC and unique reference to the customer. Deposits simply give you control over mismatched transfers.
How do deposits affect my balance?
How do deposits affect my balance?
Deposits immediately increase your available balance. You can retrieve balances through the
/balance/retrieve
endpoint or view them in the Settlements section of the Dashboard.How can I partially return a deposit?
How can I partially return a deposit?
Currently, you are only able to initiate full returns. To partially return funds, you’ll have to use the payout API.