Paystack is a payment processing platform for accepting card, bank, and mobile money payments across Africa. The Paystack REST API exposes endpoints for initializing and verifying transactions, charging saved authorizations, and running bulk charges. Nexla connects to Paystack to ingest transaction and charge data as a source and to send payment operations as a destination.
Power end-to-end data operations for your Paystack API with Nexla. Our bi-directional Paystack connector is purpose-built for Paystack, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Paystack or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Paystack workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
Before creating a Paystack credential, you need your Paystack secret key. The Paystack API authenticates every request with your secret key sent in the Authorization header using the Bearer scheme (Authorization: Bearer SECRET_KEY).
Navigate to Settings, then open the API Keys & Webhooks section (the Developer/API area of your dashboard settings).
Copy your Secret Key. Each environment has its own keys: test secret keys are prefixed with sk_test_ and live secret keys are prefixed with sk_live_. Use the key that matches the environment you want Nexla to connect to.
Keep your secret key confidential. It can modify your account, so do not commit it to source control or expose it in client-side code. If you believe a key has been compromised, you can reset it from the same dashboard settings page. For more detail, see the Paystack Authentication documentation.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter your Paystack secret key in the API Key Value field. This is the secret key you obtained in Prerequisites. Nexla sends this value in the Authorization header using the Bearer scheme for all API requests.
Your secret key is sensitive and grants access to your Paystack account. Keep it confidential, and reset it from your Paystack dashboard if you believe it has been compromised.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Paystack connector tile, then select the credential that will be used to connect to Paystack, and click Next; or, create a new Paystack credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Paystack endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.
[Rest API] Verify Transaction
This endpoint template confirms the status of a transaction using its transaction reference. Use this template when you need to verify that a payment was completed successfully before fulfilling an order or updating records.
Provide the transaction Reference parameter to identify the transaction to verify. The endpoint returns the full transaction record, including its status, amount, and customer details.
This endpoint template retrieves a list of transactions on your Paystack integration. Use this template when you need to ingest transaction history for analysis, reporting, or reconciliation.
Optional query parameters such as Per Page, Page, From, To, Status, Amount, Customer Code, and Channel can be supplied to filter and paginate the results.
This endpoint template retrieves the details of a single transaction by its ID. Use this template when you need the full record for one specific transaction.
Provide the transaction Id parameter to identify the transaction to fetch.
This endpoint template retrieves the timeline of a transaction, showing the sequence of events that occurred while processing the payment. Use this template when you need to inspect the processing history of a transaction.
Provide the transaction Id parameter to identify the transaction whose timeline you want to fetch.
This endpoint template retrieves the total amount received on your account. Use this template when you need aggregate transaction totals for reporting or dashboards.
Optional From and To query parameters can be supplied to restrict the totals to a specific date range.
This endpoint template exports a list of transactions carried out on your integration. Use this template when you need a downloadable export of transaction data.
Optional query parameters such as From, To, Status, Customer, Subaccount Code, and Settlement can be supplied to filter the export.
This endpoint template checks the status of a pending charge using its reference. Use this template when you need to poll a charge that is awaiting completion of an additional step.
Provide the Reference parameter to identify the pending charge to check.
This endpoint template retrieves the bulk charge batches created on your integration. Use this template when you need to ingest the list of bulk charge batches for tracking or reporting.
Optional Perpage, Page, and Status query parameters can be supplied to filter and paginate the results.
This endpoint template retrieves the details of a specific bulk charge batch. Use this template when you need the full record for one bulk charge batch.
Provide the batch Code parameter to identify the bulk charge batch to fetch.
This endpoint template retrieves the individual charges belonging to a bulk charge batch. Use this template when you need the per-charge results within a batch.
Provide the batch Code parameter to identify the batch. Optional Perpage, Page, and Status query parameters can be supplied to filter and paginate the charges.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Paystack data sources can also be manually configured to ingest data from any valid Paystack API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Paystack data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Paystack destination, and select the Send to Destination option from the menu. Select the Paystack connector from the list of available destination connectors, then select the credential that will be used to connect to Paystack, and click Next; or, create a new Paystack credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Paystack endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
[Rest API] Initialize Transaction
This endpoint template initializes a transaction to accept a payment, using records from a Nexset as the request body. Use this template when you need to start new transactions based on data from your Nexla flows.
Each record from your Nexset is sent as a JSON request body to initialize a transaction. The body should contain the fields required by Paystack, such as the customer email and the amount.
This endpoint template charges a previously saved authorization, using records from a Nexset as the request body. Use this template to charge returning customers without requiring them to re-enter their card details.
Each record from your Nexset is sent as a JSON request body. The body should contain the fields required by Paystack, such as the customer email, amount, and authorization code.
This endpoint template retrieves part of a payment from a customer using a saved authorization, sending records from a Nexset as the request body. Use this template when you need to debit a partial amount against an authorization.
Each record from your Nexset is sent as a JSON request body. The body should contain the fields required by Paystack, such as the authorization code, currency, amount, and customer email.
This endpoint template configures a charge on a supported payment channel, using records from a Nexset as the request body. Use this template to initiate charges across channels such as bank, card, USSD, or mobile money.
Each record from your Nexset is sent as a JSON request body. The body should contain the fields required by Paystack for the chosen payment channel.
This endpoint template submits a PIN to continue a charge, using records from a Nexset as the request body. Use this template when a charge requires a card PIN to proceed.
Each record from your Nexset is sent as a JSON request body. The body should contain the PIN and the charge reference required by Paystack.
This endpoint template submits an OTP to continue a charge, using records from a Nexset as the request body. Use this template when a charge requires a one-time password to proceed.
Each record from your Nexset is sent as a JSON request body. The body should contain the OTP and the charge reference required by Paystack.
This endpoint template submits a phone number when requested during a charge, using records from a Nexset as the request body. Use this template when a charge requires the customer's phone number to proceed.
Each record from your Nexset is sent as a JSON request body. The body should contain the phone number and the charge reference required by Paystack.
This endpoint template submits a birthday when requested during a charge, using records from a Nexset as the request body. Use this template when a charge requires the customer's birthday to proceed.
Each record from your Nexset is sent as a JSON request body. The body should contain the birthday and the charge reference required by Paystack.
This endpoint template submits an address when requested during a charge, using records from a Nexset as the request body. Use this template when a charge requires the customer's address to proceed.
Each record from your Nexset is sent as a JSON request body. The body should contain the address fields and the charge reference required by Paystack.
This endpoint template sends an array of authorizations to charge multiple customers in a single batch, using records from a Nexset as the request body. Use this template when you need to charge many saved authorizations at once.
Each record from your Nexset is sent as a JSON request body containing the authorization codes and amounts to charge.
Paystack destinations can also be manually configured to send data to any valid Paystack API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
Paystack APIs expect JSON format for these operations. Ensure each record contains the fields required by the target endpoint.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Paystack endpoint, open the destination resource menu, and select Activate.
The Nexset data will not be sent to the Paystack endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.