Skip to main content
POST
Open an escrow

Authorizations

X-API-Key
string
header
required

Your Rach B2B API key. Use rach_sk_live_* for production (on-chain) or rach_sk_test_* for sandbox (no-chain simulation).

Body

application/json

Deal terms

amount
string
required

Amount is a decimal string in whole tokens, e.g. "250.00".

Example:

"250.00"

buyer_phone
string
required

BuyerPhone and SellerPhone must be distinct E.164 numbers. Both customers must already have TRON wallets linked to this tenant through provisioning or the consent-based linking flow; escrow creation does not provision them.

Example:

"+2348012345678"

rail
enum<string>
required

Only the TRON adapter is wired. EVM and SOLANA escrow are not available.

Available options:
TRON
Example:

"TRON"

reference
string
required

Reference is the partner's own id for the deal. Reusing one returns the existing escrow rather than opening a second against the same order.

Example:

"chainzap-deal-8821"

seller_phone
string
required
Example:

"+2348087654321"

token
enum<string>
required

The supported escrow asset is USDT on TRON (TRC-20). Do not send USDC.

Available options:
USDT
Example:

"USDT"

auto_release_hours
integer

Inspection window measured from confirmed funding. Zero disables automatic release in the current configuration. Maximum 8760 hours (365 days).

Required range: 0 <= x <= 8760
Example:

72

chain_id
integer

Reserved for EVM escrow. Omit for TRON; a nonzero value is rejected.

Response

Created

amount
string

Amount is in base units, unlike the create request's whole-token amount. For the implemented TRON USDT adapter, "250000000" means 250 USDT.

Example:

"250000000"

auto_release_at
string

AutoReleaseAt is when a funded escrow releases to the seller with no further action. Absent means it never does and someone must decide.

chain_id
integer
created_at
string
dispute_reason
string
disputed_at
string
escrow_address
string

EscrowAddress is where the buyer sends the money. It belongs to this deal alone and is never reused.

funded_at
string
funding_expires_at
string

FundingExpiresAt is when an unpaid escrow closes.

id
string
network
string
payout_pending
boolean

PayoutPending is true while a payout has been authorised and dispatched but not yet confirmed. Surfaced rather than hidden because during this window the honest answer to "has the seller been paid" is "not yet".

payout_tx_hash
string

PayoutTxHash is the on-chain transaction that moved the money out. It is the partner's evidence that a release or refund really happened.

rail
string
reference
string
refunded_at
string
released_at
string
resolution_note
string

Recorded admin reasoning once a disputed payout settles.

state
enum<string>
Available options:
CREATED,
FUNDED,
DISPUTED,
RELEASED,
REFUNDED,
EXPIRED,
CANCELLED
token
string
updated_at
string