Uverus Payments

Payment Links

Create and manage reusable payment links.

Payment Links

Payment links are the fastest way to accept payments without writing checkout-flow code. Create a link, share the URL, and get paid.

Headers

HeaderRequiredValue
AuthorizationYesBearer sk_test_... (test) or Bearer sk_live_... (live) — see Authentication

How It Works

  1. Create: Define a name, amount (optional), and description — via the dashboard or the API below.
  2. Share: Build the checkout URL from the returned slug: https://checkout.uveruspayments.com/pay/{slug}.
  3. Collect: Customers open the link, enter their details (and amount, if variable), and pay.

If you don't specify an amount when creating a link, the customer is prompted to enter one at checkout — useful for donations, custom invoices, or tipping.

POST /api/v1/payment-links

Request Body

FieldTypeRequiredDescription
namestringYesInternal name for the link
amountintegerNoFixed amount in kobo. Omit to let the customer choose.
descriptionstringNoShown to the customer at checkout
currencystringNoCurrency code. Defaults to NGN.
typestringNo"payment" (default), "product", "subscription", or "donation"
slugstringNoCustom URL slug (3–64 chars, lowercase letters/digits/dashes). Auto-generated if omitted.
redirectUrlstringNoURL to redirect the customer to after payment
expiresAtstringNoISO 8601 date after which the link stops accepting payments
isOneTimebooleanNoIf true, the link deactivates itself after a single successful payment
collectPhonebooleanNoRequire a phone number at checkout
collectFullNamebooleanNoRequire the customer's full name at checkout
productsarrayNoFor type: "product" links: [{ productId, quantity }] — see Storefront Products
vatPercentnumberNoVAT percentage to apply, overriding your account default

Example Request

curl -X POST "https://api.uveruspayments.com/api/v1/payment-links" \
     -H "Authorization: Bearer sk_test_..." \
     -H "Content-Type: application/json" \
     -d '{
       "name": "Project Alpha Payment",
       "amount": 500000,
       "description": "Payment for software services"
     }'

Example Response

{
  "id": "uuid",
  "merchantId": "uuid",
  "slug": "project-alpha-payment",
  "name": "Project Alpha Payment",
  "description": "Payment for software services",
  "amount": 500000,
  "currency": "NGN",
  "mode": "test",
  "isActive": true,
  "vatPercent": null,
  "uses": 0,
  "totalRevenue": 0,
  "redirectUrl": null,
  "expiresAt": null,
  "type": "payment",
  "isOneTime": false,
  "collectPhone": false,
  "collectFullName": false,
  "products": [],
  "createdAt": "2026-08-27T10:00:00.000Z",
  "updatedAt": "2026-08-27T10:00:00.000Z"
}

The checkout URL for this link is https://checkout.uveruspayments.com/pay/project-alpha-payment — it isn't returned as a separate field, build it from slug.

For a type: "product" link, products is populated with each linked product's full details (price, variants, tax, etc.) rather than being empty.

GET /api/v1/payment-links

Returns every payment link for the authenticated merchant, in the same shape as above. This endpoint is not paginated.

Example Request

curl -X GET "https://api.uveruspayments.com/api/v1/payment-links" \
     -H "Authorization: Bearer sk_test_..."

On this page