diff --git a/release-v1.1.0/checksums.txt b/release-v1.1.0/checksums.txt new file mode 100644 index 0000000..b81b6d6 --- /dev/null +++ b/release-v1.1.0/checksums.txt @@ -0,0 +1,45 @@ +c43ff17a819f42e67cc2ee01a6356ea1c6d3917d498b2fc1930a42e80075e48c LICENSE +a451582f4d6e088606126f6504ce97c0404b5a7f9eaf2a1b1e253185afc9491e README.md +930cbbb3992d01385c1e5a64a4a04de5bac7c68a8b59a25a6c0e5507a1cea33f examples/v1.1.0/commercial/authorize/invalid/001-authorize.request.invalid.json +ef1e7e77e6c53ef918053918a1b9243505fef02a61b4899868cad36feebe42f3 examples/v1.1.0/commercial/authorize/invalid/900-authorize.receipt.invalid.json +afbcee85906d0249ed0c60eecf40657832549ca8032a99154dd0e643b6d82884 examples/v1.1.0/commercial/authorize/valid/001-authorize.request.valid.json +7f4a224807248e500a18544f209ad46fe8cd0d1c2ab34308d0d3087e96c76594 examples/v1.1.0/commercial/authorize/valid/002-authorize.request.valid.json +c0ca42d7269f82c69cdcb24a0cd19d9bfc0a30cbf9b991e3f82b58c01ac16961 examples/v1.1.0/commercial/authorize/valid/900-authorize.receipt.valid.json +45023d4bb512d36ee2543ffb9d3246a17f13021d7f9a115c79ae87860f391e00 examples/v1.1.0/commercial/authorize/valid/901-authorize.receipt.valid.json +dec8708eda1a9da3d3f54731146b2b3cbd292ab718fcc6a763062d83014b4390 examples/v1.1.0/commercial/checkout/invalid/001-checkout.request.invalid.json +a6fbf133ce4629ce3831d9a2929bcc5eef1844d5edf97428d20ce897d77e031e examples/v1.1.0/commercial/checkout/invalid/900-checkout.receipt.invalid.json +6607a0a6ceefd0ca978f7969cb1e6e326e9a8ceaedde17505d2be81a260b3c8c examples/v1.1.0/commercial/checkout/valid/001-checkout.request.valid.json +c0e61562d56f2c14161f805147b00524bcd08cffff86535c523b7492760b1089 examples/v1.1.0/commercial/checkout/valid/002-checkout.request.valid.json +f8880c06f91c1d21a617fbe7f2b6a9d41d37db9f4fd5e9998689100c16f4000e examples/v1.1.0/commercial/checkout/valid/900-checkout.receipt.valid.json +ef376639e6129b14a8444c90e5a46ca4bd87a0b0f3b793e012f4839aa46b84a8 examples/v1.1.0/commercial/checkout/valid/901-checkout.receipt.valid.json +0be8ae75fc24986bdf74f096995712b847a8cced75e33fe18095bca51282b773 examples/v1.1.0/commercial/purchase/invalid/001-purchase.request.invalid.json +e70a205a9d6a4ec729161508a02b3d36d69b801408eec5cf54573ddfbbdfd44d examples/v1.1.0/commercial/purchase/invalid/900-purchase.receipt.invalid.json +2b235a6d567127c54da9c6c3eacf915c79a5c5127197a9aadbfb50289b122957 examples/v1.1.0/commercial/purchase/valid/001-purchase.request.valid.json +b5e21819f5f9a8cd700841ad18abe45e1ff42e401648ded05c4dcfd89c350b3c examples/v1.1.0/commercial/purchase/valid/002-purchase.request.valid.json +3dd86d4ca05f8d3488ec1203d451a2f263b8e8eca388a0001850d7867314a187 examples/v1.1.0/commercial/purchase/valid/900-purchase.receipt.valid.json +eeee667d742c165ba4fb08014cbcf9d45b5ee35bcc228764184ffe9a04530545 examples/v1.1.0/commercial/purchase/valid/901-purchase.receipt.valid.json +bee0d3a0329f17125d0c1c287b870880b836cdb35faf8f2b06a820fa91ab6571 examples/v1.1.0/commercial/ship/invalid/001-ship.request.invalid.json +7012d72e9641258bdebe3534e2f0faa771fbce63cb6a8b3c0828e9fe5ec521c5 examples/v1.1.0/commercial/ship/invalid/900-ship.receipt.invalid.json +576924f554079213ce078d4be6c54e5ffc58839bde4182d73d02ba3412e47f3b examples/v1.1.0/commercial/ship/valid/001-ship.request.valid.json +abd0e8a97943c458a85d788b758206d05d9ccef3ba8635f613340ad526dfe496 examples/v1.1.0/commercial/ship/valid/002-ship.request.valid.json +a004cb1385b1ca173b89df702e2b52d63f870521652f98f023359d30009b8df0 examples/v1.1.0/commercial/ship/valid/900-ship.receipt.valid.json +f268080d0fadbd2b78ea0ab66348b137a07fe8764066af3337f8c7354335f4c7 examples/v1.1.0/commercial/ship/valid/901-ship.receipt.valid.json +a2a5e61fa04e12786a848e03bbabbc3f9d066ca55a6f48cb1ae1140f6373bf94 examples/v1.1.0/commercial/verify/invalid/001-verify.request.invalid.json +b83c5b6dc532a5a7c142e44979f0101598fc6d5ad0687efa2fffcba9f59b6ab4 examples/v1.1.0/commercial/verify/invalid/900-verify.receipt.invalid.json +56d02915471d62f7687e3f6258d75754c8e7a44ca717e4ca0906dd4bb6fc34fb examples/v1.1.0/commercial/verify/valid/001-verify.request.valid.json +9492d90ea14ad35eeb8acd03248ce6061ccdc04a7aff4ed538d8c42be3abc015 examples/v1.1.0/commercial/verify/valid/002-verify.request.valid.json +50874f3eea69a51ac132873b05e39318e4c2241078ca5e258e466934935ec945 examples/v1.1.0/commercial/verify/valid/900-verify.receipt.valid.json +455d19ad1b7ef98e436d8f1c675fee7f2716eb17d301da8d2cc4e2e2c51e624a examples/v1.1.0/commercial/verify/valid/901-verify.receipt.valid.json +6b0461ac0138c9ba356cbe99ccfaa8c904296c41b6fe26808aef5bac44b29478 index.js +6d0c507d979d7fa4c03570ac624e52f1e76db31234c1591fbd9080f5865dcaae manifest.json +93aee99366ac3917027f3d153f646929d77ccf178e543086518efd14d1d68fe4 schemas/v1.1.0/commercial/authorize/authorize.receipt.schema.json +ef5da55ba5acdd43e8d2715204938762a63819dd370ebc8dfedad014617259c3 schemas/v1.1.0/commercial/authorize/authorize.request.schema.json +db850c38415809fd823abd9b49fd56502c79fd00d4cf4899dc849ef653d8db23 schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json +c4ca52ae4c5054a151c099d6108af57b17025ed7d86a99889c2cf7ffc9a341fa schemas/v1.1.0/commercial/checkout/checkout.request.schema.json +a26030e08210a7d6f891a4448a8100d358fc9b11f99e68d56d591137a0e3d8b1 schemas/v1.1.0/commercial/purchase/purchase.receipt.schema.json +e9b62cf29d5f58fed922e9bc77c8d3e13e6f7ed04785baad7a7e4fc600ab44b8 schemas/v1.1.0/commercial/purchase/purchase.request.schema.json +209f3449f0c580f919a5d9d93cf863b37b70cdcf873a49fbbb57241c361034dd schemas/v1.1.0/commercial/ship/ship.receipt.schema.json +b876f8ffbfd87e5554374de114414f9e4091ba09c80d07b9b99a40ff1befd7c5 schemas/v1.1.0/commercial/ship/ship.request.schema.json +7abc8e8a2dec058298ba5dd0603f20d9f95f6bc411fcd429fdb3c7a116dcbcca schemas/v1.1.0/commercial/verify/verify.receipt.schema.json +09707b90a6317d10d13f6e5339bc17a7ddc4d5938970ff7e25842876b7f2eea5 schemas/v1.1.0/commercial/verify/verify.request.schema.json +07885e73062e6d92d8a0282745b83c1bffb3ab56adfeb8090642cb05b000bdf2 schemas/v1.1.0/index.json diff --git a/release-v1.1.0/examples/v1.1.0/commercial/authorize/invalid/001-authorize.request.invalid.json b/release-v1.1.0/examples/v1.1.0/commercial/authorize/invalid/001-authorize.request.invalid.json new file mode 100644 index 0000000..1d825c9 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/authorize/invalid/001-authorize.request.invalid.json @@ -0,0 +1,30 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "authorize", + "request_id": "bad-auth-001", + "requested_at": "2026-03-19T10:00:00Z", + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "amount": { + "amount": 49.99, + "currency": "USDC", + "decimals": 2 + }, + "authorization_scope": { + "capture_mode": "manual" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/authorize/invalid/900-authorize.receipt.invalid.json b/release-v1.1.0/examples/v1.1.0/commercial/authorize/invalid/900-authorize.receipt.invalid.json new file mode 100644 index 0000000..92d1fd3 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/authorize/invalid/900-authorize.receipt.invalid.json @@ -0,0 +1,29 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "authorize", + "receipt_id": "bad-authrcpt-001", + "issued_at": "2026-03-19T10:00:05Z", + "request_id": "authreq-001", + "status": "approved", + "authorization_id": "auth-001", + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "amount": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + }, + "payment_requirement_ref": { + "type": "payment_requirement", + "id": "x402-auth-001" + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/authorize/valid/001-authorize.request.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/authorize/valid/001-authorize.request.valid.json new file mode 100644 index 0000000..31775fa --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/authorize/valid/001-authorize.request.valid.json @@ -0,0 +1,53 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "authorize", + "request_id": "authreq-001", + "requested_at": "2026-03-19T10:00:00Z", + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "amount": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + }, + "authorization_scope": { + "capture_mode": "manual", + "valid_until": "2026-03-20T10:00:00Z", + "reusable": false + }, + "payment_requirement": { + "scheme": "x402", + "resource": "https://merchant.example/x402/authorize/authreq-001", + "network": "eip155:8453", + "max_amount": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + }, + "payment_request_id": "x402-auth-001" + }, + "order_ref": { + "type": "order", + "id": "ord-1001" + }, + "invoice_ref": { + "type": "invoice", + "id": "inv-1001" + }, + "merchant_reference": "web-checkout-1001", + "idempotency_key": "authorize-1001" +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/authorize/valid/002-authorize.request.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/authorize/valid/002-authorize.request.valid.json new file mode 100644 index 0000000..6900d01 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/authorize/valid/002-authorize.request.valid.json @@ -0,0 +1,47 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "authorize", + "request_id": "authreq-002", + "requested_at": "2026-03-19T10:03:30Z", + "payer": { + "role": "payer", + "id": "buyer-007", + "kind": "account" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "amount": { + "amount": "199.00", + "currency": "USDC", + "decimals": 2 + }, + "authorization_scope": { + "capture_mode": "automatic", + "valid_until": "2026-03-19T12:03:30Z", + "reusable": true + }, + "payment_requirement": { + "scheme": "x402", + "resource": "https://merchant.example/x402/authorize/authreq-002", + "max_amount": { + "amount": "199.00", + "currency": "USDC", + "decimals": 2 + }, + "payment_request_id": "x402-auth-002" + }, + "order_ref": { + "type": "order", + "id": "ord-1002" + }, + "merchant_reference": "renewal-batch-1002" +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/authorize/valid/900-authorize.receipt.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/authorize/valid/900-authorize.receipt.valid.json new file mode 100644 index 0000000..6035e81 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/authorize/valid/900-authorize.receipt.valid.json @@ -0,0 +1,49 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "authorize", + "receipt_id": "authrcpt-001", + "issued_at": "2026-03-19T10:00:05Z", + "request_id": "authreq-001", + "status": "approved", + "authorization_id": "auth-001", + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "amount": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + }, + "approved_until": "2026-03-20T10:00:00Z", + "payment_requirement_ref": { + "type": "payment_requirement", + "id": "x402-auth-001" + }, + "order_ref": { + "type": "order", + "id": "ord-1001" + }, + "invoice_ref": { + "type": "invoice", + "id": "inv-1001" + }, + "payment_proof": { + "scheme": "x402", + "proof_type": "payment-authorization", + "proof_ref": "proof-auth-001", + "uri": "https://merchant.example/x402/proofs/proof-auth-001" + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/authorize/valid/901-authorize.receipt.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/authorize/valid/901-authorize.receipt.valid.json new file mode 100644 index 0000000..51eb4cd --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/authorize/valid/901-authorize.receipt.valid.json @@ -0,0 +1,34 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "authorize", + "receipt_id": "authrcpt-002", + "issued_at": "2026-03-19T10:04:10Z", + "request_id": "authreq-002", + "status": "denied", + "payer": { + "role": "payer", + "id": "buyer-007", + "kind": "account" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "amount": { + "amount": "199.00", + "currency": "USDC", + "decimals": 2 + }, + "order_ref": { + "type": "order", + "id": "ord-1002" + }, + "reason": "Issuer risk controls require a fresh buyer challenge before approval." +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/checkout/invalid/001-checkout.request.invalid.json b/release-v1.1.0/examples/v1.1.0/commercial/checkout/invalid/001-checkout.request.invalid.json new file mode 100644 index 0000000..c69b5fc --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/checkout/invalid/001-checkout.request.invalid.json @@ -0,0 +1,44 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "checkout", + "request_id": "bad-checkout-001", + "requested_at": "2026-03-19T10:05:00Z", + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "order_ref": { + "type": "order", + "id": "ord-1001" + }, + "items": [], + "amount_breakdown": { + "subtotal": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + }, + "total": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + } + }, + "capture": "immediate", + "payment_session": { + "scheme": "x402", + "session_id": "x402-session-001", + "resource": "https://merchant.example/x402/sessions/x402-session-001" + }, + "fulfillment_intent": { + "mode": "digital", + "destination_ref": "acct-buyer-001" + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/checkout/invalid/900-checkout.receipt.invalid.json b/release-v1.1.0/examples/v1.1.0/commercial/checkout/invalid/900-checkout.receipt.invalid.json new file mode 100644 index 0000000..4834e0f --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/checkout/invalid/900-checkout.receipt.invalid.json @@ -0,0 +1,45 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "checkout", + "receipt_id": "bad-checkoutrcpt-001", + "issued_at": "2026-03-19T10:05:03Z", + "request_id": "checkoutreq-001", + "status": "failed", + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "order_ref": { + "type": "order", + "id": "ord-1001" + }, + "settlement": { + "status": "failed", + "method": "x402", + "settlement_ref": "settle-001", + "amount": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + } + }, + "amount_breakdown": { + "subtotal": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + }, + "total": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + } + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/checkout/valid/001-checkout.request.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/checkout/valid/001-checkout.request.valid.json new file mode 100644 index 0000000..660874b --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/checkout/valid/001-checkout.request.valid.json @@ -0,0 +1,70 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "checkout", + "request_id": "checkoutreq-001", + "requested_at": "2026-03-19T10:05:00Z", + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "provider": { + "role": "provider", + "id": "runtime.commandlayer", + "kind": "service" + }, + "order_ref": { + "type": "order", + "id": "ord-1001" + }, + "invoice_ref": { + "type": "invoice", + "id": "inv-1001" + }, + "items": [ + { + "sku": "sku-pro-plan", + "description": "Protocol Pro Plan", + "quantity": 1, + "unit_price": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + } + } + ], + "amount_breakdown": { + "subtotal": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + }, + "total": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + } + }, + "capture": "immediate", + "payment_session": { + "scheme": "x402", + "session_id": "x402-session-001", + "resource": "https://merchant.example/x402/sessions/x402-session-001", + "network": "eip155:8453" + }, + "fulfillment_intent": { + "mode": "digital", + "destination_ref": "acct-buyer-001" + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/checkout/valid/002-checkout.request.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/checkout/valid/002-checkout.request.valid.json new file mode 100644 index 0000000..8c5ae8f --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/checkout/valid/002-checkout.request.valid.json @@ -0,0 +1,74 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "checkout", + "request_id": "checkoutreq-002", + "requested_at": "2026-03-19T10:06:45Z", + "payer": { + "role": "payer", + "id": "buyer-019", + "kind": "account" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "order_ref": { + "type": "order", + "id": "ord-1019" + }, + "invoice_ref": { + "type": "invoice", + "id": "inv-1019" + }, + "items": [ + { + "sku": "device-warehouse-1", + "description": "Telemetry gateway", + "quantity": 1, + "unit_price": { + "amount": "79.00", + "currency": "USDC", + "decimals": 2 + } + } + ], + "amount_breakdown": { + "subtotal": { + "amount": "79.00", + "currency": "USDC", + "decimals": 2 + }, + "tax": { + "amount": "4.40", + "currency": "USDC", + "decimals": 2 + }, + "shipping": { + "amount": "5.00", + "currency": "USDC", + "decimals": 2 + }, + "total": { + "amount": "88.40", + "currency": "USDC", + "decimals": 2 + } + }, + "capture": "if_authorized", + "payment_session": { + "scheme": "x402", + "session_id": "x402-session-1019", + "resource": "https://merchant.example/x402/sessions/x402-session-1019" + }, + "fulfillment_intent": { + "mode": "shipment", + "destination_ref": "shipto-1019" + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/checkout/valid/900-checkout.receipt.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/checkout/valid/900-checkout.receipt.valid.json new file mode 100644 index 0000000..85ccdc7 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/checkout/valid/900-checkout.receipt.valid.json @@ -0,0 +1,66 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "checkout", + "receipt_id": "checkoutrcpt-001", + "issued_at": "2026-03-19T10:05:03Z", + "request_id": "checkoutreq-001", + "status": "captured", + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "order_ref": { + "type": "order", + "id": "ord-1001" + }, + "invoice_ref": { + "type": "invoice", + "id": "inv-1001" + }, + "settlement": { + "status": "captured", + "method": "x402", + "settlement_ref": "settle-001", + "network_ref": "0xabc123", + "amount": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + } + }, + "amount_breakdown": { + "subtotal": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + }, + "total": { + "amount": "49.99", + "currency": "USDC", + "decimals": 2 + } + }, + "fulfillment_ref": { + "type": "fulfillment", + "id": "fulfill-001", + "uri": "https://merchant.example/fulfillment/fulfill-001" + }, + "payment_proof": { + "scheme": "x402", + "proof_type": "payment-proof", + "proof_ref": "proof-001", + "uri": "https://merchant.example/x402/proofs/proof-001" + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/checkout/valid/901-checkout.receipt.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/checkout/valid/901-checkout.receipt.valid.json new file mode 100644 index 0000000..c7a8d94 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/checkout/valid/901-checkout.receipt.valid.json @@ -0,0 +1,70 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "checkout", + "receipt_id": "checkoutrcpt-002", + "issued_at": "2026-03-19T10:07:11Z", + "request_id": "checkoutreq-002", + "status": "pending", + "payer": { + "role": "payer", + "id": "buyer-019", + "kind": "account" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "order_ref": { + "type": "order", + "id": "ord-1019" + }, + "invoice_ref": { + "type": "invoice", + "id": "inv-1019" + }, + "settlement": { + "status": "pending", + "method": "x402", + "settlement_ref": "settle-1019", + "amount": { + "amount": "88.40", + "currency": "USDC", + "decimals": 2 + } + }, + "amount_breakdown": { + "subtotal": { + "amount": "79.00", + "currency": "USDC", + "decimals": 2 + }, + "tax": { + "amount": "4.40", + "currency": "USDC", + "decimals": 2 + }, + "shipping": { + "amount": "5.00", + "currency": "USDC", + "decimals": 2 + }, + "total": { + "amount": "88.40", + "currency": "USDC", + "decimals": 2 + } + }, + "fulfillment_ref": { + "type": "fulfillment", + "id": "fulfill-1019", + "uri": "https://merchant.example/fulfillment/fulfill-1019" + }, + "reason": "Authorization is accepted, but on-chain capture is waiting for the next settlement batch." +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/purchase/invalid/001-purchase.request.invalid.json b/release-v1.1.0/examples/v1.1.0/commercial/purchase/invalid/001-purchase.request.invalid.json new file mode 100644 index 0000000..6ad616e --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/purchase/invalid/001-purchase.request.invalid.json @@ -0,0 +1,47 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "purchase", + "request_id": "bad-purchasereq-001", + "requested_at": "2026-03-19T10:10:00Z", + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "items": [ + { + "sku": "svc-analysis-pack", + "description": "One analysis execution bundle", + "quantity": 0, + "unit_price": { + "amount": "12.50", + "currency": "USDC", + "decimals": 2 + } + } + ], + "amount_breakdown": { + "subtotal": { + "amount": "12.50", + "currency": "USDC", + "decimals": 2 + }, + "total": { + "amount": "12.50", + "currency": "USDC", + "decimals": 2 + } + }, + "payment_input": { + "payment_requirement_ref": { + "type": "payment_requirement", + "id": "x402-req-2001" + } + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/purchase/invalid/900-purchase.receipt.invalid.json b/release-v1.1.0/examples/v1.1.0/commercial/purchase/invalid/900-purchase.receipt.invalid.json new file mode 100644 index 0000000..806557a --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/purchase/invalid/900-purchase.receipt.invalid.json @@ -0,0 +1,39 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "purchase", + "receipt_id": "bad-purchasercpt-001", + "issued_at": "2026-03-19T10:10:02Z", + "request_id": "purchasereq-001", + "status": "captured", + "purchase_id": "purchase-001", + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "amount_breakdown": { + "subtotal": { + "amount": "15.00", + "currency": "USDC" + }, + "total": { + "amount": "15.00", + "currency": "USDC" + } + }, + "settlement": { + "status": "captured", + "method": "x402", + "settlement_ref": "settle-2001", + "amount": { + "amount": "15.00", + "currency": "USDC" + } + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/purchase/valid/001-purchase.request.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/purchase/valid/001-purchase.request.valid.json new file mode 100644 index 0000000..d52eec5 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/purchase/valid/001-purchase.request.valid.json @@ -0,0 +1,76 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "purchase", + "request_id": "purchasereq-001", + "requested_at": "2026-03-19T10:10:00Z", + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "provider": { + "role": "provider", + "id": "runtime.commandlayer", + "kind": "service" + }, + "items": [ + { + "sku": "svc-analysis-pack", + "description": "One analysis execution bundle", + "quantity": 1, + "unit_price": { + "amount": "12.50", + "currency": "USDC", + "decimals": 2 + } + }, + { + "sku": "svc-priority-routing", + "description": "Priority routing add-on", + "quantity": 1, + "unit_price": { + "amount": "2.50", + "currency": "USDC", + "decimals": 2 + } + } + ], + "amount_breakdown": { + "subtotal": { + "amount": "15.00", + "currency": "USDC", + "decimals": 2 + }, + "total": { + "amount": "15.00", + "currency": "USDC", + "decimals": 2 + } + }, + "order_ref": { + "type": "order", + "id": "ord-2001" + }, + "invoice_ref": { + "type": "invoice", + "id": "inv-2001" + }, + "merchant_reference": "instant-purchase-2001", + "payment_input": { + "payment_requirement_ref": { + "type": "payment_requirement", + "id": "x402-req-2001" + } + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/purchase/valid/002-purchase.request.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/purchase/valid/002-purchase.request.valid.json new file mode 100644 index 0000000..0167f06 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/purchase/valid/002-purchase.request.valid.json @@ -0,0 +1,68 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "purchase", + "request_id": "purchasereq-002", + "requested_at": "2026-03-19T10:13:45Z", + "payer": { + "role": "payer", + "id": "buyer-044", + "kind": "account" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "items": [ + { + "sku": "svc-enterprise-batch", + "description": "Enterprise execution batch", + "quantity": 1, + "unit_price": { + "amount": "250.00", + "currency": "USDC", + "decimals": 2 + } + } + ], + "amount_breakdown": { + "subtotal": { + "amount": "250.00", + "currency": "USDC", + "decimals": 2 + }, + "fees": { + "amount": "5.00", + "currency": "USDC", + "decimals": 2 + }, + "total": { + "amount": "255.00", + "currency": "USDC", + "decimals": 2 + } + }, + "order_ref": { + "type": "order", + "id": "ord-2044" + }, + "invoice_ref": { + "type": "invoice", + "id": "inv-2044" + }, + "merchant_reference": "enterprise-purchase-2044", + "payment_input": { + "payment_proof": { + "scheme": "x402", + "proof_type": "payment-proof", + "proof_ref": "proof-2044", + "uri": "https://merchant.example/x402/proofs/proof-2044" + } + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/purchase/valid/900-purchase.receipt.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/purchase/valid/900-purchase.receipt.valid.json new file mode 100644 index 0000000..ae168a5 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/purchase/valid/900-purchase.receipt.valid.json @@ -0,0 +1,67 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "purchase", + "receipt_id": "purchasercpt-001", + "issued_at": "2026-03-19T10:10:02Z", + "request_id": "purchasereq-001", + "status": "captured", + "purchase_id": "purchase-001", + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "provider": { + "role": "provider", + "id": "runtime.commandlayer", + "kind": "service" + }, + "amount_breakdown": { + "subtotal": { + "amount": "15.00", + "currency": "USDC", + "decimals": 2 + }, + "total": { + "amount": "15.00", + "currency": "USDC", + "decimals": 2 + } + }, + "order_ref": { + "type": "order", + "id": "ord-2001" + }, + "invoice_ref": { + "type": "invoice", + "id": "inv-2001" + }, + "settlement": { + "status": "captured", + "method": "x402", + "settlement_ref": "settle-2001", + "network_ref": "0xdef456", + "amount": { + "amount": "15.00", + "currency": "USDC", + "decimals": 2 + } + }, + "payment_proof": { + "scheme": "x402", + "proof_type": "payment-proof", + "proof_ref": "proof-2001", + "uri": "urn:cl:x402:proof:proof-2001" + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/purchase/valid/901-purchase.receipt.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/purchase/valid/901-purchase.receipt.valid.json new file mode 100644 index 0000000..8ae46c9 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/purchase/valid/901-purchase.receipt.valid.json @@ -0,0 +1,66 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "purchase", + "receipt_id": "purchasercpt-002", + "issued_at": "2026-03-19T10:14:21Z", + "request_id": "purchasereq-002", + "status": "pending", + "purchase_id": "purchase-002", + "payer": { + "role": "payer", + "id": "buyer-044", + "kind": "account" + }, + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payee": { + "role": "payee", + "id": "merchant-settlement", + "kind": "wallet" + }, + "provider": { + "role": "provider", + "id": "runtime.commandlayer", + "kind": "service" + }, + "amount_breakdown": { + "subtotal": { + "amount": "250.00", + "currency": "USDC", + "decimals": 2 + }, + "fees": { + "amount": "5.00", + "currency": "USDC", + "decimals": 2 + }, + "total": { + "amount": "255.00", + "currency": "USDC", + "decimals": 2 + } + }, + "order_ref": { + "type": "order", + "id": "ord-2044" + }, + "invoice_ref": { + "type": "invoice", + "id": "inv-2044" + }, + "settlement": { + "status": "pending", + "method": "x402", + "settlement_ref": "settle-2044", + "amount": { + "amount": "255.00", + "currency": "USDC", + "decimals": 2 + } + }, + "reason": "Delegated provider accepted the purchase, but the settlement proof will be emitted after batched capture finalizes." +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/ship/invalid/001-ship.request.invalid.json b/release-v1.1.0/examples/v1.1.0/commercial/ship/invalid/001-ship.request.invalid.json new file mode 100644 index 0000000..efa02b8 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/ship/invalid/001-ship.request.invalid.json @@ -0,0 +1,46 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "ship", + "request_id": "bad-shipreq-001", + "requested_at": "2026-03-19T10:15:00Z", + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "provider": { + "role": "provider", + "id": "warehouse.example", + "kind": "service" + }, + "order_ref": { + "type": "order", + "id": "ord-3001" + }, + "commercial_ref": { + "type": "authorization", + "id": "auth-3001" + }, + "fulfillment_ref": { + "type": "fulfillment", + "id": "fulfillment-3001" + }, + "items": [ + { + "sku": "device-001", + "quantity": 1 + } + ], + "destination": { + "country_code": "US", + "postal_code": "10001", + "locality": "New York" + }, + "service_level": "express" +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/ship/invalid/900-ship.receipt.invalid.json b/release-v1.1.0/examples/v1.1.0/commercial/ship/invalid/900-ship.receipt.invalid.json new file mode 100644 index 0000000..0c394da --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/ship/invalid/900-ship.receipt.invalid.json @@ -0,0 +1,41 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "ship", + "receipt_id": "bad-shiprcpt-001", + "issued_at": "2026-03-19T10:15:05Z", + "request_id": "shipreq-001", + "status": "delivered", + "shipment_id": "shipment-001", + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "carrier": { + "role": "carrier", + "id": "ups", + "kind": "service" + }, + "order_ref": { + "type": "order", + "id": "ord-3001" + }, + "commercial_ref": { + "type": "purchase", + "id": "purchase-3001" + }, + "fulfillment_ref": { + "type": "fulfillment", + "id": "fulfillment-3001" + }, + "tracking_number": "1Z999AA10123456784", + "tracking_url": "https://carrier.example/track/1Z999AA10123456784", + "event_at": "2026-03-19T10:15:05Z", + "delivered_at": "2026-03-19T10:15:05Z" +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/ship/valid/001-ship.request.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/ship/valid/001-ship.request.valid.json new file mode 100644 index 0000000..4a8e5a8 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/ship/valid/001-ship.request.valid.json @@ -0,0 +1,46 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "ship", + "request_id": "shipreq-001", + "requested_at": "2026-03-19T10:15:00Z", + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "provider": { + "role": "provider", + "id": "warehouse.example", + "kind": "service" + }, + "order_ref": { + "type": "order", + "id": "ord-3001" + }, + "commercial_ref": { + "type": "purchase", + "id": "purchase-3001" + }, + "fulfillment_ref": { + "type": "fulfillment", + "id": "fulfillment-3001" + }, + "items": [ + { + "sku": "device-001", + "quantity": 1 + } + ], + "destination": { + "country_code": "US", + "postal_code": "10001", + "locality": "New York" + }, + "service_level": "express" +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/ship/valid/002-ship.request.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/ship/valid/002-ship.request.valid.json new file mode 100644 index 0000000..4f09046 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/ship/valid/002-ship.request.valid.json @@ -0,0 +1,46 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "ship", + "request_id": "shipreq-002", + "requested_at": "2026-03-19T10:17:15Z", + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payer": { + "role": "payer", + "id": "buyer-017", + "kind": "account" + }, + "provider": { + "role": "provider", + "id": "warehouse.example", + "kind": "service" + }, + "order_ref": { + "type": "order", + "id": "ord-3017" + }, + "commercial_ref": { + "type": "checkout", + "id": "checkout-3017" + }, + "fulfillment_ref": { + "type": "fulfillment", + "id": "fulfillment-3017" + }, + "items": [ + { + "sku": "device-017", + "quantity": 2 + } + ], + "destination": { + "country_code": "DE", + "postal_code": "10115", + "locality": "Berlin" + }, + "service_level": "expedited" +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/ship/valid/900-ship.receipt.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/ship/valid/900-ship.receipt.valid.json new file mode 100644 index 0000000..cef4bb5 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/ship/valid/900-ship.receipt.valid.json @@ -0,0 +1,50 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "ship", + "receipt_id": "shiprcpt-001", + "issued_at": "2026-03-19T10:15:05Z", + "request_id": "shipreq-001", + "status": "delivered", + "shipment_id": "shipment-001", + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payer": { + "role": "payer", + "id": "buyer-001", + "kind": "account" + }, + "carrier": { + "role": "carrier", + "id": "ups", + "kind": "service" + }, + "order_ref": { + "type": "order", + "id": "ord-3001" + }, + "commercial_ref": { + "type": "purchase", + "id": "purchase-3001" + }, + "fulfillment_ref": { + "type": "fulfillment", + "id": "fulfillment-3001" + }, + "payment_ref": { + "type": "payment_proof", + "id": "proof-2001" + }, + "tracking_number": "1Z999AA10123456784", + "tracking_url": "https://carrier.example/track/1Z999AA10123456784", + "event_at": "2026-03-19T10:15:05Z", + "delivered_at": "2026-03-19T10:15:05Z", + "delivery_proof_ref": { + "type": "receipt", + "id": "delivery-scan-3001", + "uri": "https://carrier.example/proof/delivery-scan-3001" + } +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/ship/valid/901-ship.receipt.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/ship/valid/901-ship.receipt.valid.json new file mode 100644 index 0000000..b2b892b --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/ship/valid/901-ship.receipt.valid.json @@ -0,0 +1,44 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "ship", + "receipt_id": "shiprcpt-002", + "issued_at": "2026-03-19T10:17:45Z", + "request_id": "shipreq-002", + "status": "in_transit", + "shipment_id": "shipment-002", + "merchant": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "payer": { + "role": "payer", + "id": "buyer-017", + "kind": "account" + }, + "carrier": { + "role": "carrier", + "id": "dhl-express", + "kind": "service" + }, + "order_ref": { + "type": "order", + "id": "ord-3017" + }, + "commercial_ref": { + "type": "checkout", + "id": "checkout-3017" + }, + "fulfillment_ref": { + "type": "fulfillment", + "id": "fulfillment-3017" + }, + "payment_ref": { + "type": "payment_proof", + "id": "proof-3017" + }, + "tracking_number": "JD014600006838220004", + "tracking_url": "https://carrier.example/track/JD014600006838220004", + "event_at": "2026-03-19T10:17:45Z" +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/verify/invalid/001-verify.request.invalid.json b/release-v1.1.0/examples/v1.1.0/commercial/verify/invalid/001-verify.request.invalid.json new file mode 100644 index 0000000..8329b22 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/verify/invalid/001-verify.request.invalid.json @@ -0,0 +1,21 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "verify", + "request_id": "bad-verifyreq-001", + "requested_at": "2026-03-19T10:20:00Z", + "requester": { + "role": "provider", + "id": "audit.example", + "kind": "service" + }, + "target": { + "target_type": "settlement", + "target_ref": { + "type": "settlement", + "id": "settle-2001" + } + }, + "checks": [], + "strict": true +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/verify/invalid/900-verify.receipt.invalid.json b/release-v1.1.0/examples/v1.1.0/commercial/verify/invalid/900-verify.receipt.invalid.json new file mode 100644 index 0000000..83ef44c --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/verify/invalid/900-verify.receipt.invalid.json @@ -0,0 +1,26 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "verify", + "receipt_id": "verifyrcpt-missing-reason-001", + "issued_at": "2026-03-19T10:20:02Z", + "request_id": "verifyreq-001", + "status": "not_verified", + "verifier": { + "role": "verifier", + "id": "ledger.example", + "kind": "service" + }, + "target_type": "settlement", + "target_ref": { + "type": "settlement", + "id": "settle-2001" + }, + "evidence_refs": [ + { + "type": "payment_proof", + "id": "proof-2001" + } + ], + "basis": "Verifier determined the settlement proof failed reconciliation, but this invalid fixture intentionally omits the required reason field." +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/verify/valid/001-verify.request.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/verify/valid/001-verify.request.valid.json new file mode 100644 index 0000000..135a576 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/verify/valid/001-verify.request.valid.json @@ -0,0 +1,31 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "verify", + "request_id": "verifyreq-001", + "requested_at": "2026-03-19T10:20:00Z", + "requester": { + "role": "provider", + "id": "audit.example", + "kind": "service" + }, + "verifier": { + "role": "verifier", + "id": "ledger.example", + "kind": "service" + }, + "target": { + "target_type": "settlement", + "target_ref": { + "type": "settlement", + "id": "settle-2001" + }, + "authority": "https://ledger.example/verify" + }, + "checks": [ + "existence", + "amount", + "settlement" + ], + "strict": true +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/verify/valid/002-verify.request.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/verify/valid/002-verify.request.valid.json new file mode 100644 index 0000000..c37a9f8 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/verify/valid/002-verify.request.valid.json @@ -0,0 +1,31 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "verify", + "request_id": "verifyreq-002", + "requested_at": "2026-03-19T10:21:30Z", + "requester": { + "role": "merchant", + "id": "merchant.example", + "kind": "organization" + }, + "verifier": { + "role": "verifier", + "id": "ledger.example", + "kind": "service" + }, + "target": { + "target_type": "fulfillment", + "target_ref": { + "type": "fulfillment", + "id": "fulfill-3017", + "uri": "https://merchant.example/fulfillment/fulfill-3017" + }, + "authority": "https://ledger.example/verify" + }, + "checks": [ + "existence", + "fulfillment" + ], + "strict": false +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/verify/valid/900-verify.receipt.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/verify/valid/900-verify.receipt.valid.json new file mode 100644 index 0000000..f1113e7 --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/verify/valid/900-verify.receipt.valid.json @@ -0,0 +1,27 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "verify", + "receipt_id": "verifyrcpt-001", + "issued_at": "2026-03-19T10:20:02Z", + "request_id": "verifyreq-001", + "status": "verified", + "verifier": { + "role": "verifier", + "id": "ledger.example", + "kind": "service" + }, + "target_type": "settlement", + "target_ref": { + "type": "settlement", + "id": "settle-2001" + }, + "evidence_refs": [ + { + "type": "payment_proof", + "id": "proof-2001", + "uri": "https://merchant.example/x402/proofs/proof-2001" + } + ], + "basis": "Matched canonical x402 settlement proof and merchant ledger entry." +} diff --git a/release-v1.1.0/examples/v1.1.0/commercial/verify/valid/901-verify.receipt.valid.json b/release-v1.1.0/examples/v1.1.0/commercial/verify/valid/901-verify.receipt.valid.json new file mode 100644 index 0000000..3e9d14c --- /dev/null +++ b/release-v1.1.0/examples/v1.1.0/commercial/verify/valid/901-verify.receipt.valid.json @@ -0,0 +1,34 @@ +{ + "protocol": "commercial", + "version": "1.1.0", + "verb": "verify", + "receipt_id": "verifyrcpt-002", + "issued_at": "2026-03-19T10:22:08Z", + "request_id": "verifyreq-002", + "status": "inconclusive", + "verifier": { + "role": "verifier", + "id": "ledger.example", + "kind": "service" + }, + "target_type": "fulfillment", + "target_ref": { + "type": "fulfillment", + "id": "fulfill-3017", + "uri": "https://merchant.example/fulfillment/fulfill-3017" + }, + "evidence_refs": [ + { + "type": "shipment", + "id": "shipment-002", + "uri": "https://carrier.example/shipments/shipment-002" + }, + { + "type": "receipt", + "id": "delivery-scan-pending-3017", + "uri": "https://carrier.example/proof/delivery-scan-pending-3017" + } + ], + "basis": "Carrier telemetry confirms handoff, but no signed delivery proof is yet available from the downstream carrier.", + "reason": "Verification remains inconclusive until the carrier publishes final delivery evidence." +} diff --git a/release-v1.1.0/manifest.json b/release-v1.1.0/manifest.json new file mode 100644 index 0000000..fa163a2 --- /dev/null +++ b/release-v1.1.0/manifest.json @@ -0,0 +1,77 @@ +{ + "name": "@commandlayer/commercial", + "class": "commercial", + "version": "1.1.0", + "status": "current", + "description": "Canonical x402-first commercial schemas, examples, and release metadata for CommandLayer.", + "repository": "https://github.com/commandlayer/protocol-commercial", + "homepage": "https://commandlayer.org", + "license": "Apache-2.0", + "path_base": ".", + "paths_are_repo_relative": true, + "schemas_root": "schemas/v1.1.0", + "examples_root": "examples/v1.1.0", + "current_index": "schemas/v1.1.0/index.json", + "checksums_file": "checksums.txt", + "release_date": null, + "supersedes": [ + "1.0.0" + ], + "legacy_versions": [ + { + "version": "1.0.0", + "status": "historical-repo-only", + "schemas_root": "schemas/v1.0.0", + "examples_root": "examples/v1.0.0" + } + ], + "toolchain": { + "node": ">=20.0.0", + "ajv": "^8.17.1" + }, + "commercial_model": { + "transport": "x402-first", + "receipts": "canonical commercial receipt artifacts", + "runtime_scope": "execution, metering, and provider policy remain out of scope", + "actors": "payer/payee/merchant/provider/carrier/verifier", + "payment_layers": "payment_requirement, payment_session, payment_proof" + }, + "declared_alignment": { + "protocol_commons": "1.1.0", + "agent_cards": "1.1.0" + }, + "alignment_verification": "declarative-only", + "verbs": [ + { + "verb": "authorize", + "request_schema": "schemas/v1.1.0/commercial/authorize/authorize.request.schema.json", + "receipt_schema": "schemas/v1.1.0/commercial/authorize/authorize.receipt.schema.json", + "examples": "examples/v1.1.0/commercial/authorize" + }, + { + "verb": "checkout", + "request_schema": "schemas/v1.1.0/commercial/checkout/checkout.request.schema.json", + "receipt_schema": "schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json", + "examples": "examples/v1.1.0/commercial/checkout" + }, + { + "verb": "purchase", + "request_schema": "schemas/v1.1.0/commercial/purchase/purchase.request.schema.json", + "receipt_schema": "schemas/v1.1.0/commercial/purchase/purchase.receipt.schema.json", + "examples": "examples/v1.1.0/commercial/purchase" + }, + { + "verb": "ship", + "request_schema": "schemas/v1.1.0/commercial/ship/ship.request.schema.json", + "receipt_schema": "schemas/v1.1.0/commercial/ship/ship.receipt.schema.json", + "examples": "examples/v1.1.0/commercial/ship" + }, + { + "verb": "verify", + "request_schema": "schemas/v1.1.0/commercial/verify/verify.request.schema.json", + "receipt_schema": "schemas/v1.1.0/commercial/verify/verify.receipt.schema.json", + "examples": "examples/v1.1.0/commercial/verify" + } + ], + "publication_state": "repository-validated-not-yet-published" +} diff --git a/release-v1.1.0/schemas/v1.1.0/commercial/authorize/authorize.receipt.schema.json b/release-v1.1.0/schemas/v1.1.0/commercial/authorize/authorize.receipt.schema.json new file mode 100644 index 0000000..51589da --- /dev/null +++ b/release-v1.1.0/schemas/v1.1.0/commercial/authorize/authorize.receipt.schema.json @@ -0,0 +1,498 @@ +{ + "$id": "https://commandlayer.org/schemas/v1.1.0/commercial/authorize/authorize.receipt.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "authorize.receipt", + "description": "Canonical authorization outcome artifact for a commercial authorize request.", + "type": "object", + "additionalProperties": false, + "$defs": { + "money": { + "type": "object", + "additionalProperties": false, + "required": [ + "amount", + "currency" + ], + "properties": { + "amount": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$", + "maxLength": 40 + }, + "currency": { + "type": "string", + "pattern": "^[A-Z0-9]{2,16}$" + }, + "decimals": { + "type": "integer", + "minimum": 0, + "maximum": 18 + }, + "includes": { + "type": "string", + "enum": [ + "subtotal", + "tax", + "shipping", + "fees", + "discount", + "total" + ] + } + } + }, + "payment_proof": { + "type": "object", + "additionalProperties": false, + "required": [ + "scheme", + "proof_type", + "proof_ref" + ], + "properties": { + "scheme": { + "type": "string", + "const": "x402" + }, + "proof_type": { + "type": "string", + "enum": [ + "payment-session", + "payment-authorization", + "payment-proof" + ] + }, + "proof_ref": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "actor_identity": { + "type": "object", + "additionalProperties": false, + "required": [ + "role", + "id" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "payer", + "payee", + "merchant", + "provider", + "carrier", + "verifier" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "kind": { + "type": "string", + "enum": [ + "agent", + "organization", + "wallet", + "account", + "service", + "human" + ] + }, + "display_name": { + "type": "string", + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "payer_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payer" + } + }, + "required": [ + "role" + ] + } + ] + }, + "payee_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payee" + } + }, + "required": [ + "role" + ] + } + ] + }, + "merchant_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "merchant" + } + }, + "required": [ + "role" + ] + } + ] + }, + "provider_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "provider" + } + }, + "required": [ + "role" + ] + } + ] + }, + "carrier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "carrier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "verifier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "verifier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "reference": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "order", + "invoice", + "authorization", + "checkout", + "purchase", + "fulfillment", + "shipment", + "payment", + "settlement", + "receipt", + "payment_requirement", + "payment_session", + "payment_proof", + "agent_card" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + } + }, + "properties": { + "protocol": { + "type": "string", + "const": "commercial" + }, + "version": { + "type": "string", + "const": "1.1.0" + }, + "verb": { + "type": "string", + "const": "authorize" + }, + "receipt_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "issued_at": { + "type": "string", + "format": "date-time" + }, + "request_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "status": { + "type": "string", + "enum": [ + "approved", + "denied", + "pending" + ] + }, + "authorization_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "payer": { + "$ref": "#/$defs/payer_actor" + }, + "payee": { + "$ref": "#/$defs/payee_actor" + }, + "merchant": { + "$ref": "#/$defs/merchant_actor" + }, + "amount": { + "$ref": "#/$defs/money" + }, + "approved_until": { + "type": "string", + "format": "date-time" + }, + "payment_requirement_ref": { + "$ref": "#/$defs/reference" + }, + "order_ref": { + "$ref": "#/$defs/reference" + }, + "invoice_ref": { + "$ref": "#/$defs/reference" + }, + "payment_proof": { + "$ref": "#/$defs/payment_proof" + }, + "reason": { + "type": "string", + "maxLength": 512 + } + }, + "required": [ + "protocol", + "version", + "verb", + "receipt_id", + "issued_at", + "request_id", + "status", + "payer", + "payee", + "merchant", + "amount" + ], + "allOf": [ + { + "if": { + "properties": { + "status": { + "const": "approved" + } + } + }, + "then": { + "required": [ + "authorization_id", + "approved_until" + ], + "properties": { + "approved_until": { + "type": "string", + "format": "date-time" + }, + "payment_requirement_ref": { + "$ref": "#/$defs/reference" + }, + "payment_proof": { + "$ref": "#/$defs/payment_proof" + }, + "authorization_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + } + }, + "anyOf": [ + { + "properties": { + "payment_requirement_ref": { + "$ref": "#/$defs/reference" + } + }, + "required": [ + "payment_requirement_ref" + ] + }, + { + "properties": { + "payment_proof": { + "$ref": "#/$defs/payment_proof" + } + }, + "required": [ + "payment_proof" + ] + } + ] + } + }, + { + "if": { + "properties": { + "status": { + "const": "denied" + } + } + }, + "then": { + "required": [ + "reason" + ], + "properties": { + "reason": { + "type": "string", + "maxLength": 512 + } + }, + "not": { + "anyOf": [ + { + "required": [ + "authorization_id" + ] + }, + { + "required": [ + "approved_until" + ] + }, + { + "required": [ + "payment_requirement_ref" + ] + }, + { + "required": [ + "payment_proof" + ] + } + ] + } + } + }, + { + "if": { + "properties": { + "status": { + "const": "pending" + } + } + }, + "then": { + "properties": { + "reason": { + "type": "string", + "maxLength": 512 + } + }, + "not": { + "anyOf": [ + { + "required": [ + "authorization_id" + ] + }, + { + "required": [ + "approved_until" + ] + }, + { + "required": [ + "payment_requirement_ref" + ] + }, + { + "required": [ + "payment_proof" + ] + } + ] + } + } + } + ] +} diff --git a/release-v1.1.0/schemas/v1.1.0/commercial/authorize/authorize.request.schema.json b/release-v1.1.0/schemas/v1.1.0/commercial/authorize/authorize.request.schema.json new file mode 100644 index 0000000..14cbefd --- /dev/null +++ b/release-v1.1.0/schemas/v1.1.0/commercial/authorize/authorize.request.schema.json @@ -0,0 +1,362 @@ +{ + "$id": "https://commandlayer.org/schemas/v1.1.0/commercial/authorize/authorize.request.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "authorize.request", + "description": "Reserve payment authority for a later commercial capture or settlement.", + "type": "object", + "additionalProperties": false, + "$defs": { + "money": { + "type": "object", + "additionalProperties": false, + "required": [ + "amount", + "currency" + ], + "properties": { + "amount": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$", + "maxLength": 40 + }, + "currency": { + "type": "string", + "pattern": "^[A-Z0-9]{2,16}$" + }, + "decimals": { + "type": "integer", + "minimum": 0, + "maximum": 18 + }, + "includes": { + "type": "string", + "enum": [ + "subtotal", + "tax", + "shipping", + "fees", + "discount", + "total" + ] + } + } + }, + "payment_requirement": { + "type": "object", + "additionalProperties": false, + "required": [ + "scheme", + "resource", + "max_amount" + ], + "properties": { + "scheme": { + "type": "string", + "const": "x402" + }, + "resource": { + "type": "string", + "format": "uri", + "maxLength": 512 + }, + "network": { + "type": "string", + "maxLength": 64 + }, + "max_amount": { + "$ref": "#/$defs/money" + }, + "payment_request_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + } + } + }, + "authorization_scope": { + "type": "object", + "additionalProperties": false, + "required": [ + "capture_mode" + ], + "properties": { + "capture_mode": { + "type": "string", + "enum": [ + "manual", + "automatic" + ] + }, + "valid_until": { + "type": "string", + "format": "date-time" + }, + "reusable": { + "type": "boolean" + } + } + }, + "actor_identity": { + "type": "object", + "additionalProperties": false, + "required": [ + "role", + "id" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "payer", + "payee", + "merchant", + "provider", + "carrier", + "verifier" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "kind": { + "type": "string", + "enum": [ + "agent", + "organization", + "wallet", + "account", + "service", + "human" + ] + }, + "display_name": { + "type": "string", + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "payer_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payer" + } + }, + "required": [ + "role" + ] + } + ] + }, + "payee_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payee" + } + }, + "required": [ + "role" + ] + } + ] + }, + "merchant_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "merchant" + } + }, + "required": [ + "role" + ] + } + ] + }, + "provider_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "provider" + } + }, + "required": [ + "role" + ] + } + ] + }, + "carrier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "carrier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "verifier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "verifier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "reference": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "order", + "invoice", + "authorization", + "checkout", + "purchase", + "fulfillment", + "shipment", + "payment", + "settlement", + "receipt", + "payment_requirement", + "payment_session", + "payment_proof", + "agent_card" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + } + }, + "properties": { + "protocol": { + "type": "string", + "const": "commercial" + }, + "version": { + "type": "string", + "const": "1.1.0" + }, + "verb": { + "type": "string", + "const": "authorize" + }, + "request_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "requested_at": { + "type": "string", + "format": "date-time" + }, + "payer": { + "$ref": "#/$defs/payer_actor" + }, + "payee": { + "$ref": "#/$defs/payee_actor" + }, + "merchant": { + "$ref": "#/$defs/merchant_actor" + }, + "amount": { + "$ref": "#/$defs/money" + }, + "authorization_scope": { + "$ref": "#/$defs/authorization_scope" + }, + "payment_requirement": { + "$ref": "#/$defs/payment_requirement" + }, + "order_ref": { + "$ref": "#/$defs/reference" + }, + "invoice_ref": { + "$ref": "#/$defs/reference" + }, + "merchant_reference": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "idempotency_key": { + "type": "string", + "minLength": 1, + "maxLength": 128 + } + }, + "required": [ + "protocol", + "version", + "verb", + "request_id", + "requested_at", + "payer", + "payee", + "merchant", + "amount", + "authorization_scope" + ] +} diff --git a/release-v1.1.0/schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json b/release-v1.1.0/schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json new file mode 100644 index 0000000..7af61a7 --- /dev/null +++ b/release-v1.1.0/schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json @@ -0,0 +1,464 @@ +{ + "$id": "https://commandlayer.org/schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "checkout.receipt", + "description": "Canonical checkout settlement receipt.", + "type": "object", + "additionalProperties": false, + "$defs": { + "money": { + "type": "object", + "additionalProperties": false, + "required": [ + "amount", + "currency" + ], + "properties": { + "amount": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$", + "maxLength": 40 + }, + "currency": { + "type": "string", + "pattern": "^[A-Z0-9]{2,16}$" + }, + "decimals": { + "type": "integer", + "minimum": 0, + "maximum": 18 + }, + "includes": { + "type": "string", + "enum": [ + "subtotal", + "tax", + "shipping", + "fees", + "discount", + "total" + ] + } + } + }, + "amount_breakdown": { + "type": "object", + "additionalProperties": false, + "required": [ + "subtotal", + "total" + ], + "properties": { + "subtotal": { + "$ref": "#/$defs/money" + }, + "tax": { + "$ref": "#/$defs/money" + }, + "fees": { + "$ref": "#/$defs/money" + }, + "discount": { + "$ref": "#/$defs/money" + }, + "shipping": { + "$ref": "#/$defs/money" + }, + "total": { + "$ref": "#/$defs/money" + } + } + }, + "settlement": { + "type": "object", + "additionalProperties": false, + "required": [ + "status", + "method", + "settlement_ref", + "amount" + ], + "properties": { + "status": { + "type": "string", + "enum": [ + "captured", + "failed", + "pending" + ] + }, + "method": { + "type": "string", + "enum": [ + "x402", + "stablecoin", + "card", + "bank_transfer", + "credit" + ] + }, + "settlement_ref": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "network_ref": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "amount": { + "$ref": "#/$defs/money" + } + } + }, + "payment_proof": { + "type": "object", + "additionalProperties": false, + "required": [ + "scheme", + "proof_type", + "proof_ref" + ], + "properties": { + "scheme": { + "type": "string", + "const": "x402" + }, + "proof_type": { + "type": "string", + "enum": [ + "payment-session", + "payment-authorization", + "payment-proof" + ] + }, + "proof_ref": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "actor_identity": { + "type": "object", + "additionalProperties": false, + "required": [ + "role", + "id" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "payer", + "payee", + "merchant", + "provider", + "carrier", + "verifier" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "kind": { + "type": "string", + "enum": [ + "agent", + "organization", + "wallet", + "account", + "service", + "human" + ] + }, + "display_name": { + "type": "string", + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "payer_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payer" + } + }, + "required": [ + "role" + ] + } + ] + }, + "payee_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payee" + } + }, + "required": [ + "role" + ] + } + ] + }, + "merchant_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "merchant" + } + }, + "required": [ + "role" + ] + } + ] + }, + "provider_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "provider" + } + }, + "required": [ + "role" + ] + } + ] + }, + "carrier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "carrier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "verifier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "verifier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "reference": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "order", + "invoice", + "authorization", + "checkout", + "purchase", + "fulfillment", + "shipment", + "payment", + "settlement", + "receipt", + "payment_requirement", + "payment_session", + "payment_proof", + "agent_card" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + } + }, + "properties": { + "protocol": { + "type": "string", + "const": "commercial" + }, + "version": { + "type": "string", + "const": "1.1.0" + }, + "verb": { + "type": "string", + "const": "checkout" + }, + "receipt_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "issued_at": { + "type": "string", + "format": "date-time" + }, + "request_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "status": { + "type": "string", + "enum": [ + "captured", + "failed", + "pending" + ] + }, + "payer": { + "$ref": "#/$defs/payer_actor" + }, + "merchant": { + "$ref": "#/$defs/merchant_actor" + }, + "payee": { + "$ref": "#/$defs/payee_actor" + }, + "order_ref": { + "$ref": "#/$defs/reference" + }, + "invoice_ref": { + "$ref": "#/$defs/reference" + }, + "settlement": { + "$ref": "#/$defs/settlement" + }, + "amount_breakdown": { + "$ref": "#/$defs/amount_breakdown" + }, + "fulfillment_ref": { + "$ref": "#/$defs/reference" + }, + "payment_proof": { + "$ref": "#/$defs/payment_proof" + }, + "reason": { + "type": "string", + "maxLength": 512 + } + }, + "required": [ + "protocol", + "version", + "verb", + "receipt_id", + "issued_at", + "request_id", + "status", + "payer", + "merchant", + "order_ref", + "settlement", + "amount_breakdown" + ], + "allOf": [ + { + "if": { + "properties": { + "status": { + "const": "captured" + } + } + }, + "then": { + "properties": { + "payment_proof": { + "$ref": "#/$defs/payment_proof" + } + }, + "required": [ + "payment_proof" + ] + } + }, + { + "if": { + "properties": { + "status": { + "const": "failed" + } + } + }, + "then": { + "properties": { + "reason": { + "type": "string", + "maxLength": 512 + } + }, + "required": [ + "reason" + ] + } + } + ] +} diff --git a/release-v1.1.0/schemas/v1.1.0/commercial/checkout/checkout.request.schema.json b/release-v1.1.0/schemas/v1.1.0/commercial/checkout/checkout.request.schema.json new file mode 100644 index 0000000..318f16e --- /dev/null +++ b/release-v1.1.0/schemas/v1.1.0/commercial/checkout/checkout.request.schema.json @@ -0,0 +1,427 @@ +{ + "$id": "https://commandlayer.org/schemas/v1.1.0/commercial/checkout/checkout.request.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "checkout.request", + "description": "Finalize an order, bind pricing, and request capture over x402.", + "type": "object", + "additionalProperties": false, + "$defs": { + "money": { + "type": "object", + "additionalProperties": false, + "required": [ + "amount", + "currency" + ], + "properties": { + "amount": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$", + "maxLength": 40 + }, + "currency": { + "type": "string", + "pattern": "^[A-Z0-9]{2,16}$" + }, + "decimals": { + "type": "integer", + "minimum": 0, + "maximum": 18 + }, + "includes": { + "type": "string", + "enum": [ + "subtotal", + "tax", + "shipping", + "fees", + "discount", + "total" + ] + } + } + }, + "line_item": { + "type": "object", + "additionalProperties": false, + "required": [ + "sku", + "description", + "quantity", + "unit_price" + ], + "properties": { + "sku": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "description": { + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "quantity": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + }, + "unit_price": { + "$ref": "#/$defs/money" + } + } + }, + "amount_breakdown": { + "type": "object", + "additionalProperties": false, + "required": [ + "subtotal", + "total" + ], + "properties": { + "subtotal": { + "$ref": "#/$defs/money" + }, + "tax": { + "$ref": "#/$defs/money" + }, + "fees": { + "$ref": "#/$defs/money" + }, + "discount": { + "$ref": "#/$defs/money" + }, + "shipping": { + "$ref": "#/$defs/money" + }, + "total": { + "$ref": "#/$defs/money" + } + } + }, + "fulfillment_intent": { + "type": "object", + "additionalProperties": false, + "required": [ + "mode" + ], + "properties": { + "mode": { + "type": "string", + "enum": [ + "digital", + "shipment", + "service" + ] + }, + "destination_ref": { + "type": "string", + "minLength": 1, + "maxLength": 128 + } + } + }, + "payment_session": { + "type": "object", + "additionalProperties": false, + "required": [ + "scheme", + "session_id", + "resource" + ], + "properties": { + "scheme": { + "type": "string", + "const": "x402" + }, + "session_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "resource": { + "type": "string", + "format": "uri", + "maxLength": 512 + }, + "network": { + "type": "string", + "maxLength": 64 + } + } + }, + "actor_identity": { + "type": "object", + "additionalProperties": false, + "required": [ + "role", + "id" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "payer", + "payee", + "merchant", + "provider", + "carrier", + "verifier" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "kind": { + "type": "string", + "enum": [ + "agent", + "organization", + "wallet", + "account", + "service", + "human" + ] + }, + "display_name": { + "type": "string", + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "payer_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payer" + } + }, + "required": [ + "role" + ] + } + ] + }, + "payee_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payee" + } + }, + "required": [ + "role" + ] + } + ] + }, + "merchant_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "merchant" + } + }, + "required": [ + "role" + ] + } + ] + }, + "provider_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "provider" + } + }, + "required": [ + "role" + ] + } + ] + }, + "carrier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "carrier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "verifier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "verifier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "reference": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "order", + "invoice", + "authorization", + "checkout", + "purchase", + "fulfillment", + "shipment", + "payment", + "settlement", + "receipt", + "payment_requirement", + "payment_session", + "payment_proof", + "agent_card" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + } + }, + "properties": { + "protocol": { + "type": "string", + "const": "commercial" + }, + "version": { + "type": "string", + "const": "1.1.0" + }, + "verb": { + "type": "string", + "const": "checkout" + }, + "request_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "requested_at": { + "type": "string", + "format": "date-time" + }, + "payer": { + "$ref": "#/$defs/payer_actor" + }, + "merchant": { + "$ref": "#/$defs/merchant_actor" + }, + "payee": { + "$ref": "#/$defs/payee_actor" + }, + "provider": { + "$ref": "#/$defs/provider_actor" + }, + "order_ref": { + "$ref": "#/$defs/reference" + }, + "invoice_ref": { + "$ref": "#/$defs/reference" + }, + "items": { + "type": "array", + "minItems": 1, + "maxItems": 64, + "items": { + "$ref": "#/$defs/line_item" + } + }, + "amount_breakdown": { + "$ref": "#/$defs/amount_breakdown" + }, + "capture": { + "type": "string", + "enum": [ + "immediate", + "if_authorized" + ] + }, + "payment_session": { + "$ref": "#/$defs/payment_session" + }, + "fulfillment_intent": { + "$ref": "#/$defs/fulfillment_intent" + } + }, + "required": [ + "protocol", + "version", + "verb", + "request_id", + "requested_at", + "payer", + "merchant", + "order_ref", + "items", + "amount_breakdown", + "capture", + "payment_session", + "fulfillment_intent" + ] +} diff --git a/release-v1.1.0/schemas/v1.1.0/commercial/purchase/purchase.receipt.schema.json b/release-v1.1.0/schemas/v1.1.0/commercial/purchase/purchase.receipt.schema.json new file mode 100644 index 0000000..d7fc616 --- /dev/null +++ b/release-v1.1.0/schemas/v1.1.0/commercial/purchase/purchase.receipt.schema.json @@ -0,0 +1,469 @@ +{ + "$id": "https://commandlayer.org/schemas/v1.1.0/commercial/purchase/purchase.receipt.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "purchase.receipt", + "description": "Canonical purchase outcome artifact for a one-step commercial contract.", + "type": "object", + "additionalProperties": false, + "$defs": { + "money": { + "type": "object", + "additionalProperties": false, + "required": [ + "amount", + "currency" + ], + "properties": { + "amount": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$", + "maxLength": 40 + }, + "currency": { + "type": "string", + "pattern": "^[A-Z0-9]{2,16}$" + }, + "decimals": { + "type": "integer", + "minimum": 0, + "maximum": 18 + }, + "includes": { + "type": "string", + "enum": [ + "subtotal", + "tax", + "shipping", + "fees", + "discount", + "total" + ] + } + } + }, + "amount_breakdown": { + "type": "object", + "additionalProperties": false, + "required": [ + "subtotal", + "total" + ], + "properties": { + "subtotal": { + "$ref": "#/$defs/money" + }, + "tax": { + "$ref": "#/$defs/money" + }, + "fees": { + "$ref": "#/$defs/money" + }, + "discount": { + "$ref": "#/$defs/money" + }, + "shipping": { + "$ref": "#/$defs/money" + }, + "total": { + "$ref": "#/$defs/money" + } + } + }, + "actor_identity": { + "type": "object", + "additionalProperties": false, + "required": [ + "role", + "id" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "payer", + "payee", + "merchant", + "provider", + "carrier", + "verifier" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "kind": { + "type": "string", + "enum": [ + "agent", + "organization", + "wallet", + "account", + "service", + "human" + ] + }, + "display_name": { + "type": "string", + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "payer_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payer" + } + }, + "required": [ + "role" + ] + } + ] + }, + "payee_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payee" + } + }, + "required": [ + "role" + ] + } + ] + }, + "merchant_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "merchant" + } + }, + "required": [ + "role" + ] + } + ] + }, + "provider_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "provider" + } + }, + "required": [ + "role" + ] + } + ] + }, + "carrier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "carrier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "verifier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "verifier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "reference": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "order", + "invoice", + "authorization", + "checkout", + "purchase", + "fulfillment", + "shipment", + "payment", + "settlement", + "receipt", + "payment_requirement", + "payment_session", + "payment_proof", + "agent_card" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "settlement": { + "type": "object", + "additionalProperties": false, + "required": [ + "status", + "method", + "settlement_ref", + "amount" + ], + "properties": { + "status": { + "type": "string", + "enum": [ + "captured", + "failed", + "pending" + ] + }, + "method": { + "type": "string", + "enum": [ + "x402", + "stablecoin", + "card", + "bank_transfer", + "credit" + ] + }, + "settlement_ref": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "network_ref": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "amount": { + "$ref": "#/$defs/money" + } + } + }, + "payment_proof": { + "type": "object", + "additionalProperties": false, + "required": [ + "scheme", + "proof_type", + "proof_ref" + ], + "properties": { + "scheme": { + "type": "string", + "const": "x402" + }, + "proof_type": { + "type": "string", + "enum": [ + "payment-session", + "payment-authorization", + "payment-proof" + ] + }, + "proof_ref": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + } + }, + "properties": { + "protocol": { + "type": "string", + "const": "commercial" + }, + "version": { + "type": "string", + "const": "1.1.0" + }, + "verb": { + "type": "string", + "const": "purchase" + }, + "receipt_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "issued_at": { + "type": "string", + "format": "date-time" + }, + "request_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "status": { + "type": "string", + "enum": [ + "captured", + "failed", + "pending" + ] + }, + "purchase_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "payer": { + "$ref": "#/$defs/payer_actor" + }, + "merchant": { + "$ref": "#/$defs/merchant_actor" + }, + "payee": { + "$ref": "#/$defs/payee_actor" + }, + "provider": { + "$ref": "#/$defs/provider_actor" + }, + "amount_breakdown": { + "$ref": "#/$defs/amount_breakdown" + }, + "order_ref": { + "$ref": "#/$defs/reference" + }, + "invoice_ref": { + "$ref": "#/$defs/reference" + }, + "settlement": { + "$ref": "#/$defs/settlement" + }, + "payment_proof": { + "$ref": "#/$defs/payment_proof" + }, + "reason": { + "type": "string", + "maxLength": 512 + } + }, + "required": [ + "protocol", + "version", + "verb", + "receipt_id", + "issued_at", + "request_id", + "status", + "purchase_id", + "payer", + "merchant", + "amount_breakdown", + "settlement" + ], + "allOf": [ + { + "if": { + "properties": { + "status": { + "const": "captured" + } + } + }, + "then": { + "properties": { + "payment_proof": { + "$ref": "#/$defs/payment_proof" + } + }, + "required": [ + "payment_proof" + ] + } + }, + { + "if": { + "properties": { + "status": { + "const": "failed" + } + } + }, + "then": { + "properties": { + "reason": { + "type": "string", + "maxLength": 512 + } + }, + "required": [ + "reason" + ] + } + } + ] +} diff --git a/release-v1.1.0/schemas/v1.1.0/commercial/purchase/purchase.request.schema.json b/release-v1.1.0/schemas/v1.1.0/commercial/purchase/purchase.request.schema.json new file mode 100644 index 0000000..4ea69b2 --- /dev/null +++ b/release-v1.1.0/schemas/v1.1.0/commercial/purchase/purchase.request.schema.json @@ -0,0 +1,448 @@ +{ + "$id": "https://commandlayer.org/schemas/v1.1.0/commercial/purchase/purchase.request.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "purchase.request", + "description": "Complete a one-step commercial purchase using pre-agreed x402 payment inputs rather than a negotiated checkout session.", + "type": "object", + "additionalProperties": false, + "$defs": { + "money": { + "type": "object", + "additionalProperties": false, + "required": [ + "amount", + "currency" + ], + "properties": { + "amount": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,6})?$", + "maxLength": 40 + }, + "currency": { + "type": "string", + "pattern": "^[A-Z0-9]{2,16}$" + }, + "decimals": { + "type": "integer", + "minimum": 0, + "maximum": 18 + }, + "includes": { + "type": "string", + "enum": [ + "subtotal", + "tax", + "shipping", + "fees", + "discount", + "total" + ] + } + } + }, + "purchase_item": { + "type": "object", + "additionalProperties": false, + "required": [ + "sku", + "description", + "quantity", + "unit_price" + ], + "properties": { + "sku": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "description": { + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "quantity": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + }, + "unit_price": { + "$ref": "#/$defs/money" + } + } + }, + "amount_breakdown": { + "type": "object", + "additionalProperties": false, + "required": [ + "subtotal", + "total" + ], + "properties": { + "subtotal": { + "$ref": "#/$defs/money" + }, + "tax": { + "$ref": "#/$defs/money" + }, + "fees": { + "$ref": "#/$defs/money" + }, + "discount": { + "$ref": "#/$defs/money" + }, + "shipping": { + "$ref": "#/$defs/money" + }, + "total": { + "$ref": "#/$defs/money" + } + } + }, + "payment_proof": { + "type": "object", + "additionalProperties": false, + "required": [ + "scheme", + "proof_type", + "proof_ref" + ], + "properties": { + "scheme": { + "type": "string", + "const": "x402" + }, + "proof_type": { + "type": "string", + "enum": [ + "payment-session", + "payment-authorization", + "payment-proof" + ] + }, + "proof_ref": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "payment_input": { + "type": "object", + "additionalProperties": false, + "properties": { + "payment_requirement_ref": { + "$ref": "#/$defs/reference" + }, + "payment_session_ref": { + "$ref": "#/$defs/reference" + }, + "payment_proof": { + "$ref": "#/$defs/payment_proof" + } + }, + "oneOf": [ + { + "properties": { + "payment_requirement_ref": { + "$ref": "#/$defs/reference" + } + }, + "required": [ + "payment_requirement_ref" + ] + }, + { + "properties": { + "payment_session_ref": { + "$ref": "#/$defs/reference" + } + }, + "required": [ + "payment_session_ref" + ] + }, + { + "properties": { + "payment_proof": { + "$ref": "#/$defs/payment_proof" + } + }, + "required": [ + "payment_proof" + ] + } + ] + }, + "actor_identity": { + "type": "object", + "additionalProperties": false, + "required": [ + "role", + "id" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "payer", + "payee", + "merchant", + "provider", + "carrier", + "verifier" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "kind": { + "type": "string", + "enum": [ + "agent", + "organization", + "wallet", + "account", + "service", + "human" + ] + }, + "display_name": { + "type": "string", + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "payer_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payer" + } + }, + "required": [ + "role" + ] + } + ] + }, + "payee_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payee" + } + }, + "required": [ + "role" + ] + } + ] + }, + "merchant_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "merchant" + } + }, + "required": [ + "role" + ] + } + ] + }, + "provider_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "provider" + } + }, + "required": [ + "role" + ] + } + ] + }, + "carrier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "carrier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "verifier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "verifier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "reference": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "order", + "invoice", + "authorization", + "checkout", + "purchase", + "fulfillment", + "shipment", + "payment", + "settlement", + "receipt", + "payment_requirement", + "payment_session", + "payment_proof", + "agent_card" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + } + }, + "properties": { + "protocol": { + "type": "string", + "const": "commercial" + }, + "version": { + "type": "string", + "const": "1.1.0" + }, + "verb": { + "type": "string", + "const": "purchase" + }, + "request_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "requested_at": { + "type": "string", + "format": "date-time" + }, + "payer": { + "$ref": "#/$defs/payer_actor" + }, + "merchant": { + "$ref": "#/$defs/merchant_actor" + }, + "payee": { + "$ref": "#/$defs/payee_actor" + }, + "provider": { + "$ref": "#/$defs/provider_actor" + }, + "items": { + "type": "array", + "minItems": 1, + "maxItems": 32, + "items": { + "$ref": "#/$defs/purchase_item" + } + }, + "amount_breakdown": { + "$ref": "#/$defs/amount_breakdown" + }, + "order_ref": { + "$ref": "#/$defs/reference" + }, + "invoice_ref": { + "$ref": "#/$defs/reference" + }, + "merchant_reference": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "payment_input": { + "$ref": "#/$defs/payment_input" + } + }, + "required": [ + "protocol", + "version", + "verb", + "request_id", + "requested_at", + "payer", + "merchant", + "items", + "amount_breakdown", + "payment_input" + ] +} diff --git a/release-v1.1.0/schemas/v1.1.0/commercial/ship/ship.receipt.schema.json b/release-v1.1.0/schemas/v1.1.0/commercial/ship/ship.receipt.schema.json new file mode 100644 index 0000000..e3487ff --- /dev/null +++ b/release-v1.1.0/schemas/v1.1.0/commercial/ship/ship.receipt.schema.json @@ -0,0 +1,480 @@ +{ + "$id": "https://commandlayer.org/schemas/v1.1.0/commercial/ship/ship.receipt.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "ship.receipt", + "description": "Canonical commercial fulfillment state transition receipt.", + "type": "object", + "additionalProperties": false, + "$defs": { + "payment_proof": { + "type": "object", + "additionalProperties": false, + "required": [ + "scheme", + "proof_type", + "proof_ref" + ], + "properties": { + "scheme": { + "type": "string", + "const": "x402" + }, + "proof_type": { + "type": "string", + "enum": [ + "payment-session", + "payment-authorization", + "payment-proof" + ] + }, + "proof_ref": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "actor_identity": { + "type": "object", + "additionalProperties": false, + "required": [ + "role", + "id" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "payer", + "payee", + "merchant", + "provider", + "carrier", + "verifier" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "kind": { + "type": "string", + "enum": [ + "agent", + "organization", + "wallet", + "account", + "service", + "human" + ] + }, + "display_name": { + "type": "string", + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "payer_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payer" + } + }, + "required": [ + "role" + ] + } + ] + }, + "payee_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payee" + } + }, + "required": [ + "role" + ] + } + ] + }, + "merchant_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "merchant" + } + }, + "required": [ + "role" + ] + } + ] + }, + "provider_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "provider" + } + }, + "required": [ + "role" + ] + } + ] + }, + "carrier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "carrier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "verifier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "verifier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "reference": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "order", + "invoice", + "authorization", + "checkout", + "purchase", + "fulfillment", + "shipment", + "payment", + "settlement", + "receipt", + "payment_requirement", + "payment_session", + "payment_proof", + "agent_card" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + } + }, + "properties": { + "protocol": { + "type": "string", + "const": "commercial" + }, + "version": { + "type": "string", + "const": "1.1.0" + }, + "verb": { + "type": "string", + "const": "ship" + }, + "receipt_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "issued_at": { + "type": "string", + "format": "date-time" + }, + "request_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "status": { + "type": "string", + "enum": [ + "label_created", + "in_transit", + "delivered", + "failed", + "returned" + ] + }, + "shipment_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "merchant": { + "$ref": "#/$defs/merchant_actor" + }, + "payer": { + "$ref": "#/$defs/payer_actor" + }, + "carrier": { + "$ref": "#/$defs/carrier_actor" + }, + "order_ref": { + "$ref": "#/$defs/reference" + }, + "commercial_ref": { + "$ref": "#/$defs/reference" + }, + "fulfillment_ref": { + "$ref": "#/$defs/reference" + }, + "tracking_number": { + "type": "string", + "minLength": 6, + "maxLength": 128 + }, + "tracking_url": { + "type": "string", + "format": "uri", + "maxLength": 512 + }, + "event_at": { + "type": "string", + "format": "date-time" + }, + "delivered_at": { + "type": "string", + "format": "date-time" + }, + "delivery_proof_ref": { + "$ref": "#/$defs/reference" + }, + "payment_ref": { + "$ref": "#/$defs/reference" + }, + "reason": { + "type": "string", + "maxLength": 512 + } + }, + "required": [ + "protocol", + "version", + "verb", + "receipt_id", + "issued_at", + "request_id", + "status", + "shipment_id", + "merchant", + "payer", + "order_ref", + "commercial_ref", + "fulfillment_ref", + "event_at" + ], + "allOf": [ + { + "properties": { + "commercial_ref": { + "type": "object", + "properties": { + "type": { + "enum": [ + "checkout", + "purchase" + ] + } + }, + "required": [ + "type" + ] + }, + "fulfillment_ref": { + "type": "object", + "properties": { + "type": { + "const": "fulfillment" + } + }, + "required": [ + "type" + ] + } + } + }, + { + "if": { + "properties": { + "tracking_number": { + "type": "string", + "minLength": 6, + "maxLength": 128 + } + }, + "required": [ + "tracking_number" + ] + }, + "then": { + "properties": { + "tracking_url": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + }, + "required": [ + "tracking_url" + ] + } + }, + { + "if": { + "properties": { + "status": { + "enum": [ + "label_created", + "in_transit", + "delivered" + ] + } + } + }, + "then": { + "properties": { + "carrier": { + "$ref": "#/$defs/carrier_actor" + }, + "tracking_number": { + "type": "string", + "minLength": 6, + "maxLength": 128 + }, + "tracking_url": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + }, + "required": [ + "carrier", + "tracking_number", + "tracking_url" + ] + } + }, + { + "if": { + "properties": { + "status": { + "const": "delivered" + } + } + }, + "then": { + "properties": { + "delivered_at": { + "type": "string", + "format": "date-time" + }, + "delivery_proof_ref": { + "$ref": "#/$defs/reference" + } + }, + "required": [ + "delivered_at", + "delivery_proof_ref" + ] + } + }, + { + "if": { + "properties": { + "status": { + "enum": [ + "failed", + "returned" + ] + } + } + }, + "then": { + "properties": { + "reason": { + "type": "string", + "maxLength": 512 + } + }, + "required": [ + "reason" + ] + } + } + ] +} diff --git a/release-v1.1.0/schemas/v1.1.0/commercial/ship/ship.request.schema.json b/release-v1.1.0/schemas/v1.1.0/commercial/ship/ship.request.schema.json new file mode 100644 index 0000000..b5e50c5 --- /dev/null +++ b/release-v1.1.0/schemas/v1.1.0/commercial/ship/ship.request.schema.json @@ -0,0 +1,353 @@ +{ + "$id": "https://commandlayer.org/schemas/v1.1.0/commercial/ship/ship.request.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "ship.request", + "description": "Create or continue a commercial fulfillment order that is justified by a settled checkout or purchase.", + "type": "object", + "additionalProperties": false, + "$defs": { + "item": { + "type": "object", + "additionalProperties": false, + "required": [ + "sku", + "quantity" + ], + "properties": { + "sku": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "quantity": { + "type": "integer", + "minimum": 1, + "maximum": 1000000 + } + } + }, + "destination": { + "type": "object", + "additionalProperties": false, + "required": [ + "country_code" + ], + "properties": { + "country_code": { + "type": "string", + "pattern": "^[A-Z]{2}$" + }, + "postal_code": { + "type": "string", + "minLength": 1, + "maxLength": 32 + }, + "locality": { + "type": "string", + "maxLength": 128 + } + } + }, + "actor_identity": { + "type": "object", + "additionalProperties": false, + "required": [ + "role", + "id" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "payer", + "payee", + "merchant", + "provider", + "carrier", + "verifier" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "kind": { + "type": "string", + "enum": [ + "agent", + "organization", + "wallet", + "account", + "service", + "human" + ] + }, + "display_name": { + "type": "string", + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "payer_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payer" + } + }, + "required": [ + "role" + ] + } + ] + }, + "payee_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payee" + } + }, + "required": [ + "role" + ] + } + ] + }, + "merchant_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "merchant" + } + }, + "required": [ + "role" + ] + } + ] + }, + "provider_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "provider" + } + }, + "required": [ + "role" + ] + } + ] + }, + "carrier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "carrier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "verifier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "verifier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "reference": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "order", + "invoice", + "authorization", + "checkout", + "purchase", + "fulfillment", + "shipment", + "payment", + "settlement", + "receipt", + "payment_requirement", + "payment_session", + "payment_proof", + "agent_card" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + } + }, + "properties": { + "protocol": { + "type": "string", + "const": "commercial" + }, + "version": { + "type": "string", + "const": "1.1.0" + }, + "verb": { + "type": "string", + "const": "ship" + }, + "request_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "requested_at": { + "type": "string", + "format": "date-time" + }, + "merchant": { + "$ref": "#/$defs/merchant_actor" + }, + "payer": { + "$ref": "#/$defs/payer_actor" + }, + "provider": { + "$ref": "#/$defs/provider_actor" + }, + "order_ref": { + "$ref": "#/$defs/reference" + }, + "commercial_ref": { + "$ref": "#/$defs/reference" + }, + "fulfillment_ref": { + "$ref": "#/$defs/reference" + }, + "items": { + "type": "array", + "minItems": 1, + "maxItems": 64, + "items": { + "$ref": "#/$defs/item" + } + }, + "destination": { + "$ref": "#/$defs/destination" + }, + "service_level": { + "type": "string", + "enum": [ + "standard", + "expedited", + "express", + "overnight" + ] + } + }, + "required": [ + "protocol", + "version", + "verb", + "request_id", + "requested_at", + "merchant", + "payer", + "provider", + "order_ref", + "commercial_ref", + "fulfillment_ref", + "items", + "destination", + "service_level" + ], + "allOf": [ + { + "properties": { + "commercial_ref": { + "type": "object", + "properties": { + "type": { + "enum": [ + "checkout", + "purchase" + ] + } + }, + "required": [ + "type" + ] + }, + "fulfillment_ref": { + "type": "object", + "properties": { + "type": { + "const": "fulfillment" + } + }, + "required": [ + "type" + ] + } + } + } + ] +} diff --git a/release-v1.1.0/schemas/v1.1.0/commercial/verify/verify.receipt.schema.json b/release-v1.1.0/schemas/v1.1.0/commercial/verify/verify.receipt.schema.json new file mode 100644 index 0000000..ec00efd --- /dev/null +++ b/release-v1.1.0/schemas/v1.1.0/commercial/verify/verify.receipt.schema.json @@ -0,0 +1,312 @@ +{ + "$id": "https://commandlayer.org/schemas/v1.1.0/commercial/verify/verify.receipt.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "verify.receipt", + "description": "Canonical verification outcome artifact.", + "type": "object", + "additionalProperties": false, + "$defs": { + "actor_identity": { + "type": "object", + "additionalProperties": false, + "required": [ + "role", + "id" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "payer", + "payee", + "merchant", + "provider", + "carrier", + "verifier" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "kind": { + "type": "string", + "enum": [ + "agent", + "organization", + "wallet", + "account", + "service", + "human" + ] + }, + "display_name": { + "type": "string", + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "payer_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payer" + } + }, + "required": [ + "role" + ] + } + ] + }, + "payee_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payee" + } + }, + "required": [ + "role" + ] + } + ] + }, + "merchant_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "merchant" + } + }, + "required": [ + "role" + ] + } + ] + }, + "provider_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "provider" + } + }, + "required": [ + "role" + ] + } + ] + }, + "carrier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "carrier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "verifier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "verifier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "reference": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "order", + "invoice", + "authorization", + "checkout", + "purchase", + "fulfillment", + "shipment", + "payment", + "settlement", + "receipt", + "payment_requirement", + "payment_session", + "payment_proof", + "agent_card" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + } + }, + "properties": { + "protocol": { + "type": "string", + "const": "commercial" + }, + "version": { + "type": "string", + "const": "1.1.0" + }, + "verb": { + "type": "string", + "const": "verify" + }, + "receipt_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "issued_at": { + "type": "string", + "format": "date-time" + }, + "request_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "status": { + "type": "string", + "enum": [ + "verified", + "not_verified", + "inconclusive" + ] + }, + "verifier": { + "$ref": "#/$defs/verifier_actor" + }, + "target_type": { + "type": "string", + "enum": [ + "receipt", + "payment_proof", + "settlement", + "shipment", + "authorization", + "fulfillment" + ] + }, + "target_ref": { + "$ref": "#/$defs/reference" + }, + "evidence_refs": { + "type": "array", + "minItems": 1, + "maxItems": 8, + "items": { + "$ref": "#/$defs/reference" + } + }, + "basis": { + "type": "string", + "minLength": 1, + "maxLength": 512 + }, + "reason": { + "type": "string", + "maxLength": 512 + } + }, + "required": [ + "protocol", + "version", + "verb", + "receipt_id", + "issued_at", + "request_id", + "status", + "verifier", + "target_type", + "target_ref", + "evidence_refs", + "basis" + ], + "allOf": [ + { + "if": { + "properties": { + "status": { + "enum": [ + "not_verified", + "inconclusive" + ] + } + } + }, + "then": { + "properties": { + "reason": { + "type": "string", + "maxLength": 512 + } + }, + "required": [ + "reason" + ] + } + } + ] +} diff --git a/release-v1.1.0/schemas/v1.1.0/commercial/verify/verify.request.schema.json b/release-v1.1.0/schemas/v1.1.0/commercial/verify/verify.request.schema.json new file mode 100644 index 0000000..90d3b51 --- /dev/null +++ b/release-v1.1.0/schemas/v1.1.0/commercial/verify/verify.request.schema.json @@ -0,0 +1,295 @@ +{ + "$id": "https://commandlayer.org/schemas/v1.1.0/commercial/verify/verify.request.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "verify.request", + "description": "Verify a commercial receipt, settlement artifact, payment proof, or shipment target.", + "type": "object", + "additionalProperties": false, + "$defs": { + "actor_identity": { + "type": "object", + "additionalProperties": false, + "required": [ + "role", + "id" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "payer", + "payee", + "merchant", + "provider", + "carrier", + "verifier" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "kind": { + "type": "string", + "enum": [ + "agent", + "organization", + "wallet", + "account", + "service", + "human" + ] + }, + "display_name": { + "type": "string", + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "payer_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payer" + } + }, + "required": [ + "role" + ] + } + ] + }, + "payee_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "payee" + } + }, + "required": [ + "role" + ] + } + ] + }, + "merchant_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "merchant" + } + }, + "required": [ + "role" + ] + } + ] + }, + "provider_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "provider" + } + }, + "required": [ + "role" + ] + } + ] + }, + "carrier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "carrier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "verifier_actor": { + "allOf": [ + { + "$ref": "#/$defs/actor_identity" + }, + { + "type": "object", + "properties": { + "role": { + "const": "verifier" + } + }, + "required": [ + "role" + ] + } + ] + }, + "reference": { + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "order", + "invoice", + "authorization", + "checkout", + "purchase", + "fulfillment", + "shipment", + "payment", + "settlement", + "receipt", + "payment_requirement", + "payment_session", + "payment_proof", + "agent_card" + ] + }, + "id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "uri": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + }, + "target": { + "type": "object", + "additionalProperties": false, + "required": [ + "target_type", + "target_ref" + ], + "properties": { + "target_type": { + "type": "string", + "enum": [ + "receipt", + "payment_proof", + "settlement", + "shipment", + "authorization", + "fulfillment" + ] + }, + "target_ref": { + "$ref": "#/$defs/reference" + }, + "authority": { + "type": "string", + "format": "uri", + "maxLength": 512 + } + } + } + }, + "properties": { + "protocol": { + "type": "string", + "const": "commercial" + }, + "version": { + "type": "string", + "const": "1.1.0" + }, + "verb": { + "type": "string", + "const": "verify" + }, + "request_id": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "requested_at": { + "type": "string", + "format": "date-time" + }, + "requester": { + "$ref": "#/$defs/actor_identity", + "description": "The party initiating the verification request; this is a verify-specific initiator field, not a distinct governed actor role." + }, + "verifier": { + "$ref": "#/$defs/verifier_actor", + "description": "The authority expected to perform or attest the verification result, when designated in advance." + }, + "target": { + "$ref": "#/$defs/target" + }, + "checks": { + "type": "array", + "minItems": 1, + "maxItems": 8, + "items": { + "type": "string", + "enum": [ + "existence", + "amount", + "counterparty", + "settlement", + "fulfillment" + ] + } + }, + "strict": { + "type": "boolean" + } + }, + "required": [ + "protocol", + "version", + "verb", + "request_id", + "requested_at", + "requester", + "target", + "checks", + "strict" + ] +} diff --git a/release-v1.1.0/schemas/v1.1.0/index.json b/release-v1.1.0/schemas/v1.1.0/index.json new file mode 100644 index 0000000..7782b88 --- /dev/null +++ b/release-v1.1.0/schemas/v1.1.0/index.json @@ -0,0 +1,42 @@ +{ + "name": "@commandlayer/commercial", + "version": "1.1.0", + "class": "commercial", + "path_base": ".", + "paths_are_repo_relative": true, + "schemas_root": "schemas/v1.1.0", + "verbs": [ + { + "verb": "authorize", + "request_schema": "schemas/v1.1.0/commercial/authorize/authorize.request.schema.json", + "receipt_schema": "schemas/v1.1.0/commercial/authorize/authorize.receipt.schema.json", + "examples": "examples/v1.1.0/commercial/authorize" + }, + { + "verb": "checkout", + "request_schema": "schemas/v1.1.0/commercial/checkout/checkout.request.schema.json", + "receipt_schema": "schemas/v1.1.0/commercial/checkout/checkout.receipt.schema.json", + "examples": "examples/v1.1.0/commercial/checkout" + }, + { + "verb": "purchase", + "request_schema": "schemas/v1.1.0/commercial/purchase/purchase.request.schema.json", + "receipt_schema": "schemas/v1.1.0/commercial/purchase/purchase.receipt.schema.json", + "examples": "examples/v1.1.0/commercial/purchase" + }, + { + "verb": "ship", + "request_schema": "schemas/v1.1.0/commercial/ship/ship.request.schema.json", + "receipt_schema": "schemas/v1.1.0/commercial/ship/ship.receipt.schema.json", + "examples": "examples/v1.1.0/commercial/ship" + }, + { + "verb": "verify", + "request_schema": "schemas/v1.1.0/commercial/verify/verify.request.schema.json", + "receipt_schema": "schemas/v1.1.0/commercial/verify/verify.receipt.schema.json", + "examples": "examples/v1.1.0/commercial/verify" + } + ], + "document_type": "inventory", + "description": "Machine-readable inventory of the current Protocol-Commercial release line. This file is an index, not a validation schema." +}