Skip to main content

Paystack

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.

Paystack icon

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

Prerequisites

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).

To obtain your secret key:

  1. Sign in to your Paystack Dashboard.

  2. Navigate to Settings, then open the API Keys & Webhooks section (the Developer/API area of your dashboard settings).

  3. 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.

Authenticate

Credentials required

An authentication method that requires sending a unique secret token with each API request

FieldRequiredSecretDescription
API Key ValueYesYesAn encoded string value used as a secret token to authenticate API requests

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. 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.

  4. 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.

Use as a data source

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.

Endpoint templates

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.

For detailed information about the response structure and available fields, see the Paystack Transactions API documentation.

[Rest API] List Transactions

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.

For detailed information about the response structure and available filters, see the Paystack Transactions API documentation.

[Rest API] Fetch Transaction

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.

For detailed information about the response structure and available fields, see the Paystack Transactions API documentation.

[Rest API] Fetch Transaction Timeline

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.

For detailed information about the response structure and available fields, see the Paystack Transactions API documentation.

[Rest API] Transaction Totals

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.

For detailed information about the response structure and available fields, see the Paystack Transactions API documentation.

[Rest API] Export Transactions

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.

For detailed information about the response structure and available filters, see the Paystack Transactions API documentation.

[Rest API] Check pending charge

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.

For detailed information about the response structure and available fields, see the Paystack Charge API documentation.

[Rest API] List Bulk Charge Batches

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.

For detailed information about the response structure and available fields, see the Paystack Bulk Charges API documentation.

[Rest API] Fetch Bulk Charge Batch

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.

For detailed information about the response structure and available fields, see the Paystack Bulk Charges API documentation.

[Rest API] List Charges in a Batch

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.

For detailed information about the response structure and available fields, see the Paystack Bulk Charges API documentation.

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.

Manual configuration

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.

Use as a destination

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.

Endpoint templates

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.

For detailed information about the request body format and available fields, see the Paystack Transactions API documentation.

[Rest API] Charge Authorization

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.

For detailed information about the request body format and available fields, see the Paystack Transactions API documentation.

[Rest API] Partial Debit

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.

For detailed information about the request body format and available fields, see the Paystack Transactions API documentation.

[Rest API] Create Charge

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.

For detailed information about the request body format and available fields, see the Paystack Charge API documentation.

[Rest API] Submit PIN

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.

For detailed information about the request body format and available fields, see the Paystack Charge API documentation.

[Rest API] Submit OTP

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.

For detailed information about the request body format and available fields, see the Paystack Charge API documentation.

[Rest API] Submit Phone

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.

For detailed information about the request body format and available fields, see the Paystack Charge API documentation.

[Rest API] Submit Birthday

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.

For detailed information about the request body format and available fields, see the Paystack Charge API documentation.

[Rest API] Submit Address

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.

For detailed information about the request body format and available fields, see the Paystack Charge API documentation.

[Rest API] Initiate Bulk Charge

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.

For detailed information about the request body format and available fields, see the Paystack Bulk Charges API documentation.

Manual configuration

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.

Save & activate

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.