Skip to content

Development environment: content is being written, nothing points to production.

Documentation contents

payment-links

Version 0.1.08 operations

Payment links of the organisation, newest first, keyset paginated

GET/payment-linksAPI key

Parameters

  • cursoranyquery
  • limitintegerquery
    • max: 200
    • default: 50
  • qanyquery

    Title contains (case insensitive)

  • accountanyquery

    Payment account id

  • statusstringquery
    • enum: "active", "disabled", "expired", "completed"
  • organisationIdanyquery

    Required with a session

Responses

  • 200

    • itemsPaymentLinkDto[]required
      • idstring (uuid)required
      • slugstringrequired
      • urlstringrequired

        Public page of the link on the checkout

      • organisationIdstring (uuid)required
      • paymentAccountIdstring (uuid)required
      • titlestringrequired
      • descriptionstring | nullrequired
      • amountTypestringrequired
        • enum: "fixed", "open"
      • amountnumber | nullrequired
      • minAmountnumber | nullrequired
      • maxAmountnumber | nullrequired
      • currencystringrequired
      • usagestringrequired
        • enum: "single", "reusable"
      • maxUsesnumber | nullrequired
      • expiresAtstring (date-time) | nullrequired
      • acceptedProvidersstring[]required
      • payerFieldsPayerFieldSettingsDtorequired
        • namestringrequired
          • enum: "hidden", "optional", "required"
        • emailstringrequired
          • enum: "hidden", "optional", "required"
        • phonestringrequired
          • enum: "hidden", "optional", "required"
      • successMessagestring | nullrequired
      • redirectUrlstring | nullrequired
      • statusstringrequired

        Effective status (expired from expiresAt)

        • enum: "active", "disabled", "expired", "completed"
      • paymentsCountnumberrequired

        Payments started from the link

      • succeededCountnumberrequired
      • collectedAmountnumberrequired

        Sum of the succeeded amounts, minor units

      • disabledAtstring (date-time) | nullrequired
      • createdAtstring (date-time)required
      • updatedAtstring (date-time)required
    • nextCursorstring | nullrequired

Code samples

curl -X GET "$KONNECT_API_URL/payment-links" \
  -H "x-api-key: $KONNECT_API_KEY"

Example: 200

{
  "items": [
    {
      "id": "id",
      "slug": "Ab3dE6gH9jK2",
      "url": "url",
      "organisationId": "org_01J9Z3K4EXAMPLE0000000000",
      "paymentAccountId": "paymentAccountId",
      "title": "title",
      "description": "description",
      "amountType": "fixed",
      "amount": 1,
      "minAmount": 1,
      "maxAmount": 1,
      "currency": "TND",
      "usage": "single",
      "maxUses": 1,
      "expiresAt": "2026-10-01T09:30:00.000Z",
      "acceptedProviders": [
        "clictopay"
      ],
      "payerFields": {
        "name": "hidden",
        "email": "buyer@example.com",
        "phone": "hidden"
      },
      "successMessage": "successMessage",
      "redirectUrl": "redirectUrl",
      "status": "active",
      "paymentsCount": 1,
      "succeededCount": 1,
      "collectedAmount": 1,
      "disabledAt": "2026-10-01T09:30:00.000Z",
      "createdAt": "2026-10-01T09:30:00.000Z",
      "updatedAt": "2026-10-01T09:30:00.000Z"
    }
  ],
  "nextCursor": "nextCursor"
}

Create a payment link

POST/payment-linksAPI key

A fixed or open amount, single use or reusable (with an optional cap), an optional expiry. Honours the Idempotency-Key header.

Parameters

  • Idempotency-Keystringheader

Request body application/json

  • descriptionstring | null
    • maxLength: 500
  • amountnumber | null

    Fixed amount, minor units

  • minAmountnumber | null

    Open amount: lower bound (default 100)

  • maxAmountnumber | null

    Open amount: upper bound

  • maxUsesnumber | null

    Reusable: successful payments accepted; null for no limit

    • max: 100000
  • expiresAtstring (date-time) | null
  • acceptedProvidersstring[]

    Providers offered, within the account routing; empty or omitted: every routed one

  • payerFieldsPayerFieldsDto
    • namestring

      First and last name

      • enum: "hidden", "optional", "required"
    • emailstring

      Receives the receipt

      • enum: "hidden", "optional", "required"
    • phonestring
      • enum: "hidden", "optional", "required"
  • successMessagestring | null
    • maxLength: 280
  • redirectUrlstring | null
  • organisationIdstring (uuid)

    Required with a session; ignored with an API key

  • paymentAccountIdstring (uuid)

    The default account when omitted

  • titlestringrequired
    • maxLength: 80
  • amountTypestringrequired

    fixed: amount; open: the payer types it

    • enum: "fixed", "open"
  • usagestringrequired

    single: one successful payment

    • enum: "single", "reusable"

Responses

  • 201

    • idstring (uuid)required
    • slugstringrequired
    • urlstringrequired

      Public page of the link on the checkout

    • organisationIdstring (uuid)required
    • paymentAccountIdstring (uuid)required
    • titlestringrequired
    • descriptionstring | nullrequired
    • amountTypestringrequired
      • enum: "fixed", "open"
    • amountnumber | nullrequired
    • minAmountnumber | nullrequired
    • maxAmountnumber | nullrequired
    • currencystringrequired
    • usagestringrequired
      • enum: "single", "reusable"
    • maxUsesnumber | nullrequired
    • expiresAtstring (date-time) | nullrequired
    • acceptedProvidersstring[]required
    • payerFieldsPayerFieldSettingsDtorequired
      • namestringrequired
        • enum: "hidden", "optional", "required"
      • emailstringrequired
        • enum: "hidden", "optional", "required"
      • phonestringrequired
        • enum: "hidden", "optional", "required"
    • successMessagestring | nullrequired
    • redirectUrlstring | nullrequired
    • statusstringrequired

      Effective status (expired from expiresAt)

      • enum: "active", "disabled", "expired", "completed"
    • paymentsCountnumberrequired

      Payments started from the link

    • succeededCountnumberrequired
    • collectedAmountnumberrequired

      Sum of the succeeded amounts, minor units

    • disabledAtstring (date-time) | nullrequired
    • createdAtstring (date-time)required
    • updatedAtstring (date-time)required
  • 400validation_failed, amount_required, amount_not_allowed, amount_bounds_invalid, max_uses_invalid, expiry_invalid, provider_not_routed

  • 403permission_denied or account_out_of_scope

  • 409payment_account_inactive

Code samples

curl -X POST "$KONNECT_API_URL/payment-links" \
  -H "x-api-key: $KONNECT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "description": "description",
  "amount": 25000,
  "minAmount": 1,
  "maxAmount": 1,
  "maxUses": 1,
  "expiresAt": "2026-10-01T09:30:00.000Z",
  "acceptedProviders": [
    "clictopay"
  ],
  "payerFields": {
    "name": "hidden",
    "email": "buyer@example.com",
    "phone": "hidden"
  },
  "successMessage": "successMessage",
  "redirectUrl": "https://shop.example.test/merci",
  "organisationId": "org_01J9Z3K4EXAMPLE0000000000",
  "paymentAccountId": "paymentAccountId",
  "title": "Cours de yoga, séance du samedi",
  "amountType": "fixed",
  "usage": "single"
}'

Example: request body

{
  "description": "description",
  "amount": 25000,
  "minAmount": 1,
  "maxAmount": 1,
  "maxUses": 1,
  "expiresAt": "2026-10-01T09:30:00.000Z",
  "acceptedProviders": [
    "clictopay"
  ],
  "payerFields": {
    "name": "hidden",
    "email": "buyer@example.com",
    "phone": "hidden"
  },
  "successMessage": "successMessage",
  "redirectUrl": "https://shop.example.test/merci",
  "organisationId": "org_01J9Z3K4EXAMPLE0000000000",
  "paymentAccountId": "paymentAccountId",
  "title": "Cours de yoga, séance du samedi",
  "amountType": "fixed",
  "usage": "single"
}

Example: 201

{
  "id": "id",
  "slug": "Ab3dE6gH9jK2",
  "url": "url",
  "organisationId": "org_01J9Z3K4EXAMPLE0000000000",
  "paymentAccountId": "paymentAccountId",
  "title": "title",
  "description": "description",
  "amountType": "fixed",
  "amount": 1,
  "minAmount": 1,
  "maxAmount": 1,
  "currency": "TND",
  "usage": "single",
  "maxUses": 1,
  "expiresAt": "2026-10-01T09:30:00.000Z",
  "acceptedProviders": [
    "clictopay"
  ],
  "payerFields": {
    "name": "hidden",
    "email": "buyer@example.com",
    "phone": "hidden"
  },
  "successMessage": "successMessage",
  "redirectUrl": "redirectUrl",
  "status": "active",
  "paymentsCount": 1,
  "succeededCount": 1,
  "collectedAmount": 1,
  "disabledAt": "2026-10-01T09:30:00.000Z",
  "createdAt": "2026-10-01T09:30:00.000Z",
  "updatedAt": "2026-10-01T09:30:00.000Z"
}

One payment link

GET/payment-links/{linkId}API key

Parameters

  • linkIdstringpathrequired

Responses

  • 200

    • idstring (uuid)required
    • slugstringrequired
    • urlstringrequired

      Public page of the link on the checkout

    • organisationIdstring (uuid)required
    • paymentAccountIdstring (uuid)required
    • titlestringrequired
    • descriptionstring | nullrequired
    • amountTypestringrequired
      • enum: "fixed", "open"
    • amountnumber | nullrequired
    • minAmountnumber | nullrequired
    • maxAmountnumber | nullrequired
    • currencystringrequired
    • usagestringrequired
      • enum: "single", "reusable"
    • maxUsesnumber | nullrequired
    • expiresAtstring (date-time) | nullrequired
    • acceptedProvidersstring[]required
    • payerFieldsPayerFieldSettingsDtorequired
      • namestringrequired
        • enum: "hidden", "optional", "required"
      • emailstringrequired
        • enum: "hidden", "optional", "required"
      • phonestringrequired
        • enum: "hidden", "optional", "required"
    • successMessagestring | nullrequired
    • redirectUrlstring | nullrequired
    • statusstringrequired

      Effective status (expired from expiresAt)

      • enum: "active", "disabled", "expired", "completed"
    • paymentsCountnumberrequired

      Payments started from the link

    • succeededCountnumberrequired
    • collectedAmountnumberrequired

      Sum of the succeeded amounts, minor units

    • disabledAtstring (date-time) | nullrequired
    • createdAtstring (date-time)required
    • updatedAtstring (date-time)required
  • 404payment_link_not_found

Code samples

curl -X GET "$KONNECT_API_URL/payment-links/linkId" \
  -H "x-api-key: $KONNECT_API_KEY"

Example: 200

{
  "id": "id",
  "slug": "Ab3dE6gH9jK2",
  "url": "url",
  "organisationId": "org_01J9Z3K4EXAMPLE0000000000",
  "paymentAccountId": "paymentAccountId",
  "title": "title",
  "description": "description",
  "amountType": "fixed",
  "amount": 1,
  "minAmount": 1,
  "maxAmount": 1,
  "currency": "TND",
  "usage": "single",
  "maxUses": 1,
  "expiresAt": "2026-10-01T09:30:00.000Z",
  "acceptedProviders": [
    "clictopay"
  ],
  "payerFields": {
    "name": "hidden",
    "email": "buyer@example.com",
    "phone": "hidden"
  },
  "successMessage": "successMessage",
  "redirectUrl": "redirectUrl",
  "status": "active",
  "paymentsCount": 1,
  "succeededCount": 1,
  "collectedAmount": 1,
  "disabledAt": "2026-10-01T09:30:00.000Z",
  "createdAt": "2026-10-01T09:30:00.000Z",
  "updatedAt": "2026-10-01T09:30:00.000Z"
}

Change a payment link

PATCH/payment-links/{linkId}API key

Any setting but the payment account and the slug. Payments already started keep their amounts. Raising the cap of a completed link makes it active again.

Parameters

  • linkIdstringpathrequired

Request body application/json

  • descriptionstring | null
    • maxLength: 500
  • amountnumber | null

    Fixed amount, minor units

  • minAmountnumber | null

    Open amount: lower bound (default 100)

  • maxAmountnumber | null

    Open amount: upper bound

  • maxUsesnumber | null

    Reusable: successful payments accepted; null for no limit

    • max: 100000
  • expiresAtstring (date-time) | null
  • acceptedProvidersstring[]

    Providers offered, within the account routing; empty or omitted: every routed one

  • payerFieldsPayerFieldsDto
    • namestring

      First and last name

      • enum: "hidden", "optional", "required"
    • emailstring

      Receives the receipt

      • enum: "hidden", "optional", "required"
    • phonestring
      • enum: "hidden", "optional", "required"
  • successMessagestring | null
    • maxLength: 280
  • redirectUrlstring | null
  • titlestring
    • maxLength: 80
  • amountTypestring
    • enum: "fixed", "open"
  • usagestring
    • enum: "single", "reusable"

Responses

  • 200

    • idstring (uuid)required
    • slugstringrequired
    • urlstringrequired

      Public page of the link on the checkout

    • organisationIdstring (uuid)required
    • paymentAccountIdstring (uuid)required
    • titlestringrequired
    • descriptionstring | nullrequired
    • amountTypestringrequired
      • enum: "fixed", "open"
    • amountnumber | nullrequired
    • minAmountnumber | nullrequired
    • maxAmountnumber | nullrequired
    • currencystringrequired
    • usagestringrequired
      • enum: "single", "reusable"
    • maxUsesnumber | nullrequired
    • expiresAtstring (date-time) | nullrequired
    • acceptedProvidersstring[]required
    • payerFieldsPayerFieldSettingsDtorequired
      • namestringrequired
        • enum: "hidden", "optional", "required"
      • emailstringrequired
        • enum: "hidden", "optional", "required"
      • phonestringrequired
        • enum: "hidden", "optional", "required"
    • successMessagestring | nullrequired
    • redirectUrlstring | nullrequired
    • statusstringrequired

      Effective status (expired from expiresAt)

      • enum: "active", "disabled", "expired", "completed"
    • paymentsCountnumberrequired

      Payments started from the link

    • succeededCountnumberrequired
    • collectedAmountnumberrequired

      Sum of the succeeded amounts, minor units

    • disabledAtstring (date-time) | nullrequired
    • createdAtstring (date-time)required
    • updatedAtstring (date-time)required
  • 404payment_link_not_found

Code samples

curl -X PATCH "$KONNECT_API_URL/payment-links/linkId" \
  -H "x-api-key: $KONNECT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "description": "description",
  "amount": 25000,
  "minAmount": 1,
  "maxAmount": 1,
  "maxUses": 1,
  "expiresAt": "2026-10-01T09:30:00.000Z",
  "acceptedProviders": [
    "clictopay"
  ],
  "payerFields": {
    "name": "hidden",
    "email": "buyer@example.com",
    "phone": "hidden"
  },
  "successMessage": "successMessage",
  "redirectUrl": "https://shop.example.test/merci",
  "title": "title",
  "amountType": "fixed",
  "usage": "single"
}'

Example: request body

{
  "description": "description",
  "amount": 25000,
  "minAmount": 1,
  "maxAmount": 1,
  "maxUses": 1,
  "expiresAt": "2026-10-01T09:30:00.000Z",
  "acceptedProviders": [
    "clictopay"
  ],
  "payerFields": {
    "name": "hidden",
    "email": "buyer@example.com",
    "phone": "hidden"
  },
  "successMessage": "successMessage",
  "redirectUrl": "https://shop.example.test/merci",
  "title": "title",
  "amountType": "fixed",
  "usage": "single"
}

Example: 200

{
  "id": "id",
  "slug": "Ab3dE6gH9jK2",
  "url": "url",
  "organisationId": "org_01J9Z3K4EXAMPLE0000000000",
  "paymentAccountId": "paymentAccountId",
  "title": "title",
  "description": "description",
  "amountType": "fixed",
  "amount": 1,
  "minAmount": 1,
  "maxAmount": 1,
  "currency": "TND",
  "usage": "single",
  "maxUses": 1,
  "expiresAt": "2026-10-01T09:30:00.000Z",
  "acceptedProviders": [
    "clictopay"
  ],
  "payerFields": {
    "name": "hidden",
    "email": "buyer@example.com",
    "phone": "hidden"
  },
  "successMessage": "successMessage",
  "redirectUrl": "redirectUrl",
  "status": "active",
  "paymentsCount": 1,
  "succeededCount": 1,
  "collectedAmount": 1,
  "disabledAt": "2026-10-01T09:30:00.000Z",
  "createdAt": "2026-10-01T09:30:00.000Z",
  "updatedAt": "2026-10-01T09:30:00.000Z"
}

Disable a payment link: no new payment; started ones go on

POST/payment-links/{linkId}/disableAPI key

Parameters

  • linkIdstringpathrequired

Responses

  • 200

    • idstring (uuid)required
    • slugstringrequired
    • urlstringrequired

      Public page of the link on the checkout

    • organisationIdstring (uuid)required
    • paymentAccountIdstring (uuid)required
    • titlestringrequired
    • descriptionstring | nullrequired
    • amountTypestringrequired
      • enum: "fixed", "open"
    • amountnumber | nullrequired
    • minAmountnumber | nullrequired
    • maxAmountnumber | nullrequired
    • currencystringrequired
    • usagestringrequired
      • enum: "single", "reusable"
    • maxUsesnumber | nullrequired
    • expiresAtstring (date-time) | nullrequired
    • acceptedProvidersstring[]required
    • payerFieldsPayerFieldSettingsDtorequired
      • namestringrequired
        • enum: "hidden", "optional", "required"
      • emailstringrequired
        • enum: "hidden", "optional", "required"
      • phonestringrequired
        • enum: "hidden", "optional", "required"
    • successMessagestring | nullrequired
    • redirectUrlstring | nullrequired
    • statusstringrequired

      Effective status (expired from expiresAt)

      • enum: "active", "disabled", "expired", "completed"
    • paymentsCountnumberrequired

      Payments started from the link

    • succeededCountnumberrequired
    • collectedAmountnumberrequired

      Sum of the succeeded amounts, minor units

    • disabledAtstring (date-time) | nullrequired
    • createdAtstring (date-time)required
    • updatedAtstring (date-time)required

Code samples

curl -X POST "$KONNECT_API_URL/payment-links/linkId/disable" \
  -H "x-api-key: $KONNECT_API_KEY"

Example: 200

{
  "id": "id",
  "slug": "Ab3dE6gH9jK2",
  "url": "url",
  "organisationId": "org_01J9Z3K4EXAMPLE0000000000",
  "paymentAccountId": "paymentAccountId",
  "title": "title",
  "description": "description",
  "amountType": "fixed",
  "amount": 1,
  "minAmount": 1,
  "maxAmount": 1,
  "currency": "TND",
  "usage": "single",
  "maxUses": 1,
  "expiresAt": "2026-10-01T09:30:00.000Z",
  "acceptedProviders": [
    "clictopay"
  ],
  "payerFields": {
    "name": "hidden",
    "email": "buyer@example.com",
    "phone": "hidden"
  },
  "successMessage": "successMessage",
  "redirectUrl": "redirectUrl",
  "status": "active",
  "paymentsCount": 1,
  "succeededCount": 1,
  "collectedAmount": 1,
  "disabledAt": "2026-10-01T09:30:00.000Z",
  "createdAt": "2026-10-01T09:30:00.000Z",
  "updatedAt": "2026-10-01T09:30:00.000Z"
}

Enable a disabled payment link again

POST/payment-links/{linkId}/enableAPI key

Parameters

  • linkIdstringpathrequired

Responses

  • 200

    • idstring (uuid)required
    • slugstringrequired
    • urlstringrequired

      Public page of the link on the checkout

    • organisationIdstring (uuid)required
    • paymentAccountIdstring (uuid)required
    • titlestringrequired
    • descriptionstring | nullrequired
    • amountTypestringrequired
      • enum: "fixed", "open"
    • amountnumber | nullrequired
    • minAmountnumber | nullrequired
    • maxAmountnumber | nullrequired
    • currencystringrequired
    • usagestringrequired
      • enum: "single", "reusable"
    • maxUsesnumber | nullrequired
    • expiresAtstring (date-time) | nullrequired
    • acceptedProvidersstring[]required
    • payerFieldsPayerFieldSettingsDtorequired
      • namestringrequired
        • enum: "hidden", "optional", "required"
      • emailstringrequired
        • enum: "hidden", "optional", "required"
      • phonestringrequired
        • enum: "hidden", "optional", "required"
    • successMessagestring | nullrequired
    • redirectUrlstring | nullrequired
    • statusstringrequired

      Effective status (expired from expiresAt)

      • enum: "active", "disabled", "expired", "completed"
    • paymentsCountnumberrequired

      Payments started from the link

    • succeededCountnumberrequired
    • collectedAmountnumberrequired

      Sum of the succeeded amounts, minor units

    • disabledAtstring (date-time) | nullrequired
    • createdAtstring (date-time)required
    • updatedAtstring (date-time)required
  • 409link_not_disabled

Code samples

curl -X POST "$KONNECT_API_URL/payment-links/linkId/enable" \
  -H "x-api-key: $KONNECT_API_KEY"

Example: 200

{
  "id": "id",
  "slug": "Ab3dE6gH9jK2",
  "url": "url",
  "organisationId": "org_01J9Z3K4EXAMPLE0000000000",
  "paymentAccountId": "paymentAccountId",
  "title": "title",
  "description": "description",
  "amountType": "fixed",
  "amount": 1,
  "minAmount": 1,
  "maxAmount": 1,
  "currency": "TND",
  "usage": "single",
  "maxUses": 1,
  "expiresAt": "2026-10-01T09:30:00.000Z",
  "acceptedProviders": [
    "clictopay"
  ],
  "payerFields": {
    "name": "hidden",
    "email": "buyer@example.com",
    "phone": "hidden"
  },
  "successMessage": "successMessage",
  "redirectUrl": "redirectUrl",
  "status": "active",
  "paymentsCount": 1,
  "succeededCount": 1,
  "collectedAmount": 1,
  "disabledAt": "2026-10-01T09:30:00.000Z",
  "createdAt": "2026-10-01T09:30:00.000Z",
  "updatedAt": "2026-10-01T09:30:00.000Z"
}

A new link with the same settings, a new slug and no payment

POST/payment-links/{linkId}/duplicateAPI key

Parameters

  • linkIdstringpathrequired

Responses

  • 201

    • idstring (uuid)required
    • slugstringrequired
    • urlstringrequired

      Public page of the link on the checkout

    • organisationIdstring (uuid)required
    • paymentAccountIdstring (uuid)required
    • titlestringrequired
    • descriptionstring | nullrequired
    • amountTypestringrequired
      • enum: "fixed", "open"
    • amountnumber | nullrequired
    • minAmountnumber | nullrequired
    • maxAmountnumber | nullrequired
    • currencystringrequired
    • usagestringrequired
      • enum: "single", "reusable"
    • maxUsesnumber | nullrequired
    • expiresAtstring (date-time) | nullrequired
    • acceptedProvidersstring[]required
    • payerFieldsPayerFieldSettingsDtorequired
      • namestringrequired
        • enum: "hidden", "optional", "required"
      • emailstringrequired
        • enum: "hidden", "optional", "required"
      • phonestringrequired
        • enum: "hidden", "optional", "required"
    • successMessagestring | nullrequired
    • redirectUrlstring | nullrequired
    • statusstringrequired

      Effective status (expired from expiresAt)

      • enum: "active", "disabled", "expired", "completed"
    • paymentsCountnumberrequired

      Payments started from the link

    • succeededCountnumberrequired
    • collectedAmountnumberrequired

      Sum of the succeeded amounts, minor units

    • disabledAtstring (date-time) | nullrequired
    • createdAtstring (date-time)required
    • updatedAtstring (date-time)required

Code samples

curl -X POST "$KONNECT_API_URL/payment-links/linkId/duplicate" \
  -H "x-api-key: $KONNECT_API_KEY"

Example: 201

{
  "id": "id",
  "slug": "Ab3dE6gH9jK2",
  "url": "url",
  "organisationId": "org_01J9Z3K4EXAMPLE0000000000",
  "paymentAccountId": "paymentAccountId",
  "title": "title",
  "description": "description",
  "amountType": "fixed",
  "amount": 1,
  "minAmount": 1,
  "maxAmount": 1,
  "currency": "TND",
  "usage": "single",
  "maxUses": 1,
  "expiresAt": "2026-10-01T09:30:00.000Z",
  "acceptedProviders": [
    "clictopay"
  ],
  "payerFields": {
    "name": "hidden",
    "email": "buyer@example.com",
    "phone": "hidden"
  },
  "successMessage": "successMessage",
  "redirectUrl": "redirectUrl",
  "status": "active",
  "paymentsCount": 1,
  "succeededCount": 1,
  "collectedAmount": 1,
  "disabledAt": "2026-10-01T09:30:00.000Z",
  "createdAt": "2026-10-01T09:30:00.000Z",
  "updatedAt": "2026-10-01T09:30:00.000Z"
}

Payments of a link by status, collected amount and conversion

GET/payment-links/{linkId}/statsAPI key

Parameters

  • linkIdstringpathrequired

Responses

  • 200

    • paymentsCountnumberrequired
    • succeededCountnumberrequired
    • pendingCountnumberrequired
    • failedCountnumberrequired
    • expiredCountnumberrequired
    • canceledCountnumberrequired
    • collectedAmountnumberrequired

      Minor units

    • conversionRatenumberrequired

      Succeeded over started, 0 to 1

    • lastPaymentAtstring (date-time) | nullrequired

Code samples

curl -X GET "$KONNECT_API_URL/payment-links/linkId/stats" \
  -H "x-api-key: $KONNECT_API_KEY"

Example: 200

{
  "paymentsCount": 1,
  "succeededCount": 1,
  "pendingCount": 1,
  "failedCount": 1,
  "expiredCount": 1,
  "canceledCount": 1,
  "collectedAmount": 1,
  "conversionRate": 1,
  "lastPaymentAt": "2026-10-01T09:30:00.000Z"
}