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

# Initiate a charge

`POST /checkout/charges`

## Request

- Base URL: `https://sandboxapi.fincra.com`
- URL: `https://sandboxapi.fincra.com/checkout/charges`
- Auth: API key in header `api-key`
- TypeScript: <https://skmtc.dev/fincra/apis/awesome-new-api/docs/checkout/charges/post~2.ts> (a function with typed inputs; its response is checked against the schema)

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.dev/fincra/apis/awesome-new-api.md) - [All operations](https://skmtc.dev/fincra/apis/awesome-new-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fincra/apis/awesome-new-api/revisions/526b1509a02d?raw)
