{"openapi":"3.1.0","info":{"title":"Invoiceterm API","version":"0.1.0","description":"A fully local invoice payment-terms glossary and calculator toolkit: Net 30/60/90, early-payment-discount notations with a real annualized-cost calculator, a late-payment-fee/interest calculator, a discount-notation decoder, a payment-terms cash-flow comparison, and a milestone-billing schedule template. General information, not financial or legal advice.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://invoiceterm.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/invoiceterm/docs"},"termsOfService":"https://connectorbay.com/invoiceterm/terms"},"servers":[{"url":"https://invoiceterm.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/invoiceterm/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/payment_terms_glossary":{"post":{"operationId":"payment_terms_glossary","summary":"Definitions of common invoice payment-terms vocabulary: Net 30/60/90, 2/10 Net 30, Due on receipt,","description":"Definitions of common invoice payment-terms vocabulary: Net 30/60/90, 2/10 Net 30, Due on receipt,\n    COD, milestone billing, EOM terms, late payment fees, retainage, invoice aging. Use for \"what does Net\n    30 mean\", \"what is 2/10 net 30\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A term to define, or omit for the full glossary.","title":"Term"}},"title":"payment_terms_glossaryArguments","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/early_payment_discount_calculator":{"post":{"operationId":"early_payment_discount_calculator","summary":"Computes the dollar discount, the price if paid early, and the annualized cost of NOT taking an","description":"Computes the dollar discount, the price if paid early, and the annualized cost of NOT taking an\n    early-payment discount — [discount%/(100%-discount%)] x [365/(net_days-discount_days)] x 100 — a figure\n    almost always far higher than the headline discount percent suggests. Use for \"is a 2/10 net 30\n    discount worth taking\", \"annualized cost of not taking a 1/15 net 45 discount\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"invoice_amount":{"description":"The invoice total before any discount.","exclusiveMinimum":0,"title":"Invoice Amount","type":"number"},"discount_percent":{"description":"Discount percent for paying early, e.g. 2 for '2/10 net 30'.","exclusiveMaximum":100,"exclusiveMinimum":0,"title":"Discount Percent","type":"number"},"discount_days":{"description":"Days from the invoice date within which the discount applies, e.g. 10 for '2/10 net 30'.","minimum":0,"title":"Discount Days","type":"integer"},"net_days":{"description":"Days from the invoice date the full amount is due, e.g. 30 for '2/10 net 30'.","exclusiveMinimum":0,"title":"Net Days","type":"integer"}},"required":["invoice_amount","discount_percent","discount_days","net_days"],"title":"early_payment_discount_calculatorArguments","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/discount_notation_decoder":{"post":{"operationId":"discount_notation_decoder","summary":"Parses a standard early-payment discount notation string into its discount percent, discount window,","description":"Parses a standard early-payment discount notation string into its discount percent, discount window,\n    and net window, and reports the annualized cost of not taking the discount. Use for \"what does 2/10 net\n    30 mean as numbers\", \"parse this term: 1/10 net 60\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"notation":{"description":"A discount notation string, e.g. '2/10 Net 30' or '1/15, n/45'.","minLength":1,"title":"Notation","type":"string"},"invoice_amount":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Optional invoice amount to also compute the dollar discount.","title":"Invoice Amount"}},"required":["notation"],"title":"discount_notation_decoderArguments","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/late_payment_fee_calculator":{"post":{"operationId":"late_payment_fee_calculator","summary":"Computes an accrued late-payment fee: a daily-prorated annual interest rate (method=daily_simple), or","description":"Computes an accrued late-payment fee: a daily-prorated annual interest rate (method=daily_simple), or\n    a flat monthly rate per month-or-fraction overdue (method=monthly_flat, the common '1.5% per month or\n    fraction thereof' clause). Use for \"late fee on a $5,000 invoice 45 days overdue at 18% annual\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"invoice_amount":{"description":"The overdue invoice amount.","exclusiveMinimum":0,"title":"Invoice Amount","type":"number"},"days_overdue":{"description":"Number of days past the due date.","minimum":0,"title":"Days Overdue","type":"integer"},"method":{"default":"daily_simple","description":"daily_simple | monthly_flat","title":"Method","type":"string"},"annual_interest_rate_pct":{"default":18.0,"description":"Used when method=daily_simple.","minimum":0,"title":"Annual Interest Rate Pct","type":"number"},"monthly_rate_pct":{"default":1.5,"description":"Used when method=monthly_flat (e.g. 1.5 for '1.5% per month').","minimum":0,"title":"Monthly Rate Pct","type":"number"}},"required":["invoice_amount","days_overdue"],"title":"late_payment_fee_calculatorArguments","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/payment_terms_comparison":{"post":{"operationId":"payment_terms_comparison","summary":"Compares the cash-flow impact of Due on receipt, Net 15/30/60/90. With invoice_amount and","description":"Compares the cash-flow impact of Due on receipt, Net 15/30/60/90. With invoice_amount and\n    annual_cost_of_capital_pct, also computes the dollar opportunity cost of each term's float period. Use\n    for \"Net 30 vs Net 60 — which is worse for my cash flow\", \"what does offering Net 90 actually cost me\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"invoice_amount":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Optional, with annual_cost_of_capital_pct, to compute dollar opportunity cost.","title":"Invoice Amount"},"annual_cost_of_capital_pct":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Optional annual rate the seller could otherwise earn/borrow at.","title":"Annual Cost Of Capital Pct"}},"title":"payment_terms_comparisonArguments","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/milestone_billing_schedule_template":{"post":{"operationId":"milestone_billing_schedule_template","summary":"A milestone-billing schedule template — a default 30/40/30 deposit/midpoint/final split, or your own","description":"A milestone-billing schedule template — a default 30/40/30 deposit/midpoint/final split, or your own\n    custom percentages, with dollar amounts if you supply a total. Use for \"how should I structure milestone\n    billing for a $20,000 project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"total_amount":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Optional project total to compute dollar amounts per milestone.","title":"Total Amount"},"milestone_percentages":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"default":null,"description":"Optional custom percentages summing to 100; default is a 30/40/30 deposit/midpoint/final split.","title":"Milestone Percentages"}},"title":"milestone_billing_schedule_templateArguments","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}}}}