Skip to main content
POST
Creates an activity on the ugwo. The activity describes one attempt to act on the payment; today the only supported type is charge, which sends the ugwo to a PSP through the medium you specify. Activities are independent: a single ugwo can host many of them. If a mobile_money charge fails, you can immediately create a bank_transfer activity on the same ugwo without recreating it.
The ugwo must have a resolved checkout before you can create an activity against it. If the ugwo’s checkout is null (no checkout was supplied at creation and the workspace couldn’t route one), this endpoint returns 422.

Path parameters

string
required
The ugwo to charge, ugw.XXXX.YYYY....

Body parameters

string
required
The activity type. Currently only charge is supported.
object
required
Type-specific payload. data.medium selects the payment medium, and the rest of the keys inside data are the parameters for that medium (see Medium parameters below).

Medium parameters

data.medium is one of bank_transfer, ussd, or mobile_money. The other keys inside data depend on which one you picked.
string
ISO-8601 (DATE_ATOM) timestamp for when the virtual account should stop accepting transfers. Optional; defaults to 15 minutes from now. Must be in the future and no more than 15 minutes ahead; timestamps in the past or further out than 15 minutes return 422.
Available for Nigeria (NGN).

Response

string
Activity ID (act.…).
string
Always charge for this endpoint.
string
Initial activity status. requires_action when the customer has more to do (bank transfer, USSD), processing when handed off to the PSP without further customer input, or failed on a synchronous error.
object | null
Snapshot of the checkout this activity was routed through. Includes uid, the currency as [code, label], and the configured mediums.
object | null
Tokenised medium (e.g. a stored card or wallet) the activity used; null for one-off mediums like bank_transfer.
string
The PSP that handled the charge, e.g. paystack_ng.
string | null
The reference the PSP issued for this attempt. Useful when cross-referencing in your PSP dashboard.
object | null
What the customer needs to do next, if anything. See next_action shape.
object | null
Populated when the activity failed synchronously.
string
ISO-8601 timestamp.
string
ISO-8601 timestamp.

next_action shape

For bank_transfer, next_action.type is user_action and the headers block carries everything the customer needs to complete the transfer (account number, bank name, expiry, amount).