Heratio Help Center article. Category: Marketplace.
Marketplace — Payments & Payouts
How money flows in the Heratio Marketplace: from buyer card to PayFast, into a held escrow, out to seller bank accounts on payout day.
Payment provider — PayFast
The marketplace integrates PayFast as its sole payment processor. Heratio never stores card details: the buyer is redirected to PayFast for entry, and the result is verified server-to-server.
Three things have to be configured in /admin/marketplace/settings:
| Setting | Source |
|---|---|
| Merchant ID | PayFast dashboard |
| Merchant key | PayFast dashboard |
| Passphrase | PayFast dashboard (used to sign requests) |
The site URL must be HTTPS in production — PayFast refuses ITN webhooks to plain HTTP.
Buyer flow — what happens at checkout
- Buyer clicks Buy Now / completes an accepted offer / wins an auction.
- The marketplace creates a transaction in
pending_payment. - Buyer is redirected to PayFast's hosted payment page.
- Buyer pays — card, EFT, Snapscan, etc. (PayFast's choice).
- PayFast posts an ITN (Instant Transaction Notification) to:
POST /marketplace/payfast/notify - The handler:
- Verifies the signature (HMAC of submitted fields + passphrase).
- Checks the request came from a known PayFast IP block.
- Performs a server-to-server validate call back to PayFast (defence in depth).
- On success, transaction →
paid.
- Buyer is redirected to
/marketplace/payment/return(success) or/marketplace/payment/cancel(cancelled).
The transaction is now visible to both parties — buyer at My Purchases, seller at My Transactions.
Escrow window
After a successful payment, funds are held by the operator (not transferred to the seller yet). This gives the buyer a window to dispute non-delivery, wrong item, etc.
| Setting | Default | Where |
|---|---|---|
marketplace.escrow_days |
14 | Admin Settings |
marketplace.dispute_window_days |
7 | Admin Settings |
The transaction's payout-eligible-from date = paid_at + escrow_days. Until that date, the seller's payout balance shows the amount as pending.
Seller payouts
When a transaction passes its escrow window with no open dispute, its amount moves from pending to available in the seller's payout balance.
Self-service view
/marketplace/seller/payouts— every payout you've received with batch reference, amount, and the underlying transactions.
Operator-driven batching
Payouts are released by the operator running the batch payout action:
POST /admin/marketplace/payouts-batch
This iterates every seller with a positive available balance and produces:
- A
marketplace_payout_batchrow with a unique reference. - One
marketplace_payoutrow per seller in the batch. - A CSV/PDF download for the operator's bank to process.
- An email to each seller with the reference and the underlying transactions.
Heratio does not initiate bank transfers automatically — the CSV is processed by the operator's banking facility (PayFast Pay-Outs, EFT export, or manual). The operator marks the payout as paid when the bank confirms; that flips the seller's balance from available to paid out.
Refunds & disputes
There is no "refund" button in Heratio's UI — refunds are processed manually by the operator:
- Buyer raises a dispute via the seller's contact form / enquiry.
- If unresolved, buyer emails the operator (admin contact).
- Operator reviews the transaction at
/admin/marketplace/transactions. - If a refund is granted before payout, the operator simply does not release the funds and uses PayFast's refund API.
- If a refund is granted after payout, the operator deducts from the seller's next payout (or recovers via separate billing).
Configure the operator contact and the dispute SLA in /admin/marketplace/settings.
Currencies
The site primary currency is set in /admin/marketplace/settings. Additional currencies are configured in /admin/marketplace/currencies with:
- ISO code (ZAR, USD, EUR, GBP, etc.)
- Display symbol
- Active / inactive flag
- FX rate (manual or fed by a scheduled task)
Sellers pick from active currencies on the listing form. Buyers see prices converted to their preferred currency on Browse, but pay in the listing's currency at checkout — Heratio does not do live FX at the checkout stage.
Reports
Operators have read-only financial reports at /admin/marketplace/reports:
| Report | Default period |
|---|---|
| Gross merchandise value (GMV) | Month-to-date + last 12 months |
| Commission earned | Month-to-date |
| Payouts paid | By batch |
| Pending payouts | Live |
| Disputes opened / closed | Last 90 days |
| Top sellers by GMV | Last 90 days |
Each report exports as CSV.
See also
- Marketplace — Admin Operations
- Marketplace — Seller Quick Start
- Marketplace — Buyer Quick Start