UGCDocumentation

Advertiser Checkout

Fund a campaign via hosted checkout, wallet debit, or a shareable payment link

Updated August 28, 2026

You're purchasing campaign distribution services directly from the platform. Funding is a step in the Campaign lifecycle, driven by the same API key you use for everything else. Fund through one of three rails:

Funding rails

methodWhat happens
checkout (default)Returns a hosted checkout URL - card, bank transfer, mobile money, or crypto
walletDebits the advertiser's platform wallet balance immediately
payment_linkReturns a shareable URL a third party (e.g. a CEO or finance lead) can pay without an account

Getting started

Prerequisites

1. Account - sign up at https://ugc.africa/signup

2. KYC - complete verification for your region

3. API key - generate a UGSK_ key in Developer Console

Fund a campaign
const res = await fetch('https://api.ugc.africa/automation/actions/campaigns/cmp_123/fund', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer UGSK_live_your_api_key',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ method: 'checkout', amount: 200 }),
});
const { data } = await res.json();
// data.checkoutUrl for method=checkout, or data.paymentLinkUrl for method=payment_link

See Create a campaign for how to create the DRAFT campaign this funds.

What happens after funding

1. Payment settles on the chosen rail.

2. The campaign_funded trigger fires ().

3. The campaign moves to ACTIVE (pending any required moderation) and creators can start reserving slots.

4. Track campaign and slot status via GET /automation/actions/campaigns/:id and GET /automation/actions/campaigns/:id/slots.

Fees

Your payment is billed for the distribution service you're purchasing, at the rate you set. What the platform separately pays a creator for delivering it is built into that rate, not a separate line item you configure. Confirm current rates in your dashboard rather than relying on static docs.

Did this solve your problem?