Class CreateOrder

PropertyType
request
use SOAP::Lite;
use Date::Format;
$proxy = "https://aws.demo.ascio.com/v3/AscioService.svc";
$namespace = "http://www.ascio.com/2007/01";
$soap = SOAP::Lite
    ->on_action( sub { "CreateOrder" } )
    ->proxy($proxy)
    ->ns("http://www.ascio.com/2013/02", "v3")
    ->ns("http://www.ascio.com/2013/02/AscioService", "service");
    
# Please enter your ascio-credentials here

my $header = SOAP::Header->new(
            name =>"v3:SecurityHeaderDetails",
            value => {"v3:Account" => "username", "v3:Password" =>"password"} 
        );
$soap->autotype(0);
$method = SOAP::Data->name("service:CreateOrder")->attr({xmlns => $namespace});

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

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

#Registrant
$owner =  \SOAP::Data->value(
	SOAP::Data->name('v3:FirstName','John'),
	SOAP::Data->name('v3:LastName','Doe'),
	SOAP::Data->name('v3:OrgName','Ascio'),
	SOAP::Data->name('v3:Address1','Address1Test'),
	SOAP::Data->name('v3:Address2','Address2Test'),
	SOAP::Data->name('v3:City','CityTest'),
	SOAP::Data->name('v3:State','StateTest'),
	SOAP::Data->name('v3:PostalCode','888349'),
	SOAP::Data->name('v3:CountryCode','DK'),
	SOAP::Data->name('v3:Phone','+45.123456789'),
	SOAP::Data->name('v3:Fax','+45.987654321'),
	SOAP::Data->name('v3:Email',"administrator@ascio-test-domain.com"),
	SOAP::Data->name('v3:Type','owner'),
	SOAP::Data->name('v3:Details','DetailsTest'),
	SOAP::Data->name('v3:OrganisationNumber','OrganisationNumberTest'),
	SOAP::Data->name('v3:Extensions',$ownerExtensions),
	SOAP::Data->name('v3:VatNumber','VatNumberTest'),
	SOAP::Data->name('v3:NexusCategory','NexusCategoryTest')
);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Domain
$domain =  \SOAP::Data->value(
	SOAP::Data->name('v3:Name','ascio-is-great.com'),
	SOAP::Data->name('v3:Handle','JD123'),
	SOAP::Data->name('v3:RenewPeriod',1),
	SOAP::Data->name('v3:AuthInfo','X4FF!zu'),
	SOAP::Data->name('v3:EncodingType','EncodingTypeTest'),
	SOAP::Data->name('v3:DomainPurpose','DomainPurposeTest'),
	SOAP::Data->name('v3:Comment','CommentTest'),
	SOAP::Data->name('v3:TransferLock','Unlock'),
	SOAP::Data->name('v3:DeleteLock','Unlock'),
	SOAP::Data->name('v3:UpdateLock','Unlock'),
	SOAP::Data->name('v3:QueueType','QueueTypeTest'),
	SOAP::Data->name('v3:Owner',$owner),
	SOAP::Data->name('v3:Admin',$admin),
	SOAP::Data->name('v3:Tech',$tech),
	SOAP::Data->name('v3:Billing',$billing),
	SOAP::Data->name('v3:Reseller',$reseller),
	SOAP::Data->name('v3:NameServers',$nameServers),
	SOAP::Data->name('v3:Trademark',$trademark),
	SOAP::Data->name('v3:DnsSecKeys',$dnsSecKeys),
	SOAP::Data->name('v3:PrivacyProxy',$privacyProxy),
	SOAP::Data->name('v3:DomainType','DomainTypeTest'),
	SOAP::Data->name('v3:DiscloseSocialData','true'),
	SOAP::Data->name('v3:LocalPresence','false'),
	SOAP::Data->name('v3:MasterNameServerIp','MasterNameServerIpTest')
);

#DomainOrderRequest
$request =  \SOAP::Data->value(
	SOAP::Data->name('v3:Type','Register'),
	SOAP::Data->name('v3:Period',1),
	SOAP::Data->name('v3:TransactionComment','TransactionCommentTest'),
	SOAP::Data->name('v3:Comments','RegistrarTag'),
	SOAP::Data->name('v3:Documentation','DocumentationTest'),
	SOAP::Data->name('v3:Options','OptionsTest'),
	SOAP::Data->name('v3:Domain',$domain),
	SOAP::Data->name('v3:AgreedPrice',5000)
);
@query = (
	SOAP::Data->name("service:request" => $request)->attr({"xsi:type" => "v3:DomainOrderRequest"})
);
$result = $soap->call($method => @query, $header);
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 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.