Access Tokens
Access tokens are scoped security credentials that authenticate API requests on behalf of the profile they're associated with. Each token carries a defined set of permissions that control which resources and actions it can access, giving you fine-grained control over what integrations are permitted to do.
{
"id": "tkn_123456",
"description": "string",
"permissions": [
{
"id": "tpm_12345",
"type": "string"
}
],
"created_by": "string",
"created_at": "date-time",
"expires_at": "date-time"
}Customers
Customers represent the individuals and businesses you bill through Paisr. Each customer record is scoped to your profile and carries the billing identity used across invoices, subscriptions, and payments. Customer records are isolated and share no data or relationship with customers belonging to other profiles.
{
"id": "cus_123456",
"name": "string",
"email": "string",
"phone": "string",
"default_currency": "string",
"billing_details": {
"line_1": "string",
"line_2": "string",
"city": "string",
"state": "string",
"zip_code": "string",
"country": "string"
},
"shipping_details": {
"name": "string",
"phone": "string",
"line_1": "string",
"line_2": "string",
"city": "string",
"state": "string",
"zip_code": "string",
"country": "string"
},
"metadata": {
"key": "value"
},
"session": {
"url": "https://portal.paisr.tech/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
"expires_at": "date-time"
},
"created_at": "date-time"
}Invoices
Invoices are structured billing documents that capture what a customer owes. They contain line items, applicable taxes, customer details, and a due date. Invoices can be created manually or generated automatically by a subscription at the start of each billing cycle.
{
"id": "inv_123456",
"sid": "number",
"subscription_id": "sub_123456",
"customer": {
"id": "cus_123456",
"name": "string",
"email": "string",
"billing_details": "object",
"shipping_details": "object"
},
"voucher": {
"id": "vch_123456",
"rate": "number"
},
"summary": "number",
"amount": {
"sub_total": "number",
"discount_total": "number",
"net_total": "number"
},
"status": "string",
"currency": "string",
"session": {
"url": "https://checkout.paisr.tech/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
"expires_at": "date-time"
},
"void_at": "date-time",
"due_at": "date-time",
"paid_at": "date-time",
"created_at": "date-time",
"line_items": [
{
"id": "itm_123456",
"description": "string",
"quantity": "number",
"total": {
"unit": "number",
"calculated": "number"
},
"created_at": "date-time"
}
]
}Subscriptions
Subscriptions automate recurring billing against a Plan. They manage the full billing lifecycle and generate invoices at the start of each period, handling payment retries on failure, and processing cancellations or upgrades when instructed.
{
"id": "sub_123456",
"customer": {
"id": "cus_123456",
"name": "string",
"email": "string",
"billing_details": "object"
},
"payment_method": {
"id": "cpm_123456",
"type": "string",
"provider": "string",
"metadata": {
"key": "string"
}
},
"status": "active",
"currency": "string",
"auto_renew": "boolean",
"billing_interval": "number",
"billing_start": "date-time",
"billing_end": "date-time",
"last_renew_at": "date-time",
"next_renew_at": "date-time",
"cancelled": "boolean",
"cancelled_at": "date-time",
"created_at": "date-time",
"line_items": [
{
"id": "stm_123456",
"title": "string",
"quantity": "number",
"option": {
"id": "plo_123456",
"plan_id": "pln_123456",
"available": "boolean",
"unit_price": "number"
},
"created_at": "date-time"
}
]
}Vouchers
Vouchers let you offer personalised discounts to specific customers. They support fixed-amount or percentage-based reductions, can be scoped to a defined timeframe, and applied to invoices before or during checkout.
{
"id": "vch_123456",
"description": "string",
"code": "string",
"amount": "number",
"redeems": {
"count": "number",
"max": "number"
},
"archived": "boolean",
"created_at": "date-time",
"expires_at": "date-time"
}Plans
Plans are the foundation for launching recurring business models with Paisr. They act as reusable templates referenced when creating subscriptions, carrying the general details of your offering. Pricing configuration is delegated to each Plan's associated Price Options, keeping the Plan itself clean and composable.
{
"id": "pln_123456",
"title": "string",
"summary": "string",
"type": "string",
"currency": "string",
"created_at": "date-time",
"options": [
{
"id": "plo_123456",
"description": "Monthly",
"active": "boolean",
"unit_price": "number",
"billing_interval": "number",
"subscribers": "number",
"attributes": {
"key": "value"
},
"created_at": "date-time"
}
]
}Payments
Payments represent the act of receiving funds through any Paisr-supported method — wallets, cards, QR codes, and more. Each successful payment generates a record that's optionally tied to an invoice, providing a full audit trail of how and when a charge was settled.
{
"id": "pmt_123456",
"sid": "number",
"invoice_id": "inv_123456",
"description": "string",
"currency": "string",
"status": "string",
"payment_method": {
"type": "string",
"provider": "string",
"metadata": {
"key": "string"
}
},
"amount": {
"sub_total": "number",
"tax": {
"rate": "number",
"type": "string",
"total": "number"
},
"due_total": "number",
"fee_total": "number",
"output_total": "number"
},
"billing_details": "object",
"notes": "string",
"metadata": {
"key": "string"
},
"initiated_at": "date-time",
"approved_at": "date-time",
"settled_at": "date-time",
"cancelled_at": "date-time",
"cancelled_by": "date-time",
"reversed_at": "date-time",
"reversed_by": "date-time",
"est_settlement_at": "date-time"
}Payment Providers
Payment Providers are third-party integrations like banks, mobile money operators, and similar services that you connect to Paisr. They give you access to local payment rails and allow you to accept funds through those channels via a single, unified API layer.
{
"id": "bpc_123456",
"name": "string",
"summary": "string",
"description": "string",
"logo": "string",
"method": "string",
"slug": "string",
"available": true,
"external": true,
"config": {
"type": "string",
"status": "string",
"fee_strategy": {
"type": "string",
"interchange": {
"fee_type": "string",
"fee_amount": "number",
"fee_cap": "number"
}
},
"metadata": {
"key": "string"
}
},
"attributes": {
"min_amount": "number",
"max_amount": "number",
"allows_recurring": "boolean",
"allows_refunds": "boolean",
"allows_disputes": "boolean",
"confirmation_window": "string",
"supported_currencies": ["string"]
},
"created_at": "date-time"
}Static Pages
A static page is a dynamic payment page that can be used to accept one-off payments without having to create an invoice first.
{
"id": "stp_123456",
"description": "string",
"fields": {
"key": "boolean"
},
"session": {
"url": "https://page.paisr.tech/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
"expires_at": "date-time"
},
"created_at": "date-time"
}Wallets
A Multi-Currency Wallet is the foundation for managing money in Paisr. It is linked to your profile and acts as the parent container for your financial tools such as Virtual Balances, Connected Accounts, Contacts, and more. All monetary activity in Paisr flows through a wallet.
{
"id": "buw_123456",
"beneficiary": {
"name": "string",
"email": "string"
},
"profile": {
"nickname": "string",
"cashtag": "string",
"preview_url": "string",
"public": "boolean"
},
"pin": {
"is_set": "boolean",
"updated_at": "date-time"
},
"icon": "string",
"title": "string",
"locked": "boolean",
"default": "boolean",
"type": "string",
"sub_type": "string",
"usage": {
"transfers": {
"current": "number",
"max": "number"
},
"deposits": {
"current": "number",
"max": "number"
},
"withdrawals": {
"current": "number",
"max": "number"
},
"resets_at": "date-time"
},
"created_at": "date-time"
}Wallet Balances
A Virtual Balance is a currency-denominated account held within a Wallet. It stores the monetary value for a specific currency and behaves like a simplified bank account, but does not provide access to IBANs or credit facilities. Each wallet can hold multiple balances across different currencies.
{
"id": "bca_123456",
"title": "string",
"currency": "string",
"balance": {
"running": "number",
"holding": "number"
},
"frozen": "boolean",
"type": "string",
"treasurer": {
"name": "string",
"iban": "string",
"type": "string",
"bank": {
"name": "string",
"swift": "string"
}
},
"created_at": "date-time"
}Wallet Accounts
A Connected Account is an owned bank account linked to your Paisr Wallet. Connecting an account enables you to withdraw funds from your wallet directly to your local bank, bridging your Paisr balance with the broader financial system.
{
"id": "cwa_123456",
"account_holder": "string",
"account_number": "string",
"routing_number": "string",
"account_type": "string",
"currency": "string",
"verified": "boolean",
"bank": {
"name": "string",
"swift_code": "string"
},
"created_at": "date-time"
}Wallet Contacts
Contacts are individuals or businesses you know or frequently send money to. Saving a contact lets you reference them quickly in transfer flows without re-entering their details each time.
{
"id": "fav_123456",
"full_name": "string",
"nickname": "string",
"cashtag": "string",
"avatar": "string",
"created_at": "date-time"
}Statements
Statements are periodic reports summarising the transactions performed by your wallet over a given period. They provide a consolidated view of your activity and can be used for record-keeping and reconciliation.
{
"id": "wst_123456",
"timeline": "string",
"source": "string",
"created_at": "date-time"
}Transactions
Transactions are the immutable historical records of all monetary movements associated with a wallet. Each transaction captures detailed metadata including the amount, currency, source or destination, and transfer method, forming the complete activity ledger for your wallet.
Outbound Transaction
{
"id": "tra_123456",
"type": "debit",
"method": "string",
"status": "string",
"destination": {
"name": "string"
},
"quote": {
"base": {
"total": "number",
"currency": "string"
},
"tax": {
"collected": "boolean",
"country": "string",
"type": "string",
"rate": "number",
"total": "number"
},
"fee": {
"conversion": {
"rate": "number",
"total": "number"
},
"interchange": {
"rate": "number",
"total": "number"
},
"total": "number"
},
"due": {
"total": "number",
"currency": "string"
},
"conversion": {
"input": "number",
"from": "string",
"to": "string",
"rate": "number",
"total": "number"
},
"output": {
"total": "number",
"currency": "string"
}
},
"reference": "string",
"balance_before": "number",
"balance_after": "number",
"created_at": "date-time",
"processed_at": "date-time"
}Inbound Transaction
{
"id": "tra_123456",
"type": "credit",
"method": "string",
"status": "string",
"source": {
"name": "string"
},
"quote": {
"output": {
"total": "number",
"currency": "string"
}
},
"reference": "string",
"balance_before": "number",
"balance_after": "number",
"created_at": "date-time",
"processed_at": "date-time"
}Webhooks
Webhooks are pre-configured URLs that receive real-time notifications when events occur in your profile. Rather than polling the API for updates, you register an endpoint and Paisr pushes a signed payload to it the moment a relevant event is triggered.
{
"id": "whk_123456",
"description": "string",
"endpoint": "string",
"paused": "boolean",
"triggers": [
{
"id": "wtr_12345",
"type": "string"
}
],
"created_at": "date-time",
"created_by": "string"
}Webhook Events
Whenever a webhook event is triggered, Paisr sends a payload to the configured endpoint.
{
"id": "wev_123456",
"body": {
"id": "string",
"event": "string"
},
"type": "string",
"status": "string",
"can_retry": "boolean",
"retry_count": "number",
"next_retry_at": "date-time",
"last_retry_at": "date-time",
"created_at": "date-time"
}