CIAO API
    • Getting Started
      • Introduction
      • Authentication
      • Responses and Error
    • Partners
      • Webhooks
      • Redemption Intent (Partners)
        • Create Redemption Intent
        • Retrieve Redemption Intent
      • Subscriptions
        • Create Subscription
        • Retrieve a subscription
        • Cancel Subscription
    • Resellers
      • Webhooks
      • Voucher Generation (Resellers)
        • Create Voucher Payment
        • Retrieve Voucher Payment
    • General
      • Get all Counties
        GET

    Partners

    Partner API key required (sk_test_... or sk_live_...).
    You create redemptions and subscriptions for your customers, redirect them to hosted checkout,
    and receive webhooks when events complete.

    Identifiers#

    FieldYour use
    referencePrimary ID — use for retrieve, cancel, and webhook correlation (SUB-… or your own)
    On create you receive reference + authorization_url. Save reference in your system.
    Important: Use reference for all API calls (retrieve, cancel, webhook correlation).

    Redemptions#

    One-off voucher redemption for a customer.
    POST /redemption-intents  →  redirect to authorization_url  →  webhook: redemption-intent.success
    Endpoint
    Create Redemption IntentPOST /redemption-intents
    Retrieve Redemption IntentGET /redemption-intents/{reference}

    Subscriptions#

    Recurring voucher top-ups. You create the subscription; a reseller bills the customer each cycle;
    the platform auto-redeems and notifies you via webhook.
    POST /subscriptions  →  customer checkout  →  webhooks per cycle  →  GET /subscriptions/{reference}
    Endpoint
    Create SubscriptionPOST /subscriptions
    Retrieve a subscriptionGET /subscriptions/{reference}
    Cancel SubscriptionPOST /subscriptions/{reference}/cancel

    Subscription flow#

    1.
    Create — subscription starts as pending, current_cycle: 0. Response includes
    authorization_url and reference.
    2.
    Checkout — redirect the customer to authorization_url. In test, the page includes a
    simulator to activate cycles without a live reseller. In live, the customer picks a reseller
    who handles billing from that point.
    3.
    Cycles — each successful billing cycle triggers a webhook:
    First cycle: subscription.activated
    Renewals: subscription.renewed
    Final cycle (when total_cycles is set): subscription.completed
    4.
    Monitor — poll or rely on webhooks; GET /subscriptions/{reference} returns full state.
    5.
    Cancel — see Cancel subscription.

    Subscription statuses#

    StatusMeaning
    pendingCreated, no successful cycle yet
    activeAt least one cycle redeemed
    canceledCanceled. Terminal.
    completedAll cycles processed. Terminal.

    Cancellation#

    SituationWhat happens
    Test environment, or no reseller assigned yetImmediate cancel → subscription.cancelled webhook
    Live + reseller assignedCancel request sent to reseller → you receive subscription.cancelled when they confirm
    Important: In live with an assigned reseller, cancel is asynchronous. A 200 from the cancel endpoint means the request was accepted — wait for the subscription.cancelled webhook before treating the subscription as canceled.
    You do not need to call any reseller API — cancellation on their side is handled automatically
    after your cancel request.

    Webhooks#

    Configure test and live webhook URLs in the partner dashboard.
    Partmer Webhooks — events, payloads, signature verification.
    Important: Always verify webhook signatures before processing events.

    Idempotency#

    Important: Send idempotency_key on create requests. Retries with the same key return the original resource (scoped to your partner account + environment).

    Errors#

    error_codeHTTPWhen
    subscription_already_completed422Canceling a completed subscription
    reseller_cancellation_unavailable422Live cancel requested but reseller has no webhook URL
    Validation errors return 422 with an errors object (duplicate reference, invalid fields, etc.).

    Setup#

    Authentication .
    Responses and Error.
    Modified at 2026-07-21 14:34:14
    Previous
    Responses and Error
    Next
    Webhooks
    Built with