Skip to content

Money on rails ​

Every amount on the exchange (an invoice, an escrow, a payout, a driver's advance) is first a record of what the business agreed. When money actually moves, it moves on a rail, and the exchange records the movement as a transfer. The business record only changes once its transfer is final, so nothing is marked paid on the strength of a reference somebody typed.

Being released

The money rails described here are built and tested, and are being rolled out. Until a rail is switched on for the exchange, invoices are paid by bank transfer or mobile money and recorded by Finance, as today.

The rails ​

RailCurrenciesMoney inMoney out
StellarUSDC, USDTA payment to the exchange's account, matched by its memoA payment signed by two keys, after two approvals
CeloUSDC, USDTA call to the exchange's AgriEscrow contract, naming the invoice or escrowEscrow release or refund, made by the contract on the second of two approver keys
M-Pesa, Airtel, cardKES (card: USD if enabled)A prompt on the payer's phone, or Mamlaka's hosted card pageB2C to a phone, after two approvals
Driver virtual cardsUSD on the card, paid from a KES floatA card issued or loaded for a trip, after two approvals

What can be paid on which rail ​

A rail carries only a currency it settles. The exchange does not convert between currencies. So:

The record is inIt can be paid on
USDC or USDTStellar or Celo
KESM-Pesa, Airtel or card
Any other currency (NGN, UGX, …)Recorded by Finance as money already received (bank transfer, cash)
WhatInOut
An order invoiceBuyer pays: any rail for its currency
EscrowBuyer funds it: Stellar, Celo, M-Pesa, Airtel or cardReleased to the seller or refunded to the buyer on the rail it came in on
A farmer's early payout, and its balanceStellar, M-Pesa or Airtel
A transporter's freight invoiceStellar, M-Pesa or Airtel
A driver's advance for the roadM-Pesa or Airtel to the driver, Stellar to the transporter, or a virtual card load

A transfer's life ​

StatusMeaning
AwaitingMoney in: waiting for the payer. Money out: waiting for approvals.
PendingSent to the provider; the answer is not in yet.
UnknownThe provider did not answer clearly (a timeout, an error). The money is held and the exchange keeps asking. Never refunded on a guess.
ConfirmedThe provider says the money moved. What it was for is written now.
FailedThe provider refused it, or Finance cancelled it before it was sent.
ExpiredA payment request nobody paid.

Money that arrives and matches nothing (a wrong memo, the wrong coin, the wrong amount for an escrow) is still recorded, as a transfer marked not applied with the reason, so Finance can return it or apply it by hand. It is never lost silently.

Read on: The rules every rail keeps.

AgriTrade Exchange