{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-payments/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Funding accounts","description":"Start today using our public API to power your next project."},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"funding-accounts"},"children":["Funding accounts"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The accounts you can fund payments from."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every payment debits one of your ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["funding accounts"]}," — called ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["productAccounts"]}," in the API. Before your first payment, list them, pick the account you'll pay from, and take two values: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["productAccountId"]}," (sent when creating the payment) and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["productAccountType"]}," (sent when creating the quote, because your FX rate and fees depend on the kind of account you pay from)."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"listing-funding-accounts"},"children":["Listing funding accounts"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/product-accounts"]}," — scope ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accounts:read"]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl 'https://public-sandbox.tryjeeves.com/v1/product-accounts' \\\n  -H \"Authorization: Bearer $JEEVES_ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response is an ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["array of companies"]},", each carrying its own accounts. A single-company integration reads ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[0].productAccounts"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"[\n  {\n    \"companyId\": \"c8ddf33f-6244-4218-af7e-7a6fe0b13528\",\n    \"companyName\": \"Bluesky Inc.\",\n    \"productAccounts\": [\n      {\n        \"productAccountType\": \"self-funded\",\n        \"productAccountId\": \"2b6f0c94-7a15-4e83-9d20-6c8e3b5a1f79\",\n        \"productAccountCurrency\": \"USD\",\n        \"productAccountStatus\": \"active\"\n      },\n      {\n        \"productAccountType\": \"credit-line\",\n        \"productAccountId\": \"7c14a8d0-2e63-4f19-9b85-3d0f6a2c7e41\",\n        \"productAccountCurrency\": \"USD\",\n        \"productAccountStatus\": \"active\"\n      },\n      {\n        \"productAccountType\": \"crypto-wallet\",\n        \"productAccountId\": \"4e9b1d27-5c80-4a36-b1f4-8a2d6c0e7f13\",\n        \"productAccountCurrency\": \"USDC\",\n        \"productAccountStatus\": \"active\"\n      }\n    ]\n  }\n]\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"account-types"},"children":["Account types"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Reported type"},"children":["Reported type"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"What funds it"},"children":["What funds it"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Send in a quote"},"children":["Send in a quote"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["self-funded"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Your own pre-funded balance at Jeeves."]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["self-funded"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["credit-line"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Your Jeeves credit line."]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["credit-line"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["crypto-wallet"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Your stablecoin balance — its currency is a stablecoin ticker (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USDB"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USDC"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USDT"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EURC"]},"), not an ISO 4217 code. Note this changes the purpose-code corridors (see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/payments/payment-flow/send-payment#purpose-codes"},"children":["Send a payment"]},")."]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["crypto-wallet"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["jeeves-pay-credit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["A Bill Pay credit account."]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["credit-line"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["jeeves-pay-external"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["A Bill Pay account funded from your own funds."]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Not accepted as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["productAccountType"]}," in a quote."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Treat the list of reported types as open — tolerate values you don't recognize."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The type you pass as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["productAccountType"]}," when quoting must be the type of the account you actually pay from — your FX rate and fees depend on it, so a quote priced for a different account type doesn't reflect what you'll pay."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"one-account--one-currency--one-type"},"children":["One account = one currency × one type"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can hold several funding accounts at once, across ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["currencies and types"]}," — for example a USD self-funded (fiat) balance, a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["crypto-wallet"]}," holding a stablecoin such as USDC, an MXN self-funded balance, and credit in USD, MXN, or BRL. Every payment is funded by exactly one of them, and the pair you pick drives everything downstream: the quote's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sourceCurrency"]}," must match the account's currency, the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["productAccountType"]}," sets your FX pricing, and together with the destination they select the valid purpose codes."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-rules-that-matter"},"children":["The rules that matter"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Only ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["active"]}," accounts can fund a payment."]}," The other statuses (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pending"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["in-active"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["deactivate"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["closed"]},") all mean the same thing to your integration: the account can't fund a payment — treat anything that isn't ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["active"]}," as unusable."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Currency must match."]}," The account's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["productAccountCurrency"]}," must equal the quote's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sourceCurrency"]},", or the payment is rejected."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Currencies are ISO 4217 codes or stablecoin tickers."]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["productAccountCurrency"]}," is an ISO 4217 alpha code (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USD"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MXN"]},", …) or one of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USDB"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USDC"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USDT"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EURC"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["crypto-wallet"]}," accounts report a ticker. Don't validate it against ISO 4217 alone, or you'll reject real accounts."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Balance covers amount plus fees."]}," A payment whose source account can't cover the quoted ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sourceAmount"]}," plus fees returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["422 insufficient_funds"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"funding-the-account-itself"},"children":["Funding the account itself"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Depositing into a product account (bank transfer in, credit-line draw, crypto deposit) happens through your Jeeves account and dashboard — it is not part of this API. What this API guarantees is the check at payment time: if the balance doesn't cover the payment, nothing is created and you get ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["insufficient_funds"]},"."]}]},"headings":[{"value":"Funding accounts","id":"funding-accounts","depth":1},{"value":"Listing funding accounts","id":"listing-funding-accounts","depth":2},{"value":"Account types","id":"account-types","depth":2},{"value":"One account = one currency × one type","id":"one-account--one-currency--one-type","depth":2},{"value":"The rules that matter","id":"the-rules-that-matter","depth":2},{"value":"Funding the account itself","id":"funding-the-account-itself","depth":2}],"frontmatter":{"seo":{"title":"Funding accounts"}},"lastModified":"2026-11-04T03:42:09.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/payments/funding/product-accounts","userData":{"isAuthenticated":false,"teams":["anonymous"]}}