A recurring escrow contract for subscriptions, retainers, and periodic payment schedules.
🔁 Recurring Escrow
Create a recurring escrow contract for automated, periodic payments. This type of escrow is ideal for subscriptions, installment plans, retainers, or any ongoing financial agreement that requires funds to be released at regular intervals.
Automatic payment processing on scheduled due dates
Multi-contributor support for pooled funding
Configurable contributor minimums and maximums
Dispute protection for every cycle
Multiple payout methods (bank, crypto, mobile money)
Webhook callbacks for cycle events
🧾 Example Use Case
A SaaS platform charges clients $50/month for access. The client funds a recurring escrow, and payments are automatically released to the platform on the 1st of each month.
A group of tenants (5 contributors) each pay a portion of the monthly $2,500 rent into escrow. The funds are automatically released to the landlord on the 28th of every month.
A consultant agrees to a 6-month retainer at $2,000/month. The client funds the first month, and subsequent payments are triggered automatically on the same date each month.
🧱 Required Fields
Field
Type
Description
uuid
string
A unique reference for the escrow session
escrow_type
string
Must be set to "recurring"
initiator_role
string
Role of the initiator: buyer or seller
initiator_id
string
Unique identifier of the user creating the escrow
receiver_id
string or null
Unique identifier of the primary receiver (null if using contributors)
title
string
Short title of the recurring transaction
currency
string
Currency code (e.g. USD, NGN)
amount
number
Total amount to be collected per cycle
description
string
Detailed description of the recurring agreement
how_dispute_is_handled
string
Dispute method: platform or arbitration
who_pay_fees
string
Who covers transaction fees: buyer, seller, or split
cycle
object
Object defining the recurring schedule (see below)
contributors
array
(Optional) Array of participants for multi-party funding
payout
object
Object containing payout details for the receiver
callback_url
string
(Optional) URL to receive webhook events for each cycle
🔄 Cycle Object
Field
Type
Description
cycle_interval
string
Frequency: daily, weekly, or monthly
minimum_contributors
integer
Minimum contributors required (default: 1)
maximum_contributors
integer
Maximum contributors allowed
due_day_of_month
integer
(Required for monthly) Day of month for payment (1-31)
expected_amount
number
Total amount expected per cycle
due_date
string
First payment due date in YYYY-MM-DD format
👥 Contributors Array (Optional)
Field
Type
Description
name
string
Full name of the contributor
email
string
Email address of the contributor
expected_amount
number
Amount this contributor pays per cycle
💰 Payout Object Fields
Field
Type
Description
payout_type
string
Payout method: bank, crypto, or mobile_money
bank_name
string
(Bank) Name of the bank
bank_code
string
(Bank) Bank code
account_number
string
(Bank) Account number
account_name
string
(Bank) Account holder name
account_branch
string
(Bank, Optional) Account branch
bank_address
string
(Bank, Optional) Bank address
swift_code
string
(Bank, Optional) SWIFT code for international transfers