Skip to main content

Xendit REST API Client for Python

Project description

Python Xendit Client API

Build Status PyPI version Downloads Downloads

Xendit REST API Client for Python

Documentation

Install

Install xenditclient with pip by the following command:

pip install xenditclient

Usage

Configure the XenditClient with the secret key that you can obtained on your Xendit Dashboard Account.

from xenditclient import XenditClient

client = XenditClient(api_key='<your-secret-key>')

Get Balance

res_dict = client.balance.get_balance('CASH')
print(res_dict)
# {
#   'balance': 1000137690
# }

EWallets

Create Payment

params = {
  'ewallet_type':'OVO',
  'external_id':'21345',
  'amount':10000,
  'phone':'081234567890'
}

res_dict = client.ewallet.create(params)
print(res_dict)
# {
#   "business_id": "12345678",
#   "external_id": "21345",
#   "amount": "10000",
#   "phone": "081234567890",
#   "ewallet_type": "OVO",
#   "status": "PENDING",
#   "created": "2020-04-04T00:00:00.000Z",
# }

Get Payment Status

res_dict = client.ewallet.get_payment_status(external_id='21345', payment_method='OVO')
print(res_dict)
# {
#   "amount": "10000",
#   "business_id": "12345678",
#   "ewallet_type": "OVO",
#   "external_id": "21345",
#   "status": "COMPLETED",
#   "transaction_date": "2020-04-04T11:48:47.903Z"
# }

QR Codes (QRIS)

Get QRCode client

qrcode = client.qrcodes
# or
from xenditclient.qrcodes import QRCodesClient

qrcode = QRCodesClient(client)

Create QRCode for payment

data = qrcode.create("DYNAMIC", "DS-INV-01", "https://dwisulfahnur.com/api/xendit/callback", 10200)
print(data)
# {
#   "id": "qr_a706814a-d18b-4109-9b71-7a76f9855e123",
#   "external_id": "DS-INV-01",
#   "amount": 10200,
#   "qr_string": "00022312321226660014ID.LINKAJA.WWW0118912312300241148000215200423041141230303UME51450015ID.OR.GPNQR.WWW0215000111111111110303UME520454995802ID5920Placeholder merchant6007Jakarta6106123456623801152QiFZi5qT12307152QiFZi5qThdA4M753033605405102006304D9CM",
#   "callback_url": "https://dwisulfahnur.com/api/xendit/callback",
#   "type": "DYNAMIC",
#   "status": "ACTIVE",
#   "created": "2020-07-27T07:44:31.420Z",
#   "updated": "2020-07-27T07:44:31.420Z"
# }

Get QRCode detail payment

data = qrcode.get_payment_detail("DS-INV-01")
print(data)
# {
#   "id": "qr_a706814a-d18b-4109-9b71-7a76f9855e123",
#   "external_id": "DS-INV-01",
#   "amount": 10200,
#   "qr_string": "00022312321226660014ID.LINKAJA.WWW0118912312300241148000215200423041141230303UME51450015ID.OR.GPNQR.WWW0215000111111111110303UME520454995802ID5920Placeholder merchant6007Jakarta6106123456623801152QiFZi5qT12307152QiFZi5qThdA4M753033605405102006304D9CM",
#   "callback_url": "https://dwisulfahnur.com/api/xendit/callback",
#   "type": "DYNAMIC",
#   "status": "ACTIVE",
#   "created": "2020-07-27T07:44:31.420Z",
#   "updated": "2020-07-27T07:44:31.420Z"
# }

Virtual Account

Get Virtual Account Client

va_client = client.virtual_account
# or
from xenditclient.virtual_accounts import VirtualAccountClient

qrcode = VirtualAccountClient(client)

Get Virtual Account Banks

data = va_client.get_va_banks()
print(data)
# [
#     {'name': 'Bank Mandiri', 'code': 'MANDIRI'}, 
#     {'name': 'Bank Negara Indonesia', 'code': 'BNI'},
#     {'name': 'Bank Rakyat Indonesia', 'code': 'BRI'}, 
#     {'name': 'Bank Permata', 'code': 'PERMATA'},
#     {'name': 'Bank Central Asia', 'code': 'BCA'}
# ]

Create Virtual Account Payment

from xenditclient import virtual_accounts

data = va_client.create(
    external_id="DS-INV-01", 
    bank_code=virtual_accounts.BNI, 
    name="Dwi Sulfahnur", 
)
"""
You can add the following additional options 
for the Virtual Account as arguments:
  - virtual_account_number: str // Optional
  - suggested_amount: int // Optional
  - is_closed: bool // Optional
  - expected_amount: int // Optional
  - expiration_date: UTC datetime // Optional
  - is_single_use: bool // Optional
  - description: str // Optional
"""

print(data)
# {
#     "is_closed": true,
#     "status": "PENDING",
#     "currency": "IDR",
#     "owner_id": "5efab44e31890e1415bb70e9",
#     "external_id": "ZICARE-01",
#     "bank_code": "MANDIRI",
#     "merchant_code": "88908",
#     "name": "Dwi Sulfahnur",
#     "account_number": "889089999000001",
#     "suggested_amount": 15500,
#     "expected_amount": 15500,
#     "is_single_use": true,
#     "expiration_date": "2051-07-27T17:00:00.000Z",
#     "id": "5f1fd5470af2e8475877ba21"
# }

Get Virtual Account Payment Detail

data = va_client.get_payment_detail("5f1fd5470af2e8475877ba21")
print(data)
# {
#     "is_closed": true,
#     "status": "PENDING",
#     "currency": "IDR",
#     "owner_id": "5efab44e31890e1415bb70e9",
#     "external_id": "ZICARE-01",
#     "bank_code": "MANDIRI",
#     "merchant_code": "88908",
#     "name": "Dwi Sulfahnur",
#     "account_number": "889089999000001",
#     "suggested_amount": 15500,
#     "expected_amount": 15500,
#     "is_single_use": true,
#     "expiration_date": "2051-07-27T17:00:00.000Z",
#     "id": "5f1fd5470af2e8475877ba21"
# }

Update Virtual Account Payment Detail

from datetime import datetime

data = va_client.update_payment_detail(
    payment_id="5f1fd5470af2e8475877ba21",
    suggested_amount=20000,
    expected_amount=20000,
    expiration_date=datetime(2020, 12, 31, 00, 00, 00).isoformat(),
    is_single_use=True,
    description="Subscription Payment",
)

print(data)
# {
#     "is_closed": true,
#     "status": "PENDING",
#     "currency": "IDR",
#     "owner_id": "5efab44e31890e1415bb70e9",
#     "external_id": "ZICARE-01",
#     "bank_code": "MANDIRI",
#     "merchant_code": "88908",
#     "name": "Dwi Sulfahnur",
#     "account_number": "889089999000001",
#     "suggested_amount": 20000,
#     "expected_amount": 20000,
#     "is_single_use": true,
#     "expiration_date": "2020-12-31T17:00:00.000Z",
#     "id": "5f1fd5470af2e8475877ba21",
#     "description": "Subscription Payment",
# }

Legal

Disclaimer: This library is not affliated with Xendit. This is an independent and unofficial Library.

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

xenditclient-0.0.5.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

xenditclient-0.0.5-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file xenditclient-0.0.5.tar.gz.

File metadata

  • Download URL: xenditclient-0.0.5.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.5

File hashes

Hashes for xenditclient-0.0.5.tar.gz
Algorithm Hash digest
SHA256 dd058520d7b00378db6d6587c497e4da70cbc146509c577bb79e21c708060355
MD5 b62ff0777e50c5e9c96e438310391e5c
BLAKE2b-256 a04192714f61202ef64dab3cbbe06590f0ce8b5cbeddaf6bda74e81571008436

See more details on using hashes here.

File details

Details for the file xenditclient-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: xenditclient-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.5

File hashes

Hashes for xenditclient-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 02852364fcbfc02be42ba3e11acde4722de28958db469c13de3670c7c8c555da
MD5 f6c36cb07fc2d47410d657b6f2699f19
BLAKE2b-256 280d201d764b84860fcb5b11cdc87b86466d7fdbe556ca9595c58f55246d8c6a

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