{"openapi":"3.1.0","info":{"title":"World Cross-Border Payment Cost API","version":"0.1.0","description":"World Cross-Border Payment Cost shows what a quoted international payment really costs. fx_margin_vs_reference compares a provider's quoted exchange rate with the European Central Bank's euro foreign exchange reference rate (crossed through the euro for the pair) and gives the margin in percent. total_cost adds the visible fees and shows the total cost as a percentage of the amount with the...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://world-payment-cost.connectorbay.com/mcp.\n\nDisclaimer: General information only, not legal, tax, accounting or payment advice. World Cross-Border Payment Cost is an independent tool: it is not affiliated with, endorsed by or operated by any government body, central bank, standards body or scheme operator. Rates, thresholds and rules change; check the cited official source and confirm with a qualified professional before you rely on a result.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/world-payment-cost/docs"},"termsOfService":"https://connectorbay.com/world-payment-cost/terms"},"servers":[{"url":"https://world-payment-cost.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/world-payment-cost/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/reference_rate":{"post":{"operationId":"reference_rate","summary":"ECB euro reference rate for a currency pair (crossed through the euro) with its publication date, for comparison only. U","description":"ECB euro reference rate for a currency pair (crossed through the euro) with its publication date, for comparison only. Use for \"What is today's ECB reference rate for EUR to PLN?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_currency":{"description":"ISO 4217 code of the currency you send, for example EUR","title":"From Currency","type":"string"},"to_currency":{"description":"ISO 4217 code of the currency the recipient receives, for example USD","title":"To Currency","type":"string"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date of the quote, YYYY-MM-DD, within the last 90 days (default: latest ECB publication); weekends use the previous publication and say so","title":"On Date"}},"required":["from_currency","to_currency"],"title":"reference_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}},"/v1/tools/fx_margin_vs_reference":{"post":{"operationId":"fx_margin_vs_reference","summary":"Percentage difference between a quoted exchange rate and the ECB reference rate for the day. Use for \"My bank quoted 1.0","description":"Percentage difference between a quoted exchange rate and the ECB reference rate for the day. Use for \"My bank quoted 1.09 USD per EUR: what is the margin against the ECB reference rate?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_currency":{"description":"ISO 4217 code of the currency you send, for example EUR","title":"From Currency","type":"string"},"to_currency":{"description":"ISO 4217 code of the currency the recipient receives, for example USD","title":"To Currency","type":"string"},"quoted_rate":{"description":"The provider's rate as units of to_currency per 1 unit of from_currency, for example 1.0900","title":"Quoted Rate","type":"string"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date of the quote, YYYY-MM-DD, within the last 90 days (default: latest ECB publication); weekends use the previous publication and say so","title":"On Date"}},"required":["from_currency","to_currency","quoted_rate"],"title":"fx_margin_vs_referenceArguments","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/total_cost":{"post":{"operationId":"total_cost","summary":"Fees plus exchange-rate margin as a percentage of the amount sent, with the working shown. Use for \"What is the total co","description":"Fees plus exchange-rate margin as a percentage of the amount sent, with the working shown. Use for \"What is the total cost of sending 5,000 EUR at a quoted 1.09 with a 7.50 EUR fee?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"amount_sent":{"description":"Total leaving your account in from_currency, fee included (decimal string, at most two decimals)","title":"Amount Sent","type":"string"},"from_currency":{"description":"ISO 4217 code of the currency you send, for example EUR","title":"From Currency","type":"string"},"to_currency":{"description":"ISO 4217 code of the currency the recipient receives, for example USD","title":"To Currency","type":"string"},"quoted_rate":{"description":"Units of to_currency per 1 unit of from_currency","title":"Quoted Rate","type":"string"},"fee":{"default":"0","description":"Fee charged to you in from_currency (default 0)","title":"Fee","type":"string"},"recipient_fee":{"default":"0","description":"Fee taken from the amount received, in to_currency (default 0)","title":"Recipient Fee","type":"string"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date of the quote, YYYY-MM-DD, within the last 90 days (default: latest ECB publication); weekends use the previous publication and say so","title":"On Date"}},"required":["amount_sent","from_currency","to_currency","quoted_rate"],"title":"total_costArguments","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/compare_quotes":{"post":{"operationId":"compare_quotes","summary":"Rank several quotes for the same payment by the amount that arrives, with margin and total cost against the reference. U","description":"Rank several quotes for the same payment by the amount that arrives, with margin and total cost against the reference. Use for \"Which of these three quotes delivers the most dollars for 5,000 euros?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"amount_sent":{"description":"Total leaving your account in from_currency, fee included","title":"Amount Sent","type":"string"},"from_currency":{"description":"ISO 4217 code of the currency you send, for example EUR","title":"From Currency","type":"string"},"to_currency":{"description":"ISO 4217 code of the currency the recipient receives, for example USD","title":"To Currency","type":"string"},"quotes":{"description":"2 to 20 objects {\"label\": \"Bank A\", \"rate\": \"1.0900\", \"fee\": \"7.50\", \"recipient_fee\": \"0\"}; fee and recipient_fee are optional","items":{"additionalProperties":{"type":"string"},"type":"object"},"title":"Quotes","type":"array"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date of the quote, YYYY-MM-DD, within the last 90 days (default: latest ECB publication); weekends use the previous publication and say so","title":"On Date"}},"required":["amount_sent","from_currency","to_currency","quotes"],"title":"compare_quotesArguments","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/rate_for_margin":{"post":{"operationId":"rate_for_margin","summary":"The exchange rate that corresponds to a chosen margin below the ECB reference rate. Use for \"What rate would a 1.5% marg","description":"The exchange rate that corresponds to a chosen margin below the ECB reference rate. Use for \"What rate would a 1.5% margin below the reference look like for GBP to EUR?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_currency":{"description":"ISO 4217 code of the currency you send, for example EUR","title":"From Currency","type":"string"},"to_currency":{"description":"ISO 4217 code of the currency the recipient receives, for example USD","title":"To Currency","type":"string"},"margin_percent":{"description":"Margin below the reference rate in percent, for example 1.5 (0 to 50)","title":"Margin Percent","type":"string"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date of the quote, YYYY-MM-DD, within the last 90 days (default: latest ECB publication); weekends use the previous publication and say so","title":"On Date"}},"required":["from_currency","to_currency","margin_percent"],"title":"rate_for_marginArguments","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}}}}