Kassa24 Terminal BVU

Overview

Kassa24 Terminal BVU is a payment method to perform purchases via the Kassa24 BVU virtual payment terminals.

Download the logo in vector format here.

Payment method type Virtual payment terminals
Countries and regions Kazakhstan
Payment currencies KZT
Currency conversion On the provider side
Purchases
Payouts
COF payments
Full refunds
Partial refunds
Chargebacks
Notes
Onboarding and access fee Refer to your key account manager at JetPay

Interaction diagram

Payment processing by using the Kassa24 Terminal BVU payment method requires the merchant's web service, one of the JetPay interfaces, and the JetPay payment platform, as well as the Kassa24 Terminal BVU service.

Operations support

  Interfaces Amounts, KZT Times
Payment Page CMS Plug-ins Gate Dashboard minimum maximum basic threshold
Purchases 1 minute 36 days

You can check the payment amount limits in your project by using Dashboard. To check your payment amount limits, go to Dashboard, select the Projects section and click the Payment methods tab.

Processing scenarios

In the Kassa24 Terminal BVU method, to perform a purchase, the customer pays by using the Kassa24 BVU virtual payment terminals.

Figure: Purchase by using Gate procedure diagram



The sections that follow provide detailed information about what you need to perform payments and how you can analyze the information on payments and operations.

Purchase by using Gate

General information

In the Kassa24 Terminal BVU method, when processing a purchase by using Gate, the merchant web service is required to do the following:

  1. Process the request for checking the customer account existence.
  2. Send information about the customer account existence.
  3. Process request for receiving payment ID on the web service side.
  4. Send payment ID.
  5. Get the callback with the payment result from the payment platform.

The following diagram provides the detailed picture of the payment processing procedure.



Figure: Purchase sequence by using Gate via virtual terminal

  1. The customer selects a web service, the personal account in which he wants to replenish, and then enters his credentials in the merchant system.
  2. The virtual payment terminal sends a request for checking the customer account existence to the specified JetPay URL.
  3. The payment platform performs the initial request processing that includes validation of the required parameters and signature.
  4. The payment platform sends request for checking the customer account existence to the web service.
  5. The request is processed on the web service side.
  6. The web service sends response to the request.
  7. The payment platform sends the customer account data to the Kassa24 Terminal BVU service.
  8. The Kassa24 Terminal BVU payment form is displayed to the customer.
  9. The customers replenishes the personal account.
  10. The payment is processed on the Kassa24 Terminal BVU side.
  11. The Kassa24 Terminal BVU service sends the payment result notification to the payment platform.
  12. The payment platform sends the request to the web service for the payment ID on the web service side.
  13. The request is processed on the web service side.
  14. The web service sends the payment ID to the payment platform.
  15. Operation is created on the payment platform side.
  16. The payment platform sends the callback to the web service.
  17. The virtual payment terminal displays the payment result to the customer.

The sections that follow discuss in more details the request format and the Gate parameters to use in the Kassa24 Terminal BVU payment method and provide the information on the format of callbacks with purchase results.

Request format

There are several things you must consider when using requests for checking the customer account existence in the Kassa24 Terminal BVU method:

  1. The verify request for checking whether the account exists is sent out by the JetPay payment platform to the specified web service URL by using the HTTP method POST.
  2. The request contains the following required parameters:
    • type—operation type on the web service side, set to verify at all times.
    • customer_id—customer account name on the web service side. Customer enters this account name in the virtual payment terminal.
    • project_id—the project ID obtained from JetPay.
    • signature—signature created after you specify all the required parameters (for more information about signature generation, see Signature generation and verification)

    Figure: Example of data from a request for checking account existence

     {
        "type": "verify",   
        "customer_id": "7123456789",
        "project_id": 1234,
        "signature": "e19695449545fac562843ca06e7e0f3e51281ad6"
    }
  3. Response to the verify request must be sent out synchronously and contain the following required parameters:
    • code—response code
    • currency—currency code in the ISO-4217 alpha-3 format
    Table 1. Allowed response codes
    Code Description
    0 Successful operation
    400 Signature is invalid
    404 Account does not exist
    500 General error. The reason should be specified in the error_description parameter
    The response may also contain the following optional parameters:
    • additional_customer_id—customer ID on merchant side, which is used for customer identification on the JetPay side
    • error_description— error description by merchant

    If the requested checking account is successfully found, the response must contain response code and payment currency.

    Figure: Example of a successful response

    {
       "code": 0,
       "currency": "KZT",
       "additional_customer_id": "HFVDW42345"
    }

    If the requested checking account cannot be found, the response must contain the response code and error message.

    Figure: Example of the response with an error

    { 
       "code": 404,
       "error_description": "Account does not exist"
    }

There are several things you must consider when using requests for payment ID on the web service side:

  1. The check_deposit request for payment ID is sent out by using HTTP method POST to the specified web service URL.
  2. The request contains the following required parameters:
    • type—operation type on the web service side, set to check_deposit at all times
    • customer_id—customer ID on the web service side
    • project_id—the project ID obtained from JetPay
    • amount—purchase amount in minor currency units without any decimal point or comma except for cases where the currency does not have any minor currency units. If the currency has no minor units (that is, the number of digits for minor currency units is zero), then you must set this parameter to the amount in the major currency units. For the information on whether the currency has any minor units, see Currency codes.
    • currency—currency in the ISO-4217 alpha-3 format
    • payment_method—payment method name, set to kassa24_bvu at all times
    • signature—signature created after you specify all the required parameters (for more information about signature generation, see Signature generation and verification)

    Figure: Example of a request for payment ID

    {
       "type": "check_deposit",
       "project_id": 111,
       "customer_id": "johndoe@example.com",
       "amount": 10000,
       "currency": "KZT",
       "payment_method": "kassa24_bvu",
       "signature": "lY0LTSAzpR7...dOqRXJnL1kO0lUmkQ0YYLWRg=="
    }
  3. Response to the check_deposit request must be sent out synchronously and contain the following required parameters:
    • code—response code
    • payment_id—payment ID unique on the web service side
    Table 2. Allowed response codes
    Code Description
    0 Successful operation
    400 Signature is invalid
    404 Account does not exist
    500 General error. The reason should be specified in the error_description parameter
    Response may also contain the following optional parameters:
    • error_description—user-friendly error description
    • description—payment description
    • customer_id—customer ID

    A successful response to the request for payment ID must contain response code and unique payment ID within the web service.

    Figure: Example of a successful response

    { 
       "code": 0,
       "payment_id": "Asfdsaf3252345",
       "description": "Test payment via terminal"
    }

    If the requested payment cannot be fount by the web service, the response must contain response code and an error message.

    Figure: Example of the response with an error

    { 
       "code": 500,
       "error_description": "Something went wrong"
    }

Callback format

The Kassa24 Terminal BVU method uses the standard format for callbacks to deliver purchase results. For more information, see Callbacks in Gate.

The following is the example of a callback with an information about successful 100.00 KZT purchase in the 2275 project.

Figure: Example of a successful purchase callback

{
    "project_id": 1234,
    "payment": {
        "id": "payment_47",
        "type": "purchase",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "method": "kassa24_bvu",
        "sum": {
            "amount": 10000,
            "currency": "KZT"
        },
        "description": ""
    },
    "account": {
        "number": "123456"
    },
    "customer": {
        "id": "customer_123"
    },
    "operation": {
        "id": 28,
        "type": "sale",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "created_date": "2022-03-25T11:08:05+0000",
        "request_id": "9e32835fb27907e0b08569d7d150e387a16a80e336c5117242b5cf60a4e17839",
        "sum_initial": {
            "amount": 10000,
            "currency": "KZT"
        },
        "sum_converted": {
            "amount": 10000,
            "currency": "KZT"
        },
        "code": "0",
        "message": "Success",
        "provider": {
            "id": 12345,
            "payment_id": "123abc123-321",
            "auth_code": ""
        }
    },
    "signature": "U7HQO7ToISZhMPKdM4Xr4DSX2UuHp99rHrtaxkUKQtoYzFvoB3cs9CRd4xeYG2Q=="
}

Related topics

The following topics might be useful when implementing payments through Gate:

Analysis of payments results

As with other payment methods JetPay offers, when using this method, you have several options to analyze the information about payments and operations.

You can load and analyze all the necessary information in Dashboard (dashboard.jetpay.kz), for instance you can use the analytic panels in the Analytics section for this purpose.

Also, you can export the information for further analysis by using third party analytical tools. The following options are available:

  • Dashboard allows you to download reports in CSV format by using the tools in the Reports section. You can perform export as a one-time or regular download of data to your local computer.
  • Data API allows you to have payment information exported in JSON format and delivered to a URL you specify. The payment information is exported by means of sending requests to the /operations/get endpoint.

If you have any further questions regarding payment data analysis, contact JetPay technical support.