├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── WD ├── 2016-07-12 │ ├── flow-purchase.svg │ ├── index.html │ └── spec.css └── 2016-09-15 │ ├── flow-purchase.svg │ ├── index.html │ └── spec.css ├── flow-purchase.svg ├── index.html ├── spec.css ├── utils.js └── w3c.json /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | All documentation, code and communication under this repository are covered by the [W3C Code of Ethics and Professional Conduct](https://www.w3.org/Consortium/cepc/). 4 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Web Payments Working Group 2 | 3 | Contributions to this repository are intended to become part of Recommendation-track documents governed by the 4 | [W3C Patent Policy](http://www.w3.org/Consortium/Patent-Policy-20040205/) and 5 | [Software and Document License](http://www.w3.org/Consortium/Legal/copyright-software). To make substantive contributions to specifications, you must either participate 6 | in the relevant W3C Working Group or make a non-member patent licensing commitment. 7 | 8 | If you are not the sole contributor to a contribution (pull request), please identify all 9 | contributors in the pull request comment. 10 | 11 | To add a contributor (other than yourself, that's automatic), mark them one per line as follows: 12 | 13 | ``` 14 | +@github_username 15 | ``` 16 | 17 | If you added a contributor by mistake, you can remove them in a comment with: 18 | 19 | ``` 20 | -@github_username 21 | ``` 22 | 23 | If you are making a pull request on behalf of someone else but you had no part in designing the 24 | feature, you can remove yourself with the above syntax. 25 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | All documents in this Repository are licensed by contributors under the [W3C Software and Document License](http://www.w3.org/Consortium/Legal/copyright-software). 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Web Payments HTTP API 1.0 2 | 3 | This document outlines how to register payment apps, request payments, 4 | and acknowledge payment requests using a standard HTTP API. 5 | 6 | The live version of this specification can be found here: 7 | 8 | http://w3c.github.io/webpayments-http-api/ 9 | -------------------------------------------------------------------------------- /WD/2016-07-12/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 108 | 156 | 267 | 409 |527 | Copyright © 2016 528 | 529 | W3C® (MIT, 530 | ERCIM, 531 | Keio, Beihang). 532 | W3C liability, 533 | trademark and 534 | document use rules apply. 535 |
536 |542 | This document outlines how to register payment applications, create payment requests, and reply with payment responses using a standard HTTP API. 543 |
544 |549 | This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/. 550 |
551 | 552 | 553 |554 | The most effective way to report issues and request features is to engage the working group via the Github 555 | issue tracker for the Working Group. Submitting issues as well as pull requests for changes to the specification are encouraged. 556 |
557 | 558 | 559 |560 | This document was published by the Web Payments Working Group as a First Public Working Draft. This document is intended to become a W3C Recommendation. If you wish to make comments regarding this document, please send them to 561 | public-webpayments-comments@w3.org (subscribe, 562 | archives). All comments are welcome. 563 |
564 |565 | Publication as a First Public Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress. 566 |
567 |568 | This document was produced by a group operating under the 569 | 5 February 2004 W3C Patent 570 | Policy. 571 | W3C maintains a public list of any patent 572 | disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains 573 | Essential 574 | Claim(s) must disclose the information in accordance with 575 | section 576 | 6 of the W3C Patent Policy. 577 |
578 |This document is governed by the 1 September 2015 W3C Process Document. 579 |
580 | 581 |This section is non-normative.
612 | 613 |614 | This HTTP API enables a web application to initiate payment for a product or service by responding with an HTTP 402 Payment Required response and enough data to initiate and complete a payment flow. The implementation of this feature is expected to be implemented by any HTTP server and client that is interested in executing payments. 615 |
616 | 617 |This section is non-normative.
620 | 621 |This document is a detailed specification for a HyperText Transfer Protocol application programming interface (HTTP API) for executing payments via an HTTP client and server. The document is primarily intended for the following audiences: 622 |
623 | 624 |635 | This document attempts to communicate the concepts outlined in the Web Payments space by using specific terms to discuss particular concepts. This terminology is included below and linked to throughout the document to aid the reader: 636 |
637 | 638 |859 | The diagram below outlines a basic HTTP client payment flow with no errors. The basic flow starts out with the payer optionally accessing a protected resource and being notified that payment is required. The payee provides a URL where a payment request for the resource can be fetched. The payer fetches the payment request, selects a payment app, and sends the request on to the appropriate 860 | payment app for processing. The payment app initiates the payment and sends a payment response back to the payer. The payer then forwards the payment response back to the payee. If there are no errors, the payee then grants access to the resource that was purchased. 861 |
862 | 863 |873 | The flow above reflects a pull-based tokenized card payment scenario. There are other flows, like push-based flows, that we may want to demonstrate in this specification as well. Is a tokenized pull-based flow the best exemplary flow to use when introducing the reader to the HTTP API? 874 |
875 |886 | It may be a good idea to return the payment request with the 402 response. The concern is that this would be a misrepresentation of the resource. The counter-argument is that a client shouldn't interpret a 402 response as the resource, and since 402 has not been formally defined yet, we could define it to always come with a payment request response. 887 |
888 |Location
header to fetch the request
from.
893 | request
from the URL specified in the Location
header in the previous step.
896 | paymentTerms
in the payment request.
899 | request
, via an HTTP POST to the
962 | paymentRequestService
in the payment app for approval.
963 | paymentRequestService
in the
971 | paymentTerms
(note that the payee sets this, not the payment app).
972 |
1014 | Melvin Carvalho has also raised an issue noting that we may not want to use 402 and the Location header, but rather an additional HTTP header called
1015 | Payment
that is compatible with multiple 4xx error conditions.
1016 |
GET /apps/visa HTTP/1.1
1031 | Host: mybank.example.org
1032 | Date: Tue, 07 Jun 2017 20:51:35 GMT
1033 | Accept: application/json
1034 | Authorization: Digest username="jdoe", realm="jane@mybank.example.org", ...
GET /apps/visa HTTP/1.1
1041 | Host: mybank.example.org
1042 | Date: Tue, 07 Jun 2017 20:51:35 GMT
1043 | Accept: application/json
1044 | Authorization: Signature keyId="https://mybank.example.org/people/jane/keys/42",
1045 | algorithm="rsa-sha256",headers="(request-target) host date",
1046 | signature="jgSqYK0yKclIHfF9zdApVEbDp5eqj8C4i4X76pE+XHoxugXv7qnVrGR+30bmB
1047 | gtpR39I4utq17s9ghz/2QFVxlnToYAvbSVZJ9ulLd1HQBugO0jOyn9sXOtcN7
1048 | uNHBjqNCqUsnt0sw/cJA6B6nJZpyNqNyAXKdxZZItOuhIs78w="
HTTP/1.1 200 OK
1056 | Date: Tue, 07 Jun 2017 20:51:36 GMT
1057 | Content-Type: application/json
1058 | Content-Length: 412
1059 |
1060 | {
1061 | "type": "PaymentApp",
1062 | "paymentMethod": "https://payments.example.org/payment-schemes#Visa",
1063 | "label": "ExampleBank Visa Card",
1064 | "paymentRequestService": "https://mybank.example.org/services/cards/2745023475"
1065 | }
GET /movies/dr-strangelove HTTP/1.1
1077 | Host: videos.example.com
1078 | Date: Tue, 07 Jun 2017 21:31:35 GMT
Location
header:
1083 | HTTP/1.1 402 Payment Required
1085 | Date: Tue, 07 Jun 2017 21:31:36 GMT
1086 | Location: https://videos.example.com/payment-requests/dr-strangelove
GET /payment-requests/dr-strangelove HTTP/1.1
1105 | Host: videos.example.com
1106 | Date: Tue, 07 Jun 2017 21:31:37 GMT
HTTP/1.1 200 OK
1112 | Date: Tue, 07 Jun 2017 21:31:38 GMT
1113 | Content-Type: application/json
1114 | Content-Length: 873
1115 |
1116 | {
1117 | "type": "PaymentRequest",
1118 | "description": "Payment for Dr. Strangelove",
1119 | "paymentTerms": {
1120 | "paymentMethod": "https://payments.example.org/payment-schemes#Visa",
1121 | "paymentAmount": {
1122 | "amount": "2.99",
1123 | "currency": "USD"
1124 | }
1125 | },
1126 | "paymentCompleteService": "https://videos.example.com/services/paymentComplete?transaction=923847298"
1127 | }
paymentRequestService
URL, provided in the payment app or the payment request, is used as the HTTP POST endpoint. The payment service provider that is providing the payment app interface receives the payment request, authenticates the payer, and proceeds with the payment:
1140 | POST /services/cards/2745023475 HTTP/1.1
1142 | Host: mybank.example.org
1143 | Date: Tue, 07 Jun 2017 20:51:35 GMT
1144 | Accept: application/json
1145 |
1146 | {
1147 | "type": "PaymentRequest",
1148 | "description": "Payment for Dr. Strangelove",
1149 | "paymentTerms": {
1150 | "paymentMethod": "https://payments.example.org/payment-schemes#Visa",
1151 | "paymentAmount": {
1152 | "amount": "2.99",
1153 | "currency": "USD"
1154 | }
1155 | },
1156 | "paymentCompleteService": "https://videos.example.com/services/paymentComplete?transaction=923847298"
1157 | }
HTTP/1.1 200 OK
1163 | Date: Tue, 07 Jun 2017 20:51:36 GMT
1164 | Content-Type: application/json
1165 | Content-Length: 623
1166 |
1167 | {
1168 | "type": "PaymentResponse",
1169 | "description": "Payment to ExampleMerch for widgets",
1170 | "paymentTerms": {
1171 | "paymentMethod": "https://payments.example.org/payment-schemes#Visa",
1172 | "status": "authorized",
1173 | "token": "10025AB",
1174 | "paymentAmount": {
1175 | "amount": "2.99",
1176 | "currency": "USD"
1177 | }
1178 | }
1179 | }
paymentCompleteService
URL provided in the initial payment request:
1184 | POST /services/paymentComplete?transaction=923847298 HTTP/1.1
1186 | Host: videos.example.com
1187 | Date: Tue, 07 Jun 2017 20:51:35 GMT
1188 | Content-Type: application/json
1189 |
1190 | {
1191 | "type": "PaymentResponse",
1192 | "description": "Payment to ExampleMerch for widgets",
1193 | "paymentTerms": {
1194 | "paymentMethod": "https://payments.example.org/payment-schemes#Visa",
1195 | "status": "authorized",
1196 | "token": "10025AB",
1197 | "paymentAmount": {
1198 | "amount": "2.99",
1199 | "currency": "USD"
1200 | }
1201 | }
1202 | }
HTTP/1.1 302 Found
1208 | Date: Tue, 07 Jun 2017 20:51:36 GMT
1209 | Cookie: movieToken=2983fhfa92h3iuhf908723nkjcsdh923; Expires=Tue, 08 Jun 2017 20:51:40 GMT
1210 | Location: /movies/dr-strangelove
1221 | The Working Group is currently in the early stages of the analysis of the security and privacy implications of this specification. The ongoing analysis can be accessed via the 1222 | 1223 | Web Payments Working Group Security and Privacy Considerations wiki 1224 | . 1225 |
1226 |This section is non-normative.
1235 | 1236 |1237 | The editor would like to thank members of the Web Payments Community Group, Web Payments Interest Group, and Web Payments Working Group for the ideas and discussion that culminated in this specification. In addition, thank you to the to the following individuals, in order of their first name, for their input on this specification: LIST_TBD 1238 |
1239 | 1240 |549 | Copyright © 2016 550 | 551 | W3C® (MIT, 552 | ERCIM, 553 | Keio, Beihang). 554 | W3C liability, 555 | trademark and 556 | document use rules apply. 557 |
558 |564 | This document outlines how to register payment applications, create payment requests, and reply with payment responses using a standard HTTP API. 565 |
566 |571 | This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/. 572 |
573 | 574 | 575 |576 | The most effective way to report issues and request features is to engage the working group via the Github 577 | issue tracker for the Working Group. Submitting issues as well as pull requests for changes to the specification are encouraged. 578 |
579 | 580 | 581 |582 | This document was published by the Web Payments Working Group as a First Public Working Draft. This document is intended to become a W3C Recommendation. If you wish to make comments regarding this document, please send them to 583 | public-webpayments-comments@w3.org (subscribe, 584 | archives). All comments are welcome. 585 |
586 |587 | Publication as a First Public Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress. 588 |
589 |590 | This document was produced by a group operating under the 591 | 5 February 2004 W3C Patent 592 | Policy. 593 | W3C maintains a public list of any patent 594 | disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains 595 | Essential 596 | Claim(s) must disclose the information in accordance with 597 | section 598 | 6 of the W3C Patent Policy. 599 |
600 |This document is governed by the 1 September 2015 W3C Process Document. 601 |
602 | 603 |This section is non-normative.
639 | 640 |641 | This HTTP API enables a web application to initiate payment for a product or service by responding with an HTTP 402 Payment Required response and enough data to initiate and complete a payment flow. The implementation of this feature is expected to be implemented by any HTTP server and client that is interested in executing payments. 642 |
643 | 644 |This section is non-normative.
647 | 648 |This document is a detailed specification for a HyperText Transfer Protocol application programming interface (HTTP API) for executing payments via an HTTP client and server. The document is primarily intended for the following audiences: 649 |
650 | 651 |659 | There are a number of Web Payments messages that are referenced and used in examples in this specification. The normative definition of these messages, as well as how to express them in a variety of syntaxes, is specified in [ 660 | WEBPAYMENTS-HTTP-MESSAGES]. 661 |
662 |671 | The current terminology that is pulled into the HTTP API specification needs some simplification and alignment. 672 |
673 |677 | This document attempts to communicate the concepts outlined in the Web Payments space by using specific terms to discuss particular concepts. This terminology is included below and linked to throughout the document to aid the reader: 678 |
679 | 680 |901 | The diagram below outlines a basic HTTP client payment flow with no errors. The basic flow starts out with the payer optionally accessing a protected resource and being notified that payment is required. The payee provides a URL where a payment request for the resource can be fetched. The payer fetches the payment request, selects a payment app, and sends the request on to the appropriate 902 | payment app for processing. The payment app initiates the payment and sends a payment response back to the payer. The payer then forwards the payment response back to the payee. If there are no errors, the payee then grants access to the resource that was purchased. 903 |
904 | 905 |915 | The flow above reflects a pull-based tokenized card payment scenario. There are other flows, like push-based flows, that we may want to demonstrate in this specification as well. Is a tokenized pull-based flow the best exemplary flow to use when introducing the reader to the HTTP API? 916 |
917 |928 | It may be a good idea to return the payment request with the 402 response. The concern is that this would be a misrepresentation of the resource. The counter-argument is that a client shouldn't interpret a 402 response as the resource, and since 402 has not been formally defined yet, we could define it to always come with a payment request response. 929 |
930 |Location
header to fetch the request
from.
935 | request
from the URL specified in the Location
header in the previous step.
938 | paymentTerms
in the payment request.
941 | request
, via an HTTP POST to the
1004 | paymentRequestService
in the payment app for approval.
1005 | paymentRequestService
in the
1013 | paymentTerms
(note that the payee sets this, not the payment app).
1014 |
1056 | Melvin Carvalho has also raised an issue noting that we may not want to use 402 and the Location header, but rather an additional HTTP header called
1057 | Payment
that is compatible with multiple 4xx error conditions.
1058 |
GET /apps/visa HTTP/1.1
1073 | Host: mybank.example.org
1074 | Date: Tue, 07 Jun 2017 20:51:35 GMT
1075 | Accept: application/json
1076 | Authorization: Digest username="jdoe", realm="jane@mybank.example.org", ...
GET /apps/visa HTTP/1.1
1083 | Host: mybank.example.org
1084 | Date: Tue, 07 Jun 2017 20:51:35 GMT
1085 | Accept: application/json
1086 | Authorization: Signature keyId="https://mybank.example.org/people/jane/keys/42",
1087 | algorithm="rsa-sha256",headers="(request-target) host date",
1088 | signature="jgSqYK0yKclIHfF9zdApVEbDp5eqj8C4i4X76pE+XHoxugXv7qnVrGR+30bmB
1089 | gtpR39I4utq17s9ghz/2QFVxlnToYAvbSVZJ9ulLd1HQBugO0jOyn9sXOtcN7
1090 | uNHBjqNCqUsnt0sw/cJA6B6nJZpyNqNyAXKdxZZItOuhIs78w="
HTTP/1.1 200 OK
1098 | Date: Tue, 07 Jun 2017 20:51:36 GMT
1099 | Content-Type: application/json
1100 | Content-Length: 412
1101 |
1102 | {
1103 | "type": "PaymentApp",
1104 | "paymentMethod": "https://payments.example.org/payment-schemes#Visa",
1105 | "label": "ExampleBank Visa Card",
1106 | "paymentRequestService": "https://mybank.example.org/services/cards/2745023475"
1107 | }
GET /movies/dr-strangelove HTTP/1.1
1119 | Host: videos.example.com
1120 | Date: Tue, 07 Jun 2017 21:31:35 GMT
Location
header:
1125 | HTTP/1.1 402 Payment Required
1127 | Date: Tue, 07 Jun 2017 21:31:36 GMT
1128 | Location: https://videos.example.com/payment-requests/dr-strangelove
GET /payment-requests/dr-strangelove HTTP/1.1
1147 | Host: videos.example.com
1148 | Date: Tue, 07 Jun 2017 21:31:37 GMT
HTTP/1.1 200 OK
1154 | Date: Tue, 07 Jun 2017 21:31:38 GMT
1155 | Content-Type: application/json
1156 | Content-Length: 873
1157 |
1158 | {
1159 | "type": "PaymentRequest",
1160 | "description": "Payment for Dr. Strangelove",
1161 | "paymentTerms": {
1162 | "paymentMethod": "https://payments.example.org/payment-schemes#Visa",
1163 | "paymentAmount": {
1164 | "amount": "2.99",
1165 | "currency": "USD"
1166 | }
1167 | },
1168 | "paymentCompleteService": "https://videos.example.com/services/paymentComplete?transaction=923847298"
1169 | }
paymentRequestService
URL, provided in the payment app or the payment request, is used as the HTTP POST endpoint. The payment service provider that is providing the payment app interface receives the payment request, authenticates the payer, and proceeds with the payment:
1182 | POST /services/cards/2745023475 HTTP/1.1
1184 | Host: mybank.example.org
1185 | Date: Tue, 07 Jun 2017 20:51:35 GMT
1186 | Accept: application/json
1187 |
1188 | {
1189 | "type": "PaymentRequest",
1190 | "description": "Payment for Dr. Strangelove",
1191 | "paymentTerms": {
1192 | "paymentMethod": "https://payments.example.org/payment-schemes#Visa",
1193 | "paymentAmount": {
1194 | "amount": "2.99",
1195 | "currency": "USD"
1196 | }
1197 | },
1198 | "paymentCompleteService": "https://videos.example.com/services/paymentComplete?transaction=923847298"
1199 | }
HTTP/1.1 200 OK
1205 | Date: Tue, 07 Jun 2017 20:51:36 GMT
1206 | Content-Type: application/json
1207 | Content-Length: 623
1208 |
1209 | {
1210 | "type": "PaymentResponse",
1211 | "description": "Payment to ExampleMerch for widgets",
1212 | "paymentTerms": {
1213 | "paymentMethod": "https://payments.example.org/payment-schemes#Visa",
1214 | "status": "authorized",
1215 | "token": "10025AB",
1216 | "paymentAmount": {
1217 | "amount": "2.99",
1218 | "currency": "USD"
1219 | }
1220 | }
1221 | }
paymentCompleteService
URL provided in the initial payment request:
1226 | POST /services/paymentComplete?transaction=923847298 HTTP/1.1
1228 | Host: videos.example.com
1229 | Date: Tue, 07 Jun 2017 20:51:35 GMT
1230 | Content-Type: application/json
1231 |
1232 | {
1233 | "type": "PaymentResponse",
1234 | "description": "Payment to ExampleMerch for widgets",
1235 | "paymentTerms": {
1236 | "paymentMethod": "https://payments.example.org/payment-schemes#Visa",
1237 | "status": "authorized",
1238 | "token": "10025AB",
1239 | "paymentAmount": {
1240 | "amount": "2.99",
1241 | "currency": "USD"
1242 | }
1243 | }
1244 | }
HTTP/1.1 302 Found
1250 | Date: Tue, 07 Jun 2017 20:51:36 GMT
1251 | Cookie: movieToken=2983fhfa92h3iuhf908723nkjcsdh923; Expires=Tue, 08 Jun 2017 20:51:40 GMT
1252 | Location: /movies/dr-strangelove
1263 | The Working Group is currently in the early stages of the analysis of the security and privacy implications of this specification. The ongoing analysis can be accessed via the 1264 | 1265 | Web Payments Working Group Security and Privacy Considerations wiki 1266 | . 1267 |
1268 |This section is non-normative.
1277 | 1278 |1279 | The editor would like to thank members of the Web Payments Community Group, Web Payments Interest Group, and Web Payments Working Group for the ideas and discussion that culminated in this specification. In addition, thank you to the to the following individuals, in order of their first name, for their input on this specification: LIST_TBD 1280 |
1281 | 1282 |123 | This document outlines how to register payment applications, create 124 | payment requests, and reply with payment responses using a standard 125 | HTTP API. 126 |
127 |130 | This section describes the status of this document at the time of 131 | its publication. Other documents may supersede this document. A list of 132 | current W3C publications and the latest revision of this technical 133 | report can be found in the W3C technical reports index at 134 | http://www.w3.org/TR/. 135 |
136 |137 | The Web Payments 138 | Working Group has discontinued work on this document, although 139 | other groups may take up this work in the future. The specification 140 | should not be referenced in this form or implemented as-is. 141 |
142 |147 | Please see the 15 149 | September 2016 draft of this specification for the full content 150 | at the time that the Working Group discontinued its work. 151 |
152 |158 | The Web Payments Working Group first published this document as a 159 | Working 161 | Draft in September 2016. At the time, the Working Group had 162 | already focused on in-browser payments for a year and projected that 163 | its browser focus would continue through the bulk of its (initial) 165 | charter. The Working Group made a decision to publish this 166 | document (along with Web Payments HTTP 168 | Messages 1.0) to socialize it more visibly, and potentially to 169 | align it with Payment Request API as 171 | it matured. 172 |
173 |174 | As the Working Group neared the end of its initial charter, the group 175 | discussed whether to continue to list out-of-browser payments as in 176 | scope in its second charter. Participants at the Working Group's 177 | face-to-face 179 | meeting in November 2017 expressed consensus to publish this 180 | document as a group Note rather than advance it to Recommendation, 181 | but to maintain discussion of message structure in charter scope. 182 |
183 |184 | This document was published by the Web Payments Working Group as a 186 | Working Group Note. If you wish to make comments regarding this 187 | document, please send them to public-webpayments-comments@w3.org (archive). 189 | All comments are welcome. 190 |
191 |197 | Publication as a Working Group Note does not imply endorsement by the 198 | W3C Membership. This is a draft document and may be updated, replaced 199 | or obsoleted by other documents at any time. It is inappropriate to 200 | cite this document as other than work in progress. 201 |
202 |203 | This document was produced by a group operating under the W3C Patent Policy. 205 | W3C maintains a public list of any 207 | patent disclosures made in connection with the deliverables of 208 | the group; that page also includes instructions for disclosing a 209 | patent. An individual who has actual knowledge of a patent which the 210 | individual believes contains Essential 212 | Claim(s) must disclose the information in accordance with 213 | 214 | section 6 of the W3C Patent Policy. 215 |
216 |217 | This document is governed by the 1 March 2017 W3C Process 219 | Document. 220 |
221 |