---
title: "Initiate a charge"
method: POST
path: "/checkout/charges"
---

# Initiate a charge

`POST /checkout/charges`

This API lets you charge using any of the available payment methods

## Headers

- `api-key` string, required
- `x-business-id` string, required

## Request body

- object
  - `amount` integer, required — The amount to charge the customer
  - `reference` string, required — The unique transaction reference identifies the transaction on your application. If you do not provide one, a unique transaction reference would be generated for the transaction.
  - `currency` 'NGN' | 'GHS' | 'KES' | 'ZAR' | 'UGX' | 'TZS' | 'ZMW' | 'XAF' | 'XOF', required — The currency in which the customer should be charged e.g ZAR, NGN etc.
  - `type` 'card' | 'bank_transfer' | 'mobile_money' | 'eft' | 'payattitude', required — This payment method which can either be card, bank_transfer, mobile_money, payattitude or eft.
  - `customer` object, required — The customer details
    - `name` string, required — The name of the customer in the format firstname and lastname e.g Ayo Ayobola
    - `email` string, required — The email of the customer
    - `phoneNumber` string — The customer mobile number
  - `card` object — The details of the card you want to charge . This is required if "type" is card
    - `card_number` string, required — The card number/PAN on the credit/debit card
    - `cvv` string, required — The CVV on the credit/debit card
    - `expiry_month` string, required — The expiry month on the credit/debit card
    - `expiry_year` string, required — The expiry year on the credit/debit card
  - `phone` string — The customer's payAttitude account phone number. This is required if "type" is payattitude or mobile_money
  - `description` string — The description of the transaction
  - `settlementDestination` 'wallet' | 'bank_account' — A settlement destination is the location where you want your payments to be settled. It could be wallet or a bank account.
  - `callbackUrl` string — The URL to redirect your customer when the transaction is complete.It's the url of your payment page you want your users to return to after 3ds authorization.
  - `operator` 'MTN' | 'AIRTEL' | 'AIRTELTIGO' | 'MPESA' | 'TIGO' — This is required if type is mobile money
  - `quoteReference` string — This is only required when initiating a cross currency charge
  - `webhookUrl` string — The URL to receive transaction notifications.

## Response `200`

200

- object
  - `status` boolean
  - `message` string
  - `data` object
    - `id` integer
    - `authorization` object
      - `mode` string
    - `auth_model` string
    - `amount` integer
    - `currency` string
    - `fee` integer
    - `message` string
    - `status` string
    - `reference` string
    - `type` string
    - `customer` object
      - `name` string
      - `email` string
      - `phoneNumber` string
    - `settlementDestination` string

## Other responses

- `400` — 400

---

[API](https://skmtc.net/fincra/apis/awesome-new-api.md) · [All operations](https://skmtc.net/fincra/apis/awesome-new-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fincra/awesome-new-api/revisions/c8215c27b460/schema)
