{"openapi":"3.1.0","info":{"title":"IntaSend (BYOK) API","version":"0.1.0","description":"IntaSend (BYOK) lets an AI assistant read your own IntaSend data through the IntaSend API with a key you supply (secret key (ISSecretKey_live_...). The key can also move money; this connector only reads). Read-only: 10 tools (list_wallets, get_wallet, list_wallet_transactions, list_collections, get_collection, list_payout_transactions, list_payout_batches, list_chargebacks, list_payment_links,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-intasend.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-intasend/docs"},"termsOfService":"https://connectorbay.com/byok-intasend/terms"},"servers":[{"url":"https://byok-intasend.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-intasend/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_wallets":{"post":{"operationId":"list_wallets","summary":"List wallets (settlement and working) with currency, current and available balance, optionally filtered by currency, typ","description":"List wallets (settlement and working) with currency, current and available balance, optionally filtered by currency, type or label. Use for \"What are my IntaSend wallet balances\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"currency":{"anyOf":[{"enum":["EUR","GBP","GHS","KES","NGN","TZS","UGX","USD","XAF","XOF"],"type":"string"},{"type":"null"}],"default":null,"description":"Only wallets in this currency.","title":"Currency"},"wallet_type":{"anyOf":[{"enum":["SETTLEMENT","WORKING"],"type":"string"},{"type":"null"}],"default":null,"description":"SETTLEMENT or WORKING.","title":"Wallet Type"},"label":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only wallets with this label.","title":"Label"},"can_disburse":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to show only wallets that can pay out.","title":"Can Disburse"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number of the result set, starting at 1; follow 'next' to continue.","title":"Page"}},"title":"list_walletsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_wallet":{"post":{"operationId":"get_wallet","summary":"Get one wallet by id with label, currency, wallet type, current and available balance. Use for \"What is the balance of I","description":"Get one wallet by id with label, currency, wallet type, current and available balance. Use for \"What is the balance of IntaSend wallet ABC123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wallet_id":{"description":"Wallet id, as returned by list_wallets.","maxLength":200,"title":"Wallet Id","type":"string"}},"required":["wallet_id"],"title":"get_walletArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_wallet_transactions":{"post":{"operationId":"list_wallet_transactions","summary":"List wallet ledger entries (sales, payouts, charges, deposits, exchanges) with value, running balance, type and status, ","description":"List wallet ledger entries (sales, payouts, charges, deposits, exchanges) with value, running balance, type and status, filtered by wallet, currency, type or dates. Use for \"Show my latest IntaSend wallet transactions\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"wallet_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only entries of this wallet id.","title":"Wallet Id"},"currency":{"anyOf":[{"enum":["EUR","GBP","GHS","KES","NGN","TZS","UGX","USD","XAF","XOF"],"type":"string"},{"type":"null"}],"default":null,"description":"Only entries in this currency.","title":"Currency"},"trans_type":{"anyOf":[{"enum":["ADJUSTMENT","AIRTIME","CHARGE","DEPOSIT","EXCHANGE","PAYOUT","SALE","UNMARKED","WITHDRAWAL"],"type":"string"},{"type":"null"}],"default":null,"description":"Entry type.","title":"Trans Type"},"start_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the date range (ISO date, for example 2026-01-01).","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"End of the date range (ISO date).","title":"End Date"},"narrative":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter by narrative text.","title":"Narrative"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number of the result set, starting at 1; follow 'next' to continue.","title":"Page"}},"title":"list_wallet_transactionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_collections":{"post":{"operationId":"list_collections","summary":"List payment collections (invoices) with state, provider, amount, charges and your api_ref, filtered by state, wallet or","description":"List payment collections (invoices) with state, provider, amount, charges and your api_ref, filtered by state, wallet or reference. Use for \"Which IntaSend collections failed recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"anyOf":[{"enum":["CANCELED","COMPLETE","FAILED","PARTIAL","PENDING","PROCESSING","RETRY"],"type":"string"},{"type":"null"}],"default":null,"description":"Collection state.","title":"State"},"wallet_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only collections credited to this wallet.","title":"Wallet Id"},"api_ref":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only collections with this api_ref you supplied.","title":"Api Ref"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number of the result set, starting at 1; follow 'next' to continue.","title":"Page"}},"title":"list_collectionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_collection":{"post":{"operationId":"get_collection","summary":"Get one payment collection (invoice) by id with state, provider, amount, charges, clearing status and failure reason. Us","description":"Get one payment collection (invoice) by id with state, provider, amount, charges, clearing status and failure reason. Use for \"What is the status of IntaSend collection ABC123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"invoice_id":{"description":"Collection (invoice) id.","maxLength":200,"title":"Invoice Id","type":"string"}},"required":["invoice_id"],"title":"get_collectionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_payout_transactions":{"post":{"operationId":"list_payout_transactions","summary":"List outgoing payout transactions with provider, amount, charge, status, narrative and batch id. Recipient names and acc","description":"List outgoing payout transactions with provider, amount, charge, status, narrative and batch id. Recipient names and account numbers are not returned. Use for \"Which IntaSend payouts were sent this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"anyOf":[{"enum":["CANCELLED","INITIATED","INITIATION-FAILED","OBSERVATION","PAYERROR","PAYSUCCESS","PENDING","PROCESSING-RESULTS","RESULT-FAILED","RETRY"],"type":"string"},{"type":"null"}],"default":null,"description":"Payout state.","title":"State"},"provider":{"anyOf":[{"enum":["AIRTIME","INTASEND","INTASEND-XB","INTASEND-XB-BANK","MPESA-B2B","MPESA-B2C","PESALINK","RTGS"],"type":"string"},{"type":"null"}],"default":null,"description":"Payout rail.","title":"Provider"},"wallet_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only payouts from this wallet id.","title":"Wallet Id"},"created_at_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only payouts created after this ISO date or time.","title":"Created At After"},"created_at_before":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only payouts created before this ISO date or time.","title":"Created At Before"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number of the result set, starting at 1; follow 'next' to continue.","title":"Page"}},"title":"list_payout_transactionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_payout_batches":{"post":{"operationId":"list_payout_batches","summary":"List payout batches (files) with tracking id, batch reference and state, newest first. Use for \"What is the state of my ","description":"List payout batches (files) with tracking id, batch reference and state, newest first. Use for \"What is the state of my IntaSend payout batches\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"anyOf":[{"enum":["NEW-FILE","FAILED-READING-FILE","PREVIEW-AND-APPROVE","CHECKING-ACCOUNT-BALANCE","FAILED-ACCOUNT-BALANCE","HANDLING-FLOAT-RESULTS","SENDING-PAYMENT","PROCESSING-PAYMENT","COMPLETE","ENDED-EARLY"],"type":"string"},{"type":"null"}],"default":null,"description":"Batch state.","title":"State"},"batch_reference":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only the batch with this reference.","title":"Batch Reference"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number of the result set, starting at 1; follow 'next' to continue.","title":"Page"}},"title":"list_payout_batchesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_chargebacks":{"post":{"operationId":"list_chargebacks","summary":"List chargebacks (refunds and disputes) with amount, reason, status and resolution. Use for \"Do I have any open IntaSend","description":"List chargebacks (refunds and disputes) with amount, reason, status and resolution. Use for \"Do I have any open IntaSend chargebacks\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number of the result set, starting at 1; follow 'next' to continue.","title":"Page"}},"title":"list_chargebacksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_payment_links":{"post":{"operationId":"list_payment_links","summary":"List payment links with title, active flag, amount, usage limit and URL. Use for \"Which IntaSend payment links are activ","description":"List payment links with title, active flag, amount, usage limit and URL. Use for \"Which IntaSend payment links are active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number of the result set, starting at 1; follow 'next' to continue.","title":"Page"}},"title":"list_payment_linksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_fx_rates":{"post":{"operationId":"list_fx_rates","summary":"List IntaSend's real-time foreign exchange rates between supported currency pairs. Use for \"What FX rates does IntaSend ","description":"List IntaSend's real-time foreign exchange rates between supported currency pairs. Use for \"What FX rates does IntaSend show right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number of the result set, starting at 1; follow 'next' to continue.","title":"Page"}},"title":"list_fx_ratesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}