{"openapi":"3.1.0","info":{"title":"MultiSafepay (BYOK) API","version":"0.1.0","description":"MultiSafepay (BYOK) lets an AI assistant read your own MultiSafepay data through the MultiSafepay API with a key you supply (MultiSafepay API key (live account or website)). Read-only: 8 tools (list_gateways, list_payment_methods, get_order, get_transaction, list_closing_balances, get_site, list_terminals, get_terminal). The BYOK key travels with each request, is used for that one call only and...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-multisafepay.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-multisafepay/docs"},"termsOfService":"https://connectorbay.com/byok-multisafepay/terms"},"servers":[{"url":"https://byok-multisafepay.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-multisafepay/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_gateways":{"post":{"operationId":"list_gateways","summary":"List the gateway identifiers of the payment methods activated for your site, with their descriptions. Use for \"Which pay","description":"List the gateway identifiers of the payment methods activated for your site, with their descriptions. Use for \"Which payment gateways are enabled on my MultiSafepay site\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Only gateways available in this ISO 3166-1 alpha-2 country code, for example NL.","title":"Country"},"include":{"anyOf":[{"const":"coupons","type":"string"},{"type":"null"}],"default":null,"description":"Set to 'coupons' to include all activated gift cards.","title":"Include"}},"title":"list_gatewaysArguments","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_methods":{"post":{"operationId":"list_payment_methods","summary":"List the payment methods activated for your site with allowed currencies, countries, amount limits and brands, optionall","description":"List the payment methods activated for your site with allowed currencies, countries, amount limits and brands, optionally filtered by amount, country or currency. Use for \"Which payment methods can a Dutch customer use for a 50 EUR order\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"amount":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only methods available for this order amount in euro cents.","title":"Amount"},"country":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Only methods available in this ISO 3166-1 alpha-2 country code.","title":"Country"},"currency":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"Only methods available for this ISO 4217 currency code, for example EUR.","title":"Currency"},"locale":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Locale for display names, for example nl_NL.","title":"Locale"}},"title":"list_payment_methodsArguments","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_order":{"post":{"operationId":"get_order","summary":"Get one order by its order id or transaction id: status, financial status, amount, refunded amount, currency and dates. ","description":"Get one order by its order id or transaction id: status, financial status, amount, refunded amount, currency and dates. Customer and payment details are not returned. Use for \"What is the status of MultiSafepay order ORDER-1001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order_id":{"description":"Your order id, or the MultiSafepay transaction id.","maxLength":200,"title":"Order Id","type":"string"}},"required":["order_id"],"title":"get_orderArguments","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 id: type, status, financial status, amount, net amount, fees, currency, payment method, site and ","description":"Get one transaction by id: type, status, financial status, amount, net amount, fees, currency, payment method, site and dispute status. Customer data is not returned. Use for \"What was the net amount of MultiSafepay transaction 123456789\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"transaction_id":{"description":"MultiSafepay transaction id (a number).","title":"Transaction Id","type":"integer"}},"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/list_closing_balances":{"post":{"operationId":"list_closing_balances","summary":"List your closing balance history per currency: balance, uncleared amount, payout amount, closing date and status. Bank ","description":"List your closing balance history per currency: balance, uncleared amount, payout amount, closing date and status. Bank account numbers are not returned. Use for \"What were my MultiSafepay closing balances last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only balances on or after this date, YYYY-MM-DD.","title":"From Date"},"until":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only balances before this date (not including it), YYYY-MM-DD.","title":"Until"},"currency":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"Only balances in this ISO 4217 currency code.","title":"Currency"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (maximum 500).","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Number of results to skip, for paging.","title":"Offset"}},"title":"list_closing_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_site":{"post":{"operationId":"get_site","summary":"Get one of your MultiSafepay websites: name, URL, notification URL, order price range and support contacts. The site's A","description":"Get one of your MultiSafepay websites: name, URL, notification URL, order price range and support contacts. The site's API key is not returned. Use for \"What are the settings of my MultiSafepay site 12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"Id of the website (site) in your MultiSafepay account.","title":"Site Id","type":"integer"}},"required":["site_id"],"title":"get_siteArguments","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_terminals":{"post":{"operationId":"list_terminals","summary":"List the point-of-sale terminals bound to your MultiSafepay account with provider, serial number, group, country and act","description":"List the point-of-sale terminals bound to your MultiSafepay account with provider, serial number, group, country and active flag. Use for \"Which card terminals are linked to my MultiSafepay account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many terminals per page (maximum 1000).","title":"Limit"}},"title":"list_terminalsArguments","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_terminal":{"post":{"operationId":"get_terminal","summary":"Get one point-of-sale terminal by id. Use for \"Is MultiSafepay terminal T1 active\".","description":"Get one point-of-sale terminal by id. Use for \"Is MultiSafepay terminal T1 active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"terminal_id":{"description":"Id of the terminal (up to 50 characters).","maxLength":200,"title":"Terminal Id","type":"string"}},"required":["terminal_id"],"title":"get_terminalArguments","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}}}}