COUNTCOUNT
Sign Up

Resources

Frequently Asked Questions

Quick answers to the questions partners ask most often when integrating with COUNT. Each answer links to the full documentation when you need more detail.

Still stuck?

Email support@getcount.com with your clientId and a description of the issue — never include your clientSecret.

Getting started

What is the COUNT Partner API?+

The Partner API lets your application read and write a customer's accounting data — customers, invoices, transactions, documents, and more — after the user authorizes your app through OAuth. Every request is signed with your app secret and scoped to a single workspace.

Introduction →

How do I get API credentials?+

Create an OAuth app in COUNT Partners to receive a clientId and clientSecret instantly, or submit the access request form for COUNT to provision credentials.

API access credentials →

Which API environment does this documentation use?+

All Partner API requests in this documentation target the production environment at api.getcount.com. Production credentials are issued after partner review. Contact support if you need a development sandbox for pre-production testing.

Partner Program →

What is the fastest way to make my first API call?+

Follow the quickstart to obtain credentials and a workspace access token, then use Try it or a starter template to send a signed request. The signature generator helps verify your HMAC implementation.

Quickstart →

Authentication & signing

Why do I need both HMAC signing and a Bearer token?+

HMAC proves the request came from your registered app (clientId + clientSecret). The Bearer access token proves the end user authorized access to a specific workspace. Data endpoints require both; token exchange routes require signing only.

Authentication & signing →

Why does my signature fail with 401?+

The most common mistake is including /partners in the HMAC path. Sign the path relative to the mount — for example /customers, not /partners/customers. Also verify the timestamp, exact JSON body hash, and that your clientSecret matches the clientId.

Errors & troubleshooting →

What happens when my access token expires?+

Call POST /partners/refresh-user-access-token with your refresh token to obtain a new access token pair. Implement refresh proactively before expiry to avoid failed requests.

Refresh an access token →

What does the user see when connecting my app?+

Users sign in to COUNT and approve access on a consent screen showing your app name and the workspace being connected. Register exact redirect URIs in COUNT Partners before starting the flow.

OAuth consent experience →

Using the API

Are identifiers numeric IDs or UUIDs?+

Partner responses always expose UUIDs as id or uuid. Internal numeric database IDs are never returned. Pass UUIDs in path parameters and reference fields.

Response shapes →

What are the rate limits?+

The partner API gate allows 100 requests per minute per clientId. Some resources (such as Documents uploads) have additional tiers. Respect Retry-After on 429 responses.

Security & operations →

How do list endpoints paginate?+

Use page (1-based) and limit query parameters. Responses include totalRecords and totalPages. The records array key varies by resource — for example data.records for customers and data.transactions for transactions.

Handle pagination guide →

How often is the API reference updated?+

The API reference is updated when new partner routes ship in the COUNT API. Each group page shows a last-updated date. Check the Changelog for recent additions.

Changelog →

Why does Try it show a network error?+

Try it sends requests from your browser. It works on developers.getcount.com and localhost when the API allows that origin. On other hosts, use starter templates or run requests from your server.

Try it →

Should I use the COUNT CLI or remote MCP?+

Use the COUNT CLI with count mcp for Claude Code, Cursor, and custom agents — it handles OAuth loopback login and loads credentials from ~/.count/credentials.json. Use the remote MCP URL (https://api.getcount.com/mcp) for Claude.ai and ChatGPT web connectors.

MCP Server →

What redirect URI do I register for count login?+

Register http://127.0.0.1:17845/callback on your partner app in COUNT Partners. If you use count login --port, the registered URI must match exactly.

COUNT CLI →

Webhooks

How do I receive webhook events?+

Create a subscription per event type with a public HTTPS callback URL. Only active subscriptions receive deliveries. Optionally set a signing secret to verify X-Webhook-Signature on each POST.

Webhooks API →

Does COUNT retry failed webhook deliveries?+

Yes — up to 3 attempts with exponential backoff starting at 2 seconds. Each attempt has a 15 second timeout. Return HTTP 2xx promptly; process events asynchronously if needed.

Security & webhook operations →

Are webhook deliveries ordered?+

No — deliveries are not guaranteed to arrive in causal order. Design handlers to be idempotent using the delivery id, and upsert resources by UUID from the envelope data.

Verify webhook deliveries →

Partner program & support

How do I get production credentials?+

Complete your integration in Dev, then submit for review through COUNT Partners or the access request form. COUNT verifies redirect URIs, data usage, and security practices before issuing production credentials.

Partner Program →

How do I get help with an integration issue?+

Email support@getcount.com with your clientId (never your clientSecret), the endpoint and environment, and steps to reproduce. For product questions about COUNT workspaces, use the Help Center.

Partner Program — Support →

What do enterprise customers ask for during diligence?+

Common requests cover TLS, token storage, workspace isolation, webhook verification, rate limits, and data handling. The Security & webhook operations page summarizes our model; contact support for SOC 2 or questionnaire requests.

Security & operations →

How are API changes communicated?+

Non-breaking additions ship continuously. Breaking changes receive 90 days notice when possible. Monitor the changelog and subscribe to updates during production review.

Changelog →