Skip to content

KNET

Last updated: 14th July 2022

Start accepting payments using KNET debit cards, the leading payment method in Kuwait.

To start accepting KNET payments, please contact your Customer Success Manager.

Model

GW only

Payment flow

Redirect

Payment method type

Card Payment

One-step payment

Authorization

Capture

Refund

Partial refund

Chargeback

Recurring payment


Overview

KNET payments follow a two-step process:


Request a payment

For the full API specification, see the API reference.

    post

    https://api.checkout.com/payments

    When sending a payment request that includes source.card_token, you can optionally pay via KFast. If the token is new, the first payment will happen via the usual flow, but with the option to "register for KFast" before submitting. This flow is not testable in the sandbox environment because the registration for KFast requires the customer to enter a one-time password sent to the mobile phone number registered with the bank, which is not present in sandbox.

    Request example

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {
    "amount": 1000,
    "currency": "KWD",
    "source": {
    "type": "knet",
    "language": "en",
    "user_defined_field1": "first user defined field",
    "user_defined_field2": "second user defined field",
    "card_token": "01234567",
    "user_defined_field4": "fourth user defined field",
    "ptlf": "96033587c7b5"
    }
    }

    Response example

    If you receive a 202 Success response containing a status field set to Pending, your request was successful.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    {
    "id": "pay_4gubyq2w335upc54dx7a4257lq",
    "status": "Pending",
    "customer": {
    "id": "cus_r3cajfpbj3ju7jyq7afcg3qc4a"
    },
    "_links": {
    "self": {
    "href": "https://api.sandbox.checkout.com/payments/pay_4gubyq2w335upc54dx7a4257lq"
    },
    "redirect": {
    "href": "https://sbapi.ckotech.co/knet-external/redirect/tok_tl6kftlhdpzephqelsbpyovl4i/pay"
    }
    }
    }

    Redirect the customer

    Redirect your customer to the redirect link’s href in the response. This will allow the customer to authorize the payment, before they are transferred to your predefined success or failure URL.


    Get details about a payment

    You can retrieve details about an existing KNET payment with the following endpoint.

    Use the details below to set up your request.

    Endpoints

    For the full API specification, see the API reference.

      post

      https://api.checkout.com/payments/{id}

      Response example

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      {
      "id": "pay_4gubyq2w335upc54dx7a4257lq",
      "requested_on": "2019-05-23T17:04:05Z",
      "source": {
      "type": "knet",
      "language": "en",
      "user_defined_field1": "first user defined field",
      "user_defined_field2": "second user defined field",
      "user_defined_field4": "fourth user defined field",
      "card_token": "01234567",
      "ptlf": "96033587c7b5",
      "knet_payment_id": "100201914315601265",
      "knet_result": "Captured",
      "bank_reference": "914310000349",
      "knet_transaction_id": "201914384388126",
      "auth_code": "B00775",
      "post_date": "0524",
      "avr": "N"
      },
      "amount": 1000,
      "currency": "KWD",
      "payment_type": "Regular",
      "status": "Captured",
      "approved": true,
      "risk": {
      "flagged": false
      },
      "customer": {
      "id": "cus_kx75h5tcegyednxeyvtn6vy3sq"
      },
      "_links": {
      "self": {
      "href": "https://api.sandbox.checkout.com/payments/pay_c2ynk5nnjacuxia3r4matf5wmu"
      },
      "actions": {
      "href": "https://api.sandbox.checkout.com/payments/pay_c2ynk5nnjacuxia3r4matf5wmu/actions"
      }
      }
      }

      Refund a payment

      KNET supports full, partial and multiple partial refunds. Refund a payment through the Dashboard or by using our refund API.

      Before you can refund KNET payments, you need to contact your bank and ask them to enable refunds. Your bank will then send a request to KNET to activate the refund API.


      Cancel a payment

      If, after landing on the KNET payment page, the customer attempts to complete the payment after seven minutes, we will automatically void the payment and send a payment_expired webhook.

      If the customer cancels their payment, we will send a payment_canceled webhook.


      Webhooks

      When using KNET, you may receive the following webhooks.

      WebhookDescription

      payment_pending

      Occurs when a payment request has successfully initiated.

      payment_capture_pending

      Occurs when the customer has approved the payment on the banking page.

      payment_captured

      Occurs when a capture is successful.

      payment_capture_declined

      Occurs when a capture is declined.

      payment_canceled

      Occurs when the customer has canceled the payment or the payment has failed.

      payment_expired

      Occurs when the payment has expired.

      payment_refund_pending

      Occurs when a refund request has successfully initiated.

      payment_refunded

      Occurs when a refund is successful.

      payment_refund_declined

      Occurs when a refund is declined.


      Testing KNET

      To start testing, you'll need to contact your Customer Success Manager or Integrations engineer to activate KNET payments in the sandbox environment.

      1. Create a KNET transaction as above, following the redirect link in the response to KNET's website.
      2. Enter the following details:
        1. Select your bank: Knet Test Card [KNET1]
        2. Card number: 888888 000 000 000 1
        3. Expiration date: 09 | 2025
        4. PIN: 1234
      3. Select Submit and then Confirm. You should then be redirected to your predefined success URL.