Skip to main content
An ugwo is a request to collect a fixed amount from a customer. It does not move money by itself; each attempt to collect it is an activity. Create one per order, store its uid, and fulfil the order when its status is ugwo_successful.

Attributes

string
Unique identifier, ugw.XXXX.YYYYYYYYYYYYYYYYYYYYYYYY. Store it on your order.
string | null
Your own reference, e.g. an order number. Unique per workspace and case-sensitive. Use it to match webhooks to orders and as an idempotency key.
object | null
The customer this payment belongs to, as a Customer object.
integer
Amount to collect, in the smallest currency unit (kobo for NGN): 500000 is ₦5,000.00.
string
ISO-4217 currency code, e.g. NGN. See supported currencies.
enum
Where the payment is in its lifecycle. One of requires_ugwo, processing, ugwo_successful, partially_refunded, refunded, cancelled. See Status.
string | null
Text shown to the customer on the hosted checkout.
string
ISO-8601 timestamp.
string
ISO-8601 timestamp.
object | null
The checkout this payment is routed through: either the one you passed on create, or the one your workspace’s routing rules picked. null if none could be resolved, in which case the ugwo cannot be charged.
object | null
The most recent activity on this ugwo. Returned by Get an ugwo and in webhooks; omitted from create, list and cancel responses. null if no activity has run.
The field name is spelled lastest_ugwo_activity (with an extra t). This is a known quirk of the API. Read exactly this key; latest_ugwo_activity does not exist on an ugwo (the customer object does use the correct spelling).
integer
Total collected so far across successful activities, in the smallest currency unit. Equals amount once fully paid. Useful for spotting underpayment while status is still requires_ugwo.
integer
Kwugwo fee on this payment, in the smallest currency unit. Currently always 0.
object
The { "key": "value" } metadata you set on create. Never shown to the customer. {} when there is none.
The Ugwo object

Status

Several attempts can be open at once, and a customer can still pay into an old bank-transfer account after the ugwo is already ugwo_successful. Only the first successful attempt pays the ugwo. Kwugwo records that as a separate activity with is_double_charge: true and sends ugwo.activity.double_charge_detected. The ugwo itself does not change; refund the extra activity.