Skip to content

Letting customers sign up and pay by card ​

Your customer portal has always been for trade accounts: customers you invite, who buy on account and settle by invoice. This page covers the other kind of customer, someone who finds your menu, creates their own login and pays by card at checkout. It's how a meal-prep kitchen sells to the public.

Trade accounts don't change. They stay invite-only and still buy on account.

What you need first ​

Customers pay through Stripe, on the Stripe account you connected to Iraca. Stripe's fee and your plan's card rate are explained in Payments and Stripe. So before you can let customers sign up, your business needs a connected Stripe account that is fully set up.

  1. Open Settings and find the Payments card (see Payments and Stripe).
  2. Select Connect Stripe and follow Stripe's steps. When you come back, the card shows that Stripe is connected and can take card payments. If it says setup isn't finished, select Finish Stripe setup.
  3. Open Settings → B2B and turn on Let customers create their own account.

The switch stays off until Stripe is ready, because a customer who signs up for themselves has no way to check out except by paying.

What a customer sees ​

  1. On your portal sign-in page they select New here? Create an account, enter their name and email, and type the six-digit code we email them. No password. That creates their account.
  2. They add items to the cart and choose delivery or pickup as usual.
  3. At the cart they select Pay by card. Stripe's secure page opens. If they paid you before and saved their card, it's offered again.
  4. Back on your portal they see their order confirmed.

Their order is only confirmed, and a delivery window only booked, after the payment succeeds. If they close Stripe's page without paying, nothing is ordered and nobody's window is held. Their cart is still there.

If something changes while they're paying, for example the window they picked filled up or an item sold out, they're refunded in full automatically and told why. You don't have to do anything.

A customer who signs up this way is a retail customer. They can't buy on account, so they never see Place order or Reorder. They always pay.

An email address that already belongs to one of your wholesale customers or suppliers can't be used to sign up this way. That keeps trade accounts invite-only.

Paying by bank transfer ​

Customers can also pay at checkout from their US bank account, if you leave Bank transfer at portal checkout on in Settings → B2B → Online payments (it's on by default once Stripe can take payments). It costs the same as on invoices: 1% per payment, capped at $10, Stripe's fee included, and your customer never sees it. See Getting paid by bank transfer.

At the cart the customer chooses Bank transfer, signs in to their bank through Stripe and confirms. A bank transfer takes 3 to 5 business days to clear, so it works differently from a card:

  • The order is created straight away, so its delivery window, its stock and the prices in the cart are kept while the money travels. It shows in your orders list as Waiting for bank payment.
  • It can't go anywhere yet. A waiting order can't be confirmed, picked, labelled, shipped, fulfilled or put on a delivery route, and nothing is recorded in your books. The customer is told "Bank transfers take 3–5 business days to clear; we'll prepare your order once it does."
  • When the money arrives, the order is confirmed automatically, the customer gets their order confirmation, you get an email saying it can go, and the payment is recorded as a customer deposit (the bank transfer fee split out as an expense), exactly as a card payment is.
  • If the transfer fails (not enough money, a closed account), the order is cancelled, its delivery window and stock are released, nothing is recorded, and the customer is told why in plain words.

Trade accounts can pay by bank transfer too, including one you haven't approved for credit terms yet, who otherwise can't order from the portal at all. Their order waits for the money like anyone else's.

One exception: a trade customer with approved credit terms doesn't wait. Their order is confirmed as soon as they confirm the transfer and goes ahead as usual (it still has to fit inside their credit limit). If the transfer later fails, the order stands and is simply owed on their account, like any other sale on terms, and counts toward their credit limit. You get an email either way.

Your books ​

A card payment is taken before the goods leave, so it's recorded as a customer deposit, not as income. When you fulfill the order, the deposit is applied against what the customer owes, the order shows as paid, and the deposit balance returns to zero. Your accounts receivable aging and your ledger stay in step the whole way.

The processing fee is recorded as an expense, and your cash is the amount that actually reaches your Stripe account.

Cancelling a paid order ​

Open the order. A Cancel and refund button appears on the Online payment card while the order hasn't shipped. It cancels the order, releases its delivery window, and refunds the card in full. Card processing fees aren't returned on a refund you choose to make: Stripe keeps its fee, and Iraca keeps its payment fee.

Once an order has shipped it can't be refunded from here, because the money has been applied to what the customer owed. And an order on a delivery route has to be taken off the route first.

Refunding from your Stripe dashboard ​

You can also refund a card payment, in full or in part, from your own Stripe dashboard (Settings → Payments → Open Stripe dashboard). Iraca sees it and records it for you:

  • If the order hasn't shipped, the refund comes out of the customer's deposit. Once everything is handed back, the payment shows as refunded.
  • If it has shipped, the customer has the goods and their money back, so the amount shows as owed again in your accounts receivable, and What needs you on the dashboard lists the order until you settle it: receive the goods back, credit the order, or write it off.
  • A register (POS) sale refunded this way reduces your sales; nothing is put back in stock, so adjust stock yourself if the goods came back.
  • A bank-transfer payment on an invoice refunded this way reopens the invoice.

Stripe keeps its processing fee on any refund, and Iraca's payment fee isn't returned, so your cash goes down by exactly the refund. The order's activity shows payment refunded in stripe with the amount. Refunding from Iraca is still simpler for an unshipped order: it cancels the order and frees its delivery window too.

If a refund doesn't go through ​

If Stripe can't be reached when a refund is requested, Iraca keeps trying every few minutes until it succeeds. The customer is never refunded twice.

When a customer disputes a payment ​

A customer can dispute a card payment with their bank (a chargeback). When that happens, Stripe takes the amount back from your Stripe balance, plus a dispute fee, and Iraca records it in your books straight away:

  • If the order hasn't shipped, the money comes out of the customer's deposit.
  • If it has shipped, the order goes back to unpaid and the amount shows as owed again in your accounts receivable.
  • The dispute fee is recorded as an expense.

The order shows a Card dispute card, and What needs you on the dashboard lists every dispute waiting for an answer. Respond with your evidence in your Stripe dashboard before the deadline shown, or the dispute is lost.

If you win, Stripe returns the money (and, where it does, the fee), and Iraca reverses the entries. If you lose, the amount stays owed in your books, so you can still collect it or write it off with a journal entry. You can't refund a disputed payment from Iraca: that would send the money back twice.

This guide covers the Iraca app and its add-ons. The Iraca Marketplace is documented separately.