Ascio Web Service v2

Perl CreateOrder

Submitting an order. The Order ID is returned in the order object passed by reference. All orders are asynchrnous. That means, after the order is submitted, the partner-system must wait for a message from Ascio. Message are sent via HTTP-GET, PollQueue or Mail. With that no full-sync is necessary, like with other APIs. Most domains-transaction are done with CreateOrder. Following OrderTypes exist:

OrderTypes

Contact_Update Update contacts: Admin, Tech, Billing and Reseller. Please provice at least Admin,Tech and Billing contacts for this OrderType. You need to use Registrant_Details_Update or Owner_Change to update the registrant. Contact_Update example
Change_Locks You can change the TransferLock, DeleteLock and UpdateLocks. TransferLock: The domain can't be transfered. DeleteLock: The domain can't be deleted. UpdateLock: The domain can't be updated.
Delete_Domain The domain is deleted immediatly. The recommend process is to expire the domain instead of deleting it.
Registrant_Details_Update You can change all details, that don't change the identity of the person/company. Don't change: FirstName, LastName, OrgName, RegistrantNumber. Registrant_Details_Update example
Expire_Domain The domain is deleted at the expire-date (+threshold). Ascio uses AutoRenew, so you need to explicitly expire the domain, if you don't want it to be auto-renewed. The process is: Register or Transfer, Expire. This will stop the domain from being autorenewed. If the domain is expiring, you need to use unexpire, if you want the domain to be renewed at the expire-date. Don't use Renew to unexpire a domain
Nameserver_Update For updating nameserver. Please be aware that the glue-record must be set properly for some TLDs. Please contact partnerservice if you need help with this. Nameserver_Update example
Owner_Change Change the owner of the domain. Do this, if Registrant Details Update doesn't work, because important social data has changed. Owner_Change example
Queue_Domain Queue the domain. Please specify the Queue-Phase in Order.Options. You can find more information about the Queue-Phase in the TLD-Kit.
Register_Domain Registers a domain.
Renew_Domain Add xxx Years to your expire-date. Must be allowed by the registry. Please read the TLD-Kit to see details.
Restore_Domain Restores a deleted domains. Is only possible for weeks after deletion.
Transfer_Domain Transfers a domain. You need to provide full data, that is the same as the original data. If trade is possible, then you can provide different data and an owner-change is done during the transfer. Transfers without data are possible for: com, net, org, biz, info, us, cc, cn, com.cn, net.cn, org.cn, tv some others.
Unexpire_Domain Unexpire a domain that is expiring. If you want to simulate auto-expire, then use unexpire for your renews.
Transfer_Away The transfer away is triggered by Ascio. Only exception: If you need to set a registrar-id like for co.uk, you can use the Transfer_Away and set the new registrar-id in the options.
Autorenew_Domain This order-type is triggered by Ascio. For ICANN domains it is used, to spawn the ERRP process. If your planning to send you own ERRP messages, you can wait for our autorenew and then send it. UploadMessage will prevent Ascio from sending out ERRP mails.
Autodelete_Domain This order-type is triggered by Ascio. For ICANN domains it is used, to spawn the ERRP process. If your planning to send you own ERRP messages, you can wait for our autorenew and then send it. UploadMessage will prevent Ascio from sending out ERRP mails.
Defensive_Registration A blocking registration that isn't delegated
Name_Watch
Domain_Details_UpdateUpdate domain properties. Linked handles like Contacts, Nameservers and other Objects can't be modified with this command.
Import_Domain
Partner_Change Move a domain to another Ascio account. Please contact Partnerservice to the the permissions.
Support
DeQueue
Update_AuthInfo Update the AuthCode for the domain. Normally the Code is generated by Ascio, but for some TLDs, like .de you need to provide the Authcode with the order
Response CreateOrder(string sessionId,Order order)

Response codes

ResultCodeMessageValue
200Order validated
200Order received
400Order not validatedMessages
401Authorization failed
405Access denied

CreateOrder Request

PropertyDescription
sessionIdExample: o58t9fjgw9bjarp6q7byv13e
order

CreateOrderResponse

Property
CreateOrderResult
order

Perl example

use SOAP::Lite;
use Date::Format;
$proxy = "https://aws.demo.ascio.com/2012/01/01/AscioService.svc";
$namespace = "http://www.ascio.com/2007/01";
$soap = SOAP::Lite->on_action( sub { "http://www.ascio.com/2007/01/IOrderService/CreateOrder" } )->proxy($proxy);
$soap->autotype(0);
$method = SOAP::Data->name("CreateOrder")->attr({xmlns => $namespace});

#Registrant
$registrant =  \SOAP::Data->value(
	SOAP::Data->name('Name','ascio-is-great.com'),
	SOAP::Data->name('OrgName','Ascio'),
	SOAP::Data->name('Address1','Address1Test'),
	SOAP::Data->name('Address2','Address2Test'),
	SOAP::Data->name('City','CityTest'),
	SOAP::Data->name('State','StateTest'),
	SOAP::Data->name('PostalCode','888349'),
	SOAP::Data->name('CountryCode','DK'),
	SOAP::Data->name('Email',"administrator@ascio-test-domain.com"),
	SOAP::Data->name('Phone','+45.123456789'),
	SOAP::Data->name('Fax','+45.987654321'),
	SOAP::Data->name('RegistrantType','C1'),
	SOAP::Data->name('VatNumber','VatNumberTest'),
	SOAP::Data->name('NexusCategory','NexusCategoryTest'),
	SOAP::Data->name('RegistrantNumber','abc123445'),
	SOAP::Data->name('Details','DetailsTest')
);

#Contact
$adminContact =  \SOAP::Data->value(
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('Handle','JD123'),
	SOAP::Data->name('FirstName','John'),
	SOAP::Data->name('LastName','Doe'),
	SOAP::Data->name('OrgName','Ascio'),
	SOAP::Data->name('Address1','Address1Test'),
	SOAP::Data->name('Address2','Address2Test'),
	SOAP::Data->name('PostalCode','888349'),
	SOAP::Data->name('City','CityTest'),
	SOAP::Data->name('State','StateTest'),
	SOAP::Data->name('CountryCode','DK'),
	SOAP::Data->name('Email',"administrator@ascio-test-domain.com"),
	SOAP::Data->name('Phone','+45.123456789'),
	SOAP::Data->name('Fax','+45.987654321'),
	SOAP::Data->name('Type','owner'),
	SOAP::Data->name('Details','DetailsTest'),
	SOAP::Data->name('OrganisationNumber','OrganisationNumberTest')
);

#Contact
$techContact =  \SOAP::Data->value(
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('Handle','JD123'),
	SOAP::Data->name('FirstName','John'),
	SOAP::Data->name('LastName','Doe'),
	SOAP::Data->name('OrgName','Ascio'),
	SOAP::Data->name('Address1','Address1Test'),
	SOAP::Data->name('Address2','Address2Test'),
	SOAP::Data->name('PostalCode','888349'),
	SOAP::Data->name('City','CityTest'),
	SOAP::Data->name('State','StateTest'),
	SOAP::Data->name('CountryCode','DK'),
	SOAP::Data->name('Email',"administrator@ascio-test-domain.com"),
	SOAP::Data->name('Phone','+45.123456789'),
	SOAP::Data->name('Fax','+45.987654321'),
	SOAP::Data->name('Type','owner'),
	SOAP::Data->name('Details','DetailsTest'),
	SOAP::Data->name('OrganisationNumber','OrganisationNumberTest')
);

#Contact
$billingContact =  \SOAP::Data->value(
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('Handle','JD123'),
	SOAP::Data->name('FirstName','John'),
	SOAP::Data->name('LastName','Doe'),
	SOAP::Data->name('OrgName','Ascio'),
	SOAP::Data->name('Address1','Address1Test'),
	SOAP::Data->name('Address2','Address2Test'),
	SOAP::Data->name('PostalCode','888349'),
	SOAP::Data->name('City','CityTest'),
	SOAP::Data->name('State','StateTest'),
	SOAP::Data->name('CountryCode','DK'),
	SOAP::Data->name('Email',"administrator@ascio-test-domain.com"),
	SOAP::Data->name('Phone','+45.123456789'),
	SOAP::Data->name('Fax','+45.987654321'),
	SOAP::Data->name('Type','owner'),
	SOAP::Data->name('Details','DetailsTest'),
	SOAP::Data->name('OrganisationNumber','OrganisationNumberTest')
);

#Contact
$resellerContact =  \SOAP::Data->value(
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('Handle','JD123'),
	SOAP::Data->name('FirstName','John'),
	SOAP::Data->name('LastName','Doe'),
	SOAP::Data->name('OrgName','Ascio'),
	SOAP::Data->name('Address1','Address1Test'),
	SOAP::Data->name('Address2','Address2Test'),
	SOAP::Data->name('PostalCode','888349'),
	SOAP::Data->name('City','CityTest'),
	SOAP::Data->name('State','StateTest'),
	SOAP::Data->name('CountryCode','DK'),
	SOAP::Data->name('Email',"administrator@ascio-test-domain.com"),
	SOAP::Data->name('Phone','+45.123456789'),
	SOAP::Data->name('Fax','+45.987654321'),
	SOAP::Data->name('Type','owner'),
	SOAP::Data->name('Details','DetailsTest'),
	SOAP::Data->name('OrganisationNumber','OrganisationNumberTest')
);

#NameServer
$nameServer1 =  \SOAP::Data->value(
	SOAP::Data->name('HostName','ns1.ascio.net'),
	SOAP::Data->name('IpAddress','64.98.148.24'),
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('IpV6Address','xxxx:xxxx:xxx:xxx:xxxx'),
	SOAP::Data->name('Details','DetailsTest')
);

#NameServer
$nameServer2 =  \SOAP::Data->value(
	SOAP::Data->name('HostName','ns2.ascio.net'),
	SOAP::Data->name('IpAddress','216.40.47.100'),
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('IpV6Address','xxxx:xxxx:xxx:xxx:xxxx'),
	SOAP::Data->name('Details','DetailsTest')
);

#NameServer
$nameServer3 =  \SOAP::Data->value(
	SOAP::Data->name('HostName','ns3.ascio.net'),
	SOAP::Data->name('IpAddress','64.98.148.25'),
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('IpV6Address','xxxx:xxxx:xxx:xxx:xxxx'),
	SOAP::Data->name('Details','DetailsTest')
);

#NameServer
$nameServer4 =  \SOAP::Data->value(
	SOAP::Data->name('HostName','ns4.ascio.net'),
	SOAP::Data->name('IpAddress','216.40.47.101'),
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('IpV6Address','xxxx:xxxx:xxx:xxx:xxxx'),
	SOAP::Data->name('Details','DetailsTest')
);

#NameServer
$nameServer5 =  \SOAP::Data->value(
	SOAP::Data->name('HostName','HostNameTest'),
	SOAP::Data->name('IpAddress','IpAddressTest'),
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('IpV6Address','IpV6AddressTest'),
	SOAP::Data->name('Details','DetailsTest')
);

#NameServer
$nameServer6 =  \SOAP::Data->value(
	SOAP::Data->name('HostName','HostNameTest'),
	SOAP::Data->name('IpAddress','IpAddressTest'),
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('IpV6Address','IpV6AddressTest'),
	SOAP::Data->name('Details','DetailsTest')
);

#NameServer
$nameServer7 =  \SOAP::Data->value(
	SOAP::Data->name('HostName','HostNameTest'),
	SOAP::Data->name('IpAddress','IpAddressTest'),
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('IpV6Address','IpV6AddressTest'),
	SOAP::Data->name('Details','DetailsTest')
);

#NameServer
$nameServer8 =  \SOAP::Data->value(
	SOAP::Data->name('HostName','HostNameTest'),
	SOAP::Data->name('IpAddress','IpAddressTest'),
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('IpV6Address','IpV6AddressTest'),
	SOAP::Data->name('Details','DetailsTest')
);

#NameServer
$nameServer9 =  \SOAP::Data->value(
	SOAP::Data->name('HostName','HostNameTest'),
	SOAP::Data->name('IpAddress','IpAddressTest'),
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('IpV6Address','IpV6AddressTest'),
	SOAP::Data->name('Details','DetailsTest')
);

#NameServer
$nameServer10 =  \SOAP::Data->value(
	SOAP::Data->name('HostName','HostNameTest'),
	SOAP::Data->name('IpAddress','IpAddressTest'),
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('IpV6Address','IpV6AddressTest'),
	SOAP::Data->name('Details','DetailsTest')
);

#NameServer
$nameServer11 =  \SOAP::Data->value(
	SOAP::Data->name('HostName','HostNameTest'),
	SOAP::Data->name('IpAddress','IpAddressTest'),
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('IpV6Address','IpV6AddressTest'),
	SOAP::Data->name('Details','DetailsTest')
);

#NameServer
$nameServer12 =  \SOAP::Data->value(
	SOAP::Data->name('HostName','HostNameTest'),
	SOAP::Data->name('IpAddress','IpAddressTest'),
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('IpV6Address','IpV6AddressTest'),
	SOAP::Data->name('Details','DetailsTest')
);

#NameServers
$nameServers =  \SOAP::Data->value(
	SOAP::Data->name('NameServer1',$nameServer1),
	SOAP::Data->name('NameServer2',$nameServer2),
	SOAP::Data->name('NameServer3',$nameServer3),
	SOAP::Data->name('NameServer4',$nameServer4),
	SOAP::Data->name('NameServer5',$nameServer5),
	SOAP::Data->name('NameServer6',$nameServer6),
	SOAP::Data->name('NameServer7',$nameServer7),
	SOAP::Data->name('NameServer8',$nameServer8),
	SOAP::Data->name('NameServer9',$nameServer9),
	SOAP::Data->name('NameServer10',$nameServer10),
	SOAP::Data->name('NameServer11',$nameServer11),
	SOAP::Data->name('NameServer12',$nameServer12)
);

#TradeMark
$trademark =  \SOAP::Data->value(
	SOAP::Data->name('Name','ascio-is-great.com'),
	SOAP::Data->name('Country','DK'),
	SOAP::Data->name('Date',time2str('%Y-%m-%dT%H:%M:%SZ', time, 'EST')),
	SOAP::Data->name('Number','NumberTest'),
	SOAP::Data->name('Type','owner'),
	SOAP::Data->name('Contact','ContactTest'),
	SOAP::Data->name('ContactLanguage','ContactLanguageTest'),
	SOAP::Data->name('DocumentationLanguage','DocumentationLanguageTest'),
	SOAP::Data->name('SecondContact','SecondContactTest'),
	SOAP::Data->name('ThirdContact','ThirdContactTest'),
	SOAP::Data->name('RegDate',time2str('%Y-%m-%dT%H:%M:%SZ', time, 'EST'))
);

#DnsSecKey
$dnsSecKey1 =  \SOAP::Data->value(
	SOAP::Data->name('Handle','JD123')
);

#DnsSecKey
$dnsSecKey2 =  \SOAP::Data->value(
	SOAP::Data->name('Handle','JD123')
);

#DnsSecKey
$dnsSecKey3 =  \SOAP::Data->value(
	SOAP::Data->name('Handle','JD123')
);

#DnsSecKey
$dnsSecKey4 =  \SOAP::Data->value(
	SOAP::Data->name('Handle','JD123')
);

#DnsSecKey
$dnsSecKey5 =  \SOAP::Data->value(
	SOAP::Data->name('Handle','JD123')
);

#DnsSecKeys
$dnsSecKeys =  \SOAP::Data->value(
	SOAP::Data->name('DnsSecKey1',$dnsSecKey1),
	SOAP::Data->name('DnsSecKey2',$dnsSecKey2),
	SOAP::Data->name('DnsSecKey3',$dnsSecKey3),
	SOAP::Data->name('DnsSecKey4',$dnsSecKey4),
	SOAP::Data->name('DnsSecKey5',$dnsSecKey5)
);

#Extension
$extension =  \SOAP::Data->value(
	SOAP::Data->name('Key','Title'),
	SOAP::Data->name('Value','Mr.')
);

#Extensions
$extensions =  \SOAP::Data->value(
);

#PrivacyProxy
$privacyProxy =  \SOAP::Data->value(
	SOAP::Data->name('Type','None'),
	SOAP::Data->name('PrivacyAdmin','false'),
	SOAP::Data->name('PrivacyTech','false'),
	SOAP::Data->name('PrivacyBilling','false'),
	SOAP::Data->name('Extensions',$extensions)
);

#Domain
$domain =  \SOAP::Data->value(
	SOAP::Data->name('DomainName','testdomain123.com'),
	SOAP::Data->name('DomainHandle','DomainHandleTest'),
	SOAP::Data->name('RegPeriod',1),
	SOAP::Data->name('RenewPeriod',1),
	SOAP::Data->name('Status','StatusTest'),
	SOAP::Data->name('AuthInfo','X4FF!zu'),
	SOAP::Data->name('ExpDate',time2str('%Y-%m-%dT%H:%M:%SZ', time, 'EST')),
	SOAP::Data->name('EncodingType','EncodingTypeTest'),
	SOAP::Data->name('DomainPurpose','DomainPurposeTest'),
	SOAP::Data->name('Comment','CommentTest'),
	SOAP::Data->name('TransferLock','Unlock'),
	SOAP::Data->name('DeleteLock','Unlock'),
	SOAP::Data->name('UpdateLock','Unlock'),
	SOAP::Data->name('QueueType','QueueTypeTest'),
	SOAP::Data->name('Registrant',$registrant),
	SOAP::Data->name('AdminContact',$adminContact),
	SOAP::Data->name('TechContact',$techContact),
	SOAP::Data->name('BillingContact',$billingContact),
	SOAP::Data->name('ResellerContact',$resellerContact),
	SOAP::Data->name('NameServers',$nameServers),
	SOAP::Data->name('Trademark',$trademark),
	SOAP::Data->name('DnsSecKeys',$dnsSecKeys),
	SOAP::Data->name('PrivacyProxy',$privacyProxy),
	SOAP::Data->name('DomainType','DomainTypeTest'),
	SOAP::Data->name('DiscloseSocialData','true')
);

#Order
$order =  \SOAP::Data->value(
	SOAP::Data->name('Type','NotSet'),
	SOAP::Data->name('AccountReference','AccountReferenceTest'),
	SOAP::Data->name('Status','NotSet'),
	SOAP::Data->name('TransactionComment','TransactionCommentTest'),
	SOAP::Data->name('Comments','RegistrarTag'),
	SOAP::Data->name('Options','OptionsTest'),
	SOAP::Data->name('LocalPresence','off'),
	SOAP::Data->name('Batch','BatchTest'),
	SOAP::Data->name('Documentation','DocumentationTest'),
	SOAP::Data->name('Domain',$domain),
	SOAP::Data->name('AgreedPrice',5000)
);
@query = (
	SOAP::Data->name("sessionId" => $sessionId),
	SOAP::Data->name("order" => $order)
);
$result = $soap->call($method => @query);
unless ($result->fault) {
	$response = $result->valueof("//CreateOrderResponse/CreateOrderResult");
	print "ResultCode : $response->{'ResultCode'}\r\n";
	print "Message : $response->{'ResultMessage'}\r\n";
	print "Values: ", join(", ", $result->valueof("//CreateOrderResponse/CreateOrderResult/Errors/[>0]")), "\n";
	if ($response->{"ResultCode"} == 200) {
		$order = $result->valueof("//CreateOrderResponse/order");
		print "OrderId : $order->{'OrderId'}\r\n";
	}
}
else {
	print join ", ",
	$result->faultcode,
	$result->faultstring,
	$result->faultdetail;
}
WSDL for AWS v2
https://aws.demo.ascio.com/2012/01/01/AscioService.wsdl (OTE)
https://aws.ascio.com/2012/01/01/AscioService.wsdl (Live)
Please configure the IP-Whitelisting in the portal/demo-portal.