{"openapi":"3.1.0","info":{"title":"Chapa (BYOK) API","version":"0.1.0","description":"Chapa (BYOK) lets an AI assistant read your own Chapa data through the Chapa API with a key you supply (Chapa secret key (CHASECK-... or CHASECK_TEST-...; the key can also send transfers, this connector only reads)). Read-only: 8 tools (verify_transaction, get_transaction_events, list_transfers, verify_transfer, get_balances, get_currency_balance, list_banks, get_exchange_rate). The BYOK key...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-chapa.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-chapa/docs"},"termsOfService":"https://connectorbay.com/byok-chapa/terms"},"servers":[{"url":"https://byok-chapa.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-chapa/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/verify_transaction":{"post":{"operationId":"verify_transaction","summary":"Check one payment by your transaction reference: status, amount, fee, currency, payment method, mode and timestamps. Pay","description":"Check one payment by your transaction reference: status, amount, fee, currency, payment method, mode and timestamps. Payer name and email are left out. Use for \"Was Chapa payment chewatatest-6669 paid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tx_ref":{"description":"The tx_ref you set when you started the payment.","maxLength":200,"title":"Tx Ref","type":"string"}},"required":["tx_ref"],"title":"verify_transactionArguments","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_transaction_events":{"post":{"operationId":"get_transaction_events","summary":"List the timeline of events for one payment (attempts, provider results, redirects) in time order. Use for \"What happene","description":"List the timeline of events for one payment (attempts, provider results, redirects) in time order. Use for \"What happened during Chapa payment chewatatest-6669\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tx_ref":{"description":"The tx_ref (reference id) of the payment.","maxLength":200,"title":"Tx Ref","type":"string"}},"required":["tx_ref"],"title":"get_transaction_eventsArguments","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_transfers":{"post":{"operationId":"list_transfers","summary":"List your payouts with reference, type, currency, amount, fee, bank name, status and timestamps, with paging info. Recip","description":"List your payouts with reference, type, currency, amount, fee, bank name, status and timestamps, with paging info. Recipient names and account numbers are left out. Use for \"Which Chapa transfers failed this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range (UTC): YYYY-MM-DD for a full day or YYYY-MM-DDTHH:mm:ss.","title":"From Date"},"to_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range (UTC), on or after from_date.","title":"To Date"},"currency":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this currency, for example ETB or USD.","title":"Currency"},"status":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this status, for example success, pending or failed.","title":"Status"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_transfersArguments","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/verify_transfer":{"post":{"operationId":"verify_transfer","summary":"Check one payout by your transfer reference: status, currency, amount, fee, method, bank name and timestamps. Recipient ","description":"Check one payout by your transfer reference: status, currency, amount, fee, method, bank name and timestamps. Recipient name and account number are left out. Use for \"Did Chapa transfer chewatatest-6669 go through\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tx_ref":{"description":"The reference you set when you started the transfer.","maxLength":200,"title":"Tx Ref","type":"string"}},"required":["tx_ref"],"title":"verify_transferArguments","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_balances":{"post":{"operationId":"get_balances","summary":"Get your available and ledger balance in every currency of the account. Use for \"What is my Chapa balance\".","description":"Get your available and ledger balance in every currency of the account. Use for \"What is my Chapa balance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_balancesArguments","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_currency_balance":{"post":{"operationId":"get_currency_balance","summary":"Get your available and ledger balance in one currency. Use for \"How much USD do I have on Chapa\".","description":"Get your available and ledger balance in one currency. Use for \"How much USD do I have on Chapa\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"currency_code":{"description":"Currency code such as usd or etb.","maxLength":200,"title":"Currency Code","type":"string"}},"required":["currency_code"],"title":"get_currency_balanceArguments","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_banks":{"post":{"operationId":"list_banks","summary":"List the banks and mobile-money providers Chapa can pay out to, with code, name, swift, account length and currency. Use","description":"List the banks and mobile-money providers Chapa can pay out to, with code, name, swift, account length and currency. Use for \"Which banks does Chapa support for transfers\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_banksArguments","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_exchange_rate":{"post":{"operationId":"get_exchange_rate","summary":"Get the current exchange rate and fee between two supported currencies, for example before a swap. Only reads the rate. ","description":"Get the current exchange rate and fee between two supported currencies, for example before a swap. Only reads the rate. Use for \"What is the Chapa USD to ETB rate\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_currency":{"description":"Source currency code, for example USD.","maxLength":200,"title":"From Currency","type":"string"},"to_currency":{"description":"Target currency code, for example ETB.","maxLength":200,"title":"To Currency","type":"string"}},"required":["from_currency","to_currency"],"title":"get_exchange_rateArguments","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}}}}