Skip to main content

A simple client for the Kapital payment gateway.

Project description

Kapital Payment Gateway Client

kapital is a Python client for the Kapital Bank payment gateway, designed to simplify the process of creating and managing payment orders. This library provides a straightforward interface to interact with the Kapital Bank API, making it easier to integrate payment functionality into your applications.

Features

  • Create payment orders with customizable parameters.
  • Supports basic authentication for secure API access.
  • Handles JSON payloads and responses seamlessly.

Installation

You can install the kapital package via pip. It's recommended to create a virtual environment for your project.

pip install kapital

Usage

Here’s a quick guide on how to use the kapital client.

Importing the Client

from kapital import Kapital

Initializing the Client

To use the client, initialize it with your credentials. If you don't provide any credentials, default values will be used.

client = Kapital(
  base_url="https://e-commerce.kapitalbank.az/api",
  username="your-username",
  password="your-password"
)

Creating a Payment Order

You can create a payment order by calling the create_order method. Here's an example:

response = client.create_order(
  redirect_url="https://your-redirect-url.com",
  amount=100.00,
  description="Payment for Order #123",
  currency="AZN",
  language="az"
)

print(response)

Response Structure

The create_order method returns a dictionary containing the following keys:

  • order_id: The unique identifier for the order.
  • password: The password for the order.
  • hppUrl: The URL for redirecting the user to complete the payment.
  • status: The status of the order.
  • cvv2AuthStatus: The CVV2 authentication status.
  • secret: A secret value associated with the order.
  • redirect_url: The full URL to redirect the user for payment.

Example Response

{
  "order_id": "123456",
  "password": "secret_password",
  "hppUrl": "https://payment-url.com",
  "status": "pending",
  "cvv2AuthStatus": "approved",
  "secret": "order_secret",
  "redirect_url": "https://payment-url.com?id=123456&password=password"
}

Saving a Card

To save a card for future transactions, use the save_card method:

response, status_code = client.save_card(
  redirect_url="https://your-redirect-url.com",
  amount=100.0,
  description="Saving card for future use",
  currency="AZN",
  language="az",
)

In redirect url kapital will send a token which you can use for future transactions. The response will contain the token of the stored card.

{
  "order": {
    "storedTokens": [
      {
        "id": "21790"
      }
    ]
  }
}

Paying with a Stored Card

You can make a payment using a stored card by calling the pay_with_card method:

response, status_code = client.pay_with_card(
  amount=100.0,
  description="Payment for services",
  token="21790",  # Replace with your stored card token
  currency="AZN",
  language="az",
)

Refund a Transaction

To refund a transaction, use the refund method. Here's an example:

response, status_code = client.refund(
  order_id="45451", # Replace with your order ID
  amount=100.0, # Amount to refund
)

Reverse a Transaction

To reverse a transaction, call the reverse method:

response, status_code = client.reverse(
  order_id="45451", # Replace with your order ID
)

Get Order Details

You can retrieve the details of an order using the get_order_details method:

response, status_code = client.get_order_details(
  order_id="45451", # Replace with your order ID
)

Error Handling

The client raises exceptions for various error cases, such as:

  • If the response status code is not 200, an Exception will be raised.
  • If the response format is invalid, a ValueError will be raised indicating the specific issue.
try:
  response = client.create_order(
    redirect_url="https://your-redirect-url.com",
    amount=100.00,
    description="Payment for Order #123"
  )
except Exception as e:
  print(f"An error occurred: {e}")

Contributing

Contributions are welcome! If you have suggestions for improvements or want to report bugs, please open an issue or submit a pull request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Authors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kapital-1.0.2.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

kapital-1.0.2-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file kapital-1.0.2.tar.gz.

File metadata

  • Download URL: kapital-1.0.2.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for kapital-1.0.2.tar.gz
Algorithm Hash digest
SHA256 64a855926ae4c29effc1ce5d34e817585c69bc1da14c2be6c33ad440c4a3f479
MD5 ea719689fca19d6de9112768cfb86d97
BLAKE2b-256 13c02922339d286f01ae00b7beed1ecb2c289a27fce21ae9a5e2e9cca885645a

See more details on using hashes here.

File details

Details for the file kapital-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: kapital-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for kapital-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8f3506e24c26d10c7ac745a277e448aed36a0f115c1c19c017b07067fa23a174
MD5 f9fed80ca681ba96eb1dcb32100e1dcd
BLAKE2b-256 8b88f4f83a33231c3a0cf66da65bb1e4da9aad60a5043ecbe384a32cf7403785

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page