Changelog

New features, improvements and fixes to the Atlas API and dashboard.

October 2026

Virtual accounts move to VaaS

Virtual accounts now have a new set of VaaS endpoints under /api/v1/vaas. They take the same requests and return the same responses as before. Only the path changes, except for reactivating an expired account, which moves to POST /api/v1/vaas/update-virtual-account and takes the account reference in the request body.

VaaS also adds endpoints to activate and deactivate a virtual account without deleting it.

The /api/v1/virtual-account endpoints are deprecated. They keep working for existing integrations, but they are no longer maintained.

What you need to do

Replace /api/v1/virtual-account with /api/v1/vaas in your requests, and send reference in the body when you reactivate an account. Your existing virtual accounts carry over, so you don't need to recreate them. See the virtual accounts migration guide and the create virtual account endpoint.

August 2026

Virtual accounts

NewAPIVirtual accountsNG

You can now create dedicated NGN virtual accounts and collect bank transfers into them.

  • Single-use accounts accept one payment and expire at the time you set, up to 24 hours ahead.
  • Multi-use accounts stay open and accept repeated payments.
  • List your virtual accounts, find one by its reference or your source reference, and list the transactions paid into it.

Start with the virtual accounts guide or the create virtual account endpoint.

Customer wallet fields use camelCase

BreakingAPICustomersNG

The wallet object in customer responses now always has these fields: id, accountName, accountNumber, type, category, status, currency, provider, businessId and walletId.

What you need to do

Read wallet details from the camelCase fields, for example walletId and accountNumber.

See the customers guide.

July 2026

Checkout redirects fall back to your redirect URL

When a checkout has no redirect_url, customers are now sent to the redirect URL set on your account after they pay. Atlas adds checkoutReference to the query string so you can match the customer to the checkout.

Redirect URL after checkout
https://example.com/payment-complete?checkoutReference=CHK_123456

Creating a customer requires `type` and `has_wallet`

BreakingAPICustomersNG

Creating a customer has new requirements:

  • type is required: individual or business.
  • has_wallet is required: true or false.
  • Disposable email addresses are rejected.
  • Customer endpoints are available to NGN businesses only.

What you need to do

Send type and has_wallet on every create customer request, and use a real email address for each customer.

Create customer request
{
  "type": "individual",
  "first_name": "Ada",
  "last_name": "Okafor",
  "email": "ada@example.com",
  "phone": "+2348012345678",
  "has_wallet": false
}

More customer fields

ImprovedAPICustomersNG

When you create a customer:

  • business customers take a business_name,
  • wallet_va_name sets the name on the customer's wallet account,
  • provider_name chooses the wallet provider (globus or wema), and
  • first and last names can be up to 250 characters.

Customer responses now include businessName and type. firstName and lastName return an empty string instead of null when not set.

June 2026

API key mode must match your account

Atlas now rejects requests where the API key's mode doesn't match your account's mode:

  • a test key on an account in live mode, or
  • a live key on an account in test mode.

The API returns 401 with a message telling you which key to use.

What you need to do

Use test keys while your account is in test mode, and switch to live keys when it goes live. See the authentication guide.

May 2026

Checkout webhooks use `event_type`

Checkout webhooks now send the event name in event_type, like every other Atlas webhook. The eventType field introduced on 22 May 2026 is no longer sent.

Checkout webhook (excerpt)
{
  "event_type": "CHECKOUT_COMPLETED",
  "data": { "...": "..." }
}

What you need to do

Read event_type from checkout webhooks. If you read eventType, switch to event_type.

See the webhooks guide.

Cancel a pending FX swap

NewAPIFX swap

You can now cancel an FX swap that has not completed by sending POST /api/v1/tx/swap/{swapId}/cancel. Cancelled swaps return status: cancelled and a reason.

Dedicated checkout webhooks

Checkout payments now send a dedicated checkout webhook, with the checkout in the payload. The pay-in webhook is no longer sent for payments made through checkout.

Checkout webhooks use these events:

  • CHECKOUT_PROCESSED: the payment was received and is being processed.
  • CHECKOUT_COMPLETED: the checkout was paid.
  • CHECKOUT_FAILED: the payment failed or the checkout was cancelled.

On this date the event name was sent in an eventType field. It was renamed on 26 May 2026; see checkout webhooks use event_type.

What you need to do

Handle the checkout events above for checkout payments. Pay-in webhooks still arrive for inflows that are not linked to a checkout.

See the webhooks guide.

FX swap status `canceled` is now `cancelled`

FX swap responses now return cancelled for cancelled swaps, instead of canceled. Swaps also include a reason field explaining a cancellation.

What you need to do

If you compare swap status to canceled, compare to cancelled instead.

Cancelled swap (excerpt)
{
  "status": "cancelled",
  "reason": "<why the swap was cancelled>"
}

April 2026

March 2026

Checkout transactions confirm faster

ImprovedAPICheckout

Checkout transactions now show successful as soon as Atlas is notified of the inflow, instead of waiting for the inflow to be fully resolved.

What you need to do

Nothing. If you poll checkout status, you see successful sooner.

Checkout payments send checkout events

Pay-in webhooks for payments made through checkout now set event_type to:

  • CHECKOUT_COMPLETE when the payment succeeds, or
  • CHECKOUT_FAILED when it fails.

Before this change they used IN_FLOW_SUCCESS_EVENT, the same event as other inflows. Pay-ins that are not linked to a checkout still use IN_FLOW_SUCCESS_EVENT. Checkout pay-in payloads also include checkoutReference.

These events were replaced on 22 May 2026; see dedicated checkout webhooks.

What you need to do

If you matched checkout payments on IN_FLOW_SUCCESS_EVENT, also handle CHECKOUT_COMPLETE and CHECKOUT_FAILED.

January 2026

Card payments on checkout

NewAPICheckoutSelect businessesNG

Customers can now pay by card on the hosted checkout page.

Card payments have to be enabled for your business before they appear on checkout. Contact the Atlas team to turn them on.

See the checkout guide.

December 2025

Atlas is live in Nigeria

Atlas is now available to businesses in Nigeria. You can integrate through the API or work directly in the dashboard.

  • Checkout: start a checkout and let customers pay by bank transfer. See the checkout guide.
  • Payouts: send NGN to any Nigerian bank account. See the payout quickstart.
  • Customers: create, update, blacklist and reactivate the customers you transact with.
  • Transactions: list your transactions or look one up by reference.
  • Wallets: check your wallet balance.
  • Banking: fetch the list of supported banks and confirm an account name before you pay out.

On this page