{"openapi":"3.1.0","info":{"title":"PortOne (BYOK) API","version":"0.1.0","description":"PortOne (BYOK) lets an AI assistant read your own PortOne data through the PortOne API with a key you supply (V2 API secret). Read-only: 7 tools (get_payment, list_payments, list_payment_transactions, get_cash_receipt, list_payment_schedules, get_payment_schedule, list_banks). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-portone.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-portone/docs"},"termsOfService":"https://connectorbay.com/byok-portone/terms"},"servers":[{"url":"https://byok-portone.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-portone/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/get_payment":{"post":{"operationId":"get_payment","summary":"Get one payment by its id: status, order name, amounts (total, paid, cancelled), currency, payment method type, PG provi","description":"Get one payment by its id: status, order name, amounts (total, paid, cancelled), currency, payment method type, PG provider, timestamps and receipt link. Customer personal data is not returned by this tool. Use for \"What is the status of PortOne payment order-20260101-001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"payment_id":{"description":"The payment id chosen by the shop when the payment was requested, for example 'order-20260101-001'.","maxLength":100,"title":"Payment Id","type":"string"},"store_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Store id to read from; needed only when the key belongs to a merchant with several stores.","title":"Store Id"}},"required":["payment_id"],"title":"get_paymentArguments","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_payments":{"post":{"operationId":"list_payments","summary":"List payments page by page (newest first by default). The filter is passed as JSON text and can limit by period, status,","description":"List payments page by page (newest first by default). The filter is passed as JSON text and can limit by period, status, payment method, PG provider, currency and test flag. At most 60,000 results can be paged through. Use for \"Which PortOne payments were paid in the last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"request_body":{"anyOf":[{"maxLength":1500,"type":"string"},{"type":"null"}],"default":null,"description":"JSON text for the filter, for example {\"page\":{\"number\":0,\"size\":10},\"filter\":{\"status\":[\"PAID\"]}}. Page numbers start at 0; leave out to use the defaults (page 0, 10 results).","title":"Request Body"}},"title":"list_paymentsArguments","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_transactions":{"post":{"operationId":"list_payment_transactions","summary":"List the payment attempts (transactions) made for one payment id, with status, amount, failure reason and timestamps. Us","description":"List the payment attempts (transactions) made for one payment id, with status, amount, failure reason and timestamps. Use for \"How many payment attempts were made for PortOne payment order-20260101-001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"payment_id":{"description":"The payment id chosen by the shop, for example 'order-20260101-001'.","maxLength":100,"title":"Payment Id","type":"string"},"store_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Store id to read from; needed only when the key belongs to a merchant with several stores.","title":"Store Id"}},"required":["payment_id"],"title":"list_payment_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_cash_receipt":{"post":{"operationId":"get_cash_receipt","summary":"Get the cash receipt issued for one payment (type, issue number, amounts, status, issue and cancel times, receipt link).","description":"Get the cash receipt issued for one payment (type, issue number, amounts, status, issue and cancel times, receipt link). Use for \"Show the cash receipt of PortOne payment order-20260101-001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"payment_id":{"description":"The payment id chosen by the shop, for example 'order-20260101-001'.","maxLength":100,"title":"Payment Id","type":"string"},"store_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Store id to read from; needed only when the key belongs to a merchant with several stores.","title":"Store Id"}},"required":["payment_id"],"title":"get_cash_receiptArguments","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_schedules":{"post":{"operationId":"list_payment_schedules","summary":"List scheduled (reserved) payments page by page; the JSON filter can limit by period, status and billing key. Page numbe","description":"List scheduled (reserved) payments page by page; the JSON filter can limit by period, status and billing key. Page numbers start at 0. Use for \"Which PortOne payments are scheduled for next week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"request_body":{"anyOf":[{"maxLength":1500,"type":"string"},{"type":"null"}],"default":null,"description":"JSON text for the filter, for example {\"page\":{\"number\":0,\"size\":10},\"filter\":{\"status\":[\"PAID\"]}}. Page numbers start at 0; leave out to use the defaults (page 0, 10 results).","title":"Request Body"}},"title":"list_payment_schedulesArguments","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_schedule":{"post":{"operationId":"get_payment_schedule","summary":"Get one scheduled payment by its schedule id with the planned time, amount, status and the payment id it will use. Use f","description":"Get one scheduled payment by its schedule id with the planned time, amount, status and the payment id it will use. Use for \"What is the state of PortOne payment schedule schedule-001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"payment_schedule_id":{"description":"Id of the payment schedule.","maxLength":100,"title":"Payment Schedule Id","type":"string"},"store_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Store id to read from; needed only when the key belongs to a merchant with several stores.","title":"Store Id"}},"required":["payment_schedule_id"],"title":"get_payment_scheduleArguments","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 bank codes PortOne knows (code and name), useful for reading bank fields in other answers. Use for \"Which bank ","description":"List the bank codes PortOne knows (code and name), useful for reading bank fields in other answers. Use for \"Which bank codes does PortOne support\".","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}}}}