Yoco

Yoco is a South African fintech providing card acceptance and payments infrastructure for small and medium businesses - card machines, point of sale, and online payments. Its developer platform exposes REST APIs for accepting online card payments - the Checkout API (server-side hosted checkout at payments.yoco.com/api) for creating payment sessions and issuing refunds, plus a newer versioned Yoco API (api.yoco.com/v1) for reading payments, refunds, and payment links. Integrations authenticate with a secret key (Bearer) and receive asynchronous notifications via signed webhooks. Yoco operates primarily in South Africa and settles in ZAR.

Yoco publishes 5 APIs on the APIs.io network, including Checkout API, Refunds API, Webhooks API, and 2 more. Tagged areas include Payments, Fintech, Payment Gateway, Card Payments, and South Africa.

Yoco’s developer surface includes authentication, documentation, and 7 more developer resources.

37.3/100 thin ▬ flat Agent 48/100 agent ready Full breakdown ↓
scored 2026-07-20 · rubric v0.4
5 APIs 0 Features
PaymentsFintechPayment GatewayCard PaymentsSouth AfricaOnline PaymentsCheckoutPoint of SaleSMBFinancial Infrastructure

API Rating

API Evangelist API Evangelist Rating How this is scored →
scored 2026-07-20 · rubric v0.4
Composite quality — 37.3/100 · thin
Contract Quality 14.6 / 25
Developer Ergonomics 3.9 / 20
Commercial Clarity 7.9 / 20
Operational Transparency 4.1 / 13
Governance 0.0 / 12
Discoverability 6.8 / 10
Agent readiness — 48/100 · agent ready
Machine-Readable Contract 18 / 18
Agentic Access Contract 15 / 15
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/yoco: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs

Yoco Checkout API

Server-side hosted checkout for accepting online card payments. Create a checkout with an amount (in cents) and currency, redirect the customer to the returned redirectUrl, and ...

Yoco Refunds API

Refund a completed checkout in full or in part by posting to the checkout's refund sub-resource. Refunds may complete synchronously or resolve asynchronously, with a refund.succ...

Yoco Webhooks API

Register, list, and delete webhook endpoints that Yoco calls with signed event notifications (payment.succeeded, refund.succeeded, and related types). Deliveries carry webhook-i...

Yoco Payments API

Versioned read API for querying payment records. GET /v1/payments supports cursor pagination and filters by status and created/updated timestamps. Requests use JWT Bearer creden...

Yoco Payment Links API

Versioned API for shareable payment links. GET /v1/payment_links/{paymentLinkId} fetches a link's details. Requests use JWT Bearer credentials scoped with business/orders:read.

Collections

Pricing Plans

Yoco Plans Pricing

3 plans

PLANS

Rate Limits

Yoco Rate Limits

3 limits

RATE LIMITS

FinOps

Yoco Finops

FINOPS

Resources

Documentation 1

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Access & Security 2

Authentication, authorization, and security posture

Operate 1

Status, limits, changes, and where to get help

Commercial 2

Pricing, plans, and the legal terms of use

Company 2

The organization behind the API

Source (apis.yml)

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: Yoco Online Payments API
  version: '1.0'
request:
  auth:
    type: bearer
    token: '{{secretKey}}'
items:
- info:
    name: Checkout
    type: folder
  items:
  - info:
      name: Create a checkout.
      type: http
    http:
      method: POST
      url: https://payments.yoco.com/api/checkouts
      headers:
      - name: Content-Type
        value: application/json
      - name: Idempotency-Key
        value: ''
      body:
        type: json
        data: "{\n  \"amount\": 5000,\n  \"currency\": \"ZAR\",\n  \"successUrl\": \"https://example.com/success\",\n  \"\
          cancelUrl\": \"https://example.com/cancel\",\n  \"metadata\": { \"orderId\": \"1234\" }\n}"
    docs: Creates a hosted checkout and returns a redirectUrl. Amount is in cents. Call server-side with your secret key.
  - info:
      name: Get a checkout (modeled).
      type: http
    http:
      method: GET
      url: https://payments.yoco.com/api/checkouts/:checkoutId
      params:
      - name: checkoutId
        value: ''
        type: path
        description: The checkout identifier.
    docs: Retrieve a checkout by ID. Modeled - reconcile against the live docs.
- info:
    name: Refunds
    type: folder
  items:
  - info:
      name: Refund a checkout.
      type: http
    http:
      method: POST
      url: https://payments.yoco.com/api/checkouts/:checkoutId/refund
      params:
      - name: checkoutId
        value: ''
        type: path
        description: The checkout identifier.
      headers:
      - name: Content-Type
        value: application/json
      - name: Idempotency-Key
        value: ''
      body:
        type: json
        data: "{\n  \"amount\": 5000,\n  \"metadata\": { \"reason\": \"customer request\" }\n}"
    docs: Refund a checkout in full (omit amount) or in part. Confirm via the refund.succeeded webhook.
  - info:
      name: Fetch a refund (v1).
      type: http
    http:
      method: GET
      url: https://api.yoco.com/v1/refunds/:refundId
      auth:
        type: bearer
        token: '{{jwtToken}}'
      params:
      - name: refundId
        value: ''
        type: path
        description: The refund identifier.
    docs: Fetch a refund record. Versioned Yoco API; JWT Bearer, scope business/orders:read.
- info:
    name: Webhooks
    type: folder
  items:
  - info:
      name: Register a webhook.
      type: http
    http:
      method: POST
      url: https://payments.yoco.com/api/webhooks
      headers:
      - name: Content-Type
        value: application/json
      body:
        type: json
        data: "{\n  \"name\": \"my-webhook\",\n  \"url\": \"https://example.com/webhooks/yoco\"\n}"
    docs: Register a webhook endpoint Yoco will POST signed events to.
  - info:
      name: List webhooks.
      type: http
    http:
      method: GET
      url: https://payments.yoco.com/api/webhooks
    docs: List the webhook endpoints registered for your account.
  - info:
      name: Delete a webhook (modeled).
      type: http
    http:
      method: DELETE
      url: https://payments.yoco.com/api/webhooks/:webhookId
      params:
      - name: webhookId
        value: ''
        type: path
        description: The webhook identifier.
    docs: Delete a webhook endpoint. Modeled - reconcile against the live docs.
- info:
    name: Payments (v1)
    type: folder
  items:
  - info:
      name: List payments.
      type: http
    http:
      method: GET
      url: https://api.yoco.com/v1/payments
      auth:
        type: bearer
        token: '{{jwtToken}}'
      params:
      - name: status
        value: ''
        type: query
        description: approved, cancelled, failed, pending.
      - name: limit
        value: '50'
        type: query
        description: Max results (default 50).
      - name: cursor
        value: ''
        type: query
        description: Pagination cursor.
    docs: 'List payment records with cursor pagination. JWT Bearer, scope business/orders:read. Sandbox: https://api.yocosandbox.com.'
  - info:
      name: Get a payment (modeled).
      type: http
    http:
      method: GET
      url: https://api.yoco.com/v1/payments/:paymentId
      auth:
        type: bearer
        token: '{{jwtToken}}'
      params:
      - name: paymentId
        value: ''
        type: path
        description: The payment identifier.
    docs: Retrieve a single payment. Modeled - reconcile against the live docs.
- info:
    name: Payment Links (v1)
    type: folder
  items:
  - info:
      name: Fetch a payment link.
      type: http
    http:
      method: GET
      url: https://api.yoco.com/v1/payment_links/:paymentLinkId
      auth:
        type: bearer
        token: '{{jwtToken}}'
      params:
      - name: paymentLinkId
        value: ''
        type: path
        description: The payment link identifier.
    docs: Fetch a payment link by ID. JWT Bearer, scope business/orders:read.