Business Days and Holidays
Business days and public holidays: check if a date is a business day, add or subtract N business days, count business days between dates, or list holidays, for 250 countries, 630 subdivisions (e.g. US-NY, GB-ENG) and 31 stock exchanges, 2025-2030. Use for payment due dates, T+N settlement, delivery estimates and SLAs. Data: python-holidays (MIT). Signed receipt.
The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.
Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.
Live 402 challenge
Captured by the enrichment pass, not read just now. Prices can change — always read the 402 the endpoint answers with.
{
"error": "PAYMENT-SIGNATURE header is required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2",
"invoiceId": "1792707982-d08608217ff74a2d-d788-94a8e21f482b0a4599086aef"
},
"payTo": "0x39BF4378b74f9E19c5113b00b01f57d94537bad1",
"amount": "1000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 600
},
{
"asset": "XRP",
"extra": {
"invoiceId": "1792707982-d08608217ff74a2d-d788-94a8e21f482b0a4599086aef",
"sourceTag": 26100006
},
"payTo": "r3BsahzSMtF4HiJuL8HMf1se6T1JtMB6hg",
"amount": "788",
"scheme": "exact",
"network": "xrpl:0",
"maxTimeoutSeconds": 600
},
{
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"extra": {
"name": "USDC",
"version": "2",
"invoiceId": "1792707982-d08608217ff74a2d-d788-94a8e21f482b0a4599086aef"
},
"payTo": "0x3177FA489523ddF60f293898f7Ee5912576f3d9b",
"amount": "1000",
"scheme": "exact",
"network": "eip155:84532",
"maxTimeoutSeconds": 600
},
{
"asset": "XRP",
"extra": {
"invoiceId": "1792707982-d08608217ff74a2d-d788-94a8e21f482b0a4599086aef",
"sourceTag": 26100006
},
"payTo": "rDbkEYdqLHcnWAHAVFwhH6KM6puCPbXNgs",
"amount": "788",
"scheme": "exact",
"network": "xrpl:1",
"maxTimeoutSeconds": 600
}
],
"resource": {
"url": "https://api.stablecoingateways.com/v1/business-days",
"tags": [
"business-days",
"holidays",
"calendar",
"dates",
"trading-days"
],
"mimeType": "application/json",
"description": "Business days and public holidays: check if a date is a business day, add or subtract N business days, count business days between dates, or list holidays, for 250 countries, 630 subdivisions (e.g. US-NY, GB-ENG) and 31 stock exchanges, 2025-2030. Use for due dates, T+N settlement and SLAs. Data: python-holidays (MIT). Signed receipt.",
"serviceName": "Business Days and Holidays"
},
"extensions": {
"docs": "https://api.stablecoingateways.com/openapi.json",
"bazaar": {
"info": {
"input": {
"type": "http",
"method": "GET",
"queryParams": {
"op": "add",
"date": "2026-12-23",
"days": "3",
"calendar": "US-NY"
}
},
"output": {
"type": "json",
"example": {
"data": {
"op": "add",
"days": 3,
"start": "2026-12-23",
"result": "2026-12-29",
"source": "python-holidays (MIT) public/financial holiday data; observed-day rules as implemented ...",
"calendar": "US-NY",
"coverage": [
"2025-01-01"
],
"weekend_days": [
"Sun"
],
"holidays_skipped": [
{
"date": "2026-12-25",
"holiday": "Christmas Day"
}
]
},
"receipt": {
"v": 1,
"ts": "2026-10-22T09:00:00Z",
"sig": "hex",
"price": {
"asset": "USDC",
"amount": "1000",
"network": "eip155:84532"
},
"log_seq": 1,
"tx_hash": "0x..",
"endpoint_id": "business-days-v1",
"request_hash": "hex",
"response_hash": "hex"
}
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method"
],
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"GET"
],
"type": "string"
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"queryParams": {
"type": "object",
"properties": {
"op": {
"enum": [
"check",
"add",
"between",
"list"
],
"type": "string",
"description": "Operation; default check"
},
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End date for op=between"
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD; default today"
},
"days": {
"type": "string",
"pattern": "^-?\\d{1,4}$",
"description": "Business days to add (op=add), integer, |days|<=1000"
},
"year": {
"type": "string",
"pattern": "^20(2[5-9]|30)$",
"description": "Year for op=list, 2025-2030"
},
"calendar": {
"type": "string",
"description": "ISO country (US), country-subdivision (US-NY) or exchange (FIN-XNYS); default US"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"required": [
"data",
"receipt"
],
"properties": {
"data": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"op": {
"type": "string"
},
"days": {
"type": "integer"
},
"start": {
"type": "string"
},
"result": {
"type": "string"
},
"source": {
"type": "string"
},
"calendar": {
"type": "string"
},
"coverage": {
"type": "array",
"items": {
"type": "string"
}
},
"weekend_days": {
"type": "array",
"items": {
"type": "string"
}
},
"holidays_skipped": {
"type": "array",
"items": {
"type": "object"
}
}
}
},
"receipt": {
"type": "object",
"required": [
"v",
"endpoint_id",
"ts",
"price",
"tx_hash",
"request_hash",
"response_hash",
"log_seq",
"sig"
],
"description": "Ed25519-signed receipt; verify free at POST /v1/verify-receipt"
}
}
}
}
}
}
}
},
"params": {
"op": "check|add|between|list",
"end": "for between",
"date": "YYYY-MM-DD",
"days": "for add",
"year": "for list",
"calendar": "US, US-NY, GB-ENG, DE-BY, FIN-XNYS ..."
},
"source": "python-holidays, MIT License, Copyright (c) Vacanza Team and individual contributors; Copyright (c) dr-prodigy 2017-2023; Copyright (c) ryanss 2014-2017 (https://github.com/vacanza/holidays)",
"status": "https://api.stablecoingateways.com/status",
"receipts": "https://api.stablecoingateways.com/v1/verify-receipt",
"price_usd": "0.001",
"xrp_quote": {
"usd": "0.001",
"note": "XRP amount = ceil(USD / quote x 1e6 x (1+margin)); bound into the invoice MAC",
"age_s": 16,
"state": "fresh",
"source": "coinbase:XRP-USD spot",
"available": true,
"max_age_s": 900,
"quoted_at": "2026-10-22T22:16:06.876Z",
"xrp_drops": "788",
"margin_pct": 3,
"usd_per_xrp": 1.3079
}
},
"x402Version": 2
}Accepts
The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.
Pay 0.001 USDC on Base to 0x39BF…7bad1. The signed payment is good for 10 minutes.
- Paid to
- 0x39BF…7bad1
- USD Coin contract
- 0x8335…02913
- Payment window
- 10 minutes
- As published
- 1000 smallest units
That figure is in the token’s smallest units. Roundhouse does not hold this contract’s decimals, so it is shown as published rather than converted.
- Paid to
- r3Bsah…MB6hg
- Token contract
- XRP
- Payment window
- 10 minutes
Pay 0.001 USDC on Base Sepolia to 0x3177…f3d9b. The signed payment is good for 10 minutes.
- Paid to
- 0x3177…f3d9b
- USD Coin (Base Sepolia) contract
- 0x036C…dCF7e
- Payment window
- 10 minutes
- As published
- 1000 smallest units
That figure is in the token’s smallest units. Roundhouse does not hold this contract’s decimals, so it is shown as published rather than converted.
- Paid to
- rDbkEY…bXNgs
- Token contract
- XRP
- Payment window
- 10 minutes
The catalog’s raw entry
[
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2",
"invoiceId": "1792966188-404b4b33c8f0457f-d798-80f65db85a171b44370a2cf7"
},
"payTo": "0x39BF4378b74f9E19c5113b00b01f57d94537bad1",
"amount": "1000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 600
},
{
"asset": "XRP",
"extra": {
"invoiceId": "1792966188-404b4b33c8f0457f-d798-80f65db85a171b44370a2cf7",
"sourceTag": 26100006
},
"payTo": "r3BsahzSMtF4HiJuL8HMf1se6T1JtMB6hg",
"amount": "798",
"scheme": "exact",
"network": "xrpl:0",
"maxTimeoutSeconds": 600
},
{
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"extra": {
"name": "USDC",
"version": "2",
"invoiceId": "1792966188-404b4b33c8f0457f-d798-80f65db85a171b44370a2cf7"
},
"payTo": "0x3177FA489523ddF60f293898f7Ee5912576f3d9b",
"amount": "1000",
"scheme": "exact",
"network": "eip155:84532",
"maxTimeoutSeconds": 600
},
{
"asset": "XRP",
"extra": {
"invoiceId": "1792966188-404b4b33c8f0457f-d798-80f65db85a171b44370a2cf7",
"sourceTag": 26100006
},
"payTo": "rDbkEYdqLHcnWAHAVFwhH6KM6puCPbXNgs",
"amount": "798",
"scheme": "exact",
"network": "xrpl:1",
"maxTimeoutSeconds": 600
}
]Extensions
{
"docs": "https://api.stablecoingateways.com/openapi.json",
"bazaar": {
"info": {
"input": {
"type": "http",
"method": "GET",
"queryParams": {
"op": "add",
"date": "2026-12-23",
"days": "3",
"calendar": "US-NY"
}
},
"output": {
"type": "json",
"example": {
"data": {
"op": "add",
"days": 3,
"start": "2026-12-23",
"result": "2026-12-29",
"source": "python-holidays (MIT) public/financial holiday data; observed-day rules as implemented ...",
"calendar": "US-NY",
"coverage": [
"2025-01-01"
],
"provenance": {
"facts": [
{
"id": "business_days.holiday_calendar",
"fact": "The result of adding 3 business days to 2026-12-23 was computed loc...",
"limits": [
"Holiday dates are the rules of python-holidays ..."
],
"source": "python-holidays 0.107 (MIT), calendar US-NY",
"source_url": "https://pypi.org/project/holidays/",
"retrieved_at": null,
"source_as_of": null
}
],
"schema": "sg-provenance/1",
"evidence_only": true,
"data_timestamp": null
},
"weekend_days": [
"Sun"
],
"holidays_skipped": [
{
"date": "2026-12-25",
"holiday": "Christmas Day"
}
]
},
"receipt": {
"v": 1,
"ts": "2026-10-22T09:00:00Z",
"sig": "hex",
"price": {
"asset": "USDC",
"amount": "1000",
"network": "eip155:84532"
},
"log_seq": 1,
"tx_hash": "0x..",
"evidence": {
"terms_hash": "<sha256>",
"validation": "input=pass;freshness=pass;output=pass;provenance=pass",
"terms_version": "<label>",
"data_timestamp": "2026-10-24T09:00:00Z",
"provenance_hash": "<sha256>",
"service_version": "<version>"
},
"endpoint_id": "business-days-v1",
"request_hash": "hex",
"response_hash": "hex"
}
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method"
],
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"GET"
],
"type": "string"
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"queryParams": {
"type": "object",
"properties": {
"op": {
"enum": [
"check",
"add",
"between",
"list"
],
"type": "string",
"description": "Operation; default check"
},
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End date for op=between"
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD; default today"
},
"days": {
"type": "string",
"pattern": "^-?\\d{1,4}$",
"description": "Business days to add (op=add), integer, |days|<=1000"
},
"year": {
"type": "string",
"pattern": "^20(2[5-9]|30)$",
"description": "Year for op=list, 2025-2030"
},
"calendar": {
"type": "string",
"description": "ISO country (US), country-subdivision (US-NY) or exchange (FIN-XNYS); default US"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"required": [
"data",
"receipt"
],
"properties": {
"data": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"op": {
"type": "string"
},
"days": {
"type": "integer"
},
"start": {
"type": "string"
},
"result": {
"type": "string"
},
"source": {
"type": "string"
},
"calendar": {
"type": "string"
},
"coverage": {
"type": "array",
"items": {
"type": "string"
}
},
"provenance": {
"type": "object",
"description": "Additive evidence block (sg-provenance/1): per-fact source, retrieval time, limits; no score or verdict. Full schema in OpenAPI."
},
"weekend_days": {
"type": "array",
"items": {
"type": "string"
}
},
"holidays_skipped": {
"type": "array",
"items": {
"type": "object"
}
}
},
"description": "Business-day answer for the calendar: is_business_day / result date / count / holiday list, with coverage years"
},
"receipt": {
"type": "object",
"required": [
"v",
"endpoint_id",
"ts",
"price",
"tx_hash",
"request_hash",
"response_hash",
"log_seq",
"sig"
],
"properties": {
"evidence": {
"type": "object",
"description": "Signed evidence (see llms.txt)"
}
},
"description": "Ed25519-signed receipt; verify free at POST /v1/verify-receipt. New receipts also carry a signed `evidence` object."
}
}
}
}
}
}
}
},
"params": {
"op": "check|add|between|list",
"end": "for between",
"date": "YYYY-MM-DD",
"days": "for add",
"year": "for list",
"calendar": "US, US-NY, GB-ENG, DE-BY, FIN-XNYS ..."
},
"source": "python-holidays, MIT License, Copyright (c) Vacanza Team and individual contributors; Copyright (c) dr-prodigy 2017-2023; Copyright (c) ryanss 2014-2017 (https://github.com/vacanza/holidays)",
"status": "https://api.stablecoingateways.com/status",
"receipts": "https://api.stablecoingateways.com/v1/verify-receipt",
"price_usd": "0.001",
"xrp_quote": {
"usd": "0.001",
"note": "XRP amount = ceil(USD / quote x 1e6 x (1+margin)); bound into the invoice MAC",
"age_s": 0,
"state": "fresh",
"source": "xrpl:amm XRP/RLUSD (RLUSD=1 USD) ledger 107901973",
"available": true,
"max_age_s": 900,
"quoted_at": "2026-10-25T21:59:48.678Z",
"xrp_drops": "798",
"margin_pct": 3,
"usd_per_xrp": 1.292165
}
}Provenance
- Seen in the source catalog
- 2026-10-25 21:59Z
- Last indexed by Roundhouse
- 2026-10-26 14:50Z
- Last enriched (probe, favicon, geo)
- 2026-10-22 22:16Z
- x402 version
- 2
- Max timeout
- 600s
- Liveness probe
- HTTP 402
Hand this page to an agent
Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.
GET api.roundhouseai.io/v0/endpoints
This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 4 snapshots so far. Verified volume counts only settlements with an on-chain EIP-3009 marker.
Show the promptHide the prompt
Using Roundhouse, look up the x402 service Business Days and Holidays and tell me whether it is worth paying: what a call costs, whether the endpoint answered when last probed, and what its payment record actually shows. curl -s 'https://api.roundhouseai.io/v0/endpoints?q=Business%20Days%20and%20Holidays' curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>' Then call it: read the price from the live 402 at https://api.stablecoingateways.com/v1/business-days, never from a cached figure, and pay with an x402 client. The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except /v0/unified* and /v0/endpoints. Either pay over x402 (mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402), or ask me for an organization key, which I create at https://roundhouseai.io/dashboard/connections. If you have neither, ask before going further. If you do not have Roundhouse tools or skills installed, read https://roundhouseai.io/skill.md first — it is the whole procedure.