openapi: 3.0.3 info: title: Paisr version: 2.1.1 description: Paisr is the payment infrastructure for the Caribbean. servers: - url: https://api.live.paisr.tech/{version} description: Live Server variables: version: default: v2 enum: - v2 description: API version - url: https://api.staging.paisr.tech/{version} description: Staging Server variables: version: default: v2 enum: - v2 description: API version security: - bearerAuth: [] tags: - name: Profiles description: Manage your personal or business profile details, documents, addresses and other resources. - name: Tokens description: Create, manage, and revoke profile access tokens securely. - name: Webhooks description: Configure, test, and monitor webhooks for real-time updates. - name: Members description: Manage business profile members, including invites and updates. - name: Wallets description: Create and manage digital wallets, connected accounts, and transactions. - name: Balances description: Monitor and manage wallet balances and associated transactions. - name: Transactions description: Manage wallet transactions. - name: Transfers description: Initiate and manage peer-to-peer, bank, or batch transfers. - name: Invoices description: Generate, send, and manage invoices. - name: Subscriptions description: Create and manage subscriptions. - name: Customers description: Manage customer profiles, addresses, and other resources. - name: Vouchers description: Create, manage, and track usage of discounts. - name: Plans description: Create and manage billing plans. - name: Payments description: Manage, collect and process payments. - name: Provider Connections description: Manage built-in and external payment provider connections. - name: Analytics description: Access analytic metrics on resources. - name: Logs description: Access API activity logs. - name: Resources description: Access publicly available resources and metadata. paths: /profiles: get: tags: - Profiles summary: Get Profile description: Fetch profile information. responses: "200": description: Successfully retrieved profile. content: application/json: schema: type: object properties: success: type: boolean example: true data: oneOf: - $ref: "#/components/schemas/BusinessProfile" - $ref: "#/components/schemas/PersonalProfile" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" put: tags: - Profiles summary: Update Profile description: Modify profile information. requestBody: description: The details required to update your profile. required: true content: application/json: schema: oneOf: - $ref: "#/components/schemas/PutBusinessProfileRequest" - $ref: "#/components/schemas/PutPersonalProfileRequest" responses: "200": description: Successfully updated profile details. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" patch: tags: - Profiles summary: Submit Application description: Submit your profile for approval. responses: "200": description: Application submitted successfully. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /profiles/status: get: tags: - Profiles summary: Get Status description: Fetch profile verification status. responses: "200": description: Successfully retrieved profile information. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/ProfileVerificationStatus" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /profiles/domain: put: tags: - Profiles summary: Update Domain description: Modify custom domain. (Business Only) requestBody: description: The details required to setup your domain. required: true content: application/json: schema: $ref: "#/components/schemas/PutBusinessDomainRequest" responses: "200": description: Successfully updated domain. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /profiles/identity: put: tags: - Profiles summary: Update Identity description: Modify identity information. (Business Only) requestBody: description: The details required to update business identity. required: true content: application/json: schema: $ref: "#/components/schemas/PutBusinessIdentityRequest" responses: "200": description: Successfully updated business identity. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /profiles/documents: get: tags: - Profiles summary: Get Documents description: Fetch a list of uploaded documents. responses: "200": description: Successfully retrieved the list of profile documents. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: documents: type: array items: $ref: "#/components/schemas/ProfileDocument" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /profiles/owners: get: tags: - Profiles summary: Get Owners description: Fetch a list of beneficial owners. (Business Only) responses: "200": description: Successfully retrieved the list of beneficial owners. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: owners: type: array items: $ref: "#/components/schemas/BusinessOwner" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Profiles summary: Add Owner description: Add a new beneficial owner. (Business Only) requestBody: description: The details required to add a beneficial owner to your business profile. required: true content: application/json: schema: $ref: "#/components/schemas/PostBusinessOwnerRequest" responses: "200": description: Successfully created beneficial owner. content: application/json: schema: $ref: "#/components/schemas/DataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /profiles/owners/{owner_id}: put: tags: - Profiles summary: Update Owner description: Modify benficial owner information. (Business Only) parameters: - name: owner_id in: path required: true schema: type: string description: The Owner ID. pattern: "^bow_.*$" requestBody: description: The details required to update the beneficial owner. required: true content: application/json: schema: $ref: "#/components/schemas/PutBusinessOwnerRequest" responses: "200": description: Successfully updated beneficial owner. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Profiles summary: Remove Owner description: Remove a beneficial owner. (Business Only) parameters: - name: owner_id in: path required: true schema: type: string description: The Owner ID. pattern: "^bow_.*$" responses: "200": description: Successfully removed beneficial owner from profile. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /profiles/members: get: tags: - Members summary: Get Members description: Fetch a list of members. (Business Only) responses: "200": description: Successfully retrieved the list of members. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: members: type: array items: $ref: "#/components/schemas/BusinessMember" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Members summary: Invite Member description: Invite a member to your profile. (Business Only) requestBody: description: The details required to invite a member to your business profile. required: true content: application/json: schema: $ref: "#/components/schemas/PostBusinessMemberRequest" responses: "200": description: Successfully invited member. content: application/json: schema: $ref: "#/components/schemas/DataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /profiles/members/{member_id}: get: tags: - Members summary: Get Member description: Fetch member information. (Business Only) parameters: - name: member_id in: path required: true schema: type: string description: The Member ID. pattern: "^tem_.*$" responses: "200": description: Successfully retrieved the member details. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/BusinessMember" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" put: tags: - Members summary: Update Member description: Modify member information. (Business Only) parameters: - name: member_id in: path required: true schema: type: string description: The Member ID. pattern: "^tem_.*$" requestBody: description: The details required to update the team member. required: true content: application/json: schema: $ref: "#/components/schemas/PutBusinessMemberRequest" responses: "200": description: Successfully updated team member. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Members summary: Remove Member description: Remove a member from your profile. (Business Only) parameters: - name: member_id in: path required: true schema: type: string description: The Member ID. pattern: "^tem_.*$" responses: "200": description: Successfully removed team member. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /profiles/addresses: get: tags: - Profiles summary: Get Addresses description: Fetch a list of registered addresses. responses: "200": description: Successfully retrieved the list of profile addresses. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: addresses: type: array items: $ref: "#/components/schemas/ProfileAddress" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Profiles summary: Add Address description: Add a new address. requestBody: description: The details required to create a profile address. required: true content: application/json: schema: $ref: "#/components/schemas/PostProfileAddressRequest" responses: "200": description: Successfully created profile address. content: application/json: schema: $ref: "#/components/schemas/DataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /profiles/addresses/{address_id}: put: tags: - Profiles summary: Update Address description: Modify address information. parameters: - name: address_id in: path required: true schema: type: string description: The Address ID. pattern: "^adr_.*$" requestBody: description: The details required to update the profile address. required: true content: application/json: schema: $ref: "#/components/schemas/PutProfileAddressRequest" responses: "200": description: Successfully updated profile address. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Profiles summary: Remove Address description: Remove an address. (Only available on `unverified` addresses) parameters: - name: address_id in: path required: true schema: type: string description: The Address ID. pattern: "^adr_.*$" responses: "200": description: Successfully removed profile address. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /access-tokens: get: tags: - Tokens summary: Get Tokens description: Fetch a list of access tokens. responses: "200": description: Successfully retrieved the list of profile access tokens. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: tokens: type: array items: $ref: "#/components/schemas/AccessToken" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Tokens summary: Create Token description: Generate a new access token. requestBody: description: The details required to create an access token. required: true content: application/json: schema: $ref: "#/components/schemas/PostAccessTokenRequest" responses: "200": description: Successfully created token. content: application/json: schema: $ref: "#/components/schemas/TokenResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /access-tokens/{token_id}: get: tags: - Tokens summary: Get Token description: Fetch token information. parameters: - name: token_id in: path required: true schema: type: string description: The Token ID. pattern: "^tkn_.*$" responses: "200": description: Successfully retrieved token details. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/AccessToken" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" put: tags: - Tokens summary: Update Token description: Modify token information. parameters: - name: token_id in: path required: true schema: type: string description: The Token ID. pattern: "^tkn_.*$" requestBody: description: The details required to update the token. required: true content: application/json: schema: $ref: "#/components/schemas/PutAccessTokenRequest" responses: "200": description: Successfully updated token. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Tokens summary: Revoke Token description: Revoke a token's access. parameters: - name: token_id in: path required: true schema: type: string description: The Token ID. pattern: "^tkn_.*$" responses: "200": description: Successfully revoked token. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /access-tokens/{token_id}/permissions: post: tags: - Tokens summary: Add Permission description: Grant additional permissions to a token. parameters: - name: token_id in: path required: true schema: type: string description: The Token ID. pattern: "^tkn_.*$" requestBody: description: The details required to add a permissio. required: true content: application/json: schema: $ref: "#/components/schemas/PostAccessTokenPermissionRequest" responses: "200": description: Successfully added permissions. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /access-tokens/{token_id}/permissions/{permission_id}: delete: tags: - Tokens summary: Remove Permission description: Remove a permission from a token. parameters: - name: token_id in: path required: true schema: type: string description: The Token ID. pattern: "^tkn_.*$" - name: permission_id in: path required: true schema: type: string description: The Permission ID. pattern: "^tpm_.*$" responses: "200": description: Successfully removed permission. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /webhooks: get: tags: - Webhooks summary: Get Webhooks description: Fetch a list of webhooks. responses: "200": description: Successfully retrieved the list of profile webhooks. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: webhooks: type: array items: $ref: "#/components/schemas/Webhook" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Webhooks summary: Create Webhook description: Create a new webhook. requestBody: description: The details required to create a webhook. required: true content: application/json: schema: $ref: "#/components/schemas/PostWebhookRequest" responses: "200": description: Successfully created webhook. content: application/json: schema: $ref: "#/components/schemas/DataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /webhooks/{webhook_id}: get: tags: - Webhooks summary: Get Webhook description: Fetch webhook information. parameters: - name: webhook_id in: path required: true schema: type: string description: The Webhook ID. pattern: "^whk_.*$" responses: "200": description: Successfully retrieved webhook details. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/Webhook" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" put: tags: - Webhooks summary: Update Webhook description: Modify webhook information. parameters: - name: webhook_id in: path required: true schema: type: string description: The Webhook ID. pattern: "^whk_.*$" requestBody: description: The details required to update the webhook. required: true content: application/json: schema: $ref: "#/components/schemas/PutWebhookRequest" responses: "200": description: Successfully updated webhook. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" patch: tags: - Webhooks summary: Modify Webhook description: Activate or deactivate webhook. parameters: - name: webhook_id in: path required: true schema: type: string description: The Webhook ID. pattern: "^whk_.*$" responses: "200": description: Successfully updated webhook. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Webhooks summary: Remove Webhook description: Remove a webhook. parameters: - name: webhook_id in: path required: true schema: type: string description: The Webhook ID. pattern: "^whk_.*$" responses: "200": description: Successfully removed webhook. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /webhooks/{webhook_id}/test: post: tags: - Webhooks summary: Test Webhook description: Simulate a test event. parameters: - name: webhook_id in: path required: true schema: type: string description: The Webhook ID. pattern: "^whk_.*$" responses: "200": description: Successfully triggered test event. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /webhooks/{webhook_id}/stats: get: tags: - Webhooks summary: Get Stats description: Fetch webhook performace metrics. parameters: - name: webhook_id in: path required: true schema: type: string description: The Webhook ID. pattern: "^whk_.*$" responses: "200": description: Successfully retrieved webhook stats. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object $ref: "#/components/schemas/WebhookStats" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /webhooks/{webhook_id}/secret: get: tags: - Webhooks summary: Get Secret description: Fetch webhook secret. parameters: - name: webhook_id in: path required: true schema: type: string description: The Webhook ID. pattern: "^whk_.*$" responses: "200": description: Successfully retrieved webhook secret. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/WebhookSecret" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" patch: tags: - Webhooks summary: Rotate Secret description: Rotate webhook secret. parameters: - name: webhook_id in: path required: true schema: type: string description: The Webhook ID. pattern: "^whk_.*$" responses: "200": description: Successfully rotated webhook secret. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /webhooks/{webhook_id}/triggers: post: tags: - Webhooks summary: Add Trigger description: Add additional triggers to a webhook. parameters: - name: webhook_id in: path required: true schema: type: string description: The Webhook ID. pattern: "^whk_.*$" requestBody: description: The details required to add a trigger. required: true content: application/json: schema: $ref: "#/components/schemas/PostWebhookTriggerRequest" responses: "200": description: Successfully added permissions. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /webhooks/{webhook_id}/triggers/{trigger_id}: delete: tags: - Webhooks summary: Remove Trigger description: Remove a trigger from a webhook. parameters: - name: webhook_id in: path required: true schema: type: string description: The Webhook ID. pattern: "^whk_.*$" - name: trigger_id in: path required: true schema: type: string description: The Trigger ID. pattern: "^wtr_.*$" responses: "200": description: Successfully removed trigger. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /webhooks/{webhook_id}/events: get: tags: - Webhooks summary: Get Events description: Fetch a list of webhook events. parameters: - name: webhook_id in: path required: true schema: type: string description: The Webhook ID. pattern: "^whk_.*$" responses: "200": description: Successfully retrieved the list of webhook events. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: events: type: array items: $ref: "#/components/schemas/WebhookEvent" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /webhooks/{webhook_id}/events/{event_id}: post: tags: - Webhooks summary: Retry Event description: Resend a failed webhook event. parameters: - name: webhook_id in: path required: true schema: type: string description: The Webhook ID. pattern: "^whk_.*$" - name: event_id in: path required: true schema: type: string description: The Event ID. pattern: "^wev_.*$" responses: "200": description: Successfully processed event. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets: get: tags: - Wallets summary: Get Wallets description: Fetch a list of wallets. responses: "200": description: Successfully retrieved the list of walllets. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: wallets: type: array items: $ref: "#/components/schemas/Wallet" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Wallets summary: Create Wallet description: Create a new wallet. requestBody: description: The details required to create a wallet. required: true content: application/json: schema: $ref: "#/components/schemas/PostWalletRequest" responses: "200": description: Successfully created wallet. content: application/json: schema: $ref: "#/components/schemas/DataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets/{wallet_id}: get: tags: - Wallets summary: Get Wallet description: Fetch wallet information. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" responses: "200": description: Successfully retrieved wallet details. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/Wallet" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" put: tags: - Wallets summary: Update Profile description: Modify wallet profile information. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" requestBody: description: The details required to update the wallet profile. required: true content: application/json: schema: $ref: "#/components/schemas/PutWalletRequest" responses: "200": description: Successfully updated wallet profile. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" patch: tags: - Wallets summary: Update Wallet description: Modify wallet information. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" requestBody: description: The details required to update a wallet. required: true content: application/json: schema: $ref: "#/components/schemas/PatchWalletRequest" responses: "200": description: Successfully updated wallet. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Wallets summary: Delete Wallet description: Remove a wallet from your profile. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" responses: "200": description: Successfully removed wallet. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets/{wallet_id}/pin: get: tags: - Wallets summary: Get PIN description: Fetch wallet PIN. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" responses: "200": description: Successfully retrieved wallet PIN. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/WalletPin" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" patch: tags: - Wallets summary: Rotate PIN description: Rotate wallet PIN. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" responses: "200": description: Successfully rotated wallet PIN. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets/{wallet_id}/statements: get: tags: - Wallets summary: Get Statements description: Fetch a list of generated wallet statements. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" responses: "200": description: Successfully retrieved the list of wallet statements. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: statements: type: array items: $ref: "#/components/schemas/WalletStatement" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets/{wallet_id}/transactions: get: tags: - Transactions summary: Get Transactions description: Fetch a list of wallet transactions. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" - name: balance_id in: query required: false schema: type: string description: The ID of the balance you want to filter based on. - name: status in: query required: false schema: type: string enum: - pending - processing - settled - requires-approval - cancelled description: The status of the transactions you want to filter based on. - name: type in: query required: false schema: type: string enum: - debit - credit description: The type of the transactions you want to filter based on. - name: method in: query required: false schema: type: string enum: - P2P - A2A - TopUp - Payout - EcomPay description: The method of the transactions you want to filter based on. responses: "200": description: Successfully retrieved the list of wallet transactions. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: transactions: type: array items: oneOf: - $ref: "#/components/schemas/WalletOutboundTransaction" - $ref: "#/components/schemas/WalletInboundTransaction" - $ref: "#/components/schemas/WalletPayTransaction" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets/{wallet_id}/transactions/{transaction_id}: get: tags: - Transactions summary: Get Transaction description: Fetch transaction information. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" - name: transaction_id in: path required: true schema: type: string description: The Transaction ID. pattern: "^tra_.*$" responses: "200": description: Successfully retrieved transaction details. content: application/json: schema: type: object properties: success: type: boolean example: true data: oneOf: - $ref: "#/components/schemas/WalletOutboundTransaction" - $ref: "#/components/schemas/WalletInboundTransaction" - $ref: "#/components/schemas/WalletPayTransaction" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets/{wallet_id}/balances: get: tags: - Balances summary: Get Balances description: Fetch a list of wallet balances. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" responses: "200": description: Successfully retrieved the list of wallet balances. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: balances: type: array items: $ref: "#/components/schemas/WalletBalance" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Balances summary: Open Balance description: Open a new wallet balance. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" requestBody: description: The details required to create a balance. required: true content: application/json: schema: $ref: "#/components/schemas/PostWalletBalanceRequest" responses: "200": description: Successfully created wallet balance. content: application/json: schema: $ref: "#/components/schemas/DataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets/{wallet_id}/balances/{balance_id}: get: tags: - Balances summary: Get Balance description: Fetch balance information. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" - name: balance_id in: path required: true schema: type: string description: The Balance ID. pattern: "^(bca_|ica_).*" responses: "200": description: Successfully retrieved wallet balance details. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/WalletBalance" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" put: tags: - Balances summary: Update Balance description: Modify balance information. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" - name: balance_id in: path required: true schema: type: string description: The Balance ID. pattern: "^(bca_|ica_).*" requestBody: description: The details required to update the wallet balance. required: true content: application/json: schema: $ref: "#/components/schemas/PutWalletBalanceRequest" responses: "200": description: Successfully updated wallet balance. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Balances summary: Close Balance description: Permanently close a balance. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" - name: balance_id in: path required: true schema: type: string description: The Balance ID. pattern: "^(bca_|ica_).*" responses: "200": description: Successfully removed wallet balance. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets/{wallet_id}/accounts: get: tags: - Wallets summary: Get Accounts description: Fetch a list of wallet accounts parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" responses: "200": description: Successfully retrieved the list of wallet accounts. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: accounts: type: array items: $ref: "#/components/schemas/WalletAccount" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Wallets summary: Connect Account description: Connect a new bank account. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" requestBody: description: The details required to connect a bank account. required: true content: application/json: schema: $ref: "#/components/schemas/PostWalletAccountRequest" responses: "200": description: Successfully created wallet account. content: application/json: schema: $ref: "#/components/schemas/DataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets/{wallet_id}/accounts/{account_id}: get: tags: - Wallets summary: Get Account description: Fetch account information. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" - name: account_id in: path required: true schema: type: string description: The Account ID. pattern: "^cwa_.*$" responses: "200": description: Successfully retrieved wallet account details. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/WalletAccount" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" patch: tags: - Wallets summary: Verify Account description: Verify account ownership. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" - name: account_id in: path required: true schema: type: string description: The Account ID. pattern: "^cwa_.*$" requestBody: description: The details required to verify a wallet account. required: true content: application/json: schema: $ref: "#/components/schemas/PatchWalletAccountRequest" responses: "200": description: Successfully verified wallet account. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Wallets summary: Remove Account description: Permanently remove a connected account. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" - name: account_id in: path required: true schema: type: string description: The Account ID. pattern: "^cwa_.*$" responses: "200": description: Successfully removed wallet account. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets/{wallet_id}/contacts: get: tags: - Wallets summary: Get Contacts description: Fetch a list of wallet contacts. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" responses: "200": description: Successfully retrieved the list of wallet contacts. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: contacts: type: array items: $ref: "#/components/schemas/WalletContact" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Wallets summary: Add Contact description: Create a new wallet contact. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" requestBody: description: The details required to add a contact. required: true content: application/json: schema: $ref: "#/components/schemas/PostWalletContactRequest" responses: "200": description: Successfully created wallet contact. content: application/json: schema: $ref: "#/components/schemas/DataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets/{wallet_id}/contacts/{contact_id}: get: tags: - Wallets summary: Get Contact description: Fetch contact information. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" - name: contact_id in: path required: true schema: type: string description: The Contact ID. pattern: "^fav_.*$" responses: "200": description: Successfully retrieved wallet contact details. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/WalletContact" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Wallets summary: Remove Contact description: Permanently delete a contact. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" - name: contact_id in: path required: true schema: type: string description: The Contact ID. pattern: "^fav_.*$" responses: "200": description: Successfully removed wallet contact. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets/{wallet_id}/links: get: tags: - Wallets summary: Get Links description: Fetch a list of wallet payment links. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" responses: "200": description: Successfully retrieved the list of wallet payment links. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: links: type: array items: $ref: "#/components/schemas/WalletPaymentLink" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Wallets summary: Create Link description: Create a new payment link. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" requestBody: description: The details required to create a payment link. required: true content: application/json: schema: $ref: "#/components/schemas/PostWalletPaymentLinkRequest" responses: "200": description: Successfully created payment link. content: application/json: schema: $ref: "#/components/schemas/DataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /wallets/{wallet_id}/links/{link_id}: get: tags: - Wallets summary: Get Link description: Fetch payment link information. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" - name: link_id in: path required: true schema: type: string description: The Payment Link ID. pattern: "^wpr_.*$" responses: "200": description: Successfully retrieved payment link details. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/WalletPaymentLink" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" put: tags: - Wallets summary: Update Link description: Modify payment link information. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" - name: link_id in: path required: true schema: type: string description: The Payment Link ID. pattern: "^wpr_.*$" requestBody: description: The details required to update a payment link. required: true content: application/json: schema: $ref: "#/components/schemas/PutWalletPaymentLinkRequest" responses: "200": description: Successfully updated payment link. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Wallets summary: Remove Link description: Permanently delete a payment link. parameters: - name: wallet_id in: path required: true schema: type: string description: The Wallet ID. pattern: "^(buw_|inw_).*" - name: link_id in: path required: true schema: type: string description: The Payment Link ID. pattern: "^wpr_.*$" responses: "200": description: Successfully removed wallet payment link. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /transfers/initiate/{method}: post: tags: - Transfers summary: Initiate Transfer description: Start a transfer operation. parameters: - name: method in: path required: true schema: type: string enum: - peer - move - bank - batch description: The Transfer Method. requestBody: description: The details required to initiate the transfer. required: true content: application/json: schema: oneOf: - $ref: "#/components/schemas/PostPeerTransferRequest" - $ref: "#/components/schemas/PostBankTransferRequest" - $ref: "#/components/schemas/PostMoveTransferRequest" - $ref: "#/components/schemas/PostBatchTransferRequest" responses: "200": description: Successfully initiated transfer. content: application/json: schema: oneOf: - $ref: "#/components/schemas/TransferResponse" - $ref: "#/components/schemas/TransferBatchResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /transfers/{transaction_id}/approve: post: tags: - Transfers summary: Approve Transfer description: Approve a transfer operation. parameters: - name: transaction_id in: path required: true schema: type: string description: The Transaction ID. pattern: "^tra_.*$" requestBody: description: The details required to approve a transfer. required: true content: application/json: schema: $ref: "#/components/schemas/PostApproveTransferRequest" responses: "200": description: Successfully approved transfer. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /transfers/{transaction_id}/cancel: post: tags: - Transfers summary: Cancel Transfer description: Cancel a transfer operation. parameters: - name: transaction_id in: path required: true schema: type: string description: The Transaction ID. pattern: "^tra_.*$" requestBody: description: The details required to cancel a transfer. required: true content: application/json: schema: $ref: "#/components/schemas/PostCancelTransferRequest" responses: "200": description: Successfully canceled transfer. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /customers: get: tags: - Customers summary: Get Customers description: Fetch a list of customers. (Business Only) responses: "200": description: Successfully retrieved the list of customers. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: customers: type: array items: $ref: "#/components/schemas/Customer" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Customers summary: Add Customer description: Add a new customer. (Business Only) requestBody: description: The details required to create a customer. required: true content: application/json: schema: $ref: "#/components/schemas/PostCustomerRequest" responses: "200": description: Successfully created customer. content: application/json: schema: $ref: "#/components/schemas/DataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /customers/{customer_id}: get: tags: - Customers summary: Get Customer description: Fetch customer information. (Business Only) parameters: - name: customer_id in: path required: true schema: type: string description: The Customer ID. pattern: "^cus_.*$" responses: "200": description: Successfully retrieved customer details. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/Customer" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" put: tags: - Customers summary: Update Customer description: Modify customer information. (Business Only) parameters: - name: customer_id in: path required: true schema: type: string description: The Customer ID. pattern: "^cus_.*$" requestBody: description: The details required to update a customer. required: true content: application/json: schema: $ref: "#/components/schemas/PutCustomerRequest" responses: "200": description: Successfully updated customer. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" patch: tags: - Customers summary: Restore Customer description: Restore an archived customer. (Business Only) parameters: - name: customer_id in: path required: true schema: type: string description: The Customer ID. pattern: "^cus_.*$" responses: "200": description: Successfully restored customer. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Customers summary: Remove Customer description: Permanently remove / archive a customer. (Business Only) parameters: - name: customer_id in: path required: true schema: type: string description: The Customer ID. pattern: "^cus_.*$" responses: "200": description: Successfully removed customer. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /vouchers: get: tags: - Vouchers summary: Get Vouchers description: Fetch a list of vouchers. (Business Only) responses: "200": description: Successfully retrieved the list of vouchers. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: vouchers: type: array items: $ref: "#/components/schemas/Voucher" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Vouchers summary: Create Voucher description: Create a new voucher. requestBody: description: The details required to create a voucher. required: true content: application/json: schema: $ref: "#/components/schemas/PostVoucherRequest" responses: "200": description: Successfully created voucher. content: application/json: schema: $ref: "#/components/schemas/DataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /vouchers/apply: post: tags: - Vouchers summary: Apply Voucher description: Apply a voucher to an eligible invoice. (Business Only) requestBody: description: The details required to apply a voucher to an invoice. required: true content: application/json: schema: $ref: "#/components/schemas/PostApplyVoucherRequest" responses: "200": description: Successfully applied voucher. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /vouchers/{voucher_id}: get: tags: - Vouchers summary: Get Voucher description: Fetch voucher information. (Business Only) parameters: - name: voucher_id in: path required: true schema: type: string description: The Voucher ID. pattern: "^vch_.*$" responses: "200": description: Successfully retrieved voucher details. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/Voucher" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" put: tags: - Vouchers summary: Update Voucher description: Modify voucher information. (Business Only) parameters: - name: voucher_id in: path required: true schema: type: string description: The Voucher ID. pattern: "^vch_.*$" requestBody: description: The details required to update a voucher. required: true content: application/json: schema: $ref: "#/components/schemas/PutVoucherRequest" responses: "200": description: Successfully updated voucher. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Vouchers summary: Remove Voucher description: Permanently delete a voucher. (Business Only) parameters: - name: voucher_id in: path required: true schema: type: string description: The Voucher ID. pattern: "^vch_.*$" responses: "200": description: Successfully removed voucher. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /plans: get: tags: - Plans summary: Get Plans description: Fetch a list of plans. (Business Only) responses: "200": description: Successfully retrieved the list of plans. content: application/json: schema: type: object properties: success: type: boolean default: true data: type: object properties: plans: type: array items: $ref: "#/components/schemas/Plan" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Plans summary: Create Plan description: Create a new plan. requestBody: description: The details required to create a plan. required: true content: application/json: schema: $ref: "#/components/schemas/PostPlanRequest" responses: "200": description: Successfully created plan. content: application/json: schema: $ref: "#/components/schemas/DataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /plans/{plan_id}: get: tags: - Plans summary: Get Plan description: Fetch plan information. (Business Only) parameters: - name: plan_id in: path required: true schema: type: string description: The Plan ID. pattern: "^pln_.*$" responses: "200": description: Successfully retrieved plan details. content: application/json: schema: type: object properties: success: type: boolean default: true data: $ref: "#/components/schemas/Plan" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" put: tags: - Plans summary: Update Plan description: Modify plan information. (Business Only) parameters: - name: plan_id in: path required: true schema: type: string description: The Plan ID. pattern: "^pln_.*$" requestBody: description: The details required to update a plan. required: true content: application/json: schema: $ref: "#/components/schemas/PutPlanRequest" responses: "200": description: Successfully updated plan. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Plans summary: Remove Plan description: Permanently delete a plan. (Business Only) parameters: - name: plan_id in: path required: true schema: type: string description: The Plan ID. pattern: "^pln_.*$" responses: "200": description: Successfully removed plan. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /plans/{plan_id}/options: post: tags: - Plans summary: Add Price Option description: Add a new price option to a plan. parameters: - name: plan_id in: path required: true schema: type: string description: The Plan ID. pattern: "^pln_.*$" requestBody: description: The details required to create a price option. required: true content: application/json: schema: $ref: "#/components/schemas/PostPlanOptionRequest" responses: "200": description: Successfully created plan options. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /plans/{plan_id}/options/{option_id}: put: tags: - Plans summary: Update Price Option description: Modify price option information. parameters: - name: plan_id in: path required: true schema: type: string description: The Plan ID. pattern: "^pln_.*$" - name: option_id in: path required: true schema: type: string description: The Option ID. pattern: "^plo_.*$" requestBody: description: The details required to update a plan option. required: true content: application/json: schema: $ref: "#/components/schemas/PutPlanOptionRequest" responses: "200": description: Successfully updated plan option. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" patch: tags: - Plans summary: Modify Price Option description: Activate or deactivate a price option. parameters: - name: plan_id in: path required: true schema: type: string description: The Plan ID. pattern: "^pln_.*$" - name: option_id in: path required: true schema: type: string description: The Option ID. pattern: "^plo_.*$" responses: "200": description: Successfully modified plan option. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Plans summary: Remove Price Option description: Remove a price option from a plan. parameters: - name: plan_id in: path required: true schema: type: string description: The Plan ID. pattern: "^pln_.*$" - name: option_id in: path required: true schema: type: string description: The Option ID. pattern: "^plo_.*$" responses: "200": description: Successfully removed plan option. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /invoices: get: tags: - Invoices summary: Get Invoices description: Fetch a list of invoices. (Business Only) parameters: - name: resource_id in: query required: false schema: type: string description: The ID of the resource you want to filter based on. (e.g. Customer, Subscription or Voucher ID's) - name: currency in: query required: false schema: type: string description: The currency you want to filter based on. pattern: ^[A-Z]{3}$ - name: status in: query required: false schema: description: The status you want to filter based on. $ref: "#/components/schemas/InvoiceStatus" responses: "200": description: Successfully retrieved the list of invoices. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: invoices: type: array items: $ref: "#/components/schemas/Invoice" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Invoices summary: Create Invoice description: Create a new invoice. (Business Only) requestBody: description: The details required to create an invoice. required: true content: application/json: schema: $ref: "#/components/schemas/PostInvoiceRequest" responses: "200": description: Successfully created invoice. content: application/json: schema: $ref: "#/components/schemas/SessionDataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /invoices/{invoice_id}: get: tags: - Invoices summary: Get Invoice description: Fetch invoice information. (Business Only) parameters: - name: invoice_id in: path required: true schema: type: string description: The Invoice ID. pattern: "^inv_.*$" responses: "200": description: Successfully retrieved invoice details. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/Invoice" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" put: tags: - Invoices summary: Update Invoice description: Update invoice information. (Business Only) parameters: - name: invoice_id in: path required: true schema: type: string description: The Invoice ID. pattern: "^inv_.*$" requestBody: description: The details required to update an invoice. required: true content: application/json: schema: $ref: "#/components/schemas/PutInvoiceRequest" responses: "200": description: Successfully updated invoice. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Invoices summary: Remove Invoice description: Permanently delete an invoice. (Business Only) parameters: - name: invoice_id in: path required: true schema: type: string description: The Invoice ID. pattern: "^inv_.*$" responses: "200": description: Successfully removed invoice. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /invoices/{invoice_id}/send: post: tags: - Invoices summary: Send Invoice description: Send an e-invoice to the customer's email. parameters: - name: invoice_id in: path required: true schema: type: string description: The Invoice ID. pattern: "^inv_.*$" responses: "200": description: Successfully sent invoice. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /invoices/{invoice_id}/items: post: tags: - Invoices summary: Add Line Items description: Add new line items to an invoice. parameters: - name: invoice_id in: path required: true schema: type: string description: The Invoice ID. pattern: "^inv_.*$" requestBody: description: The details required to create an invoice item. required: true content: application/json: schema: $ref: "#/components/schemas/PostInvoiceItemRequest" responses: "200": description: Successfully created invoice items. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /invoices/{invoice_id}/items/{item_id}: put: tags: - Invoices summary: Update Line Item description: Modify line item information. parameters: - name: invoice_id in: path required: true schema: type: string description: The Invoice ID. pattern: "^inv_.*$" - name: item_id in: path required: true schema: type: string description: The Item ID. pattern: "^itm_.*$" requestBody: description: The details required to update an invoice item. required: true content: application/json: schema: $ref: "#/components/schemas/PutInvoiceItemRequest" responses: "200": description: Successfully updated invoice item. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Invoices summary: Remove Line Item description: Remove a line item from an invoice. parameters: - name: invoice_id in: path required: true schema: type: string description: The Invoice ID. pattern: "^inv_.*$" - name: item_id in: path required: true schema: type: string description: The Item ID. pattern: "^itm_.*$" responses: "200": description: Successfully removed invoice item. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /subscriptions: get: tags: - Subscriptions summary: Get Subscriptions description: Fetch a list of subscriptions. (Business Only) parameters: - name: resource_id in: query required: false schema: type: string description: The ID of the resource you want to filter based on. (e.g. Customer or Payment method ID's) - name: currency in: query required: false schema: type: string description: The currency you want to filter based on. pattern: ^[A-Z]{3}$ - name: status in: query required: false schema: description: The status you want to filter based on. $ref: "#/components/schemas/SubscriptionStatus" responses: "200": description: Successfully retrieved the list of subscriptions. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: subscriptions: type: array items: $ref: "#/components/schemas/Subscription" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Subscriptions summary: Create Subscription description: Create a new subscription. (Business Only) requestBody: description: The details required to create a subscription. required: true content: application/json: schema: $ref: "#/components/schemas/PostSubscriptionRequest" responses: "200": description: Successfully created subscription. content: application/json: schema: $ref: "#/components/schemas/SessionDataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /subscriptions/{subscription_id}: get: tags: - Subscriptions summary: Get Subscription description: Fetch subscription information. (Business Only) parameters: - name: subscription_id in: path required: true schema: type: string description: The Subscription ID. pattern: "^sub_.*$" responses: "200": description: Successfully retrieved subscription details. content: application/json: schema: type: object properties: success: type: boolean default: true data: $ref: "#/components/schemas/SubscriptionDetails" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" patch: tags: - Subscriptions summary: Update Subscription description: Enable or Disable subscription auto renewal. (Business Only) parameters: - name: subscription_id in: path required: true schema: type: string description: The Subscription ID. pattern: "^sub_.*$" responses: "200": description: Successfully modified subscription. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Subscriptions summary: Remove Subscription description: Permanently delete a subscription. (Business Only) parameters: - name: subscription_id in: path required: true schema: type: string description: The Subscription ID. pattern: "^sub_.*$" responses: "200": description: Successfully removed subscription. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /subscriptions/{subscription_id}/restore: post: tags: - Subscriptions summary: Restore Subscription description: Restore a subscription that's in a `requires-action` state. (Business Only) parameters: - name: subscription_id in: path required: true schema: type: string description: The Subscription ID. pattern: "^sub_.*$" responses: "200": description: Successfully restored subscription. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /subscriptions/{subscription_id}/cancel: post: tags: - Subscriptions summary: Cancel Subscription description: Cancel a subscription that's in a `active` or `trial` state. (Business Only) parameters: - name: subscription_id in: path required: true schema: type: string description: The Subscription ID. pattern: "^sub_.*$" responses: "200": description: Successfully cancelled subscription. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /payments: get: tags: - Payments summary: Get Payments description: Fetch a list payments. (Business Only) parameters: - name: invoice_id in: query required: false schema: type: string description: The ID of the invoice you want to filter based on. pattern: "^inv_.*$" - name: currency in: query required: false schema: type: string description: The currency you want to filter based on. pattern: ^[A-Z]{3}$ - name: status in: query required: false schema: description: The status you want to filter based on. $ref: "#/components/schemas/PaymentStatus" responses: "200": description: Successfully retrieved the list of payments. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: payments: type: array items: $ref: "#/components/schemas/Payment" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /payments/initiate/{method}: post: tags: - Payments summary: Initiate Payment description: Start a payment operation. parameters: - name: method in: path required: true schema: type: string enum: - wallet - qr - card - bank description: Payment Method. requestBody: description: The details required to initiate a payment. required: true content: application/json: schema: oneOf: - $ref: "#/components/schemas/PostInitiateWalletPaymentRequest" - $ref: "#/components/schemas/PostInitiateQrPaymentRequest" - $ref: "#/components/schemas/PostInitiateCardPaymentRequest" - $ref: "#/components/schemas/PostInitiateBankPaymentRequest" responses: "200": description: Successfully initiated payment. content: application/json: schema: oneOf: - $ref: "#/components/schemas/WalletPaymentResponse" - $ref: "#/components/schemas/QrPaymentResponse" - $ref: "#/components/schemas/CardPaymentResponse" - $ref: "#/components/schemas/BankPaymentResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /payments/{payment_id}: get: tags: - Payments summary: Get Payment description: Fetch payment information. parameters: - name: payment_id in: path required: true schema: type: string description: The Payment ID. pattern: "^pmt_.*$" responses: "200": description: Successfully retrieved payment details. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/Payment" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /payments/{payment_id}/refund: post: tags: - Payments summary: Refund Payment description: Refund an approved payment. parameters: - name: payment_id in: path required: true schema: type: string description: The Payment ID. pattern: "^pmt_.*$" requestBody: description: The details required to refund a approved payment. required: true content: application/json: schema: $ref: "#/components/schemas/PostRefundPaymentRequest" responses: "200": description: Successfully refunded payment. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /providers: get: tags: - Provider Connections summary: Get Provider Connections description: Fetch a list of connected providers. (Business Only) responses: "200": description: Successfully retrieved the list of providers. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: providers: type: array items: $ref: "#/components/schemas/PaymentProvider" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" post: tags: - Provider Connections summary: Connect Provider description: Connect a new provider. (Business Only) requestBody: description: The details required to connect a provider. required: true content: application/json: schema: $ref: "#/components/schemas/PostProviderRequest" responses: "200": description: Successfully connected provider. content: application/json: schema: $ref: "#/components/schemas/DataResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /providers/{connection_id}: put: tags: - Provider Connections summary: Update Provider Connection description: Update connection API credentials. (Business Only) parameters: - name: connection_id in: path required: true schema: type: string description: The Provider Connection ID. pattern: "^bpc_.*$" requestBody: description: The provider specific credentials. required: true content: application/json: schema: $ref: "#/components/schemas/PutProviderRequest" responses: "200": description: Successfully updated provider connection. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" patch: tags: - Provider Connections summary: Modify Provider Connection description: Enable or disable a provider connection. (Business Only) parameters: - name: connection_id in: path required: true schema: type: string description: The Provider Connection ID. pattern: "^bpc_.*$" responses: "200": description: Successfully modified provider connection. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" delete: tags: - Provider Connections summary: Remove Provider Connection description: Permanently disconnect a provider. (Business Only) parameters: - name: connection_id in: path required: true schema: type: string description: The Provider Connection ID. pattern: "^bpc_.*$" responses: "200": description: Successfully removed provider connection. content: application/json: schema: $ref: "#/components/schemas/BaseResponse" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /metrics/invoices: get: tags: - Analytics summary: Get Invoice Metrics description: Fetch invoice metrics. (Business Only) responses: "200": description: Successfully retrieved invoice metrics. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/InvoiceMetrics" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /metrics/subscriptions: get: tags: - Analytics summary: Get Subscription Metrics description: Fetch subscription metrics. (Business Only) responses: "200": description: Successfully retrieved subscription metrics. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/SubscriptionMetrics" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /metrics/payments: get: tags: - Analytics summary: Get Payment Metrics description: Fetch payment metrics. (Business Only) responses: "200": description: Successfully retrieved payment metrics. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/PaymentMetrics" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /metrics/customers: get: tags: - Analytics summary: Get Customer Metrics description: Fetch the customer metrics. (Business Only) responses: "200": description: Successfully retrieved customer metrics. content: application/json: schema: type: object properties: success: type: boolean example: true data: $ref: "#/components/schemas/CustomerMetrics" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /audits/logs: get: tags: - Logs summary: Get Logs description: Fetch a list of logs based on a set of filters. parameters: - name: resource_id in: query required: false schema: type: string description: The ID of the resource you want to filter based on. If non is provided the API will default to the profile ID. - name: method in: query required: false schema: type: string enum: - GET - POST - PUT - PATCH - DELETE description: The method to filter based on. - name: auth_flow in: query required: false schema: type: string enum: - token - member description: The authentication flow to filter based on. responses: "200": description: Successfully retrieved the list of logs. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: logs: type: array items: $ref: "#/components/schemas/AuditLog" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /banks: get: tags: - Resources summary: Get Banks description: Fetch a list of supported banks. responses: "200": description: Successfully retrieved the list of supported banks. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: banks: type: array items: $ref: "#/components/schemas/BankResource" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /scopes: get: tags: - Resources summary: Get Scopes description: Fetch a list of supported access token scopes. responses: "200": description: Successfully retrieved the list of supported token scopes. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: scopes: type: array items: $ref: "#/components/schemas/PublicResource" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /events: get: tags: - Resources summary: Get Events description: Fetch a list of supported webhook event types. responses: "200": description: Successfully retrieved the list of webhook event types. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: events: type: array items: $ref: "#/components/schemas/PublicResource" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /countries: get: tags: - Resources summary: Get Countries description: Fetch a list of supported countries. responses: "200": description: Successfully retrieved the list of supported countries. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: countries: type: array items: $ref: "#/components/schemas/CountryResource" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /currencies: get: tags: - Resources summary: Get Currencies description: Fetch a list of supported currencies. responses: "200": description: Successfully retrieved the list of supported currencies. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: currencies: type: array items: $ref: "#/components/schemas/CurrencyResource" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /industries: get: tags: - Resources summary: Get Industries description: Fetch a list of supported business industries. responses: "200": description: Successfully retrieved the list of supported industries. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: industries: type: array items: $ref: "#/components/schemas/PublicResource" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /legal-forms: get: tags: - Resources summary: Get Legal Forms description: Fetch a list of supported business legal forms. responses: "200": description: Successfully retrieved the list of supported legal forms. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: legal_forms: type: array items: $ref: "#/components/schemas/PublicResource" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /payment-providers: get: tags: - Resources summary: Get Payment Providers description: Fetch a list of supported business payment providers. responses: "200": description: Successfully retrieved the list of supported payment providers. content: application/json: schema: type: object properties: success: type: boolean example: true data: type: object properties: payment_providers: type: array items: $ref: "#/components/schemas/PaymentProviderResource" "4XX": description: Client error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "5XX": description: Server error. content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" components: securitySchemes: bearerAuth: type: http scheme: bearer schemas: BaseResponse: type: object properties: success: type: boolean description: Indicates if the request was successful. message: type: string description: A descriptive message regarding the result. ErrorResponse: type: object properties: success: type: boolean default: false message: type: string description: A detailed error message. DataResponse: type: object properties: success: type: boolean default: true description: Indicates if the request was successful. data: type: object properties: id: type: string description: The unique identifier of the newly created resource. SessionDataResponse: type: object properties: success: type: boolean default: true description: Indicates if the request was successful. data: type: object properties: id: type: string description: The unique identifier of the newly created resource. status: type: string description: The status of the newly created resource. session: type: object default: null description: The session details for collecting payment properties: url: type: string description: The checkout url expires_in: type: string description: Session experation time. TokenResponse: type: object properties: success: type: boolean description: Indicates if the request was successful. data: type: object properties: id: type: string description: The unique identifier of the token. example: tkn_123456 secret: type: string description: The secret key of the token. This is not viewable after so make sure to save it somewhere safe. example: nafukdsk43nz13kb7gx3qk TransferResponse: title: Default type: object properties: success: type: boolean description: Indicates if the request was successful. data: type: object properties: id: type: string description: The unique identifier of the transaction. example: tra_123456 status: type: string description: The current state of the transaction. example: pending-approval TransferBatchResponse: title: Batch type: object properties: success: type: boolean description: Indicates if the request was successful. data: type: object properties: transfers: type: array items: $ref: "#/components/schemas/TransferResponse" WalletPaymentResponse: title: Wallet type: object properties: success: type: boolean description: Indicates if the request was successful. data: type: object properties: session: type: string example: https://app.paisr.tech/pay/ey7bTCm6tur63CR6mzbuq23r description: The url to redirect the customer to for collecting payment. expires_in: type: string example: 30 Minutes description: The session expiration time. QrPaymentResponse: title: QR type: object properties: success: type: boolean description: Indicates if the request was successful. data: type: object properties: id: type: string description: The unique identifier of the payment. example: pmt_123456 status: type: string description: The current state of the payment. example: pending metadata: type: object properties: provider: type: string description: The slug of the QR provider. qr_code: type: string description: The code used to generate the QR image. deep_link: type: string description: The url for in-app payments. CardPaymentResponse: title: Card type: object properties: success: type: boolean description: Indicates if the request was successful. data: type: object properties: id: type: string description: The unique identifier of the payment. example: pmt_123456 status: type: string enum: - failed - approved description: The current state of the payment. example: approved BankPaymentResponse: title: Bank type: object properties: success: type: boolean description: Indicates if the request was successful. data: type: object properties: session: type: string example: https://example.bank.com/pay/ey7bTCm6tur63CR6mzbuq23r description: The url to redirect the customer to for collecting payment. expires_in: type: string example: 30 Minutes description: The session expiration time. # Enums ProfileStatus: type: string enum: - unverified - pending - verified - limited - denied example: "verified" BusinessOwnerType: type: string enum: - individual - business - non-profit example: "individual" description: The type of owner. BusinessOwnerRole: type: string enum: - shareholder - director example: "shareholder" description: The role of involvment in the business. BusinessMemberRole: type: string enum: - admin - manager - operator - developer example: "admin" description: The role of access to profile related resources. WalletType: type: string enum: - fiat - crypto example: "fiat" description: Type of wallet. WalletBalanceType: type: string enum: - primary - saving - investment example: "primary" description: Type of balance. WalletAccountType: type: string enum: - checking - saving example: "checking" description: Type of account. RateType: type: string enum: - percentage - fixed example: "percentage" InvoiceStatus: type: string enum: - draft - unpaid - paid - void example: "paid" SubscriptionStatus: type: string enum: - pending - expired - trial - active - requires-action - cancelled example: "active" PaymentStatus: type: string enum: - pending - approved - settled - refunded - cancelled example: "approved" PaymentSourceType: type: string enum: - platform - qr - card - bank - other example: "platform" PaymentMetricStatusSummary: type: object properties: count: type: number example: 3 currencies: type: array example: ["SRD", "USD", "EUR"] properties: code: type: string total: type: number # Data Schemas CountryResource: type: object properties: name: type: string example: Suriname code: type: number example: 740 currency: type: string example: SRD dail_code: type: number example: 597 alpha_2: type: string example: SR alpha_3: type: string example: SUR CurrencyResource: type: object properties: name: type: string example: Surinamese Dollar code: type: string example: SRD alt_code: type: number example: 968 symbol: type: string example: $ BankResource: type: object properties: name: type: string example: De Surinaamsche Bank swift: type: string example: SURBSRPA slug: type: string example: DSB PaymentProviderResource: type: object properties: name: type: string example: Paisr Pay description: type: string example: A fast and secure way to pay in the Caribbean. slug: type: string example: pcb logo: type: string example: https://paisr.tech/favicon.ico type: type: string example: wallet available: type: boolean example: true built_in: type: boolean example: true supported_currencies: type: array example: ["SRD", "USD", "EUR"] PublicResource: type: object properties: description: type: string slug: type: string PersonalProfile: title: Personal type: object properties: id: type: string example: idv_123456 given_name: type: string example: John middle_name: type: string example: Jacob last_name: type: string example: Smith email: type: string format: email phone: type: string example: "+597-8123456" identity: type: object properties: country: type: string example: SR status: $ref: "#/components/schemas/ProfileStatus" gender: type: string enum: - male - female - private date_of_birth: type: string example: 1996-12-12 id_number: type: string example: XX123456 approved: type: boolean example: true approved_at: type: string format: date-time created_at: type: string format: date-time BusinessProfile: title: Business type: object properties: id: type: string example: bus_123456 owner: type: string example: abc123456 legal_name: type: string example: Acme Incorporation public_name: type: string example: Acme type: type: string enum: - free - pro - enterprise avatar: type: string slogan: type: string example: My example slogan about: type: string example: We are a company focussed on providing value to customers. contact: type: object properties: email: type: string format: email example: hello@acme.com phone: type: string example: "+597-412345" website: type: string format: url example: https://acme.com attributes: type: object properties: industry: type: string example: technology target_market: type: array enum: - B2B - B2C - B2G example: ["B2B", "B2C"] target_audience: type: array enum: - Local - Regional - Global example: ["Local", "Regional"] identity: type: object properties: country: type: string example: SR status: $ref: "#/components/schemas/ProfileStatus" incorporated: type: boolean example: true date_of_incorporation: type: string example: "2022-10-12" legal_form: type: string example: for-profit-corporation commerce_number: type: string example: XX123456 tax_number: type: string example: XX123456 approved: type: boolean example: true approved_at: type: string format: date-time theme: type: object properties: primary: type: string example: "#6A66F2" accent: type: string example: "#E6E6FF" domain: type: object properties: host: type: string cname: type: string txt: type: string status: type: string enum: - unset - pending - active - requires-action created_at: type: string format: date-time ProfileAddress: type: object properties: id: type: string example: adr_123456 address_line_1: type: string example: Example Street 10 address_line_2: type: string example: Example Street 11 address_line_3: type: string example: Example Street 12 city: type: string example: Paramaribo state: type: string example: Kwatta verified: type: boolean ProfileDocument: type: object properties: id: type: string example: doc_123456 description: type: string example: Government ID verified: type: boolean created_at: type: string format: date-time ProfileVerificationStatus: type: object properties: id: type: string example: bus_123456 status: $ref: "#/components/schemas/ProfileStatus" country: type: string example: SR approved: type: boolean approved_at: type: string format: date-time BusinessOwner: type: object properties: id: type: string example: bow_123456 full_name: type: string example: Jane Smith email: type: string format: email type: $ref: "#/components/schemas/BusinessOwnerType" role: $ref: "#/components/schemas/BusinessOwnerRole" status: type: string enum: - pending - verified - denied - removed example: verified created_at: type: string format: date-time BusinessMember: type: object properties: id: type: string example: tem_123456 email: type: string format: email role: $ref: "#/components/schemas/BusinessMemberRole" status: type: string enum: - invited - accepted - removed example: accepted created_at: type: string format: date-time accepted_at: type: string format: date-time AuditLog: type: object properties: timestamp: type: string format: date-time method: type: string enum: - GET - PUT - POST - PATCH - DELETE example: POST route: type: string example: /v2/wallets user_agent: type: string example: PostmanRuntime response: type: object properties: status: type: number example: 200 body: type: object auth: type: object properties: flow: type: string enum: - token - user - member example: token uuid: type: string example: tkn_123456 AccessToken: type: object properties: id: type: string example: tkn_123456 description: type: string example: Postman permissions: type: array items: type: object properties: id: type: string example: tpm_12345 type: type: string example: invoices.read created_at: type: string format: date-time created_by: type: string example: tem_123456 expires_at: type: string format: date-time Webhook: type: object properties: id: type: string example: whk_123456 description: type: string example: Checkout Callback endpoint: type: string format: url example: https://api.example.com/callback paused: type: boolean example: false triggers: type: array items: type: object properties: id: type: string example: wtr_12345 type: type: string example: invoice.paid created_at: type: string format: date-time created_by: type: string example: tem_123456 WebhookStats: type: object properties: success: type: number example: 10 failed: type: number example: 2 pending: type: number example: 0 WebhookSecret: type: object properties: secret: type: string example: ey7bTCm6tur63CR6mzbuq23r WebhookEvent: type: object properties: id: type: string example: wev_123456 body: type: object properties: id: type: string example: inv_123456 event: type: string example: invoice.paid status: type: string enum: - pending - success - failed example: success type: type: string example: invoice.paid can_retry: type: boolean retry_count: type: number example: 0 last_retry_at: type: string format: date-time next_retry_at: type: string format: date-time created_at: type: string format: date-time Wallet: type: object properties: id: type: string example: buw_123456 beneficiary: properties: name: type: string example: Acme Inc email: type: string example: finance@acme.com profile: properties: nickname: type: string example: Acme tag: type: string example: acmeinc public: type: boolean icon: type: string example: vault title: type: string example: Cash Wallet locked: type: boolean example: false default: type: boolean example: true type: $ref: "#/components/schemas/WalletType" sub_type: type: string enum: - personal - business example: business usage: properties: transfers: type: object properties: current: type: number format: float example: 3598.75 max: type: number format: float example: 25000 deposits: type: object properties: current: type: number format: float example: 550 max: type: number format: float example: 5000 withdrawals: type: object properties: current: type: number format: float example: 4075 max: type: number format: float example: 25000 resets_at: type: string format: date-time created_at: type: string format: date-time WalletPin: type: object properties: secret: type: string example: "5719" WalletBalance: type: object properties: id: type: string example: bca_123456 title: type: string example: SRD Balance currency: type: object properties: code: type: string example: SRD symbol: type: string example: $ balance: type: object properties: running: type: number format: float example: 750170.75 holding: type: number format: float example: 0 frozen: type: boolean example: false type: $ref: "#/components/schemas/WalletBalanceType" created_at: type: string format: date-time WalletAccount: type: object properties: id: type: string example: cwa_123456 account_holder: type: string example: John Doe account_number: type: string example: "123456789" account_type: $ref: "#/components/schemas/WalletAccountType" currency: type: string example: SRD verified: type: boolean bank: type: object properties: name: type: string example: De Surinaamsche Bank swift_code: type: string example: SURBSRPA created_at: type: string format: date-time WalletContact: type: object properties: id: type: string example: fav_123456 full_name: type: string example: Jane Smith nickname: type: string example: Jane tag: type: string example: janesmith avatar: type: string created_at: type: string format: date-time WalletPaymentLink: type: object properties: id: type: string example: wpr_123456 description: type: string example: Plant a tree initiative currency: type: string example: SRD amount: type: number format: float example: 25.00 balance: type: object properties: id: type: string example: bca_123456 title: type: string example: SRD Balance created_at: type: string format: date-time expires_at: type: string format: date-time WalletStatement: type: object properties: id: type: string example: wst_123456 timeline: type: string example: November 2023 source: type: string created_at: type: string format: date-time WalletPayTransaction: title: E-Commerce type: object properties: id: type: string example: tra_123456 type: type: string enum: - debit example: debit method: type: string enum: - EcomPay status: type: string enum: - processing - settled example: settled destination: type: object properties: name: type: string example: Acme Inc quote: type: object properties: base: type: object properties: total: type: number format: float example: 100.0 currency: type: string example: SRD tax: type: object properties: collected: type: boolean country: type: string example: SR type: type: string example: VAT rate: type: number format: float example: 0.10 total: type: number format: float example: 10.0 due: type: object properties: total: type: number format: float example: 110.0 currency: type: string example: SRD reference: type: string example: "Payment for Invoice #199027" created_at: type: string format: date-time processed_at: type: string format: date-time WalletOutboundTransaction: title: Outbound type: object properties: id: type: string example: tra_123456 type: type: string enum: - debit example: debit method: type: string enum: - P2P - A2A - ACH example: P2P status: type: string enum: - pending - processing - settled - requires-approval - cancelled example: processing destination: type: object properties: name: type: string example: Jane Smith quote: type: object properties: base: type: object properties: total: type: number format: float example: 100.0 currency: type: string example: SRD tax: type: object properties: collected: type: boolean example: false country: type: string example: SR type: type: string example: VAT rate: type: number format: float example: 0 total: type: number format: float example: 0 fee: type: object properties: conversion: type: object properties: rate: type: number format: float example: 0 total: type: number format: float example: 0 interchange: type: object properties: rate: type: number format: float example: 0 total: type: number format: float example: 0 total: type: number format: float example: 0 due: type: object properties: total: type: number format: float example: 100 currency: type: string example: SRD conversion: type: object properties: input: type: number format: float example: 100 from: type: string example: SRD to: type: string example: SRD rate: type: number format: float example: 1 total: type: number format: float example: 100.0 output: type: object properties: total: type: number format: float example: 100.0 currency: type: string example: SRD reference: type: string example: For services renderred created_at: type: string format: date-time processed_at: type: string format: date-time WalletInboundTransaction: title: Inbound type: object properties: id: type: string example: tra_123456 type: type: string enum: - credit example: credit method: type: string enum: - P2P - A2A - TopUp - Payout status: type: string enum: - settled example: settled source: type: object properties: name: type: string quote: type: object properties: output: type: object properties: total: type: number format: float currency: type: string reference: type: string created_at: type: string format: datte-time processed_at: type: string format: date-time Customer: type: object properties: id: type: string example: cus_123456 name: type: string example: Jane Smith email: type: string example: jane@example.com phone: type: string example: "+597-8123456" default_currency: type: string example: SRD billing_details: default: null $ref: "#/components/schemas/CustomerBillingDetails" shipping_details: default: null $ref: "#/components/schemas/CustomerShippingDetails" metadata: type: object default: null session: type: object properties: url: type: string example: https://portal.checkout.paisr.tech/ey7bTCm6tur63CR6mzbuq23r expires_in: type: string example: 30 minutes created_at: type: string format: date-time CustomerPreview: type: object properties: id: type: string example: cus_123456 name: type: string example: Jane Smith email: type: string example: jane@example.com billing_details: default: null $ref: "#/components/schemas/CustomerBillingDetails" shipping_details: default: null $ref: "#/components/schemas/CustomerShippingDetails" CustomerBillingDetails: type: object required: - line_1 - city - country properties: line_1: type: string example: Example Street 10 line_2: type: string example: Example Street 11 city: type: string example: Paramaribo state: type: string example: Kwatta zip_code: type: string country: type: string example: SR CustomerShippingDetails: type: object required: - name - line_1 - city - country properties: name: type: string example: Jane Smith phone: type: string example: "+597-8123456" line_1: type: string example: Example Street 10 line_2: type: string example: Example Street 11 city: type: string example: Paramaribo state: type: string example: Kwatta zip_code: type: string country: type: string example: SR CustomerProviderPreview: title: Provider type: object properties: id: type: string example: pmt_123456 type: type: string enum: - credits - wallet example: wallet provider: type: string example: Paisr Pay CustomerCardPreview: title: Card type: object properties: id: type: string example: pmt_123456 type: type: string enum: - card default: card example: card last_four: type: string example: "4242" brand: type: string example: visa Voucher: type: object properties: id: type: string example: vch_123456 description: type: string example: End of the month sale type: $ref: "#/components/schemas/RateType" code: type: string example: EOTM10 amount: type: number format: float example: 10 redeems: type: object properties: count: type: number example: 75 max: type: number example: 100 archived: type: boolean example: false created_at: type: string format: date-time expires_at: type: string format: date-time Plan: type: object properties: id: type: string example: pln_123456 title: type: string example: Premium Service summary: type: string example: Get started with using our premium service. type: type: string enum: - standard - metered default: standard example: standard currency: type: string example: SRD created_at: type: string format: date-time options: type: array items: $ref: "#/components/schemas/PlanOption" PlanOption: type: object properties: id: type: string example: plo_123456 description: type: string example: Monthly active: type: boolean default: true example: true unit_price: type: number example: 9.99 billing_interval: type: number example: 30 trial_period: type: number example: 0 attributes: type: object created_at: type: string format: date-time PlanLineOption: type: object required: - description - unit_price - billing_interval properties: description: type: string description: Short description about the option. unit_price: type: number format: float minimum: 0.01 description: Price per unit. billing_interval: type: number minimum: 1 maximum: 365 description: The number of days for each billing interval. (e.g. 30 for monthly or 365 for yearly) trial_period: type: number minimum: 0 maximum: 365 description: The number of days before the first billable invoice is due. attributes: type: object maxProperties: 16 description: Custom key-value pairs that can be used for option specific features. Invoice: type: object properties: id: type: string example: inv_123456 sid: type: number example: 600783 subscription_id: type: string example: sub_123456 customer: $ref: "#/components/schemas/CustomerPreview" voucher: type: object properties: id: type: string example: vch_123456 type: $ref: "#/components/schemas/RateType" rate: type: number format: float example: 10 summary: type: string example: A simple pizza order amount: type: object properties: sub_total: type: number format: float example: 150 discount_total: type: number format: float example: 15 net_total: type: number format: float example: 135 status: $ref: "#/components/schemas/InvoiceStatus" currency: type: string example: SRD session: type: object properties: url: type: string example: https://checkout.paisr.tech/ey7bTCm6tur63CR6mzbuq23r expires_in: type: string example: 30 minutes due_at: type: string format: date-time paid_at: type: string format: date-time void_at: type: string format: date-time created_at: type: string format: date-time InvoiceDetails: type: object properties: id: type: string example: inv_123456 sid: type: number example: 600783 subscription_id: type: string example: sub_123456 customer: $ref: "#/components/schemas/CustomerPreview" voucher: type: object properties: id: type: string example: vch_123456 type: $ref: "#/components/schemas/RateType" rate: type: number format: float example: 10 summary: type: string example: A simple pizza order amount: type: object properties: sub_total: type: number format: float example: 150 discount_total: type: number format: float example: 15 net_total: type: number format: float example: 135 status: $ref: "#/components/schemas/InvoiceStatus" currency: type: string example: SRD session: type: object properties: url: type: string example: https://checkout.paisr.tech/ey7bTCm6tur63CR6mzbuq23r expires_in: type: string example: 30 minutes due_at: type: string format: date-time paid_at: type: string format: date-time void_at: type: string format: date-time created_at: type: string format: date-time line_items: type: array items: $ref: "#/components/schemas/InvoiceItem" InvoiceItem: type: object properties: id: type: string example: itm_123456 description: type: string example: Small Pizza quantity: type: number example: 2 total: type: object properties: unit: type: number format: float example: 75 calculated: type: number format: float example: 150 created_at: type: string format: date-time InvoiceLineItem: type: object required: - description - quantity - unit_price properties: description: type: string description: Detailed description about the item. quantity: type: number minimum: 1 description: Number of units. unit_price: type: number format: float minimum: 0 description: Price per unit. Subscription: type: object properties: id: type: string example: sub_123456 customer: $ref: "#/components/schemas/CustomerPreview" payment_method: oneOf: - $ref: "#/components/schemas/CustomerProviderPreview" - $ref: "#/components/schemas/CustomerCardPreview" status: $ref: "#/components/schemas/SubscriptionStatus" currency: type: string example: SRD auto_renew: type: boolean example: true trial_start: type: string format: date-time trial_end: type: string format: date-time billing_interval: type: number example: 30 billing_start: type: string format: date-time billing_end: type: string format: date-time last_renew_at: type: string format: date-time next_renew_at: type: string format: date-time created_at: type: string format: date-time SubscriptionDetails: type: object properties: id: type: string example: sub_123456 customer: $ref: "#/components/schemas/CustomerPreview" payment_method: oneOf: - $ref: "#/components/schemas/CustomerProviderPreview" - $ref: "#/components/schemas/CustomerCardPreview" status: $ref: "#/components/schemas/InvoiceStatus" currency: type: string example: SRD auto_renew: type: boolean example: true trial_start: type: string format: date-time trial_end: type: string format: date-time billing_interval: type: number example: 30 billing_start: type: string format: date-time billing_end: type: string format: date-time last_renew_at: type: string format: date-time next_renew_at: type: string format: date-time cancelled: type: boolean example: true cancelled_at: type: string format: date-time created_at: type: string format: date-time line_items: type: array items: $ref: "#/components/schemas/SubscriptionItem" SubscriptionItem: type: object properties: id: type: string example: stm_123456 title: type: string example: Premium Service - Monthly quantity: type: number example: 1 option: type: object properties: id: type: string example: plo_123456 plan_id: type: string example: pln_123456 available: type: boolean example: true unit_price: type: number format: float example: 9.99 created_at: type: string format: date-time SubscriptionLineItem: type: object required: - option_id - quantity properties: option_id: type: string description: The ID of the plan option to subscribe to. quantity: type: number minimum: 1 description: Number of units. Payment: type: object properties: id: type: string example: pmt_123456 sid: type: number example: 680297 invoice_id: type: string example: inv_123456 description: type: string example: "Payment for Invoice #600783" currency: type: string example: SRD status: $ref: "#/components/schemas/PaymentStatus" payment_method: type: object properties: provider: type: string example: Paisr Pay type: $ref: "#/components/schemas/PaymentSourceType" amount: type: object properties: sub_total: type: number format: float example: 135 tax: type: object properties: rate: type: number format: float example: 0 type: $ref: "#/components/schemas/RateType" total: type: number format: float example: 0 due_total: type: number format: float example: 135 fee_total: type: number format: float example: 2.56 output_total: type: number format: float example: 132.44 billing_details: type: object properties: name: type: string example: Jane Smith phone: type: string example: "5978123456" line_1: type: string example: Example Street 10 line_2: type: string example: Example Street 11 city: type: string example: Paramaribo state: type: string example: Kwatta zip_code: type: string country: type: string example: SR notes: type: string default: null metadata: type: object default: null initiated_at: type: string format: date-time approved_at: type: string format: date-time settled_at: type: string default: null format: date-time cancelled_at: type: string default: null format: date-time cancelled_by: type: string default: null reversed_at: type: string default: null format: date-time reversed_by: type: string default: null PaymentBillingDetails: type: object required: - full_name - country description: Billing details of the customer. properties: name: type: string description: The name of the customer that will appear on receipts. phone: type: string format: tel description: The phone number of the customer. (eg +5978123456) line_1: type: string description: Billing address of the customer. line_2: type: string description: Billing address of the customer. city: type: string description: City name. state: type: string description: State name. zip_code: type: string description: ZIP Code. country: type: string description: Country code in ISO 3166-1 alpha-2 format. PaymentProvider: type: object properties: id: type: string example: bpc_123456 name: type: string example: Paisr Pay description: type: string example: The fastest way to make payments in the Caribbean. logo: type: string type: type: string example: wallet connector: type: object properties: status: type: string enum: - enabled - disabled example: enabled slug: type: string example: pcb available: type: boolean example: true built_in: type: boolean example: true supported_currencies: type: array items: type: string example: ["SRD", "USD", "EUR"] metadata: type: object created_at: type: string format: date-time InvoiceMetrics: type: object properties: total: type: number example: 49 unpaid: type: number example: 9 paid: type: number example: 40 SubscriptionMetrics: type: object properties: total: type: number example: 67 pending: type: number example: 9 active: type: number example: 40 trial: type: number example: 5 requires_action: type: number example: 3 expired: type: number example: 6 cancelled: type: number example: 4 PaymentMetrics: type: object properties: total: type: number example: 15 pending: $ref: "#/components/schemas/PaymentMetricStatusSummary" approved: $ref: "#/components/schemas/PaymentMetricStatusSummary" settled: $ref: "#/components/schemas/PaymentMetricStatusSummary" cancelled: $ref: "#/components/schemas/PaymentMetricStatusSummary" refunded: $ref: "#/components/schemas/PaymentMetricStatusSummary" CustomerMetrics: type: object properties: total: type: number example: 24 # Request Schemas PutPersonalProfileRequest: title: Personal type: object properties: given_name: type: string description: First name as it appears on your ID document. example: John pattern: ^[a-zA-Z0-9 ]{2,72}$ middle_name: type: string description: Middle name(s) as it appears on your ID document. example: Jacob pattern: ^[a-zA-Z0-9 ]{2,72}$ last_name: type: string description: Last name(s) as it appears on your ID document. example: Smith pattern: ^[a-zA-Z0-9 ]{2,72}$ gender: type: string enum: - male - female - other description: Gender as it appears on your ID document. example: male date_of_birth: type: string description: Date of birth as it appears on your ID document. Accepted format (yyyy-mm-dd). example: "1998-12-09" pattern: ^\d{4}-\d{2}-\d{2}$ id_number: type: string description: Government ID number on your ID document. example: XX123456 pattern: ^[A-Z0-9]{4,32}$ phone: type: string description: Phone number without the dailcode. example: "8123456" pattern: ^[0-9]{4,14}$ country: type: string description: Registered country in ISO Alpha2 format. example: SR pattern: ^[A-Z]{2}$ PutBusinessProfileRequest: title: Business type: object properties: public_name: type: string description: Public or short business name. example: Acme pattern: ^[\w\s.,:;!?()-]{3,120}$ slogan: type: string description: Business slogan. example: My example slogan pattern: ^[\w\s.,:;!?()-]{6,120}$ about: type: string description: Detailed description about the business. example: We are a company focussed on providing value to customers. pattern: ^[\w\s.,:;!?()-]{24,255}$ email: type: string format: email description: Support email address. example: hello@acme.com phone: type: string description: Support phone number. example: "412345" pattern: ^[0-9]{4,14}$ website: type: string format: url description: Full website or social url. example: https://acme.com primary_color: type: string description: Brand primary color. example: "#6A66F2" pattern: ^#([0-9A-Fa-f]{6})$ accent_color: type: string description: Brand accent color. example: "#E6E6FF" pattern: ^#([0-9A-Fa-f]{6})$ target_market: type: array description: Target markets. items: type: string enum: - B2B - B2C - B2G example: ["B2B", "B2C"] target_audience: type: array description: Target audiences. items: type: string enum: - Local - Regional - Global example: ["Local", "Regional"] PutBusinessIdentityRequest: type: object properties: legal_name: type: string description: Full business name as it appears on legal documents. example: Acme Incorporation pattern: ^[\w\s.,:;!?()-]{3,255}$ date_of_incorporation: type: string description: Date of incorporation as it appears on legal documents. example: "2022-10-12" pattern: ^\d{4}-\d{2}-\d{2}$ legal_form: type: string enum: - limited - partnership - sole-trader - trust - limited-gaurantee - limited-partnership - limited-liability-partnership - limited-liability-company - general partnership - sole-proprietorship - private-limited-company - public-limited-company - for-profit-corporation - non-profit-corporation description: Legal structure as it appears on legal documents. example: for-profit-corporation pattern: ^[a-z-]+$ commerce_number: type: string description: Chamber of Commerce registration number. example: XX123456 pattern: ^[A-Z0-9]{4,32}$ tax_number: type: string description: Tax / FIN number issued by local authority. example: FN123456 pattern: ^[A-Z0-9]{4,32}$ industry: type: string enum: - agroculture - automotive - aviation - commerce - communicationns - construction - consulting - education - energy - finance - food-beverage - government - health - hospitality - insurance - import-export - legal - logistics - manufacturing - marketplace - media - mining - oil-gas - pharmaceuticals - real-estate - retail - restaurant - services - software-as-a-service - technology - tranportation - utilities description: Industry as it appears on legal documents. example: technology pattern: ^[a-z-]+$ country: type: string description: Country of registration in ISO Alpha2 format. example: SR pattern: ^[A-Z]{2}$ PutBusinessDomainRequest: type: object required: - host properties: host: type: string description: Top-level or subdomain. example: example.com pattern: ^([\w-]+\.)*[\w-]+\.[a-z]{2,}$ # Profile Addresses PostProfileAddressRequest: type: object required: - address_line_1 - city properties: address_line_1: type: string description: Registered address as it appears on documents or utility bills. example: Example Street 10 pattern: ^[a-zA-Z0-9 ]+$ address_line_2: type: string description: Registered address as it appears on documents or utility bills. example: Example Street 12 pattern: ^[a-zA-Z0-9 ]+$ address_line_3: type: string description: Registered address as it appears on documents or utility bills. example: Example Street 14 pattern: ^[a-zA-Z0-9 ]+$ city: type: string description: Registered city as it appears on documents or utility bills. example: Paramaribo pattern: ^[a-zA-Z0-9 ]+$ state: type: string description: Registered state as it appears on documents or utility bills. pattern: ^[a-zA-Z0-9 ]+$ apartment: type: string description: Registered apartment no as it appears on documents or utility bills. pattern: ^[a-zA-Z0-9]{1,6}$ PutProfileAddressRequest: type: object properties: address_line_1: type: string description: Registered address as it appears on documents or utility bills. example: Example Street 10 pattern: ^[a-zA-Z0-9 ]+$ address_line_2: type: string description: Registered address as it appears on documents or utility bills. example: Example Street 12 pattern: ^[a-zA-Z0-9 ]+$ address_line_3: type: string description: Registered address as it appears on documents or utility bills. example: Example Street 14 pattern: ^[a-zA-Z0-9 ]+$ city: type: string description: Registered city as it appears on documents or utility bills. example: Paramaribo pattern: ^[a-zA-Z0-9 ]+$ state: type: string description: Registered state as it appears on documents or utility bills. pattern: ^[a-zA-Z0-9 ]+$ apartment: type: string description: Registered apartment no as it appears on documents or utility bills. pattern: ^[a-zA-Z0-9]{1,6}$ # Business Profile Owners PostBusinessOwnerRequest: type: object required: - full_name - email - type - role properties: full_name: type: string description: Full legal name of the person or business. example: Jane Smith pattern: ^[a-zA-Z0-9 ]{2,255}$ email: type: string format: email description: Official email address. type: $ref: "#/components/schemas/BusinessOwnerType" role: $ref: "#/components/schemas/BusinessOwnerRole" PutBusinessOwnerRequest: type: object properties: full_name: type: string description: Full legal name of the person or business. example: Jane Smith pattern: ^[a-zA-Z0-9 ]{2,255}$ type: $ref: "#/components/schemas/BusinessOwnerType" role: $ref: "#/components/schemas/BusinessOwnerRole" # Business Profile Members PostBusinessMemberRequest: type: object required: - email - role properties: email: type: string format: email description: Personal or business email address. role: $ref: "#/components/schemas/BusinessMemberRole" PutBusinessMemberRequest: type: object required: - role properties: role: $ref: "#/components/schemas/BusinessMemberRole" # Profile Tokens PostAccessTokenRequest: type: object required: - description - scopes properties: description: type: string description: Clear description on the token use case. example: Postman pattern: ^[a-zA-Z0-9() ]{4,48}$ scopes: type: array description: List scopes to attach to the token. minItems: 1 items: type: string example: invoices.read PutAccessTokenRequest: type: object required: - description properties: description: type: string description: Clear description on the token use case. example: Postman pattern: ^[a-zA-Z0-9() ]{4,48}$ PostAccessTokenPermissionRequest: type: object required: - scopes properties: scopes: type: array description: List of scopes to attach to the token. minItems: 1 items: type: string # Profile Webhooks PostWebhookRequest: type: object required: - description - endpoint - events properties: description: type: string description: Clear description on the webhook use case. example: Checkout Callback pattern: ^[a-zA-Z0-9() ]{4,48}$ endpoint: type: string format: url description: Full url of the webhook. example: https://my-checkout.com/callback events: type: array description: List of events to attach to the webhook. minItems: 1 items: type: string example: invoice.paid PutWebhookRequest: type: object properties: description: type: string description: Clear description on the webhook use case. example: Checkout Callback pattern: ^[a-zA-Z0-9() ]{4,48}$ endpoint: type: string format: url description: Full url of the webhook. example: https://my-checkout.com/callback PostWebhookTriggerRequest: type: object required: - events properties: events: type: array description: List of events to attach to the webhook. minItems: 1 items: type: string # Wallets PostWalletRequest: type: object properties: title: type: string description: Short title or name for the wallet. example: Acme Cash pattern: ^[a-zA-Z0-9 ]{6,48}$ icon: type: string enum: - bitcoin - blend - dollar-sign - flame - gem - headset - heart - infinity - landmark - leaf - piggy-bank - pyramid - snowflake - sparkles - tree-palm - trophy - vault - wallet - zap description: Custom icon slug. example: vault PatchWalletRequest: type: object properties: title: type: string description: Short title or name for the wallet. example: Acme Cash pattern: ^[a-zA-Z0-9 ]{6,48}$ icon: type: string enum: - bitcoin - blend - dollar-sign - flame - gem - headset - heart - infinity - landmark - leaf - piggy-bank - pyramid - snowflake - sparkles - tree-palm - trophy - vault - wallet - zap description: Custom icon slug. example: vault email: type: string format: email description: Email address for email notifications. (Only available on business wallets) example: notifications@acme.com PutWalletRequest: type: object properties: nickname: type: string description: Short nickname. example: Acme Finance pattern: ^[a-zA-Z0-9 ]{6,48}$ tag: type: string description: Unique tag used for transfer purposes. example: acmefinance pattern: ^[a-z0-9]{6,48}$ public: type: boolean description: Flag indicating if wallet is discoverable by other users. example: true PostWalletBalanceRequest: type: object required: - title - currency - type properties: title: type: string description: Short title or name for the balance. example: SRD Revenue pattern: ^[a-zA-Z0-9 ]{6,48}$ currency: type: string description: Currency code in ISO 4217 format. example: SRD pattern: ^[A-Z]{3}$ type: $ref: "#/components/schemas/WalletBalanceType" PutWalletBalanceRequest: type: object required: - title properties: title: type: string description: Short title or name for the balance. example: SRD Revenue pattern: ^[a-zA-Z0-9 ]{6,48}$ PostWalletAccountRequest: type: object required: - account_holder - account_number - account_type - swift_code - currency properties: account_holder: type: string description: Full account holder name. account_number: type: string description: Full account number / IBAN. account_type: $ref: "#/components/schemas/WalletAccountType" swift_code: type: string description: Bank Swift/BIC. currency: type: string description: Currency code in ISO 4217 format. minLength: 3 maxLength: 3 PatchWalletAccountRequest: type: object required: - code properties: code: type: string description: Six digit verification code. minLength: 6 maxLength: 6 PostWalletContactRequest: type: object required: - tag properties: tag: type: string description: Unique tag of the wallet. PostWalletPaymentLinkRequest: type: object required: - balance_id - description - amount properties: balance_id: type: string description: ID of the wallet balance to transfer funds. description: type: string description: Detailed description about the payment link. amount: type: number format: float description: Amount to transfer. PutWalletPaymentLinkRequest: type: object properties: description: type: string description: Detailed description about the payment link. amount: type: number format: float description: Amount to transfer. # Transfers PostMoveTransferRequest: title: Move type: object required: - source - destination - amount properties: source: type: string description: Source balance ID. destination: type: string description: Destination balance ID. amount: type: number format: float description: Amount to transfer. PostPeerTransferRequest: title: Peer type: object required: - source - destination - amount - reference properties: source: type: string description: Source balance ID. destination: type: string description: Contact ID or unique tag of the recipient wallet. amount: type: number format: float description: Amount to transfer. reference: type: string description: Summary about the transfer. PostBankTransferRequest: title: Bank type: object required: - source - destination - amount - reference properties: source: type: string description: Source balance ID. destination: type: string description: Wallet account ID. amount: type: number format: float description: Amount to transfer. reference: type: string description: Summary about the transfer. PostBatchTransferRequest: title: Batch type: object required: - transfers properties: transfers: type: array items: type: object required: - method - details properties: method: type: string enum: - peer - bank - move example: peer details: oneOf: - $ref: "#/components/schemas/PostMoveTransferRequest" - $ref: "#/components/schemas/PostPeerTransferRequest" - $ref: "#/components/schemas/PostBankTransferRequest" PostApproveTransferRequest: type: object required: - pin properties: pin: type: string description: Source wallet PIN. PostCancelTransferRequest: type: object required: - note properties: note: type: string description: Reason for cancellation. # Customers PostCustomerRequest: type: object required: - email properties: name: type: string description: The name of the customer. email: type: string format: email description: The email address of the customer. phone: type: string format: tel description: The phone number of the customer. (eg +597-8123456) default_currency: type: string description: Default currency to apply on all new invoices of the customer. billing_details: description: The billing details of the customer $ref: "#/components/schemas/CustomerBillingDetails" shipping_details: description: The shipping details of the customer $ref: "#/components/schemas/CustomerBillingDetails" metadata: type: object description: Up to 5 custom key-value pair PutCustomerRequest: type: object properties: name: type: string description: The name of the customer. email: type: string format: email description: The email address of the customer. phone: type: string format: tel description: The phone number of the customer. (eg +597-8123456) default_currency: type: string description: Default currency to apply on all new invoices of the customer. billing_details: description: The billing details of the customer $ref: "#/components/schemas/CustomerBillingDetails" shipping_details: description: The shipping details of the customer $ref: "#/components/schemas/CustomerBillingDetails" metadata: type: object description: Up to 5 custom key-value pair # Vouchers PostVoucherRequest: type: object required: - description - type - code - amount - max_redeems - expires properties: description: type: string description: Short description about the voucher. type: $ref: "#/components/schemas/RateType" code: type: string description: Unique code that will be shared with customers. amount: type: number format: float minimum: 1 description: Discount amount. max_redeems: type: number minimum: 1 maximum: 1000000 description: Max number of redeems. expires: type: string description: Expiration date in relative time. (e.g. 'In 3 days') PutVoucherRequest: type: object properties: description: type: string description: Short description about the voucher. type: $ref: "#/components/schemas/RateType" code: type: string description: Unique code that will be shared with customers. amount: type: number format: float minimum: 1 description: Discount amount. max_redeems: type: number minimum: 1 maximum: 1000000 description: Max number of redeems. expires: type: string description: Expiration date in relative time. (e.g. 'In 3 days') PostApplyVoucherRequest: type: object required: - invoice_id - code properties: invoice_id: type: string description: ID of the invoice redeeming the voucher. code: type: string description: Unique code of the voucher. # Plans PostPlanRequest: type: object required: - title - summary - currency properties: title: type: string description: Short description about the plan summary: type: string description: A detailed summary explaining what the plan is about. currency: type: string description: Currency code in ISO 4217 format. options: type: array minItems: 1 maxItems: 10 items: $ref: "#/components/schemas/PlanLineOption" PutPlanRequest: type: object properties: title: type: string description: Short description about the plan summary: type: string description: A detailed summary detailing what the plan is about. currency: type: string description: Currency code in ISO 4217 format. PostPlanOptionRequest: type: object properties: options: type: array items: $ref: "#/components/schemas/PlanLineOption" PutPlanOptionRequest: type: object properties: description: type: string description: Detailed description about the option. unit_price: type: number format: float minimum: 0.01 description: Price per unit. billing_interval: type: number minimum: 1 maximum: 365 description: The number of days for each billing interval. (e.g. 30 for monthly or 365 for yearly) trial_period: type: number minimum: 0 maximum: 365 description: The number of days before the first billable invoice is due. attributes: type: object maxProperties: 16 description: Custom key-value pairs that can be used for option specific features. # Invoices PostInvoiceRequest: type: object required: - customer - summary - due properties: customer: type: string description: ID or email address of the customer being billed. summary: type: string description: Detailed description about the invoice. currency: type: string description: Currency code in ISO 4217 format. Defaults to customer currency is none is provided. due: type: string description: Due date in relative time. (e.g. 'In 3 days') items: type: array minItems: 0 maxItems: 50 items: $ref: "#/components/schemas/InvoiceLineItem" PutInvoiceRequest: type: object properties: summary: type: string description: Detailed description about the invoice. currency: type: string description: Currency code in ISO 4217 format. due: type: string description: Due date in relative time. (e.g. 'In 3 days') PostInvoiceItemRequest: type: object properties: items: type: array minItems: 1 maxItems: 500 items: $ref: "#/components/schemas/InvoiceLineItem" PutInvoiceItemRequest: type: object properties: description: type: string description: Detailed description about the item. quantity: type: number description: Number of units. unit_price: type: number format: float description: Price per unit. # Subscriptions PostSubscriptionRequest: type: object required: - customer - auto_renew - items properties: customer: type: string description: ID or email address of the customer being billed. auto_renew: type: boolean description: Flag indicating if the subscription should auto renew the subscription at each billing cycle. trial_period: type: number minimum: 0 maximum: 365 description: The number of days before the first billable invoice is due. Required if more than 1 item is being subscribed to. items: type: array minItems: 1 maxItems: 10 items: $ref: "#/components/schemas/SubscriptionLineItem" # Payments PostInitiateWalletPaymentRequest: title: Instant type: object required: - invoice_id - redirect_url properties: invoice_id: type: string description: The ID of the invoice being paid. pattern: "^inv_.*$" redirect_url: type: string format: url description: The url to redirect the customer to after completing the payment. PostInitiateQrPaymentRequest: title: QR type: object required: - invoice_id - provider - billing_details properties: invoice_id: type: string description: The ID of the invoice being paid. pattern: "^inv_.*$" provider: type: string description: The slug of the provider. billing_details: $ref: "#/components/schemas/PaymentBillingDetails" PostInitiateCardPaymentRequest: title: Card type: object required: - invoice_id - card_details - billing_details properties: invoice_id: type: string description: The ID of the invoice being paid. pattern: "^inv_.*$" card_details: type: object required: - card_holder - card_number - exp_month - exp_year - brand - security properties: card_holder: type: string description: Full card holder name. card_number: type: string description: Full 16-digit card number. exp_month: type: string description: Card expiration month. exp_year: type: string description: Card expiration year. brand: type: string description: Card brand. security: type: string description: Card CVC, CVV or PIN. billing_details: $ref: "#/components/schemas/PaymentBillingDetails" PostInitiateBankPaymentRequest: title: Bank type: object required: - invoice_id - swift_code - redirect_url properties: invoice_id: type: string description: The ID of the invoice being paid. pattern: "^inv_.*$" swift_code: type: string description: Swift Code / BIC of the bank. redirect_url: type: string format: url description: The url to redirect the customer to after completing the payment. PostRefundPaymentRequest: type: object required: - type - note properties: type: type: string enum: - full - partial description: Type of refund to perform amount: type: number format: float description: Amount to refund. Required when type is set to partial. note: type: string description: Reason for refund. # Payment Providers PostProviderRequest: type: object required: - slug properties: slug: type: string description: The slug of the provider. merchant_id: type: string description: Provider specific Merchant ID. secret_key: type: string description: Provider specific API credentials. PutProviderRequest: type: object required: - merchant_id - secret_key properties: merchant_id: type: string description: Provider specific Merchant ID. secret_key: type: string description: Provider specific API credentials.