[regext] Re: RFC 8748 (EPP Fee Extension): issue with mixed signals regarding standard prices?
"Thomas Corte (TANGO support)" <Thomas.Corte@knipp.de> Tue, 21 April 2026 17:09 UTC
Return-Path: <Thomas.Corte@knipp.de>
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 E84E5E03ACAA for <regext@mail2.ietf.org>; Tue, 21 Apr 2026 10:09:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1776791372; bh=IR3UftYcP3d75Rdaf0rdP9RZv3lVRMFYKKnjWYaD0cc=; h=Date:Subject:From:To:References:Cc:In-Reply-To; b=sbaQSbgDLhg0Vi2pKS5CMgpG5vzqE8+W1xMpQ6moD/8Vkwkc0pUxh8oqyUx95LveP 8ceTDqbVNxZQ3B+CGGVJGZ7zXSHpWDlju8qJtPDYOa6eeFXfoPbDQFabUUD1R/X5F0 qrGvPn2PAFTRwK+eOcn/N/pxW/IfjPJR2EecmKVc=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (1024-bit key) header.d=knipp.de
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 3gHAcsbHdgOD for <regext@mail2.ietf.org>; Tue, 21 Apr 2026 10:09:31 -0700 (PDT)
Received: from kmx5a.knipp.de (kmx5a.knipp.de [IPv6:2a01:5b0:0:29::63]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id C4747E03ACA2 for <regext@ietf.org>; Tue, 21 Apr 2026 10:09:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=knipp.de; s=kmx5; t=1776791364; bh=IR3UftYcP3d75Rdaf0rdP9RZv3lVRMFYKKnjWYaD0cc=; h=Date:Subject:From:To:References:Cc:In-Reply-To:From; b=dAt0Ng+Kkc+c0ETyz5raO54UgZdHbDqQB3ivAfsV4M5HxblTGWNH8luRL7yeVweJD bNyJF1uHEi3HJ909p0DHHWNPavJ5rWcEzfSyQ69dFkl5cZr6kpZgm8p3o/ncODIHDF 1ZJZv5h2i9wm6ZCWf//aJ1McEWJblUx76LHSiiFY=
Received: from hp9000.do.knipp.de (hp9000.do.knipp.de [IPv6:2a01:5b0:0:25::36]) by kmx5a.knipp.de (Postfix) with ESMTP id 4g0TNh1wfqz4v7V; Tue, 21 Apr 2026 19:09:24 +0200 (CEST)
Authentication-Results: kmx5a.knipp.de; dkim=none; spf=pass (kmx5a.knipp.de: domain of Thomas.Corte@knipp.de designates 2a01:5b0:0:25::36 as permitted sender) smtp.mailfrom=Thomas.Corte@knipp.de; dmarc=pass (policy=none) header.from=knipp.de
Received: from [195.253.2.39] (flexo.intra.dtm.knipp.de [195.253.2.39]) by hp9000.do.knipp.de (Postfix) with ESMTP id B4F00714B1; Tue, 21 Apr 2026 19:09:23 +0200 (MESZ)
Message-ID: <c0255765-4e68-4b75-8642-6451bc481da8@knipp.de>
Date: Tue, 21 Apr 2026 19:09:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: "Thomas Corte (TANGO support)" <Thomas.Corte@knipp.de>
To: regext <regext@ietf.org>
References: <b8338834-9d22-4c28-99ba-358293f7f02d@knipp.de>
Content-Language: en-US
X-Enigmail-Draft-Status: N11222
Autocrypt: addr=Thomas.Corte@knipp.de; keydata= xsDiBDtvzjIRBAD2csyfVM8EPe+Pd/iYhwDP7fHAMCoZNsPBId4UrOQraKflyVCq2aOMVofw G2ayL377DewD+Va2GYgNes7a1bVLc0KxUCfvCKm3mLcBd8ScWaPurWMinTFHMBDm0CVIbIM6 P22HEqQ5w38W/yaisitIstU4MV9MLYttbUIZg75MvQCg/xNEFuhmmmp9hYnopxoyniDkovUD /iv7jhPtn4M/bOxCcSBYE1lJ6kILe1Z3rc5N9Ymr7uzUOffTt9JDqq9/2MujKODo5KosNC+m r6F1XC1a7KvhhjBofGHxQt9YZtCmHmdgumg5XoKwuujYG9BT1oKxj5/rnRHwT8GzxLL0YyAp Sbu6UfpAjhHAFtiL5Bg9fpDA2OAHA/9P/aSSE/FG0Rh7i6t+jZe/BCX5i4rns3UmjW7pzj/e wZENsKST72x5YVvbtXzYw620v7EFmZB99+UftXg6ggZUHkaDllR9lN75s9ih8cWI5zhj6OA8 LGsc4CqudNa0TSFdHTaHOT8QJtfP8UFJYcJd2ahOPXDIcqGd2JdGPHXO4c0kVGhvbWFzIENv cnRlIDxUaG9tYXMuQ29ydGVAa25pcHAuZGU+wksEEBECAAsFAjtvzjIECwMBAgAKCRDz5VkQ Ov//nJKaAJ4h/hksIIt3Zmkmwt7IT8VtwyYkcQCcDvapUlelcVQRKDB9cwPkZkwmQXPOwU0E O2/OMhAIAPZCV7cIfwgXcqK61qlC8wXo+VMROU+28W65Szgg2gGnVqMU6Y9AVfPQB8bLQ6mU rfdMZIZJ+AyDvWXpF9Sh01D49Vlf3HZSTz09jdvOmeFXklnN/biudE/F/Ha8g8VHMGHOfMlm /xX5u/2RXscBqtNbno2gpXI61Brwv0YAWCvl9Ij9WE5J280gtJ3kkQc2azNsOA1FHQ98iLMc fFstjvbzySPAQ/ClWxiNjrtVjLhdONM0/XwXV0OjHRhs3jMhLLUq/zzhsSlAGBGNfISnCnLW hsQDGcgHKXrKlQzZlp+r0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZJrqrol7DVekyCzsAAgIIAKOz DOAHt4rHGwJbacsUbB0O4Y7Wm5f1dEyMeh2IKWZB557W90PPMaJlKqc5BRImOgY6/mCaGY3i bn0axP/2zQe0yX1NCudPXLFzazztSBsaQeQGZ8fBo3RHMdG9QgI39KHvHRuyTJ2qiiUkB43R 5JP9uJcQ/ca9COBpFR6L05YMleh9du1EVKPoKUFjjIFrS8DTN3RuCMTvmey6U6NRyg6O6/4x VpNBZTrn4i9r3oZ0drd1UpdEuFvMpfKgch08W3EUfGQaqasrja77rwGWG1CIJfQrtgkfNiHj kX9uJRDGmKln8Q7xntQPFAx7kDId4ZcaWruEoK916HJbrmIWmWvCPwMFGDtvzjLz5VkQOv// nBECnWYAoIfyMQI8fKTCMc0pdvycfsbwCYA9AKCFE9M915HNchKGzKCxIQQbnLNXSA==
In-Reply-To: <b8338834-9d22-4c28-99ba-358293f7f02d@knipp.de>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
X-Rspamd-Action: no action
X-Spamd-Result: default: False [0.40 / 15.00]; SUBJECT_ENDS_QUESTION(1.00)[]; DMARC_POLICY_ALLOW(-0.50)[knipp.de,none]; ONCE_RECEIVED(0.20)[]; R_SPF_ALLOW(-0.20)[+ip6:2a01:5b0:0:25::36:c]; MIME_GOOD(-0.10)[text/plain]; LOCAL_WL_IP(0.00)[2a01:5b0:0:25::36]; R_DKIM_NA(0.00)[]; ALIAS_RESOLVED(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:8391, ipnet:2a01:5b0::/32, country:DE]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+]
X-Rspamd-Server: v1117
X-Rspamd-Queue-Id: 4g0TNh1wfqz4v7V
X-Spamd-Bar: /
X-Rspamd-Pre-Result: action=no action; module=multimap; Matched map: LOCAL_WL_IP
Message-ID-Hash: 5RYEO4YE366WS3EIE6LVXGG6VS346BDN
X-Message-ID-Hash: 5RYEO4YE366WS3EIE6LVXGG6VS346BDN
X-MailFrom: Thomas.Corte@knipp.de
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
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/A7h6f1bymYyomWxeWSUgmo-J6ME>
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>
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
Germany
- [regext] RFC 8748 (EPP Fee Extension): issue with… Thomas Corte (TANGO support)
- [regext] Re: RFC 8748 (EPP Fee Extension): issue … Thomas Corte (TANGO support)
- [regext] Re: RFC 8748 (EPP Fee Extension): issue … Gould, James