{"openapi":"3.1.0","info":{"title":"Kashier (BYOK) API","version":"0.1.0","description":"Kashier (BYOK) lets an AI assistant read your own Kashier data through the Kashier API with a key you supply (secret key (sent raw in the Authorization header)). Read-only: 10 tools (list_transactions, get_transaction, lookup_orders, get_payment_session, list_payment_links, get_payment_link_statistics, list_transfers, list_balance_accounts, list_settlement_windows, list_settled_transactions). The...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-kashier.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-kashier/docs"},"termsOfService":"https://connectorbay.com/byok-kashier/terms"},"servers":[{"url":"https://byok-kashier.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-kashier/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_transactions":{"post":{"operationId":"list_transactions","summary":"List payment and refund transactions with filters for status, type, method, channel, currency, amount and a search on tr","description":"List payment and refund transactions with filters for status, type, method, channel, currency, amount and a search on transaction or order id, with paging. Use for \"Which approved Kashier card payments came in today\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["approved","rejected","unknown"],"type":"string"},{"type":"null"}],"default":null,"description":"Transaction status.","title":"Status"},"type":{"anyOf":[{"enum":["payment","refund"],"type":"string"},{"type":"null"}],"default":null,"description":"payment or refund.","title":"Type"},"method":{"anyOf":[{"enum":["card","wallet","valu","octo","souhoola"],"type":"string"},{"type":"null"}],"default":null,"description":"Payment method.","title":"Method"},"channel":{"anyOf":[{"enum":["online","pos"],"type":"string"},{"type":"null"}],"default":null,"description":"online or pos.","title":"Channel"},"currency":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"ISO 4217 code such as EGP.","title":"Currency"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Transaction id or your own order id to look for.","title":"Search"},"amount_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Minimum amount.","title":"Amount From"},"amount_to":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Maximum amount.","title":"Amount To"},"sort_type":{"anyOf":[{"enum":[1,-1],"type":"integer"},{"type":"null"}],"default":null,"description":"Sort direction: 1 ascending, -1 descending.","title":"Sort Type"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Number of records per page (default 20).","title":"Limit"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_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/get_transaction":{"post":{"operationId":"get_transaction","summary":"Get one transaction by its Kashier reference (such as TX-243585751279): method, provider, currency, status, amounts and ","description":"Get one transaction by its Kashier reference (such as TX-243585751279): method, provider, currency, status, amounts and response details. Use for \"Show Kashier transaction TX-243585751279\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"transaction_id":{"description":"Transaction reference id such as 'TX-243585751279'.","maxLength":200,"title":"Transaction Id","type":"string"}},"required":["transaction_id"],"title":"get_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/lookup_orders":{"post":{"operationId":"lookup_orders","summary":"Look up orders by your own order id (partial match) and see every transaction attempted on each with its response code a","description":"Look up orders by your own order id (partial match) and see every transaction attempted on each with its response code and settlement state. Newest first. Use for \"What happened to Kashier order ORDER-12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"description":"Part of your merchant order id (1 to 100 characters).","maxLength":100,"title":"Search","type":"string"},"status":{"anyOf":[{"enum":["INITIATED","CAPTURED","AUTHORIZED","FAILED","CANCELLED","REVERSED","EXPIRED","REJECTED"],"type":"string"},{"type":"null"}],"default":null,"description":"Order status.","title":"Status"},"start_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Orders on or after this date, such as 2026-06-01.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Orders on or before this date, such as 2026-06-18.","title":"End Date"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Number of records per page (default 20).","title":"Limit"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["search"],"title":"lookup_ordersArguments","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_payment_session":{"post":{"operationId":"get_payment_session","summary":"Get one payment session by its id: status, captured and refunded amounts, expiry, failure attempts and status history. U","description":"Get one payment session by its id: status, captured and refunded amounts, expiry, failure attempts and status history. Use for \"What is the status of Kashier payment session 66b1f0c2a3d4e5f6a7b8c9d0\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"session_id":{"description":"The session's _id, as returned when the session was created.","maxLength":200,"title":"Session Id","type":"string"}},"required":["session_id"],"title":"get_payment_sessionArguments","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 amount, customer name, payment status (PAID, UNPAID, OVERDUE, EXPIRED), due date and creation da","description":"List payment links with amount, customer name, payment status (PAID, UNPAID, OVERDUE, EXPIRED), due date and creation date; filter by status, type, dates and amount. Use for \"Which Kashier payment links are still unpaid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"payment_status":{"anyOf":[{"enum":["PAID","UNPAID","OVERDUE","EXPIRED"],"type":"string"},{"type":"null"}],"default":null,"description":"Payment state.","title":"Payment Status"},"payment_type":{"anyOf":[{"enum":["FIXED_AMOUNT","ITEMIZED"],"type":"string"},{"type":"null"}],"default":null,"description":"Link type.","title":"Payment Type"},"currency":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"ISO 4217 code such as EGP.","title":"Currency"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"A payment link id such as PL-2348668602.","title":"Search"},"start_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Created on or after this date.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Created on or before this date.","title":"End Date"},"start_due_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Due on or after this date.","title":"Start Due Date"},"end_due_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Due on or before this date.","title":"End Due Date"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Number of records per page (default 20).","title":"Limit"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","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/get_payment_link_statistics":{"post":{"operationId":"get_payment_link_statistics","summary":"Counts and amounts of payment links broken down by payment status, with the same optional filters as the link list. Use ","description":"Counts and amounts of payment links broken down by payment status, with the same optional filters as the link list. Use for \"How much have my Kashier payment links collected versus still unpaid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"currency":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"ISO 4217 code such as EGP.","title":"Currency"},"start_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Created on or after this date.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Created on or before this date.","title":"End Date"}},"title":"get_payment_link_statisticsArguments","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 payout transfers with name, method, amount, status and counts of initiated, in-transit, transferred and failed item","description":"List payout transfers with name, method, amount, status and counts of initiated, in-transit, transferred and failed items. Use for \"Which Kashier payouts did I make recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Number of records per page (default 20).","title":"Limit"},"page":{"anyOf":[{"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/list_balance_accounts":{"post":{"operationId":"list_balance_accounts","summary":"List the balance accounts with total and available balance, last transfer and its date. Use for \"How much is available i","description":"List the balance accounts with total and available balance, last transfer and its date. Use for \"How much is available in my Kashier balance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Number of records per page (default 20).","title":"Limit"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_balance_accountsArguments","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_settlement_windows":{"post":{"operationId":"list_settlement_windows","summary":"List settlement windows, newest first: window date, status, gross and net settlement amounts, transaction count and batc","description":"List settlement windows, newest first: window date, status, gross and net settlement amounts, transaction count and batch ids. Use for \"What did Kashier settle to me last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["all","open","in_progress","closed","failed"],"type":"string"},{"type":"null"}],"default":null,"description":"Window status; 'all' (default) applies no filter.","title":"Status"},"date_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Windows on or after this date.","title":"Date From"},"search_term":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search text; a TX- transaction id finds its window.","title":"Search Term"},"sort_type":{"anyOf":[{"enum":[1,-1],"type":"integer"},{"type":"null"}],"default":null,"description":"Sort direction: 1 ascending, -1 descending.","title":"Sort Type"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Number of records per page (default 20).","title":"Limit"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_settlement_windowsArguments","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_settled_transactions":{"post":{"operationId":"list_settled_transactions","summary":"List transactions that have been settled, with a summary of the total settled amount next to the page of results. Use fo","description":"List transactions that have been settled, with a summary of the total settled amount next to the page of results. Use for \"Which Kashier transactions have been settled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search term.","title":"Search"},"sort_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"asc or desc.","title":"Sort Direction"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Number of records per page (default 20).","title":"Limit"},"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_settled_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}}}}