Servidor MCP

numeral

io.usefulapi/numeral
Negocio y operaciones Legal y cumplimiento Público y accesible MCP 2026-07-28

Qué hace este MCP

Calculates sales tax and VAT and records products, customers, transactions, and refunds for tax compliance.

numeral_calculate_tax
Calculate tax
Calculate sales tax / VAT for an order — a STATELESS quote that persists nothing (record it later with numeral_create_transaction using the returned calculation id). Returns per-jurisdiction rates, total_tax_amount, and totals. Provide a customer address and one or more line items (each needs reference_product_id OR product_category). Amounts are in the currency's smallest unit (cents). Numeral: POST /tax/calculations.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customer', 'order_details'], 'properties': {'customer': {'type': 'object', 'required': ['address'], 'properties': {'id': {'type': 'string', 'description': 'A Numeral customer id (cus_...) for order tracking / exemptions.'}, 'address': {'type': 'object', 'required': ['address_line_1', 'address_city', 'address_province', 'address_postal_code', 'address_country', 'address_type'], 'properties': {'address_city': {'type': 'string', 'description': 'City.'}, 'address_type': {'enum': ['shipping', 'billing'], 'type': 'string', 'description': 'Address type: "shipping" for physical goods, "billing" for software/digital goods.'}, 'address_line_1': {'type': 'string', 'description': 'Street address, line 1.'}, 'address_line_2': {'type': 'string', 'description': 'Street address, line 2 (optional).'}, 'address_country': {'type': 'string', 'description': 'Country — a valid ISO 3166-1 alpha-2 code (e.g. "US").'}, 'address_province': {'type': 'string', 'description': 'State/province/region — a valid 2-letter ISO 3166-2 subdivision code (e.g. "CA").'}, 'address_postal_code': {'type': 'string', 'description': 'Postal/ZIP code.'}}, 'description': 'Customer address (required).'}}, 'description': 'Customer details — address is required.'}, 'metadata': {'type': 'object', 'description': 'Arbitrary string key/value metadata.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'order_details': {'type': 'object', 'required': ['customer_currency_code', 'tax_included_in_amount', 'line_items'], 'properties': {'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['amount', 'quantity'], 'properties': {'amount': {'type': 'number', 'description': "Line-item price in the currency's SMALLEST unit (e.g. USD 2000 = $20.00). Tax is calculated against this."}, 'quantity': {'type': 'number', 'description': 'Quantity of this product being sold.'}, 'product_category': {'type': 'string', 'description': 'A tax category from Numeral\'s taxonomy, e.g. "GENERAL_MERCHANDISE", "SAAS_GENERAL" (required if no reference_product_id).'}, 'reference_product_id': {'type': 'string', 'description': 'Your product id (required if no product_category).'}, 'reference_line_item_id': {'type': 'string', 'description': 'Your line-item id (optional; for record keeping).'}, 'fallback_product_category': {'type': 'string', 'description': 'Fallback tax category used when reference_product_id has no matching product in Numeral.'}}}, 'minItems': 1, 'description': 'Order line items (one per product type).'}, 'customer_currency_code': {'type': 'string', 'description': 'Currency code. For API version 2024-09-01: "USD" or "CAD".'}, 'tax_included_in_amount': {'type': 'boolean', 'description': 'Do the line-item amounts already include tax? Typically false for North America.'}}, 'description': 'Order details.'}, 'origin_address': {'type': 'object', 'required': ['address_line_1', 'address_city', 'address_province', 'address_postal_code', 'address_country'], 'properties': {'address_city': {'type': 'string', 'description': 'City.'}, 'address_line_1': {'type': 'string', 'description': 'Street address, line 1.'}, 'address_line_2': {'type': 'string', 'description': 'Street address, line 2 (optional).'}, 'address_country': {'type': 'string', 'description': 'Country — a valid ISO 3166-1 alpha-2 code (e.g. "US").'}, 'address_province': {'type': 'string', 'description': 'State/province/region — a valid 2-letter ISO 3166-2 subdivision code (e.g. "CA").'}, 'address_postal_code': {'type': 'string', 'description': 'Postal/ZIP code.'}}, 'description': 'The address a product ships from. Optional on 2024-09-01; required on API version 2025-05-12+.'}}}
numeral_create_customer
Create customer
CREATES a customer record — this WRITES to your Numeral customer list (used for order tracking and tax exemptions). Numeral: POST /tax/customers.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['email'], 'properties': {'name': {'type': 'string', 'description': 'Customer name.'}, 'email': {'type': 'string', 'description': 'Customer email (required).'}, 'is_tax_exempt': {'type': 'boolean', 'description': 'Whether this customer is tax exempt.'}, 'reference_customer_id': {'type': 'string', 'description': 'Your own id for this customer (for reference-based lookups).'}}}
numeral_create_product
Create product
CREATES (or upserts) a product with its tax category — this WRITES to your Numeral product catalog, which drives future tax calculations. Numeral: POST /tax/products.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['reference_product_id', 'reference_product_name', 'product_category'], 'properties': {'product_category': {'type': 'string', 'description': 'A tax category from Numeral\'s taxonomy, e.g. "GENERAL_MERCHANDISE", "SAAS_GENERAL".'}, 'reference_product_id': {'type': 'string', 'description': 'Your product id (used to reference this product in calculations).'}, 'reference_product_name': {'type': 'string', 'description': 'Human-readable product name.'}}}
numeral_create_refund
Create refund
RECORDS a refund against a transaction — this WRITES a live tax/compliance record (adjusts tax owed). Use type="full" to refund the whole transaction, or type="partial" with line_items (each keyed by reference_product_id) for a partial refund. Numeral: POST /tax/refunds.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['transaction_id', 'type'], 'properties': {'type': {'enum': ['full', 'partial'], 'type': 'string', 'description': '"full" refunds the whole transaction; "partial" requires line_items.'}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['reference_product_id'], 'properties': {'reference_product_id': {'type': 'string', 'description': 'Product id to apply the refund against (matches the original transaction line item).'}, 'sales_amount_refunded': {'type': 'number', 'description': "Sale amount refunded for this line, in the currency's smallest unit (cents)."}, 'reference_line_item_id': {'type': 'string', 'description': 'Your line-item id (optional; for reporting).'}}}, 'description': 'Required for type="partial": the line items to refund.'}, 'transaction_id': {'type': 'string', 'description': 'The transaction id (tr_...) to refund.'}, 'refund_processed_at': {'type': 'number', 'description': 'Unix timestamp (SECONDS) the refund was made. Defaults to now if omitted.'}}}
numeral_create_transaction
Create transaction
RECORDS a completed sale as a transaction — this WRITES a live tax/compliance record used for filings. Supply the `calculation_id` returned by numeral_calculate_tax and your `reference_order_id`. Numeral: POST /tax/transactions.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['calculation_id', 'reference_order_id'], 'properties': {'metadata': {'type': 'object', 'description': 'Arbitrary string key/value metadata.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'calculation_id': {'type': 'string', 'description': 'The calculation id returned by numeral_calculate_tax.'}, 'reference_order_id': {'type': 'string', 'description': 'Your order id for this sale (used for record keeping / dedupe).'}, 'transaction_processed_at': {'type': 'number', 'description': 'Unix timestamp (SECONDS) the sale was processed. Defaults to now if omitted.'}}}
numeral_get_customer
Get customer
Get a customer by id. By default `customer_id` is the Numeral id (cus_...); set id_type to "reference" to look up by your own reference_customer_id. Returns name, email, and tax-exempt status. Numeral: GET /tax/customers/{customer_id}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['customer_id'], 'properties': {'id_type': {'enum': ['numeral', 'reference'], 'type': 'string', 'description': 'Which id space `customer_id` is in (default: numeral).'}, 'customer_id': {'type': 'string', 'description': 'The customer id — a Numeral id (cus_...) by default, or your reference id when id_type="reference".'}}}
numeral_get_product
Get product
Get a single product by its reference_product_id (your id). Returns the product's name, product_category, and timestamps. Numeral: GET /tax/products/{reference_product_id}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['reference_product_id'], 'properties': {'reference_product_id': {'type': 'string', 'description': 'Your product id (the reference_product_id used when the product was created).'}}}
numeral_get_transaction
Get transaction
Get a recorded transaction by its Numeral id (tr_...). Returns the transaction with its line items, currencies, and metadata. Numeral: GET /tax/transactions/{transaction_id}.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['transaction_id'], 'properties': {'transaction_id': {'type': 'string', 'description': 'The Numeral transaction id (tr_...).'}}}
numeral_list_products
List products
List your Numeral products (up to 50 per page), each with its reference id, name, and product_category. Use `cursor` (the last_product_id from a previous page) to paginate; has_more indicates more pages. Numeral: GET /tax/products.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'cursor': {'type': 'string', 'description': 'Pagination cursor — pass the last_product_id from the previous page.'}}}
numeral_list_transaction_refunds
List transaction refunds
List all refunds recorded against a transaction. Returns {refunds:[...]}. Numeral: GET /tax/transactions/{transaction_id}/refunds.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['transaction_id'], 'properties': {'transaction_id': {'type': 'string', 'description': 'The Numeral transaction id (tr_...).'}}}
numeral_ping
Ping (health check)
Health check — verifies the API key works and reports the environment (test/prod), api_version, and server timestamp. Numeral: GET /tax/ping.
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Modificado
numeral_create_customer
1 de October de 2026 a las 02:43
Modificado
numeral_create_product
1 de October de 2026 a las 02:43
Modificado
numeral_create_refund
1 de October de 2026 a las 02:43
Modificado
numeral_create_transaction
1 de October de 2026 a las 02:43
Modificado
numeral_get_customer
1 de October de 2026 a las 02:43
Modificado
numeral_get_product
1 de October de 2026 a las 02:43
Modificado
numeral_list_products
1 de October de 2026 a las 02:43
Modificado
numeral_list_transaction_refunds
1 de October de 2026 a las 02:43
Modificado
numeral_get_transaction
1 de October de 2026 a las 02:43
Modificado
numeral_calculate_tax
1 de October de 2026 a las 02:43
Modificado
numeral_ping
1 de October de 2026 a las 02:43
Añadido
numeral_create_customer
21 de September de 2026 a las 02:44
Añadido
numeral_create_product
21 de September de 2026 a las 02:44
Añadido
numeral_create_refund
21 de September de 2026 a las 02:44
Añadido
numeral_create_transaction
21 de September de 2026 a las 02:44
Añadido
numeral_get_customer
21 de September de 2026 a las 02:44
Añadido
numeral_get_product
21 de September de 2026 a las 02:44
Añadido
numeral_list_products
21 de September de 2026 a las 02:44
Añadido
numeral_list_transaction_refunds
21 de September de 2026 a las 02:44
Añadido
numeral_get_transaction
21 de September de 2026 a las 02:44
Añadido
numeral_calculate_tax
21 de September de 2026 a las 02:44
Añadido
numeral_ping
21 de September de 2026 a las 02:44