Welcome to Anchor’s Developer Experience Hub

Your launchpad to all you need to build extraordinary stuff with Anchor’s tools, infra and APIs.

Hero Image

Why developers love Anchor

Build, test, and launch your financial products with ease. 

plug & play icon

Intelligent api design

Our API is structured to save you time. You can query relationships in a single request, fetching a transfer, its linked account, and customer details all at once. This significantly reduces API calls, leading to cleaner code and better performance.

plug & play icon

Reliable Webhooks

Our service provides one of the best webhook systems available, enabling proper asynchronous operations. This ensures your internal processes are triggered reliably and kept up-to-date.

plug & play icon

Powerful Tools

The developer dashboard is intuitive and easy to use. The API includes robust features for querying transactions, handling events, and more.

reliable icon

Detailed Logging & Retries

Nothing goes unrecorded with Anchor's detailed logs. Plus, you can retry events that weren't processed correctly on your end, adding a crucial layer of reliability.

sandbox icon

Robust Documentation

We make integration smooth and straightforward with comprehensive,
clear documentation.

Find what you need - in seconds!

Get your hands dirty. No risk. No real money. Just pure, unfiltered API magic in our test environment.

explore doc

API Docs

Step-by-step integration guides that help you get started fast, no fluff, just clear technical direction.

View Docs
api reference

API Reference

Every endpoint, payload & schema is clean and precise, so you always know exactly what to build.

View API Reference
dev blog

The Dev Blog

No buzzwords or corporate jargon, just real engineering stories, best practices and guides.

Read our Blog
FAQs

FAQs

Skip the jargon, get what you need, and keep building. 

View FAQs

Test & Experiment in our Sandbox

Get your hands dirty. No risk. No real money. Just pure, unfiltered API magic in our test environment.

test mode

Full-featured test mode

Build and experiment in a safe, full-featured replica of our live environment, no surprises, just seamless testing from start to finish.

transaction icon

Simulated transactions

Run realistic simulated transactions to preview every workflow and edge case, so you ship with confidence.

fast setup

No set up hassle

Spin up your sandbox in seconds, no complicated configs, no delays. Just you, your code, and everything ready to go.

sandbox enviroment

Dream it. Build it. Scale it.

Got an idea? We’ve got the rails. Power your product with:

Anchor offers regulated business accounts to receive payments, hold balances, and perform various financial operations.
curl --request POST \
     --url https://api.sandbox.getanchor.co/api/v1/accounts \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-anchor-key: Valid Api Key
     --data '
{
  "data": {
    "attributes": {
      "productName": "SAVINGS"
    },
    "relationships": {
      "customer": {
        "data": {
          "type": "IndividualCustomer"
        }
      }
    },
    "type": "DepositAccount"
  }
}
'
{
  "data": {
    "id": "012345678901234-anc_acc",
    "type": "DepositAccount",
    "attributes": {
      "bankName": "ACCESS BANK",
      "frozen": false,
      "freezeReason": "BY_CUSTOMER / FRAUD/ BY_CUSTOMER / OTHER",
      "freezeDescription": "By Customer",
      "accountName": "John Doe",
      "accountNumber": "9000000000",
      "currency": "NGN",
      "type": "SAVINGS/CURRENT",
      "status": "ACTIVE/BLOCKED/CLOSED",
      "bank": {
        "id": "16534894186638-anc_bk",
        "name": "ACCESS BANK",
        "cbnCode": "string",
        "nipCode": "000014"
      },
      "createdAt": "2025-07-15T20:29:25.537Z",
      "metadata": [
        "string"
      ]
    },
    "relationships": {
      "virtualNubans": {
        "data": [
          {
            "id": "0012345678901230-anc_va",
            "type": "VirtualNuban"
          }
        ]
      },
      "subAccounts": {
        "data": [
          {
            "id": "string",
            "type": "SubAccount"
          }
        ]
      },
      "counterParty": {
        "data": {
          "type": "LinkedCounterParty"
        }
      },
      "organization": {
        "data": {
          "id": "string",
          "type": "Organization"
        }
      },
      "documents": {
        "data": [
          {
            "type": "Document"
          }
        ]
      },
      "officers": {
        "data": [
          {
            "id": "string",
            "type": "BusinessOfficer"
          }
        ]
      },
      "customer": {
        "data": {
          "id": "16565906809790-anc_ind_cst",
          "type": "IndividualCustomerNG"
        }
      }
    }
  }
}
View API documentation
Permanently assigned for static collections, ideal for wallets, sub-merchants, or reusable payment channels.
curl --request POST \
     --url https://api.sandbox.getanchor.co/api/v1/virtual-nubans \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-anchor-key: Valid API key
{
  "data": {
    "attributes": {
      "virtualAccountDetail": {
        "name": "John Doe",
        "bvn": "22222222226",
        "reference": "12345",
        "email": "example@example.com",
        "description": "string",
        "permanent": true
      }
    },
    "relationships": {
      "settlementAccount": {
        "data": {
          "type": "SubAccount",
          "id": "string"
        }
      }
    },
    "type": "VirtualNuban"
  }
}
'
{
  "data": {
    "id": "0012345678901230-anc_va",
    "type": "VirtualNuban",
    "attributes": {
      "accountNumber": "123456789",
      "accountName": "John Doe",
      "currency": "NGN",
      "status": "ACTIVE/BLOCKED/CLOSED",
      "reference": "12345",
      "permanent": true,
      "bank": {
        "id": "16534894186638-anc_bk",
        "name": "ACCESS BANK",
        "cbnCode": "string",
        "nipCode": "000014"
      },
      "createdAt": "2025-07-11T09:54:55.291Z",
      "expiryDate": "2025-07-11T09:54:55.291Z",
      "metadata": [
        "string"
      ]
    },
    "relationships": {
      "virtualNubans": {
        "data": [
          {
            "id": "0012345678901230-anc_va",
            "type": "VirtualNuban"
          }
        ]
      },
      "subAccounts": {
        "data": [
          {
            "id": "string",
            "type": "SubAccount"
          }
        ]
      },
      "customer": {
        "data": {
          "id": "16565906809790-anc_ind_cst",
          "type": "IndividualCustomerNG"
        }
      },
      "settlementAccount": {
        "data": {
          "id": "012345678901234-anc_acc",
          "type": "DepositAccount"
        }
      },
      "parentAccount": {
        "data": {
          "id": "012345678901234-anc_acc",
          "type": "DepositAccount"
        }
      },
      "subAccount": {
        "data": {
          "id": "string",
          "type": "SubAccount"
        }
      },
      "counterParty": {
        "data": {
          "type": "LinkedCounterParty"
        }
      },
      "organization": {
        "data": {
          "id": "string",
          "type": "Organization"
        }
      },
      "documents": {
        "data": [
          {
            "type": "Document"
          }
        ]
      },
      "officers": {
        "data": [
          {
            "id": "string",
            "type": "BusinessOfficer"
          }
        ]
      }
    }
  }
}
View API documentation
Robust transfer engine for both internal and external fund movement
curl --request POST \
     --url https://api.sandbox.getanchor.co/api/v1/transfers \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-anchor-key: Valid API key
     --data '
{
  "data": {
    "attributes": {
      "currency": "NGN"
    },
    "relationships": {
      "destinationAccount": {
        "data": {
          "type": "SubAccount"
        }
      },
      "account": {
        "data": {
          "type": "SubAccount"
        }
      }
    }
  }
}
'
{
  "data": {
    "attributes": {
      "failureReason": "INSUFFICIENT_BALANCE",
      "currency": "NGN",
      "amount": 0,
      "createdAt": "2025-07-11T09:54:55.291Z",
      "reason": "string",
      "reference": "string",
      "status": "PENDING",
      "metadata": [
        "string"
      ]
    },
    "relationships": {
      "virtualNubans": {
        "data": [
          {
            "id": "0012345678901230-anc_va",
            "type": "VirtualNuban"
          }
        ]
      },
      "subAccounts": {
        "data": [
          {
            "id": "string",
            "type": "SubAccount"
          }
        ]
      },
      "customer": {
        "data": {
          "id": "16565906809790-anc_ind_cst",
          "type": "IndividualCustomerNG"
        }
      },
      "destinationAccount": {
        "data": {
          "id": "012345678901234-anc_acc",
          "type": "DepositAccount"
        }
      },
      "account": {
        "data": {
          "id": "012345678901234-anc_acc",
          "type": "DepositAccount"
        }
      },
      "parentAccount": {
        "data": {
          "id": "012345678901234-anc_acc",
          "type": "DepositAccount"
        }
      },
      "sourceSubAccount": {
        "data": {
          "id": "string",
          "type": "SubAccount"
        }
      },
      "destinationSubAccount": {
        "data": {
          "id": "string",
          "type": "SubAccount"
        }
      },
      "transfers": {
        "data": [
          {},
          {},
          {},
          {},
          {},
          {}
        ]
      },
      "bulkTransfer": {
        "data": {
          "id": "string",
          "type": "BulkTransfer"
        }
      }
    }
  }
}
View API documentation
Internal ledgers for segregating, tracking, and controlling value under a parent account.
curl --request POST \
     --url https://api.sandbox.getanchor.co/api/v1/sub-accounts \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-anchor-key: Valid API key
{
  "data": {
    "attributes": {
      "createVirtualNuban": true
    },
    "relationships": {
      "parentAccount": {
        "data": {
          "id": "string",
          "type": "string"
        }
      },
      "customer": {
        "data": {
          "id": "string",
          "type": "string"
        }
      }
    },
    "type": "SubAccount"
  }
}
'

  "data": {
    "id": "16565906809790-anc_bll",
    "type": "Data",
    "attributes": {
      "amount": 0,
      "phoneNumber": "string",
      "detail": {
        "provider": "mtn",
        "createdAt": "2025-07-11T09:54:55.291Z",
        "updatedAt": "2025-07-11T09:54:55.291Z",
        "product": "string",
        "providerReference": "string"
      },
      "status": "PENDING",
      "reference": "string",
      "createdAt": "2025-07-11T09:54:55.291Z",
      "failureReason": "INSUFFICIENT_BALANCE"
    },
    "relationships": {
      "sourceAccount": {
        "data": {
          "id": "string",
          "type": ""
        }
      },
      "counterParty": {
        "data": {
          "type": "LinkedCounterParty"
        }
      },
      "organization": {
        "data": {
          "id": "string",
          "type": "Organization"
        }
      },
      "documents": {
        "data": [
          {
            "type": "Document"
          }
        ]
      },
      "officers": {
        "data": [
          {
            "id": "string",
            "type": "BusinessOfficer"
          }
        ]
      },
      "customer": {
        "data": {
          "id": "16565906809790-anc_ind_cst",
          "type": "IndividualCustomerNG"
        }
      }
    }
  }
}
View API documentation
Bill payment API that enables businesses to let their users pay for everyday utilities
curl --request POST \
     --url https://api.sandbox.getanchor.co/api/v1/bills \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-anchor-key: Valid Api Key
     --data '
{
  "data": {
    "attributes": {
      "provider": "mtn"
    },
    "relationships": {
      "account": {
        "data": {
          "type": "SubAccount"
        }
      }
    }
  }
}
'

{
  "data": {
    "id": "string",
    "type": "SubAccount",
    "attributes": {
      "accountType": "IMPLICIT",
      "createdAt": "2025-07-11T09:54:55.291Z",
      "metadata": [
        "string"
      ]
    },
    "relationships": {
      "counterParty": {
        "data": {
          "type": "LinkedCounterParty"
        }
      },
      "organization": {
        "data": {
          "id": "string",
          "type": "Organization"
        }
      },
      "documents": {
        "data": [
          {
            "type": "Document"
          }
        ]
      },
      "officers": {
        "data": [
          {
            "id": "string",
            "type": "BusinessOfficer"
          }
        ]
      },
      "customer": {
        "data": {
          "id": "16565906809790-anc_ind_cst",
          "type": "IndividualCustomerNG"
        }
      },
      "virtualNubans": {
        "data": [
          {
            "id": "0012345678901230-anc_va",
            "type": "VirtualNuban"
          }
        ]
      },
      "subAccounts": {
        "data": [
          {
            "id": "string",
            "type": "SubAccount"
          }
        ]
      },
      "parentAccount": {
        "data": {
          "id": "012345678901234-anc_acc",
          "type": "DepositAccount"
        }
      }
    }
  }
}
View API documentation

Need help? We’re right here

Join Anchor Connect, Our Slack community for developers.

  • Ask real questions, get real answers
  • Chat with fellow devs & our engineering team
  • Build together, break things (safely), and ship faster
slack icon
Join Anchor Connect
anchor connect