Paystack · Arazzo Workflow

Paystack Bulk Recipients and Bulk Transfer

Version 1.0.0

Bulk-create transfer recipients, list them to confirm registration, then initiate a bulk transfer to pay them all.

1 workflow 1 source API 1 provider
View Spec View on GitHub PaymentsAfricaFintechRecurring BillingMarketplacesPayoutsMobile MoneyStripeArazzoWorkflows

Provider

paystack

Workflows

bulk-recipients-and-bulk-transfer
Register many recipients at once and pay them in a single bulk transfer.
Bulk-creates recipients, lists them, then initiates a bulk transfer carrying per-recipient amounts.
3 steps inputs: batch, transfers outputs: successes, transfers
1
bulkCreateRecipients
transferrecipient_bulk
Create the batch of transfer recipients in a single call.
2
listRecipients
transferrecipient_list
List transfer recipients to confirm the batch was registered.
3
initiateBulkTransfer
transfer_bulk
Initiate a bulk transfer from the balance to the registered recipients.

Source API Descriptions

Arazzo Workflow Specification

paystack-bulk-recipients-and-bulk-transfer-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Paystack Bulk Recipients and Bulk Transfer
  summary: Bulk-create transfer recipients, list them to confirm registration, then initiate a bulk transfer to pay them all.
  description: >-
    The mass-payout flow. A batch of transfer recipients is created in one call,
    the recipient list is read to confirm they were registered, and a bulk
    transfer is initiated from the balance to pay multiple recipients at once.
    Every step spells out its request inline so the flow can be read and executed
    without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: transfersApi
  url: ../openapi/paystack-transfers-openapi.yml
  type: openapi
workflows:
- workflowId: bulk-recipients-and-bulk-transfer
  summary: Register many recipients at once and pay them in a single bulk transfer.
  description: >-
    Bulk-creates recipients, lists them, then initiates a bulk transfer carrying
    per-recipient amounts.
  inputs:
    type: object
    required:
    - batch
    - transfers
    properties:
      batch:
        type: array
        description: List of recipient objects, each with type, name, account_number and bank_code.
        items:
          type: object
      transfers:
        type: array
        description: List of transfer objects, each with amount, recipient and reference.
        items:
          type: object
  steps:
  - stepId: bulkCreateRecipients
    description: Create the batch of transfer recipients in a single call.
    operationId: transferrecipient_bulk
    requestBody:
      contentType: application/json
      payload:
        batch: $inputs.batch
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      successes: $response.body#/data/success
  - stepId: listRecipients
    description: List transfer recipients to confirm the batch was registered.
    operationId: transferrecipient_list
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      recipients: $response.body#/data
  - stepId: initiateBulkTransfer
    description: Initiate a bulk transfer from the balance to the registered recipients.
    operationId: transfer_bulk
    requestBody:
      contentType: application/json
      payload:
        source: balance
        transfers: $inputs.transfers
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      transfers: $response.body#/data
  outputs:
    successes: $steps.bulkCreateRecipients.outputs.successes
    transfers: $steps.initiateBulkTransfer.outputs.transfers