Skip to main content
The legacy GET /companies/balance endpoint has been deprecated. This guide covers how to migrate to the new Company Balance API.

New to the Company Balance API?

API Overview

What the Company Balance API returns and how it’s structured.

API Scopes

Required scope: company-balance:read.

OAuth 2.0 Guide

End-to-end OAuth 2.0 workflow guide for Pleo integrations.

OAuth 2.0 with Postman

How to configure Postman to authenticate using OAuth 2.0 and call the Pleo API.

Standalone API Key Guide

End-to-end guide for authenticating with standalone API keys.

Standalone API Keys with Postman

How to make API calls using standalone API keys in Postman.

Getting Started

You’ll need API credentials with the company-balance:read scope. Unlike the legacy endpoint, which returned the balance for the company identified by your bearer token, the new endpoint takes an explicit company ID.

Key Differences

  • The legacy endpoint (GET /companies/balance) returned a single, company-level wallet balance for the company identified by your bearer token. The new endpoint (GET /v1/companies/{companyId}/balance) takes an explicit companyId in the path and returns balances per account. Most companies have a single (primary) account, but the response is a list to support multi-account setups.
  • Monetary values are now { currency, value } objects instead of separate top-level fields, since currency can vary by account.
  • The new endpoint also reports overdraft and pending-debit information for each account, which the legacy endpoint didn’t expose.

Field Mapping

The table below maps fields from the legacy CompanyBalance model to their equivalents on an entry in the new API’s data.accounts[] list. For a company with a single account, use the entry where isPrimary is true for the closest legacy equivalent.
  • — : field is not available on the legacy model
  • * : data is the same but represented differently