Skip to main content
The client portal gives you two long-lived values:
  • client_id: the API key prefix
  • client_secret: the full API key shown once at creation
Exchange them for an access token before calling the API. Send the access token—not the API key—in the Authorization header.

Choose API permissions

Create each API key with only the API permissions your integration needs. The public client portal requires at least one API permission when you create a key. API permissions are fixed at key creation. To change them later, create a replacement key and revoke the old key after you cut over. Read and write are independent. For example, payment_methods:write does not include payment_methods:read, and autopay:read does not include autopay:write. Legacy or manual zero-permission keys are different. If one of those keys still has a valid organization allowlist, it can exchange for an access token, but every resource endpoint returns 403 with {"detail":{"error_code":"insufficient_scope"}}.

Exchange your API key

You receive an access token valid for 3600 seconds:
There is no refresh token. Your API key is long-lived. Exchange the API key again before the access token expires.
Revoking an API key stops new token exchanges immediately. An access token already issued from that key remains valid until its one-hour expiration.

Call the API

Cache the token in memory with its expiry time. Re-mint shortly before expiry. Do not write access tokens to logs or persistent storage.
The same access token also works on https://secure-api.montereyfinancial.app/v1/payment-methods/cards. That route requires the payment_methods:write scope.

Organization scoping

An API key is bound to an explicit organization allowlist. Every token minted from that key carries the same allowlist. Account, person, transaction, payment-method, and autopay queries enforce it on every request.

401, 403, and 404

An empty result is not a 403. A valid query with no matching rows returns 200 with {"items": []}. Lookups by resource ID—such as /v1/accounts/{id}, /v1/payment-methods/{id}, and /v1/autopay/{id}—return 404 for both nonexistent and out-of-scope IDs. This prevents callers from probing for resources they cannot see.

Rotate an API key

  1. Create a replacement API key with the organization allowlist and API permissions you want.
  2. Update your token-exchange configuration with the new client_id and client_secret.
  3. Confirm your integration can mint and use a token from the new key.
  4. Revoke the old key.

What Monterey logs

Monterey may log the API key prefix and resolved organization IDs for audit and troubleshooting. Monterey never logs the API key plaintext or issued access tokens.