Ascio Web Service v3
ERRP - Expired Registration Recovery Policy
How to send ICANN conform mails to remind that a domain is expiring.
We offer 2 methods how mails can be sent to the registrant:
1. We send e-mails to the registrant
- We send e-mail directly to your customer
- The partner adds our SPF record into the zone of the partners DNS-server. This is the SPF record:
v=spf1 ip4:212.123.41.224/28 include:_spf.hostedemail.com -all - With SPF record we can use the partners e-mail address as mail-from.
- We can create partner-templates with the partner language and text
- Please ask partnerservice for help.
You can provide us the mail-from, reply-to, subject-template, body-template and SPF. With that we can send mails and they look like yours.
2. The partner sends e-mails and uploads them as a proof
- We send a callback to an URL on the partner-server (or via PollQueue). The OrderType is Autorenew_Domain or Autodelete_Domain. The OrderId of the Autorenew_Domain or Domain is needed for the Upload_Message API-Call.It's send 35 days before the expire-date.
- The partner sends the reminder to his customer
- The partners uploads the e-mail via AWS. It contains: from, to, subject, body, date. With that we can proof the the mail was sent.
- Please ask you integration specialist Manuel Lautenschlager for help
We won't send the same reminder again, if the partner uploaded it before
Schedular for ERRP Mails
You don't need you own schedular as we send the mails, or notify you via callback that you need to send it. The mails are sent like this:
Non-expiring domains
- 35 days before expiry: Create the autorenew order and issue callback
- 26 days before expiry. Send ERRP reminder 1 to registrant unless uploaded already re 2 below
- 7 days before expiry: Issue callback reminding partner to send ERRP reminder 2 to registrant if desired
- 4 days before expiry: Send ERRP reminder 2 to registrant unless uploaded
Use this method if:
- You what to generate your individual mails with dynamic content
- You allready have a messaging-module and what to continue using it
- You have resellers as customer and you send the reminders for them
- Your company policy forces you to send your own e-mails
Expiring domains
- 35 days before expiry: Create the autodelete order and issue callback
- 26 days before expiry: Send ERRP reminder 1 to registrant
- 7 days before expiry: Issue callback reminding partner to send ERRP reminder 2 to registrant if desired
- 4 days before expiry: Send ERRP reminder 2 to registrant
- 0 days before expiry: Issue callback reminding partner to send ERRP reminder 3 to registrant if desired
- 5 days after expiry: Send ERRP reminder 3 to registrant
- 8 days after expiry: Suspend the domain by setting it to client-hold
- 8 days after expiry: Issue callback notifying partner of suspension
- Afterwards, subsequent renew order reviving the domain must remove the hold
- 30 days (typically, depending on threshold) after expiry: Delete the domain
- Afterwards, subsequent restore order reviving the domain must remove the hold
Example mail
First/Second/Third reminder test.com
Dear Mr.Smith
Your domain test.com will expire/renew at 1.1.2000.
Please click here to renew/expire your domain.Best regards ...
These mails are required
- Expiry reminder #1 (Expiry reminder #1 example)
- Expiry reminder #2 (Expiry reminder #2 example)
- Delete notification #3 (Delete notification #3 example)
- Renew notification #1 (Renewal notification #1 example)
- Renew notification #2 (Renewal notification #2 example)
Example
import zeep
import base64
from zeep import xsd, Client, Settings
# This is the test-environment. Please remove "demo." for the live-environment
wsdl = "https://aws.demo.ascio.com/v3/aws.wsdl"
settings = Settings(strict=False)
client = zeep.Client(wsdl=wsdl, settings=settings)
client.set_ns_prefix('v3','http://www.ascio.com/2013/02')
security_header_details = xsd.Element(
'{http://www.ascio.com/2013/02}SecurityHeaderDetails',
xsd.ComplexType([
xsd.Element(
'{http://www.ascio.com/2013/02}Account',
xsd.String()),
xsd.Element(
'{http://www.ascio.com/2013/02}Password',
xsd.String())
])
)
# Please enter your ascio credentials here
security_header_details_value = security_header_details(Account='account', Password='password')
# Please enter the impersonated account here
impersonation_header_details = xsd.Element(
'{http://www.ascio.com/2013/02}ImpersonationHeaderDetails',
xsd.ComplexType([
xsd.Element(
'{http://www.ascio.com/2013/02}TransactionAccount',
xsd.String())
])
)
impersonation_header_details_values = impersonation_header_details(TransactionAccount = 'sub-account')
# Attachment
attachment = {
"FileName" : "anything.jpg",
"Content" : base64.encode('1234')
}
# ArrayOfAttachment
attachments = []
# Message
message = {
"Attachments" : attachments,
"Body" : "BodyTest",
"Created" : "2024-12-21T17:39:59.052+01:00",
"FromAddress" : "administrator@ascio-test-domain.com",
"Subject" : "base64-encoded or 7 Bit ASCII",
"ToAddress" : "ToAddressTest",
"Type" : "ExpiryReminder1"
}
# UploadMessageRequest
request = {
"OrderId" : "TEST123456",
"Message" : message
}
result = client.service.UploadMessage(_soapheaders=[security_header_details_value, impersonation_header_details_values],request = request)
print(result)
WSDL for AWS v3
https://aws.demo.ascio.com/v3/aws.wsdl (OTE)
https://aws.ascio.com/v3/aws.wsdl (Live)
Please configure the IP-Whitelisting in the portal/demo-portal.
https://aws.demo.ascio.com/v3/aws.wsdl (OTE)
https://aws.ascio.com/v3/aws.wsdl (Live)
Please configure the IP-Whitelisting in the portal/demo-portal.