BUSINESS · COMMERCE & FINANCE
Transactions, customers, subscriptions, and transfers on that merchant’s account.
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
paystack_delete_apple_pay_domainWRITEUnregister a top-level domain or subdomain previously used for your Apple Pay integration. via DELETE /apple-pay/domain
paystack_delete_dedicated_account_by_idWRITEDeactivate a dedicated virtual account on your integration. via DELETE /dedicated_account/{id}
paystack_delete_dedicated_account_splitWRITEIf you've previously set up split payment for transactions on a dedicated virtual account, you can remove it with this endpoint via DELETE /dedicated_account/split
paystack_delete_product_by_idWRITEDelete a previously created product via DELETE /product/{id}
paystack_delete_storefront_by_idWRITEDelete a previously created Storefront via DELETE /storefront/{id}
paystack_delete_transferrecipient_by_codeWRITEDelete a transfer recipient (sets the transfer recipient to inactive) via DELETE /transferrecipient/{code}
paystack_delete_virtual_terminal_by_code_split_codeWRITERemove Split Code from Virtual Terminal via DELETE /virtual_terminal/{code}/split_code
paystack_get_address_verification_statesREADGet a list of states for a country for address verification via GET /address_verification/states
paystack_get_apple_pay_domainREADLists all registered domains on your integration. Returns an empty array if no domains have been added. via GET /apple-pay/domain
paystack_get_balanceREADFetch the available balance on your integration via GET /balance
paystack_get_balance_ledgerREADFetch all pay-ins and pay-outs that occured on your integration via GET /balance/ledger
paystack_get_bankREADList banks supported on Paystack via GET /bank
paystack_get_bank_resolveREADResolve an account number to confirm the name associated with it via GET /bank/resolve
paystack_get_bulkchargeREADList all bulk charge batches. via GET /bulkcharge
paystack_get_bulkcharge_by_codeREADThis endpoint retrieves a specific batch code. It also returns useful information on its progress by way of the `total_charges` and `pending_charges` attributes. via GET /bulkcharge/{code}
paystack_get_bulkcharge_by_code_chargesREADThis endpoint retrieves the charges associated with a specified batch code via GET /bulkcharge/{code}/charges
paystack_get_bulkcharge_pause_by_codeREADPause the processing of a charge batch via GET /bulkcharge/pause/{code}
paystack_get_bulkcharge_resume_by_codeREADResume the processing of a previously paused charge batch via GET /bulkcharge/resume/{code}
paystack_get_charge_by_referenceREADWhen you get `pending` as a charge status or if there was an exception when calling any of the `/charge` endpoints, wait 10 seconds or more, then make a check to see if its status has changed. Don't call too early as you may get a lot more pending than you should. via GET /charge/{reference}
paystack_get_countryREADList all supported countries on Paystack via GET /country
paystack_get_customerREADList customers on your integration via GET /customer
paystack_get_customer_authorization_verify_by_referenceREADCheck the status of an authorization request via GET /customer/authorization/verify/{reference}
paystack_get_customer_by_codeREADGet details of a customer on your integration. via GET /customer/{code}
paystack_get_customer_by_id_directdebit_mandate_authorizationsREADGet the list of direct debit mandates associated with a customer via GET /customer/{id}/directdebit-mandate-authorizations
paystack_get_decision_bin_by_binREADGet the details of a card BIN via GET /decision/bin/{bin}
paystack_get_dedicated_accountREADList dedicated virtual accounts available on your integration. via GET /dedicated_account
paystack_get_dedicated_account_available_providersREADGet available bank providers for a dedicated virtual account via GET /dedicated_account/available_providers
paystack_get_dedicated_account_by_idREADGet details of a dedicated virtual account on your integration. via GET /dedicated_account/{id}
paystack_get_dedicated_account_requeryREADRequery Dedicated Virtual Account for new transactions via GET /dedicated_account/requery
paystack_get_directdebit_mandate_authorizationsREADGet a list of all the direct debit mandates on your integration via GET /directdebit/mandate-authorizations
paystack_get_disputeREADList transaction disputes filed by customers via GET /dispute
paystack_get_dispute_by_idREADFetch a transaction dispute via GET /dispute/{id}
paystack_get_dispute_by_id_upload_urlREADGet the URL to upload a dispute evidence via GET /dispute/{id}/upload_url
paystack_get_dispute_exportREADExport the disputes available on your integration via GET /dispute/export
paystack_get_dispute_transaction_by_idREADList all disputes filed for a transaction via GET /dispute/transaction/{id}
paystack_get_integration_payment_session_timeoutREADFetch the session timeout of a transaction via GET /integration/payment_session_timeout
paystack_get_orderREADList the previously created orders via GET /order
paystack_get_order_by_code_validateREADValidate a pay for me order via GET /order/{code}/validate
paystack_get_order_by_idREADFetch the details of a previously created order via GET /order/{id}
paystack_get_order_product_by_idREADFetch all orders for a particular product via GET /order/product/{id}
paystack_get_pageREADList all previously created payment pages via GET /page
paystack_get_page_by_idREADGet a previously created payment page via GET /page/{id}
paystack_get_page_check_slug_availability_by_slugREADCheck if a custom slug is available for use when creating a payment page via GET /page/check_slug_availability/{slug}
paystack_get_paymentrequestREADList all previously created payment requests to your customers via GET /paymentrequest
paystack_get_paymentrequest_by_idREADFetch a previously created payment request via GET /paymentrequest/{id}
paystack_get_paymentrequest_totalsREADGet the metric of all pending and successful payment requests via GET /paymentrequest/totals
paystack_get_paymentrequest_verify_by_idREADVerify the status of a previously created payment request via GET /paymentrequest/verify/{id}
paystack_get_planREADList all recurring payment plans via GET /plan
paystack_get_plan_by_codeREADGet the details of a payment plan via GET /plan/{code}
paystack_get_productREADList all previously created products via GET /product
paystack_get_product_by_idREADFetch a previously created product via GET /product/{id}
paystack_get_refundREADList previously created refunds via GET /refund
paystack_get_refund_by_idREADGet a previously created refund via GET /refund/{id}
paystack_get_settlementREADList settlements made to your settlement accounts via GET /settlement
paystack_get_settlement_by_id_transactionsREADGet the transactions that make up a particular settlement via GET /settlement/{id}/transactions
paystack_get_splitREADList the transaction splits available on your integration via GET /split
paystack_get_split_by_idREADGet details of a split configuration for a transaction via GET /split/{id}
paystack_get_storefrontREADList the storefronts you previously created via GET /storefront
paystack_get_storefront_by_idREADGet the details of a previously created Storefront via GET /storefront/{id}
paystack_get_storefront_by_id_orderREADFetch all orders in your Storefront via GET /storefront/{id}/order
paystack_get_storefront_by_id_productREADList the products in a Storefront via GET /storefront/{id}/product
paystack_get_storefront_verify_by_slugREADVerify the availability of a slug before using it for your Storefront via GET /storefront/verify/{slug}
paystack_get_subaccountREADList subaccounts available on your integration via GET /subaccount
paystack_get_subaccount_by_codeREADGet details of a subaccount on your integration via GET /subaccount/{code}
paystack_get_subscriptionREADList all subscriptions available on your integration via GET /subscription
paystack_get_subscription_by_codeREADGet details of a customer's subscription via GET /subscription/{code}
paystack_get_subscription_by_code_manage_linkREADGenerate a link for updating the card on a subscription via GET /subscription/{code}/manage/link
paystack_get_terminalREADList the Terminals available on your integration via GET /terminal
paystack_get_terminal_by_terminal_idREADGet the details of a Terminal via GET /terminal/{terminal_id}
paystack_get_terminal_by_terminal_id_event_by_event_idREADCheck the status of an event sent to the Terminal via GET /terminal/{terminal_id}/event/{event_id}
paystack_get_terminal_by_terminal_id_presenceREADCheck the availiability of a Terminal before sending an event to it via GET /terminal/{terminal_id}/presence
paystack_get_transactionREADList transactions that has occurred on your integration via GET /transaction
paystack_get_transaction_by_idREADFetch a transaction to get its details via GET /transaction/{id}
paystack_get_transaction_exportREADDownload transactions that occurred on your integration for a specific timeframe via GET /transaction/export
paystack_get_transaction_timeline_by_idREADFetch the steps taken from the initiation to the completion of a transaction via GET /transaction/timeline/{id}
paystack_get_transaction_totalsREADGet the total amount of all transactions via GET /transaction/totals
paystack_get_transaction_verify_by_referenceREADVerify a previously initiated transaction using it's reference via GET /transaction/verify/{reference}
paystack_get_transferREADList the transfers made on your integration via GET /transfer
paystack_get_transfer_by_codeREADGet details of a transfer on your integration via GET /transfer/{code}
paystack_get_transfer_exportREADExport a list of transfers carried out on your integration via GET /transfer/export
paystack_get_transfer_verify_by_referenceREADVerify the status of a transfer on your integration via GET /transfer/verify/{reference}
paystack_get_transferrecipientREADList transfer recipients available on your integration via GET /transferrecipient
paystack_get_transferrecipient_by_codeREADFetch the details of a transfer recipient via GET /transferrecipient/{code}
paystack_get_virtual_terminalREADList Virtual Terminals on your integration via GET /virtual_terminal
paystack_get_virtual_terminal_by_codeREADFetch a Virtual Terminal on your integration via GET /virtual_terminal/{code}
paystack_post_apple_pay_domainWRITERegister a top-level domain or subdomain for your Apple Pay integration. > This endpoint can only be called with one domain or subdomain at a time. via POST /apple-pay/domain
paystack_post_bank_validateWRITEConfirm the authenticity of a customer's account number before sending money via POST /bank/validate
paystack_post_bulkchargeWRITECharge multiple customers in batches via POST /bulkcharge
paystack_post_chargeWRITEInitiate a payment by integrating the payment channel of your choice. via POST /charge
paystack_post_charge_submit_addressWRITESend the details of the customer's address for address verification via POST /charge/submit_address
paystack_post_charge_submit_birthdayWRITESubmit the customer's birthday when requested via POST /charge/submit_birthday
paystack_post_charge_submit_otpWRITESubmit OTP to complete a charge via POST /charge/submit_otp
paystack_post_charge_submit_phoneWRITESubmit phone number when requested via POST /charge/submit_phone
paystack_post_charge_submit_pinWRITESubmit PIN to continue a charge via POST /charge/submit_pin
paystack_post_customerWRITECreate a customer on your integration via POST /customer
paystack_post_customer_authorization_deactivateWRITEDeactivate an authorization for any payment channel. via POST /customer/authorization/deactivate
paystack_post_customer_authorization_initializeWRITEInitiate a request to create a reusable authorization code for recurring transactions via POST /customer/authorization/initialize
paystack_post_customer_by_code_identificationWRITEValidate a customer's identity via POST /customer/{code}/identification
paystack_post_customer_by_id_initialize_direct_debitWRITEInitialize the process of linking an account to a customer for Direct Debit transactions via POST /customer/{id}/initialize-direct-debit
paystack_post_customer_set_risk_actionWRITESet customer's risk action by whitelisting or blacklisting the customer via POST /customer/set_risk_action
paystack_post_dedicated_accountWRITECreate a dedicated virtual account for an existing customer via POST /dedicated_account
paystack_post_dedicated_account_assignWRITEWith this endpoint, you can create a customer, validate the customer, and assign a DVA to the customer. via POST /dedicated_account/assign
paystack_post_dedicated_account_splitWRITESplit a dedicated virtual account transaction with one or more accounts via POST /dedicated_account/split
paystack_post_dispute_by_id_evidenceWRITEProvide evidence for a dispute via POST /dispute/{id}/evidence
paystack_post_orderWRITECreate an order for selected items via POST /order
paystack_post_pageWRITECreate a webpage to receive payments via POST /page
paystack_post_page_by_id_productWRITEAdd products to a previously created payment page. You can only add products to pages that was created with a `product` type. via POST /page/{id}/product
paystack_post_paymentrequestWRITECreate a new payment request by issuing an invoice to a customer via POST /paymentrequest
paystack_post_paymentrequest_archive_by_idWRITEArchive a payment request to clean up your records. An archived payment request cannot be verified and will not be returned when listing all previously created payment requests. via POST /paymentrequest/archive/{id}
paystack_post_paymentrequest_finalize_by_idWRITEFinalise the creation of a draft payment request for a customer via POST /paymentrequest/finalize/{id}
paystack_post_paymentrequest_notify_by_idWRITETrigger an email reminder to a customer for a previously created payment request via POST /paymentrequest/notify/{id}
paystack_post_planWRITECreate a plan for recurring payments via POST /plan
paystack_post_productWRITECreate a new product on your integration via POST /product
paystack_post_refundWRITEInitiate a refund for a previously completed transaction via POST /refund
paystack_post_refund_retry_with_customer_details_by_idWRITERetry a refund with a `needs-attention` status by providing the bank account details of a customer. via POST /refund/retry_with_customer_details/{id}
paystack_post_splitWRITECreate a split configuration for transactions via POST /split
paystack_post_split_by_id_subaccount_addWRITEAdd a subaccount to a split configuration, or update the share of an existing subaccount via POST /split/{id}/subaccount/add
paystack_post_split_by_id_subaccount_removeWRITERemove a subaccount from a split configuration via POST /split/{id}/subaccount/remove
paystack_post_storefrontWRITECreate a digital shop to manage and display your products via POST /storefront
paystack_post_storefront_by_id_duplicateWRITEDuplicate a previously created Storefront via POST /storefront/{id}/duplicate
paystack_post_storefront_by_id_productWRITEAdd previously created products to a Storefront via POST /storefront/{id}/product
paystack_post_storefront_by_id_publishWRITEMake your Storefront publicly available via POST /storefront/{id}/publish
paystack_post_subaccountWRITECreate a subacount for a partner via POST /subaccount
paystack_post_subscriptionWRITECreate a subscription a customer via POST /subscription
paystack_post_subscription_by_code_manage_emailWRITEEmail a customer a link for updating the card on their subscription via POST /subscription/{code}/manage/email
paystack_post_subscription_disableWRITEDisable a subscription on your integration via POST /subscription/disable
paystack_post_subscription_enableWRITEEnable a subscription on your integration via POST /subscription/enable
paystack_post_terminal_by_id_eventWRITESend an event from your application to the Paystack Terminal via POST /terminal/{id}/event
paystack_post_terminal_commission_deviceWRITEActivate your debug device by linking it to your integration via POST /terminal/commission_device
paystack_post_terminal_decommission_deviceWRITEUnlink your debug device from your integration via POST /terminal/decommission_device
paystack_post_transaction_charge_authorizationWRITECharge all authorizations marked as reusable with this endpoint whenever you need to receive payments via POST /transaction/charge_authorization
paystack_post_transaction_initializeWRITECreate a new transaction via POST /transaction/initialize
paystack_post_transaction_partial_debitWRITERetrieve part of a payment from a customer via POST /transaction/partial_debit
paystack_post_transferWRITESend money to your customers via POST /transfer
paystack_post_transfer_bulkWRITEBatch multiple transfers in a single request. You need to disable the Transfers OTP requirement to use this endpoint. via POST /transfer/bulk
paystack_post_transfer_disable_otpWRITEThis is used in the event that you want to be able to complete transfers programmatically without use of OTPs. No arguments required. You will get an OTP to complete the request. via POST /transfer/disable_otp
paystack_post_transfer_disable_otp_finalizeWRITEFinalize the request to disable OTP on your transfers via POST /transfer/disable_otp_finalize
paystack_post_transfer_enable_otpWRITEIn the event that a customer wants to stop being able to complete transfers programmatically, this endpoint helps turn OTP requirement back on. No arguments required. via POST /transfer/enable_otp
paystack_post_transfer_finalize_transferWRITEFinalize an initiated transfer via POST /transfer/finalize_transfer
paystack_post_transfer_resend_otpWRITEGenerates and send a new OTP to customer in the event they are having trouble receiving one. via POST /transfer/resend_otp
paystack_post_transferrecipientWRITECreates a new recipient. A duplicate account number will lead to the retrieval of the existing record. via POST /transferrecipient
paystack_post_transferrecipient_bulkWRITECreate multiple transfer recipients in batches. A duplicate account number will lead to the retrieval of the existing record. via POST /transferrecipient/bulk
paystack_post_virtual_terminalWRITECreate a Virtual Terminal on your integration via POST /virtual_terminal
paystack_post_virtual_terminal_by_code_destination_assignWRITEAdd a destination (WhatsApp number) to a Virtual Terminal on your integration via POST /virtual_terminal/{code}/destination/assign
paystack_post_virtual_terminal_by_code_destination_unassignWRITEUnassign a destination (WhatsApp Number) from a Virtual Terminal on your integration via POST /virtual_terminal/{code}/destination/unassign
paystack_put_customer_by_codeWRITEUpdate a customer's details on your integration via PUT /customer/{code}
paystack_put_customer_by_id_directdebit_activation_chargeWRITETrigger an activation charge on an inactive mandate on behalf of your customer via PUT /customer/{id}/directdebit-activation-charge
paystack_put_directdebit_activation_chargeWRITETrigger activation charge for specified customers via PUT /directdebit/activation-charge
paystack_put_dispute_by_idWRITEUpdate a transaction dispute via PUT /dispute/{id}
paystack_put_dispute_by_id_resolveWRITEResolve a transaction dispute via PUT /dispute/{id}/resolve
paystack_put_integration_payment_session_timeoutWRITEUpdate the session timeout of a transaction via PUT /integration/payment_session_timeout
paystack_put_page_by_idWRITEUpdate a previously created payment page via PUT /page/{id}
paystack_put_paymentrequest_by_idWRITEUpdate a previously created payment request via PUT /paymentrequest/{id}
paystack_put_plan_by_codeWRITEUpdate a plan details on your integration via PUT /plan/{code}
paystack_put_product_by_idWRITEUpdate a previously created product via PUT /product/{id}
paystack_put_split_by_idWRITEUpdate a split configuration for transactions via PUT /split/{id}
paystack_put_storefront_by_idWRITEUpdate the details of a previously created Storefront via PUT /storefront/{id}
paystack_put_subaccount_by_codeWRITEUpdate a subaccount details on your integration via PUT /subaccount/{code}
paystack_put_terminal_by_terminal_idWRITEUpdate the details of a Terminal via PUT /terminal/{terminal_id}
paystack_put_transferrecipient_by_codeWRITEUpdate the details of a transfer recipient via PUT /transferrecipient/{code}
paystack_put_virtual_terminal_by_codeWRITEUpdate a Virtual Terminal on your integration via PUT /virtual_terminal/{code}
paystack_put_virtual_terminal_by_code_deactivateWRITEDeactivate a Virtual Terminal on your integration via PUT /virtual_terminal/{code}/deactivate
paystack_put_virtual_terminal_by_code_split_codeWRITEAdd Split Code to Virtual Terminal via PUT /virtual_terminal/{code}/split_code
Put Paystack behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.