Flutterwave · Arazzo Workflow

Flutterwave Settlement Reconciliation Refund

Version 1.0.0

Retrieve a settlement, confirm a charge within it succeeded, then refund the charge and verify the refund.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub PaymentsPayoutsMobile MoneyCardsAfricaFintechRemittanceVirtual AccountsChargebacksMulti-CurrencyArazzoWorkflows

Provider

flutterwave

Workflows

settlement-reconciliation-refund
Inspect a settlement, verify a settled charge, and refund it with verification.
Retrieves the settlement, verifies the target charge succeeded, creates a refund against it, then branches on the verified refund status.
4 steps inputs: accessToken, amount, chargeId, reason, settlementId outputs: netAmount, refundId, refundStatus
1
getSettlement
Retrieve the settlement record being reconciled.
2
verifyCharge
Retrieve the charge and confirm it succeeded before refunding.
3
createRefund
Issue a refund against the verified charge.
4
verifyRefund
Retrieve the refund to confirm its final status.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Flutterwave Settlement Reconciliation Refund
  summary: Retrieve a settlement, confirm a charge within it succeeded, then refund the charge and verify the refund.
  description: >-
    A finance reconciliation flow that ties settlements back to refunds. The
    workflow retrieves a settlement record, retrieves a specific charge that
    rolled up into that settlement and confirms it succeeded, then issues a
    refund against that charge and retrieves the refund to verify its status.
    Branching on the refund status lets the finance team record whether the
    reversal completed. 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: chargesApi
  url: ../openapi/flutterwave-charges-api-openapi.yml
  type: openapi
- name: refundsApi
  url: ../openapi/flutterwave-refunds-api-openapi.yml
  type: openapi
- name: settlementsApi
  url: ../openapi/flutterwave-settlements-api-openapi.yml
  type: openapi
workflows:
- workflowId: settlement-reconciliation-refund
  summary: Inspect a settlement, verify a settled charge, and refund it with verification.
  description: >-
    Retrieves the settlement, verifies the target charge succeeded, creates a
    refund against it, then branches on the verified refund status.
  inputs:
    type: object
    required:
    - accessToken
    - settlementId
    - chargeId
    - amount
    properties:
      accessToken:
        type: string
        description: OAuth2 client-credentials bearer token for the Authorization header.
      settlementId:
        type: string
        description: Identifier of the settlement being reconciled.
      chargeId:
        type: string
        description: Identifier of the charge within the settlement to refund.
      amount:
        type: number
        description: Amount to refund in the major currency unit.
      reason:
        type: string
        description: Optional human-readable reason for the refund.
  steps:
  - stepId: getSettlement
    description: Retrieve the settlement record being reconciled.
    operationId: getSettlement
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: id
      in: path
      value: $inputs.settlementId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      netAmount: $response.body#/net_amount
      settlementStatus: $response.body#/status
  - stepId: verifyCharge
    description: Retrieve the charge and confirm it succeeded before refunding.
    operationId: getCharge
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: id
      in: path
      value: $inputs.chargeId
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.status == "succeeded"
      type: jsonpath
    outputs:
      chargeStatus: $response.body#/status
  - stepId: createRefund
    description: Issue a refund against the verified charge.
    operationId: createRefund
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    requestBody:
      contentType: application/json
      payload:
        charge_id: $inputs.chargeId
        amount: $inputs.amount
        reason: $inputs.reason
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      refundId: $response.body#/id
  - stepId: verifyRefund
    description: Retrieve the refund to confirm its final status.
    operationId: getRefund
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: id
      in: path
      value: $steps.createRefund.outputs.refundId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      refundStatus: $response.body#/status
    onSuccess:
    - name: refundSucceeded
      type: end
      criteria:
      - context: $response.body
        condition: $.status == "succeeded"
        type: jsonpath
    - name: refundFailed
      type: end
      criteria:
      - context: $response.body
        condition: $.status == "failed"
        type: jsonpath
  outputs:
    netAmount: $steps.getSettlement.outputs.netAmount
    refundId: $steps.createRefund.outputs.refundId
    refundStatus: $steps.verifyRefund.outputs.refundStatus

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/flutterwave-settlement-reconciliation-refund-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.