Skip to main content

Who pays what

The participant bears all fees. The organizer’s ticket price is never reduced by fees. A participant pays:
The Laces fee depends on the payment method. MTN Mobile Money (momo) and Airtel Money (airtel) each have their own fee schedule. Card (card) is coming soon and will have its own schedule too.

Where the numbers come from

GET /events/{eventId} returns, for every ticket type, the figures for one ticket bought on its own:
(Figures here are illustrative, not Laces’s real rates.)
Never calculate fees yourself. Fees are computed on the Laces server from the live fee configuration and your organization’s rates, which can change. Display the numbers returned. If laces_fee_minor or total_minor is null, the ticket could not be priced: show it as unavailable rather than substituting your own figure.

The order total is authoritative

Part of the Laces fee is a flat amount charged per order, not per ticket. So a cart of three tickets usually costs less than 3 × total_minor. When you create an order you choose the payment_method, and the response’s order.total is the real amount for that cart and that method. Show order.total as the amount due, and treat the event quotes as a display aid for the ticket picker.
The payment method is fixed when the order is created. An Airtel order is priced on the Airtel schedule, so if the buyer switches method, create a new order. Only use methods listed in the event’s payment_methods: card is refused with 409 payment_method_unavailable until it is available. Paying a momo order with an Airtel number (or an airtel order with an MTN number) is refused with 409 reprice_required for the same reason: pick payment_method from the buyer’s network before you create the order.

Money format

  • All amounts are integers in minor units. Never floats.
  • Always read currency from the event or order. UGX has no minor unit, so 52400 UGX is fifty-two thousand four hundred shillings.