Bearer tokens
Every request to the Dime Payments API requires anAuthorization header with a Bearer token:
Getting a token
- Log into the Dime Payments dashboard
- In the sidebar, open Advanced > API keys (
/user/api-tokens) - Click to create a token, select its abilities, and generate it
- Copy the token immediately — it will not be shown again
API access is gated. If your account does not have API access enabled, the API keys item links out to the developer onboarding page instead of the token screen. If you land on the marketing page rather than a token generator, contact your Dime Payments rep to have API access switched on for your account.
Token abilities
Every token carries a set of abilities that control which endpoints it can access. You choose these abilities yourself with checkboxes when you mint the token — there is also a payments quick-select preset that grants the common charging scopes in one click. If a token lacks the ability an endpoint requires, the request is rejected (see Permission errors). Two things about the ability model are easy to get wrong: Reading and charging are separate.transaction:read lets a token list and look up transactions, deposits and recurring payments, and nothing else: it cannot charge, refund or change anything, so it is the one to give a reporting or bookkeeping tool. transaction:charge-card-token gates charging a card, charging ACH, refunds, voids, tokenization and changes to recurring payments. There is no separate charge-ach, charge-card-pan, refund, or void scope.
Before October 2026 the read endpoints asked for
transaction:charge-card-token (and deposits for no ability at all). Every token that existed then was given transaction:read, so existing integrations kept working; tokens created since get it only if it is left ticked when they are made (it is ticked by default).:write. Customer, merchant, and invoice writes are split by operation (create, update, delete), not bundled under one :write ability.
Merchant token scopes
A merchant API token (minted under Advanced > API keys) can carry any of these 28 scopes:Affiliate key scopes
Affiliate API keys carry a different set of 24 scopes. They add themerchant:* family (affiliates provision merchants) but do not include any subscription or subscription-plan scopes, and their invoice set is smaller:
When you create an affiliate key, 5 of these scopes are pre-checked as sensible defaults (reading and charging payments, and reading and creating customers). That default selection is just a starting convenience — you can check or uncheck any of the 24 before generating the key.
Scopes that are easy to miss
- Held funds are affiliate-only.
funds:readandfunds:releaseare not offered on merchant tokens, andPOST /api/funds/releaserejects any key that is not an affiliate key, even one that somehow carries the scope. Releasing held funds is the affiliate’s decision. See Held funds. - Chargebacks and documents work on both kinds of key.
chargeback:readreads disputes;document:createanddocument:readupload and list a merchant’s documents. - The ACH refund override has no scope of its own.
override_ach_settlement_waitis a field onPOST /api/transaction/refund, so any token withtransaction:charge-card-tokencan send it. See Response Codes for when to use it.
Keeping tokens secure
- Never expose tokens in client-side code or public repositories
- Use environment variables to store tokens in your application
- Generate separate tokens for production and staging environments
- Rotate tokens immediately if you suspect they have been compromised
Example request
Permission errors
When a token is missing, invalid, or lacks the required ability, the API returns a permission error. The exact shape is not uniform:
Handle both shapes when checking for authorization failures. See Response Codes for the full breakdown.
Next steps
- Quickstart — make your first API call
- Response Codes — every status code and error message
- API Reference — full endpoint documentation

