{
  "opencollection": "1.0.0",
  "info": {
    "name": "Mono API",
    "version": "2.0"
  },
  "request": {
    "auth": {
      "type": "apikey",
      "key": "mono-sec-key",
      "value": "{{monoSecKey}}",
      "in": "header"
    }
  },
  "items": [
    {
      "info": { "name": "Account Linking", "type": "folder" },
      "items": [
        {
          "info": { "name": "Initiate account linking", "type": "http" },
          "http": {
            "method": "POST",
            "url": "https://api.withmono.com/v2/accounts/initiate",
            "body": { "type": "json", "data": "{\"customer\":{\"name\":\"Samuel Olamide\",\"email\":\"samuel@example.com\"},\"meta\":{\"ref\":\"99008877TEST\"},\"scope\":\"auth\",\"redirect_url\":\"https://mono.co\"}" }
          },
          "docs": "Start a Mono Connect account-linking session and return a hosted widget link."
        },
        {
          "info": { "name": "Exchange token (auth)", "type": "http" },
          "http": {
            "method": "POST",
            "url": "https://api.withmono.com/v2/accounts/auth",
            "body": { "type": "json", "data": "{\"code\":\"code_xyz\"}" }
          },
          "docs": "Exchange the short-lived authorization code for a persistent account id."
        }
      ]
    },
    {
      "info": { "name": "Account Information", "type": "folder" },
      "items": [
        {
          "info": { "name": "Get account details", "type": "http" },
          "http": { "method": "GET", "url": "https://api.withmono.com/v2/accounts/{{accountId}}" },
          "docs": "Retrieve account holder, institution, and balance details for a linked account."
        },
        {
          "info": { "name": "Get account balance", "type": "http" },
          "http": { "method": "GET", "url": "https://api.withmono.com/v2/accounts/{{accountId}}/balance" },
          "docs": "Return the near-real-time balance for a linked account."
        },
        {
          "info": { "name": "Unlink account", "type": "http" },
          "http": { "method": "POST", "url": "https://api.withmono.com/v2/accounts/{{accountId}}/unlink" },
          "docs": "Unlink a previously linked account, revoking further data access."
        }
      ]
    },
    {
      "info": { "name": "Transactions and Statements", "type": "folder" },
      "items": [
        {
          "info": { "name": "Get transactions", "type": "http" },
          "http": { "method": "GET", "url": "https://api.withmono.com/v2/accounts/{{accountId}}/transactions?paginate=false" },
          "docs": "List money-in and money-out transactions with date, type, and narration filters."
        },
        {
          "info": { "name": "Get bank statement", "type": "http" },
          "http": { "method": "GET", "url": "https://api.withmono.com/v2/accounts/{{accountId}}/statement?period=last6months&output=json" },
          "docs": "Retrieve the account holder's bank statement in JSON or PDF form."
        }
      ]
    },
    {
      "info": { "name": "Identity and Income", "type": "folder" },
      "items": [
        {
          "info": { "name": "Get identity", "type": "http" },
          "http": { "method": "GET", "url": "https://api.withmono.com/v2/accounts/{{accountId}}/identity" },
          "docs": "Return identity details (name, phone, BVN, date of birth) for a linked account holder."
        },
        {
          "info": { "name": "Get income", "type": "http" },
          "http": { "method": "GET", "url": "https://api.withmono.com/v2/accounts/{{accountId}}/income" },
          "docs": "Return income signals such as estimated salary and income sources."
        }
      ]
    },
    {
      "info": { "name": "DirectPay", "type": "folder" },
      "items": [
        {
          "info": { "name": "Initiate payment", "type": "http" },
          "http": {
            "method": "POST",
            "url": "https://api.withmono.com/v2/payments/initiate",
            "body": { "type": "json", "data": "{\"amount\":20000,\"type\":\"onetime-debit\",\"method\":\"account\",\"description\":\"Order payment\",\"reference\":\"ref-12345\",\"redirect_url\":\"https://mono.co\",\"customer\":{\"email\":\"samuel@example.com\",\"phone\":\"08012345678\"}}" }
          },
          "docs": "Initiate a one-time bank-to-bank DirectPay payment and return a hosted payment link."
        },
        {
          "info": { "name": "Verify payment", "type": "http" },
          "http": { "method": "GET", "url": "https://api.withmono.com/v2/payments/verify/{{reference}}" },
          "docs": "Verify the status of a DirectPay payment by its transaction reference."
        }
      ]
    },
    {
      "info": { "name": "Direct Debit", "type": "folder" },
      "items": [
        {
          "info": { "name": "Create customer", "type": "http" },
          "http": {
            "method": "POST",
            "url": "https://api.withmono.com/v2/customers",
            "body": { "type": "json", "data": "{\"email\":\"samuel@example.com\",\"phone\":\"08012345678\",\"type\":\"individual\",\"first_name\":\"Samuel\",\"last_name\":\"Olamide\"}" }
          },
          "docs": "Create an individual or business customer for direct-debit mandates."
        },
        {
          "info": { "name": "List customers", "type": "http" },
          "http": { "method": "GET", "url": "https://api.withmono.com/v2/customers" },
          "docs": "List customers created on the account."
        },
        {
          "info": { "name": "Initiate mandate authorisation", "type": "http" },
          "http": {
            "method": "POST",
            "url": "https://api.withmono.com/v2/payments/initiate-mandate",
            "body": { "type": "json", "data": "{\"amount\":1000000,\"type\":\"recurring-debit\",\"method\":\"mandate\",\"mandate_type\":\"emandate\",\"debit_type\":\"variable\",\"reference\":\"mandate-ref-001\",\"customer\":{\"id\":\"cus_xyz\"}}" }
          },
          "docs": "Set up a fixed or variable direct-debit mandate and return a hosted authorisation link."
        },
        {
          "info": { "name": "Mandate balance inquiry", "type": "http" },
          "http": { "method": "GET", "url": "https://api.withmono.com/v3/payments/mandates/{{mandateId}}/balance" },
          "docs": "Confirmation-of-funds check against a mandated account before debiting."
        },
        {
          "info": { "name": "Debit a mandate", "type": "http" },
          "http": {
            "method": "POST",
            "url": "https://api.withmono.com/v3/payments/mandates/{{mandateId}}/debit",
            "body": { "type": "json", "data": "{\"amount\":50000,\"reference\":\"debit-ref-001\",\"narration\":\"Monthly subscription\"}" }
          },
          "docs": "Debit a bank account that already has an approved direct-debit mandate."
        }
      ]
    }
  ]
}
