Peach Payments Checkout API

Hosted, Embedded, and Embedded Express checkout sessions.

Operations 3

POST /v2/checkout Create a checkout session. #
GET /v2/checkout/{checkoutId} Query checkout status. #
POST /merchant-specs Retrieve payment methods for a currency. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/peachpayments-checkout-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

peachpayments-checkout-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Peach Payments Authentication Checkout API
  description: Payment orchestration APIs for Peach Payments, a pan-African payment gateway (South Africa, Kenya, Mauritius). Covers OAuth authentication, Checkout (Hosted / Embedded / Embedded Express), the Payments API for server-to-server debits and refunds, Payment Links, Payouts, and Reconciliation. Card processing is PCI DSS Level 1 certified. Auth is OAuth 2.0 client-credentials (clientId + clientSecret + merchantId -> Bearer access_token) for Checkout / Payouts / Reconciliation, and an inline authentication object (userId + password + entityId) for the server-to-server Payments API.
  version: '1.0'
  contact:
    name: Peach Payments Developer Support
    url: https://developer.peachpayments.com
  termsOfService: https://www.peachpayments.com/terms-and-conditions
servers:
- url: https://sandbox-dashboard.peachpayments.com
  description: Sandbox authentication host (OAuth token)
- url: https://dashboard.peachpayments.com
  description: Live authentication host (OAuth token)
tags:
- name: Checkout
  description: Hosted, Embedded, and Embedded Express checkout sessions.
paths:
  /v2/checkout:
    servers:
    - url: https://testsecure.peachpayments.com
      description: Sandbox Checkout host
    - url: https://secure.peachpayments.com
      description: Live Checkout host
    post:
      operationId: createCheckout
      tags:
      - Checkout
      summary: Create a checkout session.
      description: Create a Hosted or Embedded checkout instance. Requires a Bearer access_token, the entityId, a unique nonce, amount, and currency (e.g. ZAR, KES, MUR). Returns a checkoutId used to render the hosted page or embed the widget.
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckoutRequest'
      responses:
        '200':
          description: Checkout created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutResponse'
        '400':
          description: Bad request.
        '401':
          description: Unauthorised.
  /v2/checkout/{checkoutId}:
    servers:
    - url: https://testsecure.peachpayments.com
    - url: https://secure.peachpayments.com
    get:
      operationId: getCheckoutStatus
      tags:
      - Checkout
      summary: Query checkout status.
      description: Retrieve the current status and result of a checkout session.
      security:
      - bearerAuth: []
      parameters:
      - name: checkoutId
        in: path
        required: true
        schema:
          type: string
      - name: entityId
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Checkout status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutStatusResponse'
        '404':
          description: Checkout not found or expired.
  /merchant-specs:
    servers:
    - url: https://testsecure.peachpayments.com
    - url: https://secure.peachpayments.com
    post:
      operationId: getPaymentMethodsForCurrency
      tags:
      - Checkout
      summary: Retrieve payment methods for a currency.
      description: Return the list of enabled payment methods and the merchant ID for a channel (entityId) given a particular currency.
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantSpecsRequest'
      responses:
        '200':
          description: Available payment methods.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantSpecsResponse'
components:
  schemas:
    CheckoutRequest:
      type: object
      required:
      - authentication
      - amount
      - currency
      - nonce
      - shopperResultUrl
      properties:
        authentication:
          type: object
          properties:
            entityId:
              type: string
        amount:
          type: string
          example: '100.00'
        currency:
          type: string
          example: ZAR
        nonce:
          type: string
          description: Unique value per request.
        shopperResultUrl:
          type: string
          format: uri
        merchantTransactionId:
          type: string
        paymentType:
          type: string
          enum:
          - DB
          - RF
    Result:
      type: object
      properties:
        code:
          type: string
          description: Peach/OPPWA result code (e.g. 000.000.000 = success).
        description:
          type: string
    MerchantSpecsRequest:
      type: object
      required:
      - authentication
      - currency
      properties:
        authentication:
          type: object
          properties:
            entityId:
              type: string
        currency:
          type: string
          example: ZAR
    MerchantSpecsResponse:
      type: object
      properties:
        merchantId:
          type: string
        paymentMethods:
          type: array
          items:
            type: string
    CheckoutResponse:
      type: object
      properties:
        checkoutId:
          type: string
        result:
          $ref: '#/components/schemas/Result'
    CheckoutStatusResponse:
      type: object
      properties:
        checkoutId:
          type: string
        amount:
          type: string
        currency:
          type: string
        paymentBrand:
          type: string
        result:
          $ref: '#/components/schemas/Result'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'OAuth 2.0 access_token obtained from POST /api/oauth/token, sent as Authorization: Bearer {access_token}.'