idnits 2.17.1 draft-brown-epp-fees-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (September 29, 2014) is 3497 days in the past. Is this intentional? Checking references for intended status: Experimental ---------------------------------------------------------------------------- No issues found here. Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force G. Brown 3 Internet-Draft CentralNic Group plc 4 Intended status: Experimental September 29, 2014 5 Expires: April 2, 2015 7 Registry Fee Extension for the Extensible Provisioning Protocol (EPP) 8 draft-brown-epp-fees-03 10 Abstract 12 This document describes an Extensible Provisioning Protocol (EPP) 13 extension mapping for registry fees. 15 Status of this Memo 17 This Internet-Draft is submitted in full conformance with the 18 provisions of BCP 78 and BCP 79. 20 Internet-Drafts are working documents of the Internet Engineering 21 Task Force (IETF). Note that other groups may also distribute 22 working documents as Internet-Drafts. The list of current Internet- 23 Drafts is at http://datatracker.ietf.org/drafts/current/. 25 Internet-Drafts are draft documents valid for a maximum of six months 26 and may be updated, replaced, or obsoleted by other documents at any 27 time. It is inappropriate to use Internet-Drafts as reference 28 material or to cite them other than as "work in progress." 30 This Internet-Draft will expire on April 2, 2015. 32 Copyright Notice 34 Copyright (c) 2014 IETF Trust and the persons identified as the 35 document authors. All rights reserved. 37 This document is subject to BCP 78 and the IETF Trust's Legal 38 Provisions Relating to IETF Documents 39 (http://trustee.ietf.org/license-info) in effect on the date of 40 publication of this document. Please review these documents 41 carefully, as they describe your rights and restrictions with respect 42 to this document. Code Components extracted from this document must 43 include Simplified BSD License text as described in Section 4.e of 44 the Trust Legal Provisions and are provided without warranty as 45 described in the Simplified BSD License. 47 Table of Contents 49 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 50 1.1. Conventions Used in This Document . . . . . . . . . . . . 3 51 2. Extension Elements . . . . . . . . . . . . . . . . . . . . . . 3 52 2.1. Client Commands . . . . . . . . . . . . . . . . . . . . . 4 53 2.2. Currency Codes . . . . . . . . . . . . . . . . . . . . . . 4 54 2.3. Validity Periods . . . . . . . . . . . . . . . . . . . . . 4 55 2.4. Fees and Credits . . . . . . . . . . . . . . . . . . . . . 5 56 2.4.1. Refunds . . . . . . . . . . . . . . . . . . . . . . . 5 57 2.4.2. Grace Periods . . . . . . . . . . . . . . . . . . . . 5 58 2.4.3. Applicability . . . . . . . . . . . . . . . . . . . . 6 59 2.5. Account Balance . . . . . . . . . . . . . . . . . . . . . 6 60 2.6. Credit Limit . . . . . . . . . . . . . . . . . . . . . . . 6 61 2.7. Classification of Domain Names . . . . . . . . . . . . . . 7 62 3. Server Handling of Fee Information . . . . . . . . . . . . . . 7 63 4. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 8 64 4.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . . 8 65 4.1.1. EPP Command . . . . . . . . . . . . . . . . . 8 66 4.1.2. EPP Command . . . . . . . . . . . . . . . . . . 12 67 4.1.3. EPP Transfer Query Command . . . . . . . . . . . . . . 15 68 4.2. EPP Transform Commands . . . . . . . . . . . . . . . . . . 16 69 4.2.1. EPP Command . . . . . . . . . . . . . . . . . 16 70 4.2.2. EPP Command . . . . . . . . . . . . . . . . . 18 71 4.2.3. EPP Command . . . . . . . . . . . . . . . . . 19 72 4.2.4. EPP Command . . . . . . . . . . . . . . . . 21 73 4.2.5. EPP Command . . . . . . . . . . . . . . . . . 23 74 4.3. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . 25 75 5. Security Considerations . . . . . . . . . . . . . . . . . . . 31 76 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 77 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 32 78 8. Change History . . . . . . . . . . . . . . . . . . . . . . . . 32 79 8.1. Changes from 00 to 01 . . . . . . . . . . . . . . . . . . 32 80 8.2. Changes from 01 to 02 . . . . . . . . . . . . . . . . . . 32 81 8.3. Changes from 02 to 03 . . . . . . . . . . . . . . . . . . 33 82 9. Normative References . . . . . . . . . . . . . . . . . . . . . 33 83 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 34 85 1. Introduction 87 Historically, domain name registries have applied a simple fee 88 structure for billable transactions, namely a basic unit price 89 applied to domain , , and RGP [RFC3915] 90 restore commands. Given the relatively small number of EPP servers 91 to which EPP clients have been required to connect, it has generally 92 been the case that client operators have been able to obtain details 93 of these fees out-of-band by contacting the server operators. 95 Given the present expansion of the DNS namespace, and the 96 proliferation of novel business models, it is now desirable to 97 provide a method for EPP clients to query EPP servers for the fees 98 and credits associated with certain commands and specific objects. 100 This document describes an extension mapping for version 1.0 of the 101 Extensible Provisioning Protocol (EPP) [RFC5730]. This EPP mapping 102 provides a mechanism by which EPP clients may query the fees and 103 credits associated with various billable transactions, and also 104 obtain their current account balance. 106 1.1. Conventions Used in This Document 108 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 109 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 110 document are to be interpreted as described in RFC 2119 [RFC2119]. 112 XML is case sensitive. Unless stated otherwise, XML specifications 113 and examples provided in this document MUST be interpreted in the 114 character case presented in order to develop a conforming 115 implementation. 117 "fee" is used as an abbreviation for 118 "urn:ietf:params:xml:ns:fee-0.6". The XML namespace prefix "fee" is 119 used, but implementations MUST NOT depend on it and instead employ a 120 proper namespace-aware XML parser and serializer to interpret and 121 output the XML documents. 123 The XML namespace prefix above contains a version number, 124 specifically "0.6". This version number will increment with 125 successive versions of this document, and will reach 1.0 if and when 126 this document is published as an RFC. This permits clients to 127 distinguish which version of the extension a server has implemented. 129 2. Extension Elements 130 2.1. Client Commands 132 The element is used in EPP and commands 133 to determine the fee which is applicable to the given command. 135 The element values permitted by the server is a matter of repository 136 policy, but MUST include as a minimum the following values: 138 o "create" indicating a command; 140 o "renew" indicating a command; 142 o "transfer" indicating a command; 144 If the server supports the Registry Grace Period Mapping [RFC3915], 145 then the server MUST also support the "restore" value. 147 The element MAY have an OPTIONAL "phase" attribute 148 specifying a launch phase as described in 149 [draft-ietf-eppext-launchphase]. It may also contain an OPTIONAL 150 "subphase" attribute identifying the custom or sub-phase as described 151 in [draft-ietf-eppext-launchphase]. 153 2.2. Currency Codes 155 The element is used to indicate which currency fees 156 are charged in. This value of this element MUST be a three-character 157 currency code from [ISO4217]. 159 Note that ISO 4217 provides the special "XXX" code, which MAY be used 160 if the server uses a non-currency based system for assessing fees, 161 such as a system of credits. 163 The use of elements in commands is OPTIONAL: if a 164 element is not present in a command, the server MUST 165 determine the currency based on the client's account settings which 166 MUST be agreed by the client and server via an out-of-band channel. 167 However, element MUST be present in responses. 169 Servers SHOULD NOT perform a currency conversion if a client uses an 170 incorrect currency code. Servers SHOULD return a 2003 error instead. 172 2.3. Validity Periods 174 The element is used to indicate the units to be added to 175 the registration period of domain names by the , and 176 commands. This element is derived from the element described in [RFC5731]. 179 The element is OPTIONAL in commands: if omitted, the 180 server MUST determine the fee(s) using a validity period of 1 year. 181 The element MUST be present in responses. 183 2.4. Fees and Credits 185 Servers which implement this extension will include elements in 186 responses which provide information about the fees and/or credits 187 associated with a given billable transaction. 189 The and elements are used to provide this 190 information. The presence of a element in a response 191 indicates a debit against the client's account balance; a element indicates a credit. A element MUST have a 193 non-negative value. A element MUST have a negative 194 value. 196 A server MAY respond with multiple and 197 elements in the same response. In such cases, the net fee or credit 198 applicable to the transaction is the arithmetic sum of the values of 199 each of the or elements. This amount applies 200 to the total additional validity period applied to the domain (where 201 applicable) rather than to any incremental unit. 203 and elements MAY have an OPTIONAL 204 "description" attribute which provides a human-readable description 205 of the fee. Servers SHOULD provide documentation on the possible 206 values of this attribute, and their meanings. 208 2.4.1. Refunds 210 elements MAY have an OPTIONAL "refundable" attribute which 211 takes a boolean value. Fees may be refunded under certain 212 circumstances, such as when a domain application is rejected (as 213 described in [draft-ietf-eppext-launchphase]) or when a domain name 214 is deleted during the relevant Grace Period (see below). If the 215 "refundable" attribute is omitted, then the default value of "1" 216 should be assumed (i.e. the fee is refundable). 218 2.4.2. Grace Periods 220 [RFC3915] describes a system of "grace periods", which are time 221 periods following a billable transaction during which, if a domain 222 name is deleted, the client receives a refund. 224 The "grace-period" attribute MAY be used to indicate the relevant 225 grace period for a fee. If a server implements the Registry Grace 226 Period extension, it MUST specify the grace period for all relevant 227 transactions. If no "grace-period" attribute value is provided, then 228 no grace period is applicable. 230 If a element has a "grace-period" attribute then it MUST 231 also be refundable. If the "refundable" attribute of a 232 element is false then it MUST NOT have a "grace-period" attribute. 234 2.4.3. Applicability 236 Fees may be applied immediately upon receipt of a command from a 237 client, or may only be applied once an out-of-band process (such as 238 the processing of applications at the end of a launch phase) has 239 taken place. 241 The "applied" attribute of the element allows servers to 242 indicate whether a fee will be applied immediately, or whether it 243 will be applied at some point in the future. This attribute takes 244 two possible values: "immediate" (which is the default) or "delayed". 246 2.5. Account Balance 248 The element is an OPTIONAL element which MAY be 249 included in server responses to transform commands. If present, it 250 can be used by the client to determine the remaining credit at the 251 server. 253 Whether or not the is included in responses is a matter 254 of server policy. However, if a server chooses to offer support for 255 this element, it MUST be included in responses to all domain 256 "transform" commands (ie , , , , 257 ). 259 The value of the MAY be negative. A negative balance 260 indicates that the server has extended a line of credit to the client 261 (see below). 263 When a server includes a element in response to 264 transform commands, the value of the element MUST reflect the 265 client's account balance after any fees or credits associated with 266 that command have been applied. 268 2.6. Credit Limit 270 As described above, if a server returns a response containing a with a negative value, then the server has extended a line 272 of credit to the client. A server MAY also include a element in responses which indicates the maximum credit 274 available to a client. A server MAY reject certain transactions if 275 the absolute value of the is equal to or exceeds the 276 value of the element. 278 Whether or not the is included in responses is a 279 matter of server policy. However, if a server chooses to offer 280 support for this element, it MUST be included in responses to all 281 domain "transform" commands (ie , , , 282 , ). 284 2.7. Classification of Domain Names 286 Domain names may be assigned to a particular class, category, or 287 tier, each of which has a particular fee or set of fees associated 288 with it. The element which appears in and 289 responses is used to indicate the classification of a domain name. 291 If a server makes use of this element, it MUST provide clients with a 292 list of all the values that the element may take via an out-of-band 293 channel. Servers MUST NOT use values which do not appear on this 294 list. 296 3. Server Handling of Fee Information 298 Depending on server policy, a client MAY be required to include the 299 extension elements described in this document for certain transform 300 commands. Servers MUST provide clear documentation to clients about 301 the circumstances in which this extension must be used. 303 If a server receives a command from a client which does not include 304 the extension elements required by the server for that command, then 305 it MUST response with a 2003 "Required parameter missing" error. 307 If the currency and total fee provided by the client do not agree 308 with the server's own calculation of the fee for that command, then 309 the server MUST respond in one of the following ways: 311 o Reject the command with a 2004 "Parameter value range" error; or 313 o Accept the command, but return a 1001 "Action Pending" response, 314 and queue the requested command for offline review. If the server 315 chooses this option, it MUST provide notification of the result of 316 the review using the EPP message queue. 318 4. EPP Command Mapping 320 A detailed description of the EPP syntax and semantics can be found 321 in [RFC5730]. 323 4.1. EPP Query Commands 325 This extension does not add any elements to the EPP command or 326 response. 328 4.1.1. EPP Command 330 This extension defines additional elements for the EPP 331 command. 333 The command MAY contain an element which MAY contain a 334 element. The element MUST contain at least 335 one element, with the following child elements: 337 o A element. The domain name need not correspond to a 338 element that appears in the element 339 of the main body of the frame. 341 o An OPTIONAL element; 343 o A element; 345 o An OPTIONAL element. 347 Example command: 349 C: 350 C: 351 C: 352 C: 353 C: 355 C: example.com 356 C: example.net 357 C: example.org 358 C: 359 C: 360 C: 361 C: 363 C: 364 C: example.com 365 C: USD 366 C: create 367 C: 1 368 C: 369 C: 370 C: example.net 371 C: EUR 372 C: 373 C: create 374 C: 2 375 C: 376 C: 377 C: example.org 378 C: EUR 379 C: transfer 380 C: 381 C: 382 C: example.xyz 383 C: restore 384 C: 1 385 C: 386 C: 387 C: 388 C: ABC-12345 389 C: 390 C: 392 When the server receives a command that includes the 393 extension elements described above, its response MUST (subject to the 394 exception described below) contain an element, which MUST 395 contain a child element. The element 396 MUST contain a element for each element 397 contained in the command. The MUST contain the following 398 child elements: 400 o A element that contains a domain name which matches the 401 name in the corresponding element. 403 o A element that contains same currency code that 404 appeared in the corresponding element. If no element appeared in the corresponding 406 element, then the client's default billing currency should be 407 used. 409 o A element that contains same command that appeared 410 in the corresponding element. This element MAY have 411 the OPTIONAL "phase" and "subphase" elements, which MUST match the 412 same attributes in the corresponding element. 414 o A element that contains same unit that appeared in 415 the corresponding element. If no 416 appeared in the corresponding element, then this 417 element MUST have a value of 1 year. 419 o Zero or more elements. 421 o An OPTIONAL element. 423 If no elements are present in a element, this 424 indicates that the requested command is not permitted by server 425 policy. 427 The presence of a with a value of "0.00" (ie a zero amount) 428 in a element indicates that no fee will be assessed by the 429 server for this command. 431 Example response: 433 S: 434 S: 435 S: 436 S: 437 S: Command completed successfully 438 S: 439 S: 440 S: 442 S: 443 S: example.com 444 S: 445 S: 446 S: example.net 447 S: In use 448 S: 449 S: 450 S: example.org 451 S: In use 452 S: 453 S: 454 S: 455 S: 456 S: 458 S: 459 S: example.com 460 S: USD 461 S: create 462 S: 1 463 S: 5.00 465 S: 5.00 467 S: 468 S: 469 S: example.net 470 S: EUR 471 S: 472 S: create 473 S: 2 474 S: 5.00 475 S: 476 S: 477 S: example.org 478 S: EUR 479 S: transfer 480 S: 2 481 S: 2.50 482 S: 10.00 483 S: 484 S: 485 S: example.xyz 486 S: GBP 487 S: restore 488 S: 1 489 S: 25 490 S: 5.00 491 S: premium-tier1 492 S: 493 S: 494 S: 495 S: 496 S: ABC-12345 497 S: 54322-XYZ 498 S: 499 S: 500 S: 502 4.1.2. EPP Command 504 This extension defines additional elements for the EPP 505 command. 507 The command MAY contain an element which MAY contain a 508 element with the following child elements: 510 o An OPTIONAL element; 512 o A element; 514 o An OPTIONAL element. 516 Example command: 518 C: 519 C: 520 C: 521 C: 522 C: 524 C: example.com 525 C: 526 C: 527 C: 528 C: 529 C: USD 530 C: create 531 C: 1 532 C: 533 C: 534 C: ABC-12345 535 C: 536 C: 538 When the server receives an command that includes the 539 extension element described above, its response MUST (subject to the 540 exception described below) contain an element, which MUST 541 contain a child element. The MUST 542 contain the following child elements: 544 o A element that contains same currency code that 545 appeared in the element element of the command. If 546 no element appeared in the command, then the 547 client's default billing currency should be used. 549 o A element that contains same command that appeared 550 in the element of the command. This element MAY 551 have the OPTIONAL "phase" and "subphase" elements, which MUST 552 match the same attributes in the element of the 553 command. 555 o A element that contains same unit that appeared in 556 the corresponding element of the command. If no 557 appeared in the command, then this element MUST have 558 a value of 1 year. 560 o One or more elements. 562 o An OPTIONAL element. 564 Depending on policy, the server MAY choose to omit the 565 element and return a 2201 authorisation error instead. 567 Example response: 569 S: 570 S: 571 S: 572 S: 573 S: Command completed successfully 574 S: 575 S: 576 S: 578 S: example.com 579 S: EXAMPLE1-REP 580 S: 581 S: jd1234 582 S: sh8013 583 S: sh8013 584 S: 585 S: ns1.example.com 586 S: ns1.example.net 587 S: 588 S: ns1.example.com 589 S: ns2.example.com 590 S: ClientX 591 S: ClientY 592 S: 1999-04-03T22:00:00.0Z 593 S: ClientX 594 S: 1999-12-03T09:00:00.0Z 595 S: 2005-04-03T22:00:00.0Z 596 S: 2000-04-08T09:00:00.0Z 597 S: 598 S: 2fooBAR 599 S: 600 S: 601 S: 602 S: 603 S: 604 S: USD 605 S: create 606 S: 1 607 S: 10.00 608 S: premium-tier1 609 S: 610 S: 611 S: 612 S: ABC-12345 613 S: 54322-XYZ 614 S: 615 S: 616 S: 617 Example response where the domain name is not registered: 619 S: 620 S: 621 S: 622 S: 623 S: Object does not exist. 624 S: 625 S: 626 S: 628 S: USD 629 S: create 630 S: 1 631 S: 10.00 632 S: 633 S: 634 S: 635 S: ABC-12345 636 S: 54322-XYZ 637 S: 638 S: 639 S: 641 4.1.3. EPP Transfer Query Command 643 This extension does not add any elements to the EPP query 644 command, but does include elements in the response, when the 645 extension has been selected during a command. 647 When the query command has been processed successfully, 648 the client selected the extension when it logged in, and the client 649 is authorised by the server to view information about the transfer, 650 the server MAY include in the section of the EPP response 651 a element that contains the following child elements: 653 o A element. 655 o A element. 657 o one or more elements containing the fees associated with 658 the transfer. 660 If no element is included in the response, then no fee 661 will be assessed by the server for the transfer. 663 Example query response: 665 S: 666 S: 667 S: 668 S: 669 S: Command completed successfully; action pending 670 S: 671 S: 672 S: 674 S: example.com 675 S: pending 676 S: ClientX 677 S: 2000-06-08T22:00:00.0Z 678 S: ClientY 679 S: 2000-06-13T22:00:00.0Z 680 S: 2002-09-08T22:00:00.0Z 681 S: 682 S: 683 S: 684 S: 685 S: USD 686 S: 1 687 S: 5.00 688 S: 689 S: 690 S: 691 S: ABC-12345 692 S: 54322-XYZ 693 S: 694 S: 695 S: 697 4.2. EPP Transform Commands 699 4.2.1. EPP Command 701 This extension adds elements to both the EPP command and 702 response, when the extension has been selected during a 703 command. 705 When submitting a command to the server, the client MAY 706 include in the element a element which 707 includes the following child elements: 709 o An OPTIONAL element; 711 o One or more elements. 713 When the command has been processed successfully, and the 714 client selected the extension when it logged in, and a fee was 715 assessed by the server for the transaction, the server MUST include 716 in the section of the EPP response a 717 element that contains the following child elements: 719 o A element; 721 o One or more elements; 723 o An OPTIONAL element; 725 o An OPTIONAL element. 727 If no element is included in the response, then no fee 728 has been assessed by the server for this transaction. 730 Example command: 732 C: 733 C: 734 C: 735 C: 736 C: 738 C: example.com 739 C: 2 740 C: 741 C: ns1.example.net 742 C: ns2.example.net 743 C: 744 C: jd1234 745 C: sh8013 746 C: sh8013 747 C: 748 C: 2fooBAR 749 C: 750 C: 751 C: 752 C: 753 C: 754 C: USD 755 C: 5.00 756 C: 757 C: 758 C: ABC-12345 759 C: 760 C: 761 Example response: 763 S: 764 S: 765 S: 766 S: 767 S: Command completed successfully 768 S: 769 S: 770 S: 772 S: example.com 773 S: 1999-04-03T22:00:00.0Z 774 S: 2001-04-03T22:00:00.0Z 775 S: 776 S: 777 S: 778 S: 779 S: USD 780 S: 5.00 781 S: -5.00 782 S: 1000.00 783 S: 784 S: 785 S: 786 S: ABC-12345 787 S: 54321-XYZ 788 S: 789 S: 790 S: 792 4.2.2. EPP Command 794 This extension does not add any elements to the EPP command, 795 but does include elements in the response, when the extension has 796 been selected during the command. 798 When the command has been processed successfully, and the 799 client selected the extension when it logged in, the server MAY 800 include in the section of the EPP response a element that contains the following child elements: 803 o A element; 805 o One or more elements; 807 o An OPTIONAL element; 808 o An OPTIONAL element. 810 If no element is included in the response, then no 811 credit has been assessed by the server for this transaction. 813 Example response: 815 S: 816 S: 817 S: 818 S: 819 S: Command completed successfully 820 S: 821 S: 822 S: 824 S: USD 825 S: -5.00 826 S: 1005.00 827 S: 828 S: 829 S: 830 S: ABC-12345 831 S: 54321-XYZ 832 S: 833 S: 834 S: 836 4.2.3. EPP Command 838 This extension adds elements to both the EPP command and 839 response, when the extension has been selected during a 840 command. 842 When submitting a command to the server, the client MAY 843 include in the element a element which 844 includes the following child elements: 846 o A element; 848 o One or more elements. 850 When the command has been processed successfully, and the 851 client selected the extension when it logged in, the server MAY 852 include in the section of the EPP response a element that contains the following child elements: 855 o A element; 857 o One or more elements; 859 o An OPTIONAL element; 861 o An OPTIONAL element. 863 If no element is included in the response, then no fee 864 has been assessed by the server for this transaction. 866 Example command: 868 C: 869 C: 870 C: 871 C: 872 C: 874 C: example.com 875 C: 2000-04-03 876 C: 5 877 C: 878 C: 879 C: 880 C: 881 C: USD 882 C: 5.00 883 C: 884 C: 885 C: ABC-12345 886 C: 887 C: 889 Example response: 891 S: 892 S: 893 S: 894 S: 895 S: Command completed successfully 896 S: 897 S: 898 S: 900 S: example.com 901 S: 2005-04-03T22:00:00.0Z 902 S: 903 S: 904 S: 905 S: 906 S: USD 907 S: 5.00 908 S: 1000.00 909 S: 910 S: 911 S: 912 S: ABC-12345 913 S: 54322-XYZ 914 S: 915 S: 916 S: 918 4.2.4. EPP Command 920 This extension adds elements to both the EPP command and 921 response, when the value of the "op" attribute of the 922 command element is "request", and the extension has been selected 923 during the command. 925 When submitting a command to the server, the client MAY 926 include in the element a element which 927 includes the following child elements: 929 o A element; 931 o One or more elements. 933 When the command has been processed successfully, and the 934 client selected the extension when it logged in, the server MAY 935 include in the section of the EPP response a element that contains the following child elements: 938 o A element; 940 o One or more elements; 942 o An OPTIONAL element; 944 o An OPTIONAL element. 946 If no element is included in the response, then no fee 947 has been assessed by the server for this transaction. 949 Example command: 951 C: 952 C: 953 C: 954 C: 955 C: 957 C: example.com 958 C: 1 959 C: 960 C: 2fooBAR 961 C: 962 C: 963 C: 964 C: 965 C: 966 C: USD 967 C: 5.00 968 C: 969 C: 970 C: ABC-12345 971 C: 972 C: 974 Example response: 976 S: 977 S: 978 S: 979 S: 980 S: Command completed successfully; action pending 981 S: 982 S: 983 S: 985 S: example.com 986 S: pending 987 S: ClientX 988 S: 2000-06-08T22:00:00.0Z 989 S: ClientY 990 S: 2000-06-13T22:00:00.0Z 991 S: 2002-09-08T22:00:00.0Z 992 S: 993 S: 994 S: 995 S: 996 S: USD 997 S: 5.00 998 S: 999 S: 1000 S: 1001 S: ABC-12345 1002 S: 54322-XYZ 1003 S: 1004 S: 1005 S: 1007 4.2.5. EPP Command 1009 This extension adds elements to both the EPP command and 1010 response, when the extension has been selected during a has 1011 been selected during the command. 1013 When submitting a command to the server, the client MAY 1014 include in the element a element which 1015 includes the following child elements: 1017 o A element; 1019 o One or more elements. 1021 When the command has been processed successfully, and the 1022 client selected the extension when it logged in, the server MAY 1023 include in the section of the EPP response a 1024 element that contains the following child elements: 1026 o A element; 1028 o One or more elements; 1030 o An OPTIONAL element; 1032 o An OPTIONAL element. 1034 If no element is included in the response, then no fee 1035 has been assessed by the server for this transaction. 1037 Example command: 1039 C: 1040 C: 1041 C: 1042 C: 1043 C: 1045 C: example.com 1046 C: 1047 C: sh8013 1048 C: 1049 C: 1050 C: 1051 C: 1052 C: 1053 C: USD 1054 C: 5.00 1055 C: 1056 C: 1057 C: ABC-12345 1058 C: 1059 C: 1061 Example response: 1063 S: 1064 S: 1065 S: 1066 S: 1067 S: Command completed successfully 1068 S: 1069 S: 1070 S: 1071 S: USD 1072 S: 5.00 1073 S: 1074 S: 1075 S: 1076 S: ABC-12345 1077 S: 54321-XYZ 1078 S: 1079 S: 1080 S: 1082 4.3. Formal Syntax 1084 An EPP object mapping is specified in XML Schema notation. The 1085 formal syntax presented here is a complete schema representation of 1086 the object mapping suitable for automated validation of EPP XML 1087 instances. 1089 Copyright (c) 2014 IETF Trust and the persons identified as authors 1090 of the code. All rights reserved. 1092 Redistribution and use in source and binary forms, with or without 1093 modification, are permitted provided that the following conditions 1094 are met: 1096 o Redistributions of source code must retain the above copyright 1097 notice, this list of conditions and the following disclaimer. 1099 o Redistributions in binary form must reproduce the above copyright 1100 notice, this list of conditions and the following disclaimer in 1101 the documentation and/or other materials provided with the 1102 distribution. 1104 o Neither the name of Internet Society, IETF or IETF Trust, nor the 1105 names of specific contributors, may be used to endorse or promote 1106 products derived from this software without specific prior written 1107 permission. 1109 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1110 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1111 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1112 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1113 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1114 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1115 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1116 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1117 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1118 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1119 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1121 BEGIN 1122 1123 1130 1131 1133 1134 Extensible Provisioning Protocol 1135 v1.0 domain name extension schema for 1136 fee information. 1137 1139 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1156 1159 1160 1161 1163 1164 1166 1167 1168 1169 1171 1172 1174 1175 1177 1180 1181 1182 1184 1185 1187 1188 1189 1190 1191 1192 1193 1195 1196 1197 1199 1202 1203 1204 1207 1208 1210 1211 1213 1216 1217 1218 1219 1220 1221 1223 1224 1225 1227 1230 1231 1232 1233 1235 1236 1238 1241 1242 1243 1244 1246 1248 1250 1251 1253 1257 1258 1259 1261 1262 1265 1267 1269 1271 1272 1274 1277 1278 1279 1280 1282 1284 1286 1287 1289 1292 1293 1294 1295 1296 1298 1299 1300 1301 1302 1303 1305 1306 1308 1309 1310 1311 1312 1313 1315 1316 1317 1318 1319 1321 1322 1323 1324 1325 1327 1328 1329 1330 1331 1333 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1347 1348 1349 1350 1351 1352 1354 1356 1357 1358 1360 1361 1362 1364 1366 END 1368 5. Security Considerations 1370 The mapping extensions described in this document do not provide any 1371 security services beyond those described by EPP [RFC5730], the EPP 1372 domain name mapping [RFC5731], and protocol layers used by EPP. The 1373 security considerations described in these other specifications apply 1374 to this specification as well. 1376 6. IANA Considerations 1378 This document uses URNs to describe XML namespaces and XML schemas 1379 conforming to a registry mechanism described in [RFC3688]. Two URI 1380 assignments were requested and have been registered by the IANA. 1382 Registration request for the digital signature namespace: 1384 URI: urn:ietf:params:xml:ns:fee-0.6 1386 Registrant Contact: See the "Author's Address" section of this 1387 document. 1389 XML: None. Namespace URIs do not represent an XML specification. 1391 Registration request for the EPP fee XML schema: 1393 URI: urn:ietf:params:xml:ns:fee-0.6 1395 Registrant Contact: See the "Author's Address" section of this 1396 document. 1398 XML: See the "Formal Syntax" section of this document. 1400 7. Acknowledgements 1402 The author wishes to thank the following persons for their feedback 1403 and suggestions: 1405 o James Gould of Verisign 1407 o Luis Munoz of ISC 1409 o Michael Young of Architelos 1411 o Ben Levac and Jeff Eckhaus of Demand Media 1413 o Seth Goldman of Google 1415 o Klaus Malorny of Knipp 1417 o Jody Kolker and Roger Carney of Go Daddy 1419 o Michael Holloway of Com Laude 1421 8. Change History 1423 8.1. Changes from 00 to 01 1425 1. Restore the command extension; either or 1426 can be used. 1428 2. added extension elements for , , and 1429 so that the server can reject the command if the fee is 1430 incorrect. 1432 8.2. Changes from 01 to 02 1434 1. Use Internet-Draft version number rather than XML namespace 1435 version number in this section. 1437 2. Support for multiple and elements. 1439 3. Added the "description" attribute to and 1440 elements. 1442 4. Added the element. 1444 5. Added the element. 1446 6. Updated reference to [draft-ietf-eppext-launchphase]. 1448 7. Use instead of . 1450 8. Use a single child element of instead of multiple 1451 elements for each domain. This also requires using a different 1452 name () for the domain name. 1454 9. Added the "refundable" attribute to elements. 1456 10. Added the "grace-period" attribute to elements. 1458 8.3. Changes from 02 to 03 1460 1. Added the "applied" attribute to to elements. 1462 2. Simplified the wording in relation to when a server can return an 1463 error for extended commands. 1465 3. Added the element to transfer query responses. 1467 4. Removed wording about how servers behave when receiving incorrect 1468 fee information from transform commands, and put it into a single 1469 section at the top of the document. 1471 5. Allow servers to omit elements from elements 1472 if the command specified by the client is forbidden. 1474 9. Normative References 1476 [ISO4217] International Organization for Standardization, "ISO 4217: 1477 2008, Codes for the representation of currencies and 1478 funds", 2008. 1480 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1481 Requirement Levels", BCP 14, RFC 2119, March 1997. 1483 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1484 January 2004. 1486 [RFC3915] Hollenbeck, S., "Domain Registry Grace Period Mapping for 1487 the Extensible Provisioning Protocol (EPP)", RFC 3915, 1488 September 2004. 1490 [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", 1491 STD 69, RFC 5730, August 2009. 1493 [RFC5731] Hollenbeck, S., "Extensible Provisioning Protocol (EPP) 1494 Domain Name Mapping", STD 69, RFC 5731, August 2009. 1496 [draft-ietf-eppext-launchphase] 1497 Gould, J., Tan, W., and G. Brown, "Launch Phase Mapping 1498 for the Extensible Provisioning Protocol (EPP)", 2014. 1500 Author's Address 1502 Gavin Brown 1503 CentralNic Group plc 1504 35-39 Moorgate 1505 London, England EC2R 6AR 1506 GB 1508 Phone: +44 20 33 88 0600 1509 Email: gavin.brown@centralnic.com 1510 URI: https://www.centralnic.com