Jeeves Payment API (1.0.0)

Quote FX, create payments idempotently, and track them through signed webhooks.

Lock an FX rate, create a payment against it, and follow it to a terminal status. Conventions, authentication and error handling are covered in the Jeeves Payment API Integration Guide.

Getting credentials: sandbox and production each need their own client credentials. Email support@tryjeeves.com to request them for either environment.

mTLS on every call: all requests — including POST /oauth/token — require your client certificate. The curl examples show the --cert/--key flags once, on the token call, and omit them elsewhere for brevity; add them to every request.

Looking for cards, boletos, transactions, or webhook subscriptions? Those live in the main API reference.

Download OpenAPI description
Overview
Languages
Servers
Sandbox
https://public-sandbox.tryjeeves.com/
Production
https://public-api.jeev.es/

Authentication

Exchange client credentials for a short-lived bearer token.

Operations

Accounts

The accounts you can fund payments from.

Operations

List product accounts

Request

List the accounts you can fund payments from.

The response body is a JSON array with one entry per company, each carrying its own productAccounts. It is a bare array, not an object with a data envelope. A single-company integration reads [0].productAccounts.

Take two values from here: productAccountId, which you send as productAccountId when creating a payment, and productAccountType, which you send as productAccountType when creating a quote — except for a Bill Pay credit account, which is reported as jeeves-pay-credit and quoted as credit-line.

Only an account with productAccountStatus: active can fund a payment.

curl -i -X GET \
  https://public-sandbox.tryjeeves.com/v1/product-accounts \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Companies and their product accounts.

Bodyapplication/jsonArray [
companyIdstringrequired
companyNamestringrequired
productAccountsArray of objects(ProductAccount)required
productAccounts[].​productAccountTypestring(ProductAccountType)required

The kind of account, as GET /v1/product-accounts reports it. A quote accepts only self-funded, credit-line and crypto-wallet: send credit-line for a jeeves-pay-credit account, and never send jeeves-pay-external. See Funding accounts for what each value means.

Treat this enum as open — tolerate values you do not recognise.

Enum"self-funded""crypto-wallet""credit-line""jeeves-pay-external""jeeves-pay-credit"
productAccounts[].​productAccountIdstringrequired

Send verbatim as productAccountId when creating a payment.

productAccounts[].​productAccountCurrencystring or nullrequired

ISO 4217 alpha code, or one of the supported stablecoin tickers (USDB, USDC, USDT, EURC) — crypto-wallet accounts report a ticker. null when the stored value is not a recognised currency code. Must match the quote's sourceCurrency.

productAccounts[].​productAccountStatusstring(ProductAccountStatus)required

Only active accounts can fund a payment — treat every other status (pending, in-active, deactivate, closed) as unusable for funding.

Enum"active""pending""in-active""deactivate""closed"
]
Response
application/json
[ { "companyId": "c8ddf33f-6244-4218-af7e-7a6fe0b13528", "companyName": "Bluesky Inc.", "productAccounts": [ … ] } ]

Beneficiaries

The people and businesses you pay, with their attached payment methods.

Operations

Quotes

Lock an FX rate before creating a payment.

Operations

Payments

Create a payment against a quote and track it to a terminal status.

OperationsWebhooks