Moniepoint · Arazzo Workflow

Moniepoint Reserve Virtual Account

Version 1.0.0

Reserve a permanent NUBAN virtual account for a customer, confirm it, and read its inbound transactions.

1 workflow 1 source API 1 provider
View Spec View on GitHub AfricaNigeriaPaymentsBankingFintechAcquiringPOSCollectionsDisbursementsVirtual AccountsDirect DebitBills PaymentSMBWorking CapitalUnicornArazzoWorkflows

Provider

moniepoint

Workflows

reserve-virtual-account
Create a reserved NUBAN account, confirm it, then list its inbound transactions.
Reserve a permanent virtual account for a customer using a merchant accountReference, fetch the created account to surface the issued NUBAN and ACTIVE status, and list the inbound transactions paid into the account.
3 steps inputs: accountName, accountReference, bvn, contractCode, currencyCode, customerEmail, customerName outputs: accountReference, accounts, status, transactions
1
reserveAccount
reserveAccountV2
Create a permanent NUBAN virtual account for the customer under the supplied contract code.
2
getReservedAccount
getReservedAccountV2
Fetch the reserved account back by its accountReference to confirm the issued NUBAN details and account status.
3
listTransactions
listReservedAccountTransactions
List the paginated inbound transactions settled into the reserved account.

Source API Descriptions

Arazzo Workflow Specification

moniepoint-reserve-virtual-account-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Moniepoint Reserve Virtual Account
  summary: Reserve a permanent NUBAN virtual account for a customer, confirm it, and read its inbound transactions.
  description: >-
    Provision a dedicated reserved NUBAN account for a customer, then read the
    account back by its accountReference to confirm the issued NUBAN and status,
    and finally pull the paginated list of inbound bank-transfer transactions
    settled into that account. 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: reservedAccountsApi
  url: ../openapi/monnify-reserved-accounts-api-openapi.yml
  type: openapi
workflows:
- workflowId: reserve-virtual-account
  summary: Create a reserved NUBAN account, confirm it, then list its inbound transactions.
  description: >-
    Reserve a permanent virtual account for a customer using a merchant
    accountReference, fetch the created account to surface the issued NUBAN and
    ACTIVE status, and list the inbound transactions paid into the account.
  inputs:
    type: object
    required:
    - accountReference
    - accountName
    - currencyCode
    - contractCode
    - customerEmail
    properties:
      accountReference:
        type: string
        description: Unique merchant reference identifying the reserved account.
      accountName:
        type: string
        description: Display name for the reserved account.
      currencyCode:
        type: string
        description: ISO currency code for the account (e.g. NGN).
      contractCode:
        type: string
        description: Monnify contract code the account is created under.
      customerEmail:
        type: string
        description: Email address of the customer the account is reserved for.
      customerName:
        type: string
        description: Full name of the customer the account is reserved for.
      bvn:
        type: string
        description: Optional customer BVN (11 digits) used for KYC.
  steps:
  - stepId: reserveAccount
    description: >-
      Create a permanent NUBAN virtual account for the customer under the
      supplied contract code.
    operationId: reserveAccountV2
    requestBody:
      contentType: application/json
      payload:
        accountReference: $inputs.accountReference
        accountName: $inputs.accountName
        currencyCode: $inputs.currencyCode
        contractCode: $inputs.contractCode
        customerEmail: $inputs.customerEmail
        customerName: $inputs.customerName
        bvn: $inputs.bvn
    successCriteria:
    - condition: $statusCode == 200
    - condition: $.requestSuccessful == true
      context: $response.body
      type: jsonpath
    outputs:
      accountReference: $response.body#/responseBody/accountReference
      status: $response.body#/responseBody/status
      accounts: $response.body#/responseBody/accounts
  - stepId: getReservedAccount
    description: >-
      Fetch the reserved account back by its accountReference to confirm the
      issued NUBAN details and account status.
    operationId: getReservedAccountV2
    parameters:
    - name: accountReference
      in: path
      value: $steps.reserveAccount.outputs.accountReference
    successCriteria:
    - condition: $statusCode == 200
    - condition: $.responseBody.status == 'ACTIVE'
      context: $response.body
      type: jsonpath
    outputs:
      status: $response.body#/responseBody/status
      accounts: $response.body#/responseBody/accounts
  - stepId: listTransactions
    description: >-
      List the paginated inbound transactions settled into the reserved
      account.
    operationId: listReservedAccountTransactions
    parameters:
    - name: accountReference
      in: query
      value: $steps.reserveAccount.outputs.accountReference
    - name: page
      in: query
      value: 0
    - name: size
      in: query
      value: 10
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      transactions: $response.body#/responseBody/content
      totalElements: $response.body#/responseBody/totalElements
  outputs:
    accountReference: $steps.reserveAccount.outputs.accountReference
    status: $steps.getReservedAccount.outputs.status
    accounts: $steps.getReservedAccount.outputs.accounts
    transactions: $steps.listTransactions.outputs.transactions