Paystack Charge API

The Charge API from Paystack — 7 operation(s) for charge.

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-schema/paystack-transaction-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-structure/paystack-transaction-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-schema/paystack-plan-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-schema/paystack-subscription-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-structure/paystack-subscription-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-schema/paystack-customer-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-structure/paystack-customer-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-schema/paystack-transfer-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-structure/paystack-transfer-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-schema/paystack-split-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-schema/paystack-subaccount-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-structure/paystack-split-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-schema/paystack-refund-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/paystack/refs/heads/main/json-schema/paystack-dispute-schema.json

Other Resources

OpenAPI Specification

paystack-charge-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Paystack Accept Payments Balance Charge API
  description: Initialize, verify, charge, and manage one-time card, bank, USSD, mobile money, and QR payments. The core API for accepting payments through Paystack across Africa.
  version: 1.0.0
  contact:
    name: Paystack Support
    url: https://support.paystack.com
    email: support@paystack.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://api.paystack.co
  description: Base API endpoint
security:
- bearerAuth: []
tags:
- name: Charge
paths:
  /charge:
    post:
      tags:
      - Charge
      summary: Create Charge
      operationId: charge_create
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/paths/~1charge/post/requestBody/content/application~1json/schema'
          application/json:
            schema:
              allOf:
              - type: object
                required:
                - email
                - amount
                properties:
                  email:
                    description: Customer's email address
                    type: string
                  amount:
                    description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR
                    type: string
                  authorization_code:
                    description: An authorization code to charge.
                    type: string
                  pin:
                    description: 4-digit PIN (send with a non-reusable authorization code)
                    type: string
                  reference:
                    description: Unique transaction reference. Only -, .`, = and alphanumeric characters allowed.
                    type: string
                  birthday:
                    description: The customer's birthday in the format YYYY-MM-DD e.g 2017-05-16
                    type: string
                    format: date-time
                  device_id:
                    description: "This is the unique identifier of the device a user uses in making payment. \nOnly -, .`, = and alphanumeric characters are allowed."
                    type: string
                  metadata:
                    description: Stringified JSON object of custom data
                    type: string
              - type: object
                properties:
                  bank:
                    type: object
                    properties:
                      code:
                        description: Customer's bank code
                        type: string
                      account_number:
                        description: Customer's account number
                        type: string
              - type: object
                properties:
                  mobile_money:
                    type: object
                    properties:
                      phone:
                        description: Customer's phone number
                        type: string
                      provider:
                        description: "The telco provider of customer's phone number. \nThis can be fetched from the List Bank endpoint\n"
                        type: string
              - type: object
                properties:
                  ussd:
                    type: object
                    properties:
                      type:
                        description: The three-digit USSD code
                        type: string
                        enum:
                        - 737
                        - 919
                        - 822
                        - 966
              - type: object
                properties:
                  eft:
                    type: object
                    properties:
                      provider:
                        description: The EFT provider
                        type: string
                        enum:
                        - ozow
      responses:
        '201':
          $ref: '#/paths/~1plan/get/responses/200'
        '401':
          $ref: '#/paths/~1plan/get/responses/401'
        default:
          description: Server error
  /charge/submit_pin:
    post:
      tags:
      - Charge
      summary: Submit PIN
      operationId: charge_submitPin
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/paths/~1charge~1submit_pin/post/requestBody/content/application~1json/schema'
          application/json:
            schema:
              type: object
              required:
              - pin
              - reference
              properties:
                pin:
                  description: Customer's PIN
                  type: string
                reference:
                  description: Transaction reference that requires the PIN
                  type: string
      responses:
        '201':
          $ref: '#/paths/~1plan/get/responses/200'
        '401':
          $ref: '#/paths/~1plan/get/responses/401'
        default:
          description: Server error
  /charge/submit_otp:
    post:
      tags:
      - Charge
      summary: Submit OTP
      operationId: charge_submitOtp
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/paths/~1charge~1submit_otp/post/requestBody/content/application~1json/schema'
          application/json:
            schema:
              type: object
              required:
              - otp
              - reference
              properties:
                otp:
                  description: Customer's OTP
                  type: string
                reference:
                  description: The reference of the ongoing transaction
                  type: string
      responses:
        '201':
          $ref: '#/paths/~1plan/get/responses/200'
        '401':
          $ref: '#/paths/~1plan/get/responses/401'
        default:
          description: Server error
  /charge/submit_phone:
    post:
      tags:
      - Charge
      summary: Submit Phone
      operationId: charge_submitPhone
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/paths/~1charge~1submit_phone/post/requestBody/content/application~1json/schema'
          application/json:
            schema:
              type: object
              required:
              - phone
              - reference
              properties:
                phone:
                  description: Customer's mobile number
                  type: string
                reference:
                  description: The reference of the ongoing transaction
                  type: string
      responses:
        '201':
          $ref: '#/paths/~1plan/get/responses/200'
        '401':
          $ref: '#/paths/~1plan/get/responses/401'
        default:
          description: Server error
  /charge/submit_birthday:
    post:
      tags:
      - Charge
      summary: Submit Birthday
      operationId: charge_submitBirthday
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/paths/~1charge~1submit_birthday/post/requestBody/content/application~1json/schema'
          application/json:
            schema:
              type: object
              required:
              - birthday
              - reference
              properties:
                birthday:
                  description: Customer's birthday in the format YYYY-MM-DD e.g 2016-09-21
                  type: string
                reference:
                  description: The reference of the ongoing transaction
                  type: string
      responses:
        '201':
          $ref: '#/paths/~1plan/get/responses/200'
        '401':
          $ref: '#/paths/~1plan/get/responses/401'
        default:
          description: Server error
  /charge/submit_address:
    post:
      tags:
      - Charge
      summary: Submit Address
      operationId: charge_submitAddress
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/paths/~1charge~1submit_address/post/requestBody/content/application~1json/schema'
          application/json:
            schema:
              type: object
              required:
              - address
              - reference
              - city
              - state
              - zipcode
              properties:
                address:
                  description: Customer's address
                  type: string
                city:
                  description: Customer's city
                  type: string
                state:
                  description: Customer's state
                  type: string
                zipcode:
                  description: Customer's zipcode
                  type: string
                reference:
                  description: The reference of the ongoing transaction
                  type: string
      responses:
        '201':
          $ref: '#/paths/~1plan/get/responses/200'
        '401':
          $ref: '#/paths/~1plan/get/responses/401'
        default:
          description: Server error
  /charge/{reference}:
    get:
      tags:
      - Charge
      summary: Check Pending Charge
      operationId: charge_check
      parameters:
      - name: reference
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/paths/~1plan/get/responses/200'
        '401':
          $ref: '#/paths/~1plan/get/responses/401'
        '404':
          $ref: '#/paths/~1plan/get/responses/401'
        default:
          description: Server error
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer