Moniepoint · Arazzo Workflow

Moniepoint Virtual Account With Limit Profile

Version 1.0.0

Define a transaction limit profile, then reserve a virtual account bound to that profile.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub AfricaNigeriaPaymentsBankingFintechAcquiringPoint-of-SaleCollectionDisbursementsVirtual AccountsDirect DebitBills PaymentSMBWorking CapitalUnicornArazzoWorkflows

Provider

moniepoint

Workflows

virtual-account-with-limit
Create a limit profile and reserve a virtual account bound to it.
Define a reusable limit profile, then create a reserved account that references the profile by limitProfileCode, and confirm the account by reading it back.
3 steps inputs: accountName, accountReference, contractCode, currencyCode, customerEmail, dailyTransactionValue, dailyTransactionVolume, limitProfileName, singleTransactionValue outputs: accountReference, accounts, limitProfileCode, status
1
createLimitProfile
Define a limit profile that caps single-transaction value and daily transaction volume and value.
2
reserveAccountWithLimit
Reserve a permanent NUBAN virtual account pre-assigned to the limit profile created above.
3
confirmAccount
Read the reserved account back by its accountReference to confirm creation and surface the issued NUBAN details.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Moniepoint Virtual Account With Limit Profile
  summary: Define a transaction limit profile, then reserve a virtual account bound to that profile.
  description: >-
    Create a per-account limit profile that caps single-transaction value and
    daily transaction volume, then reserve a permanent NUBAN virtual account
    that is pre-assigned to that limit profile, and read the account back to
    confirm it was created. 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: limitProfilesApi
  url: ../openapi/moniepoint-limit-profiles-api-openapi.yml
  type: openapi
- name: reservedAccountsApi
  url: ../openapi/moniepoint-reserved-accounts-api-openapi.yml
  type: openapi
workflows:
- workflowId: virtual-account-with-limit
  summary: Create a limit profile and reserve a virtual account bound to it.
  description: >-
    Define a reusable limit profile, then create a reserved account that
    references the profile by limitProfileCode, and confirm the account by
    reading it back.
  inputs:
    type: object
    required:
    - limitProfileName
    - singleTransactionValue
    - dailyTransactionVolume
    - dailyTransactionValue
    - accountReference
    - accountName
    - currencyCode
    - contractCode
    - customerEmail
    properties:
      limitProfileName:
        type: string
        description: Human-readable name for the limit profile.
      singleTransactionValue:
        type: number
        description: Maximum value allowed for a single inbound transaction.
      dailyTransactionVolume:
        type: integer
        description: Maximum number of transactions allowed per day.
      dailyTransactionValue:
        type: number
        description: Maximum total transaction value allowed per day.
      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.
  steps:
  - stepId: createLimitProfile
    description: >-
      Define a limit profile that caps single-transaction value and daily
      transaction volume and value.
    operationId: createLimitProfile
    requestBody:
      contentType: application/json
      payload:
        limitProfileName: $inputs.limitProfileName
        singleTransactionValue: $inputs.singleTransactionValue
        dailyTransactionVolume: $inputs.dailyTransactionVolume
        dailyTransactionValue: $inputs.dailyTransactionValue
    successCriteria:
    - condition: $statusCode == 200
    - condition: $.requestSuccessful == true
      context: $response.body
      type: jsonpath
    outputs:
      limitProfileCode: $response.body#/responseBody/limitProfileCode
  - stepId: reserveAccountWithLimit
    description: >-
      Reserve a permanent NUBAN virtual account pre-assigned to the limit
      profile created above.
    operationId: reserveAccountWithLimit
    requestBody:
      contentType: application/json
      payload:
        accountReference: $inputs.accountReference
        accountName: $inputs.accountName
        currencyCode: $inputs.currencyCode
        contractCode: $inputs.contractCode
        customerEmail: $inputs.customerEmail
        limitProfileCode: $steps.createLimitProfile.outputs.limitProfileCode
    successCriteria:
    - condition: $statusCode == 200
    - condition: $.requestSuccessful == true
      context: $response.body
      type: jsonpath
    outputs:
      accountReference: $response.body#/responseBody/accountReference
      status: $response.body#/responseBody/status
  - stepId: confirmAccount
    description: >-
      Read the reserved account back by its accountReference to confirm
      creation and surface the issued NUBAN details.
    operationId: getReservedAccountV2
    parameters:
    - name: accountReference
      in: path
      value: $steps.reserveAccountWithLimit.outputs.accountReference
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/responseBody/status
      accounts: $response.body#/responseBody/accounts
  outputs:
    limitProfileCode: $steps.createLimitProfile.outputs.limitProfileCode
    accountReference: $steps.reserveAccountWithLimit.outputs.accountReference
    status: $steps.confirmAccount.outputs.status
    accounts: $steps.confirmAccount.outputs.accounts

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/moniepoint-virtual-account-with-limit-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.