Transactions Module
This wrapper class facilitates synchronous integration with Paystack Transactions API. The Transactions API allows you to create and manage payments on your integration.
Note
You can use convert_currency() to convert to subunit. Authorization code are generated upon a successful card transaction.
- class TransactionClientAPI(secret_key: str = None)
Paystack Transaction API Reference: Transaction
- charge_authorization(email: str, amount: int, authorization_code: str, reference: str | None = None, currency: str | None = None, channels: List[str] | None = None, subaccount: str | None = None, transaction_charge: int | None = None, bearer: str | None = None, queue: bool | None = None, metadata: Dict[str, List[Dict[str, Any]]] | None = None)→ PayStackResponse
Charge an authorization transaction
- Parameters:
email (str) – The email of the customer
amount (int) – amount should be in subunit in this case 10000 kobo = 100 naira.
authorization_code (str) – Value: AUTH***************RW2
reference (str, optional) – This is a unique reference.
currency (str, optional)
channels (list, optional) –
Channels.value.valuesubaccount (str, optional)
transaction_charge (int, optional) – Amount of transaction charge to charge
bearer (str, optional) – Who bears Paystack charges? Two options:
account|subaccountqueue (bool, optional) – If set to true, the transaction will be queued for processing
metadata (Dict[str, List[Dict[str, Any]]]) – JSON object of custom data.
- Returns:
The response from the API
- Return type:
PayStackResponse object
- export_transactions(per_page: int | None = 50, page: int | None = 1, customer: int | None = None, currency: str | None = None, amount: int | None = None, status: str | None = None, settled: bool | None = None, settlement: int | None = None, payment_page: int | None = None, from_date: date | None = None, to_date: date | None = None)→ PayStackResponse
Export transactions
- Parameters:
per_page (int, optional) – The number of transaction records to return per page.
page (int, optional) – The page to return.
customer (str, optional)
currency (str, optional)
amount (int, optional)
status (str, optional)
settled (bool,optional)
settlement (int, optional)
payment_page (int, optional)
from_date (date, optional) – The customer’s from date.
to_date (date, optional) – The customer’s to date.
- Returns:
The response from the API
- Return type:
PayStackResponse object
- fetch_transaction(transaction_id: int)→ PayStackResponse
Fetch details of a specific transaction
- Parameters:
transaction_id (int) – ID of the transaction
- Returns:
The response from the API
- Return type:
PayStackResponse object
- initialize(email: str, amount: int, currency: str | None = None, reference: str | None = None, callback_url: str | None = None, plan: str | None = None, invoice_limit: int | None = None, channels: List[str] | None = None, split_code: str | None = None, subaccount: str | None = None, transaction_charge: int | None = None, bearer: str | None = None, metadata: Dict[str, Any] | None = None)→ PayStackResponse
Initiate a transaction
- Parameters:
email (str)
amount (int)
currency (str, optional)
reference (str, optional) – This is a unique identifier. You can create of your choice
callback_url (str, optional) – Use this to override the callback url provided on the dashboard: https://example.com/callback
plan (str, optional) – If transaction is to create a subscription to a predefined plan, provide plan code here.
invoice_limit (int, optional) – Number of times to charge customer during subscription to plan
channels (list, optional) –
Channels.value.valuesplit_code (str, optional) – Transaction split code
subaccount (str, optional) – The code for the subaccount that owns the payment.
transaction_charge (str, optional) – An amount used to override the split configuration for a # single split payment
bearer (str, optional) – Who bears Paystack charges? Two options are (
account|subaccount)
- Metadata:
JSON object of the custom data
- Returns:
The response from the API
- Return type:
PayStackResponse object
- list_transactions(per_page: int | None = 50, page: int | None = 1, customer: int | None = None, terminal_id: str | None = None, amount: int | None = None, status: str | None = None, from_date: date | None = None, to_date: date | None = None)→ PayStackResponse
List all transactions
- Parameters:
per_page (int, optional) – The number of transaction records to return per page.
page (int, optional) – The page to return.
customer (str, optional) – Specify an ID for the customer whose transactions you want to retrieve
terminal_id – Specify an ID for the terminal whose transactions you want to retrieve
amount (int, optional)
status (str, optional) – Specify a status for the transactions you want to retrieve [
success,failed,abandoned]from_date (date, optional) – A timestamp from which to start listing transaction
to_date (date, optional) – A timestamp at which to stop listing transaction
- Returns:
The response from the API
- Return type:
PayStackResponse object
- partial_debit(email: str, authorization_code: str, amount: int, currency: str, reference: str | None = None, at_least: int | None = None)→ PayStackResponse
Charge a partial debit transaction
- Parameters:
email (str) – The email of the customer
amount (int) – amount should be in subunit in this case 10000 kobo = 100 naira.
authorization_code (str) – Value: AUTH***************RW2
reference (str, optional) – This is a unique reference.
currency (str, optional)
at_least (int, optional) – Minimum amount to charge
- Returns:
The response from the API
- Return type:
PayStackResponse object
- transaction_timeline(id_or_reference: str)→ PayStackResponse
Get the timeline of a transaction
- Parameters:
id_or_reference – The id or reference of the transaction you want to get
- Returns:
The response from the API
- Return type:
PayStackResponse object
- transaction_totals(per_page: int | None = 50, page: int | None = 1, from_date: date | None = None, to_date: date | None = None)→ PayStackResponse
Get total of all transactions
- Parameters:
per_page (int, optional) – The number of transaction records to return per page. (default: 50)
page (int, optional) – The page to return. (default: 1)
from_date (date, optional) – A timestamp from which to start listing transaction
to_date (date, optional) – A timestamp at which to stop listing transaction
- Returns:
The response from the API
- Return type:
PayStackResponse object
- verify_transaction(reference: str)→ PayStackResponse
Verify a transaction by reference
- Parameters:
reference (str)
- Returns:
The response from the API
- Return type:
PayStackResponse object
You can use the tool kit in the helpers module as reference: Tool kit module