[regext] Re: RFC 8748 (EPP Fee Extension): issue with mixed signals regarding standard prices?

"Gould, James" <jgould@verisign.com> Tue, 21 April 2026 19:03 UTC

Return-Path: <jgould@verisign.com>
X-Original-To: regext@mail2.ietf.org
Delivered-To: regext@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 89E36E046D4E for <regext@mail2.ietf.org>; Tue, 21 Apr 2026 12:03:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1776798183; bh=5U/OrliuAGIfjsDmgC9R2n2g6Ne4Xm47uvcFKA7If2Q=; h=Subject:From:To:CC:Date:References:In-Reply-To; b=sCMlQF9jOPA6EQzq614jvnloOE8bOtgNNLsV6ZF5yCZnD54MJRIGOXHmbnSUQ12Ez /IRK1I5PgBgdHXlV0HL001OTlYX42IgS/dtnyMKKlUm3IvMH6L3Fz1zhvcHBIH4Sbe rE/FW3W6YT4NCs4IzNvu2Zo881I63jRgnUtJPSH8=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -4.398
X-Spam-Level:
X-Spam-Status: No, score=-4.398 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=verisign.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZZ45EHTiqZWV for <regext@mail2.ietf.org>; Tue, 21 Apr 2026 12:03:02 -0700 (PDT)
Received: from mail5.verisign.com (mail5.verisign.com [69.58.187.31]) by mail2.ietf.org (Postfix) with ESMTP id D565EE046D46 for <regext@ietf.org>; Tue, 21 Apr 2026 12:03:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=verisign.com; l=11154; q=dns/txt; s=VRSN; t=1776798182; h=from:to:cc:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version:subject; bh=5U/OrliuAGIfjsDmgC9R2n2g6Ne4Xm47uvcFKA7If2Q=; b=G9gnXJ2qu18sTWVDVB+sUEzkTTyUw66sYAYcji2gk4TIcSz7LfBLD97R Pmh/Ql4kLravKKaMIi6XYoeDXY059e65eM4HRKqea+rZ9yuiB4KK4tBKI U37gcO8kkQ4PzVX54fBKSyJ1xxZK6nWYDKXi+lIUGke5AReUmnIqNVDdX iQfHSl4XaAcPv+gTqpt4dLk8DgxvZdflNWOLAQGwZKvFZzovZeK7P2X+d JNmYktambQBuSPlA/1+Wz5e6vhNZYhlpxhnaS0GEcFIJGmAXpEmRdcYyn BkbFguQr+XHjoI2O0sdjKFYFI/Wij3oMlbY9slkNCRvt+3U5hZVAvAkG9 Q==;
X-CSE-ConnectionGUID: +JKu8pikS4a/mFUZRG46Sg==
X-CSE-MsgGUID: R+ScfgmJTziwqogq9j4x1Q==
X-ThreatScanner-Verdict: Negative
IronPort-Data: A9a23:fMoJ4autSHeeQHMFw98DJee09ufnVEtfMUV32f8akzHdYApBsoF/q tZmKT3VO/nZYWD1f4h/Ydnn9xkDuJDdmoBlHgU+pHszFiNB9ZOVVN+UEBz9bniYRiHhoOCLz O1FM4Wdc5pkJpP4jk3wWlQ0hSAkjclkfpKlVqicfHw3HVY6IMsYoUoLs/YjhYJ1isSODQqIu Nfjy+XSI1bNNwRcawr40Ird7kk01BjOkGlA5AJmOaoS5AW2e0Q9V/rzG4ngdxMUfaEJRoZWd 86bpJml82XQ+QsaC9/Nut7Tbk0QT7fOChOFg3xQVrLKqkAqSvsai/tT2FI0MC+7uh3R9zxD4 IwlWa+YEG/FCpbxdNE1CHG0JQklZPEbp+WXSZSImZf7I0XuKxMAyt0wVB1mZdVwFuxfWQmi/ tRAQNwBg4zqa0tbD9tXR8E17vnPIvUHM6tcmFJ9nSnYDs16SNfGbZj43/AEggw/05Um8fb2P 6L1aBJKTTDvOiJpF2dPUdQgl+Cynj/2f3tGskmT46Ew5gA/ziQoiP63bISTI4HQA58M9qqbj juuE2DRAB4dKdiT4SSI6HO3h+DJ2yj8Xer+EZXkqq4z3AfCnwT/DjUsFmCwr/a8qHKsWs1GL EMNqyhyvfELoRnDot7VGkfQTGS/liIcXN9ZCKsR7xuRx4LX5QeBHi4IQ1ZpctEpud8qbT0ny lHPmMnmbRR0raWNTmiB3qudqzy1fDIOa2QFYEc5oRAt5tjnr9gsiB/fFo8mC7CvyNj0AnT6x HaLqCdnwasJlshN3KK+lbzavw+RSlHyZlZdzm3qsqiNt2uVuKbNi1SU1GXm
IronPort-HdrOrdr: A9a23:pBjA4qwec/k9iPbSgK+PKrPw/L1zdoMgy1knxilNoERuA6ilf8 DHppgmPYedskdtZJhSo6HmBEDmewKhyXcV2/hqAV7MZmnbUQeTRr2KqLGSpgEIeBeOidK1t5 0QEJSWYeeYZTNHZITBkWuF+r0br+VvhZrIuQ6o9RlQpG9RBp2IpD0JbDpzWncGPTWvT/ACZe KhD+R81kGdRUg=
X-Talos-CUID: 9a23:bjTvSGqDji99UJArVqYtUf3mUYMHUWCN1HbTGBOxTmNHdY+vZgPOw6wxxg==
X-Talos-MUID: 9a23:8cOSEQtYMytyDCduRc2nvnJZP8ln5oaSGkESiJIJopiGaTwpAmLI
X-IronPort-AV: E=Sophos;i="6.23,192,1770595200"; d="scan'208";a="44814291"
Received: from MILG1WNEX01.vcorp.ad.vrsn.com (10.246.152.21) by MILG1WNEX01.vcorp.ad.vrsn.com (10.246.152.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 21 Apr 2026 15:03:02 -0400
Received: from MILG1WNEX01.vcorp.ad.vrsn.com ([10.246.152.21]) by MILG1WNEX01.vcorp.ad.vrsn.com ([10.246.152.21]) with mapi id 15.02.2562.037; Tue, 21 Apr 2026 15:03:02 -0400
From: "Gould, James" <jgould@verisign.com>
To: "Thomas.Corte@knipp.de" <Thomas.Corte@knipp.de>, "regext@ietf.org" <regext@ietf.org>
Thread-Topic: [EXTERNAL] [regext] Re: RFC 8748 (EPP Fee Extension): issue with mixed signals regarding standard prices?
Thread-Index: AQHc0bGjkNz7qo6n+k6pIYKfvqrNy7Xp34+A
Date: Tue, 21 Apr 2026 19:03:02 +0000
Message-ID: <BD5F9F49-4E40-443D-8970-F41D85BCF738@verisign.com>
References: <b8338834-9d22-4c28-99ba-358293f7f02d@knipp.de> <c0255765-4e68-4b75-8642-6451bc481da8@knipp.de>
In-Reply-To: <c0255765-4e68-4b75-8642-6451bc481da8@knipp.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.105.26020123
x-originating-ip: [10.240.148.17]
Content-Type: text/plain; charset="utf-8"
Content-ID: <69747E5E1EEE2B418C79C0FA4D252EAB@verisign.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Message-ID-Hash: DVEUU7UQKURIQQ3GCRLDKD7Q6XSFN7NU
X-Message-ID-Hash: DVEUU7UQKURIQQ3GCRLDKD7Q6XSFN7NU
X-MailFrom: jgould@verisign.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-regext.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "support@tango-rs.com" <support@tango-rs.com>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [regext] Re: RFC 8748 (EPP Fee Extension): issue with mixed signals regarding standard prices?
List-Id: Registration Protocols Extensions Working Group <regext.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/Y7fBP6Ms9ZVGcg_8quu2ERPITvU>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Owner: <mailto:regext-owner@ietf.org>
List-Post: <mailto:regext@ietf.org>
List-Subscribe: <mailto:regext-join@ietf.org>
List-Unsubscribe: <mailto:regext-leave@ietf.org>

Thomas, 

That would be a good topic for IETF-126.  

In thinking about the split of the <fee:class> element and the <fee:command> "standard" attribute with a default value of "false", the <fee:class> element is directly associated with the classification of the domain name at the object-level.  A server may have a list of premium domain names that would not return a <fee:class> of "standard".  The <fee:command> "standard" attribute could be non-standard for a "standard" class domain name to cover cases like a promotion fee for a command and period.  The typical case for a <fee:class> "standard" domain name is returning "true" for all the <fee:command> "standard" attributes, but there are cases where the "standard" attribute is not "true" for a "standard" class domain name.  The server should be careful to be clear to the clients, where there should be no assumption by the class that all billable commands with be "standard" for a "standard" domain name.  I recommend the server returning the "standard" attribute for all of the returned <fee:command> elements and not rely on the XML default value.  

I know that we had some deep discussions on the mailing list about this, so it would be great to hear from other servers on how they handle the <fee:class> element and the <fee:command> "standard" attribute values.

Thanks,

-- 

JG 



James Gould
Fellow Engineer
jgould@Verisign.com <applewebdata://13890C55-AAE8-4BF3-A6CE-B4BA42740803/jgould@Verisign.com>

703-948-3271
12061 Bluemont Way
Reston, VA 20190

Verisign.com <http://verisigninc.com/> 




On 4/21/26, 1:09 PM, "Thomas Corte (TANGO support)" <Thomas.Corte@knipp.de <mailto:Thomas.Corte@knipp.de>> wrote:


Caution: This email originated from outside the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. 


Hello,


picking up the discussion I tried to start about this in March (see my full original e-mail below),
I'd like to propose putting this topic on the agenda for the upcoming IETF meeting in Vienna, as 
suggested by Gavin Brown after I discussed this with him.


To summarize, I believe the fee-1.0 EPP extension, as it is now, invites confusion by defining two 
ways of declaring "standard" pricing, namely 1) via the <fee:class> element and 2) via the 
"standard" attribute in the <fee:command> elements or a fee check response.


The problem arises from the fact that the XSD defines the "standard" attribute on <fee:command> as 
defaulting to "false" if not present:


<attribute name="standard" type="boolean" default="0" />


So if this attribute isn't there, a client needs to assume a *non-standard* price for this command.


Now, in many fee-1.0 implementations I've seen (like Radix's or Google's), registries will return 
(for standard domains)


<fee:class>standard</fee:class>


but *omit* the "standard" attribute on the <fee:command> elements, like this:


<fee:chkData xmlns:fee="urn:ietf:params:xml:ns:epp:fee-1.0">
<fee:currency>USD</fee:currency>
<fee:cd avail="1">
<fee:objID>test456.website</fee:objID>
<fee:class>standard</fee:class>
<fee:command name="create">
<fee:period unit="y">1</fee:period>
<fee:fee description="Domain registration (per year)" refundable="1">20</fee:fee>
</fee:command>
</fee:cd>
</fee:chkData>


A conservative EPP client would therefore have to assume *non-standard* create pricing, which is 
surely not meant here. This leads to needlessly asking customers for price acceptance, just to be on 
the safe side (as they shall not accidentally buy a premium domain).


I guess a simple fix would be to remove the default="0", meaning that the attribute has no default 
and will therefore no longer contradict the object class if omitted (which was probably the original 
intention).


Note that I contacted Google Registry about this issue, and they replied


"Hi Thomas,


Thank you for updating us with the results of your test.


Please be advised that our omission of the standard attribute on the <command> element is 
intentional, since the RFC clearly says it is optional."


So there's evidence for confusion arising from the RFC as currently specified.


Best regards,


Thomas Corte


On 16.03.26 11:45, Thomas Corte (TANGO support) wrote:


> Hello,
> 
> while testing our connection to the upcoming registry migration to Radix's server (e.g. 
> for .website), I've come across an apparent issue with mixed signals regarding standard prices.
> 
> This check
> 
> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
> <command>
> <check>
> <check xmlns="urn:ietf:params:xml:ns:domain-1.0">
> <name>test456.website</name>
> </check>
> </check>
> <extension>
> <check xmlns="urn:ietf:params:xml:ns:epp:fee-1.0">
> <command name="create">
> <period unit="y">1</period>
> </command>
> </check>
> </extension>
> </command>
> </epp>
> 
> yields:
> 
> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
> <response>
> <result code="1000">
> <msg>Command completed successfully</msg>
> </result>
> <resData>
> <domain:chkData xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
> <domain:cd>
> <domain:name avail="1">test456.website</domain:name>
> </domain:cd>
> </domain:chkData>
> </resData>
> <extension>
> <fee:chkData xmlns:fee="urn:ietf:params:xml:ns:epp:fee-1.0">
> <fee:currency>USD</fee:currency>
> <fee:cd avail="1">
> <fee:objID>test456.website</fee:objID>
> <fee:class>standard</fee:class>
> <fee:command name="create">
> <fee:period unit="y">1</fee:period>
> <fee:fee description="Domain registration (per year)" refundable="1">20</fee:fee>
> </fee:command>
> </fee:cd>
> </fee:chkData>
> </extension>
> <trID>
> <svTRID>d412f731-84d4-4de5-9c5a-c04d899763ac</svTRID>
> </trID>
> </response>
> </epp>
> 
> Observe that the
> 
> <fee:class>standard</fee:class>
> 
> element indicates standard pricing as defined by RFC 8748:
> 
> "Servers that make use of this element MUST use a <fee:class> element with the value "standard"
> for all objects that are subject to the standard or default fee."
> 
> However, the element
> 
> <fee:command name="create">
> 
> doesn't carry the "standard" attribute, which unfortunately is defined by the RFC as
> 
> "This element MAY have the OPTIONAL "standard" attribute, with a default value of "0" (or
> "false"), which indicates whether the fee is the standard or default fee."
> 
> Now, the <fee:class> element tells an EPP client to regard the price as "standard", however the 
> lacking "standard" attribute (defaulting to false) tells the client that the prices in *not* standard.
> A conservative approach preventing customers from unknowingly buying premium domains would assume 
> non-standard pricing here, which is not what Radix's server wants to express.
> 
> While our own TANGO EPP server would return both <fee:class>standard</fee:class> and <fee:command 
> name="create" standard="true">, I wouldn't call Radix's implementation here faulty per se, as it is 
> allowed by the RFC. But it still confuses diligent clients.
> 
> I think the issue here lies with the RFC, which defines not one but *two* ways to signal standard 
> pricing, and doesn't clearly demand that they need to agree.
> I therefore believe that a correction of the RFC is in order, either by getting rid of one of the 
> signals, or by making one the definitive one (preferably the "standard" boolean attribute, with the 
> <fee:class> class remaining but being purely informational).
> 
> Thoughts?
> 
> Best regards,
> 
> Thomas
> 


-- 
TANGO REGISTRY SERVICES® is a product of:
Knipp Medien und Kommunikation GmbH
Technologiepark Phone: +49 231 9703-222
Martin-Schmeisser-Weg 9 Fax: +49 231 9703-200
D-44227 Dortmund E-Mail: support@tango-rs.com <mailto:support@tango-rs.com>
Germany




_______________________________________________
regext mailing list -- regext@ietf.org <mailto:regext@ietf.org>
To unsubscribe send an email to regext-leave@ietf.org <mailto:regext-leave@ietf.org>