You are on page 1of 1091

OpenSRS API Specification for XML

June 10, 2014

Table of Contents
Introduction.......................................................................................16
Purpose..........................................................................................16
Audience.........................................................................................17
Using HTTPS Post to Access OpenSRS....................................................17
Authenticating with the OpenSRS API.................................................17
Testing environment.........................................................................17
Connection Information.....................................................................18
MD5 authentication........................................................................18
Construction of the POST Data...........................................................18
Response Messages..........................................................................19
Troubleshooting HTTPS Post...............................................................20
OpenSRS protocol...............................................................................21
Protocol message structure................................................................21
OPS message examples....................................................................25
Semantic validity and API implementation...........................................27
Submitting API commands without end-user credentials...........................30
Required parameter.......................................................................30
Potential issues................................................................................31
Not permitted: apply_to_all flag.................................................31
Incorrect credentials.................................................................31
Writing Your Own Client.......................................................................32
XML client protocol fundamentals.......................................................32
MD5 Examples.................................................................................32
Coding Examples..............................................................................34
Perl example.................................................................................34
PHP example................................................................................38
VB6 example................................................................................39
VB .NET example...........................................................................44
Java example................................................................................45
Data exchange.................................................................................51
Authentication handshake.................................................................52
Encryption.......................................................................................54
Reseller Agent Return Codes..............................................................55
Purchasing Trust Services..................................................................59
Before you begin...........................................................................60
Submitting a Trust Service SSL certificate order.................................60
Purchasing goMobi Services...............................................................61
Integrating with OpenSRS..............................................................61
Publishing Service API error response codes......................................62
Contact Set........................................................................................64
Examples for contact set...................................................................65
2

Domain contacts..............................................................................67
Default contact requirements..........................................................73
EPP contact requirements...............................................................74
.BE owner and tech contact requirements.........................................75
.CA owner, admin, and tech contact requirements..............................75
.DE admin contact requirements......................................................77
.DE owner contact requirements......................................................77
.DE zone and tech contact requirements...........................................78
.ES postal codes............................................................................79
.EU owner and tech contact requirements.........................................80
.IT contact requirements................................................................81
.MX contact requirements...............................................................83
.PRO contact requirements.............................................................84
.UK transfer-no change-admin contact requirements..........................84
.UK contact requirements...............................................................85
Trust Service contacts....................................................................86
Trust Service Admin, Billing, Signer and Tech contact requirements......88
Trust Service Organization contact requirements................................89
TLD Data........................................................................................90
.AERO registrant_extra_info............................................................90
.ASIA ced_info..............................................................................91
.AU au_registrant_info...................................................................92
.CL registrant_extra_info................................................................96
.COM.AR, .PT, and .COM.PT registrant_extra_info..............................97
.COM.BR tld_data..........................................................................97
.COOP registrant_extra_info...........................................................98
.DE registrant_extra_info................................................................98
.DK registrant_extra_info...............................................................99
.FI. MY, and .SG registrant_extra_info..............................................99
.FR registrant_extra_info..............................................................100
.HK registrant_extra_info..............................................................102
.HU, and .CO.HU registrant_extra_info...........................................102
.IT it_registrant_info....................................................................103
.JOBS registrant_extra_info..........................................................105
.LV and .COM.LV registrant_extra_info............................................106
.MX, .COM.MX, and .CO.ZA registrant_extra_info.............................107
.NO registrant_extra_info.............................................................107
.NYC registrant_extra_info............................................................108
.PM, .RE, .TF, .WF, and .YT registrant_extra_info..............................108
.PRO professional_data.................................................................110
.RO, and .COM.RO registrant_extra_info.........................................110
.RU registrant_extra_info..............................................................111
.SE and .NU registrant_extra_info..................................................113
.TRAVEL registrant_extra_info.......................................................114
.US nexus...................................................................................114
.XXX ipr_data..............................................................................115

Lookup Commands............................................................................117
belongs_to_rsp..............................................................................119
Request parameters for belongs_to_rsp..........................................119
Response parameters for belongs_to_rsp........................................119
Examples for belongs_to_rsp.........................................................120
cira_email_pwd..............................................................................123
Request parameters for cira_email_pwd..........................................123
Response parameters for cira_email_pwd........................................123
Examples for cira_email_pwd........................................................124
get_balance...................................................................................126
Request parameters for get_balance..............................................126
Response parameters for get_balance............................................126
Examples for get_balance.............................................................127
get_ca_blocker_list.........................................................................129
Request parameters for get_ca_blocker_list....................................129
Response parameters for get_ca_blocker_list..................................130
Examples for get_ca_blocker_list...................................................131
get_cert........................................................................................133
Request parameters for get_cert....................................................133
Response parameters for get_cert..................................................134
Examples for get_cert..................................................................136
get_contract..................................................................................149
Request parameters for get_contract..............................................149
Response parameters for get_contract............................................149
Examples for get_contract............................................................150
get_deleted_domains......................................................................152
Request parameters for get_deleted_domains.................................152
Response parameters for get_deleted_domains...............................154
Examples for get_deleted_domains................................................155
get (domain).................................................................................158
Request parameters for get (domain).............................................158
Response parameters for get (domain)...........................................161
Get domain examples...................................................................171
For type = admin or tech.........................................................171
For type = all_info..................................................................178
For type = ca_whois_display_setting.........................................190
For type = domain_auth_info...................................................191
For type = expire_action.........................................................193
For type = forwarding_email....................................................195
For type = list........................................................................197
For type = nameservers..........................................................200
For type = owner, admin, billing, or tech....................................202
For type = rsp_whois_info.......................................................203
For type = status....................................................................207
For type = tld_data.................................................................209
For type = waiting history........................................................220
For type = whois_privacy_state................................................222
4

For type = xpack_waiting_history.............................................223


get_domain_affiliate_id...................................................................226
Request parameters for get_domain_affiliate_id...............................226
Response parameters for get_domain_affiliate_id.............................226
Examples for get_domain_affiliate_id.............................................227
get_domains_contacts....................................................................229
Request parameters for get_domains_contacts................................229
Response parameters for get_domains_contacts..............................229
Examples for get_domains_contacts...............................................230
get_domains_by_expiredate............................................................233
Request parameters for get_domains_by_expiredate........................233
Response parameters for get_domains_by_expiredate......................234
Examples for get_domains_by_expiredate.......................................235
get_notes......................................................................................238
Request parameters for get_notes.................................................238
Response parameters for get_notes...............................................239
Examples for get_notes................................................................239
get_order_info...............................................................................242
Request parameters for get_order_info...........................................242
Response parameters for get_order_info.........................................242
Examples for get_order_info.........................................................252
get_orders_by_domain...................................................................280
Request parameters for get_orders_by_domain...............................280
Response parameters for get_orders_by_domain.............................281
Examples for get_orders_by_domain..............................................282
get_price.......................................................................................285
Request parameters for get_price..................................................285
Response parameters for get_price................................................286
Examples for get_price.................................................................286
get_product_info............................................................................288
Request parameters for get_product_info........................................288
Response parameters for get_product_info......................................289
Examples for get_product_info......................................................291
get_products.................................................................................304
Request parameters for get_products.............................................304
Response parameters for get_products...........................................305
Examples for get_products............................................................307
get_registrant_verification_status.....................................................310
Request parameters for get_registrant_verification_status................310
Response parameters for get_registrant_verification_status..............310
Examples for get_registrant_verification_status...............................312
lookup (domain).............................................................................314
Request parameters for lookup (domain)........................................314
Response parameters for lookup (domain)......................................315
Examples for lookup (domain).......................................................316
name_suggest (domain)..................................................................321
Request parameters for name_suggest (domain).............................321
Response parameters for name_suggest (domain)...........................326
5

Examples for name_suggest (domain)............................................329


uk_get_blocker_contact..................................................................376
Request parameters for uk_get_blocker_contact..............................376
Response parameters for uk_get_blocker_contact............................376
Examples for uk_get_blocker_contact.............................................377
Provisioning Commands.....................................................................382
activate (domain)...........................................................................383
Request parameters for activate (domain).......................................383
Response parameters for activate (domain).....................................383
Examples for activate (domain).....................................................384
cancel_active_process (.CA order)....................................................386
Request parameters for cancel_active_process................................386
Response parameters for cancel_active_process..............................387
Examples for cancel_active_process...............................................387
cancel_free_trial.............................................................................389
Request parameters for cancel_free_trial........................................389
Response parameters for cancel_free_trial......................................390
Examples for cancel_free_trial.......................................................391
cancel_order..................................................................................393
Request parameters for cancel_order.............................................393
Response parameters for cancel_order...........................................393
Examples for cancel_order............................................................394
cancel_pending_orders....................................................................397
Request parameters for cancel_pending_orders...............................397
Response parameters for cancel_pending_orders.............................397
Examples for cancel_pending_orders..............................................398
create_reseller...............................................................................401
Request parameters for create_reseller...........................................401
Response parameters for create_reseller.........................................402
Examples for create_reseller.........................................................402
create_token.................................................................................405
Request parameters for create_token.............................................405
Response parameters for create_token...........................................406
Examples for create_token............................................................406
modify (domain)............................................................................409
Request parameters for modify (domain)........................................409
For data = ca_whois_display_setting.........................................412
For data = change_ips_tag......................................................412
For data = cira_registrant........................................................413
For data = contact_info...........................................................415
For data = domain_auth_info...................................................417
For data = expire_action.........................................................417
For data = forwarding_email....................................................418
For data = parkpage_state.......................................................418
For data = rsp_whois_info.......................................................418
For data = status....................................................................419
For data = uk_whois_opt.........................................................420
6

For data = whois_privacy_state................................................420


Response parameters for modify (domain)......................................422
Modify (domain) Examples............................................................423
For data = ca_whois_display_setting.........................................423
For data = change_ips_tag......................................................424
For data = cira_registrant........................................................426
For data = contact_info...........................................................427
For data = domain_auth_info...................................................436
For data = expire_action.........................................................437
For data = forwarding_email....................................................439
For data = parkpage_state.......................................................440
For data = rsp_whois_info.......................................................441
For data = status....................................................................443
For data = uk_whois_opt.........................................................447
For data = whois_privacy_state................................................448
For tld_data = ced_info (.ASIA)................................................451
For tld_data = ipr_data (.XXX).................................................455
For tld_data = it_registrant_info (.IT)........................................456
For tld_data = nexus (.US)......................................................459
For tld_data =professional_data (.PRO).....................................462
For tld_data = registrant_extra_info (.COOP).............................464
For tld_data = registrant_extra_info (.JOBS)..............................465
For tld_data = registrant_extra_info (.RU).................................467
parse csr.......................................................................................470
Request parameters for parse_csr..................................................470
Response parameters for parse_csr................................................471
Examples for parse_csr................................................................472
process_pending............................................................................475
Request parameters for process_pending........................................475
Response parameters for process_pending......................................476
Examples for process_pending domain...........................................477
Examples for process_pending trust_service....................................480
query_approver_list........................................................................482
Request parameters for query_approver_list...................................482
Response parameters for query_approver_list.................................483
Examples for query_approver_list..................................................484
query_queued_request....................................................................489
Request parameters for query_queued_request...............................489
Response parameters for query_queued_request.............................489
Examples for query_queued_request..............................................490
redeem (domain)...........................................................................492
Request parameters for redeem domain..........................................492
Response parameters for redeem domain........................................492
Examples for redeem domain........................................................493
renew (domain).............................................................................495
Request parameters for renew (domain).........................................495
Response parameters for renew (domain).......................................496
Examples for renew (domain)........................................................498
7

request_on_demand_scan...............................................................501
Request parameters for request_on_demand_scan...........................501
Response parameters for request_on_demand_scan.........................501
Examples for request_on_demand_scan.........................................502
resend_approve_email....................................................................506
Request parameters for resend_approve_email................................506
Response parameters for resend_approve_email..............................506
Examples for resend_approve_email..............................................507
resend_cert_email..........................................................................509
Request parameters for resend_cert_email......................................509
Response parameters for resend_cert_email....................................509
Examples for resend_cert_email....................................................510
revoke (domain).............................................................................512
Request parameters for revoke (domain)........................................512
Response parameters for revoke (domain)......................................513
Examples for revoke (domain).......................................................513
send_CIRA_approval_email..............................................................516
Request parameters for send_CIRA_approval_email.........................516
Response parameters for send_CIRA_approval_email.......................517
Examples for send_CIRA_approval_email........................................517
send_registrant_verification_email....................................................519
Request parameters for send_registrant_verification_email...............519
Response parameters for send_registrant_verification_email.............519
Examples for send_registrant_verification_email..............................520
set_domain_affiliate_id...................................................................522
Request parameters for set_domain_affiliate_id...............................522
Response parameters for set_domain_affiliate_id.............................522
Examples for set_domain_affiliate_id.............................................523
sw_register (domain or trust_service)...............................................525
Request parameters for sw_register (domain or trust_service)...........525
Nameserver pair.....................................................................532
.BE registrations and transfers..................................................533
.CA registrations.....................................................................534
.EU registrations and transfers.................................................536
.IT transfers...........................................................................538
.MOBI registrations.................................................................538
.NAME registrations................................................................539
Trust Service orders................................................................540
Response parameters for sw_register (domain or trust_service).........548
Domain registration examples.......................................................550
For domain = .COM, .NET, .ORG, .INFO, .BIZ, .NAME, .ME, and .MOBI
............................................................................................550
For domain = .AERO...............................................................558
For domain = .ASIA................................................................562
For domain = .AU...................................................................564
For domain = .CA...................................................................567
For domain = .DE...................................................................573
For domain = .DK...................................................................576
8

For domain = .EU...................................................................579


For domain = .FR...................................................................581
For domain = .HU...................................................................583
For domain = .INFO................................................................588
For domain = .IT....................................................................590
For domain = .JOBS................................................................599
For domain = .NAME...............................................................602
For domain = .PM, .RE, .TF, .WF, or .YT.....................................604
For domain = .PRO.................................................................609
For domain = .US...................................................................612
For domain = .XXX.................................................................615
For domain = new gTLD during Sunrise period............................620
For domain = new gTLD during Claims period.............................628
Trust Service Examples.................................................................630
Domain Transfer Examples............................................................660
For domain = .AU...................................................................662
For domain = .CA...................................................................665
For domain = .DE...................................................................667
For domain = .EU or .BE..........................................................669
For domain = .IT....................................................................672
Examples for WHOIS Privacy....................................................675
update_all_info..............................................................................677
Request parameters for update_all_info..........................................677
Response parameters for update_all_info........................................679
Examples for update_all_info........................................................679
update_contacts.............................................................................682
Request parameters for update_contacts........................................682
Response parameters for update_contacts......................................683
Examples for update_contacts.......................................................684
update_order.................................................................................687
Request parameters for update_order.............................................687
Response parameters for update_order...........................................694
Examples for update_order...........................................................695
update_product..............................................................................702
Request parameters for update_product.........................................702
Response parameters for update_product.......................................703
Examples for update_product........................................................704
Sub-Reseller Commands....................................................................707
Acting on behalf of Sub-Resellers......................................................708
Example................................................................................708
create subreseller...........................................................................711
Request parameters for create subreseller.......................................711
Response parameters for create subreseller....................................712
Examples for create subreseller.....................................................713
modify subreseller..........................................................................716
Request parameters for modify subreseller......................................716
Response parameters for modify subreseller....................................717
9

Examples for modify subreseller....................................................718


get subreseller...............................................................................722
Request parameters for get subreseller...........................................722
Response parameters for get subreseller.........................................722
Examples for get subreseller.........................................................724
pay subreseller..............................................................................729
Request parameters for pay subreseller..........................................729
Response parameters for pay subreseller........................................729
Examples for pay subreseller.........................................................730
Personal Names Service.....................................................................732
name_suggest (surname)................................................................733
Request parameters for name_suggest (surname)...........................733
Response parameters for name_suggest (surname).........................734
Examples for name_suggest (surname)..........................................735
su_register....................................................................................740
Request parameters for su_register................................................740
Response parameters for su_register..............................................741
Examples for su_register..............................................................742
query (surname)............................................................................753
Request parameters for query (surname)........................................753
Response parameters for query (surname)......................................754
Examples for query (surname)......................................................755
update (surname)..........................................................................758
Request parameters for update surname.........................................758
Response parameters for update surname.......................................760
Examples for update surname.......................................................760
delete (surname)............................................................................766
Request parameters for delete (surname).......................................766
Response parameters for delete (surname).....................................766
Examples for delete (surname)......................................................767
Transfer Commands...........................................................................769
cancel_transfer..............................................................................770
Request parameters for cancel_transfer..........................................770
Response parameters for cancel_transfer........................................770
Examples for cancel_transfer.........................................................771
check_transfer...............................................................................773
Request parameters for check_transfer...........................................773
Response parameters for check_transfer.........................................774
Examples for check_transfer.........................................................776
get_transfers_away........................................................................780
Request parameters for get_transfers_away....................................780
Response parameters for get_transfers_away..................................782
Examples for get_transfers_away..................................................784
get_transfers_in.............................................................................787
Request parameters for get_transfers_in.........................................787
Response parameters for get_transfers_in......................................789
Examples for get_transfers_in.......................................................792
10

process_transfer............................................................................795
Request parameters for process_transfer........................................795
Response parameters for process_transfer......................................795
Examples for process_transfer.......................................................796
rsp2rsp_push_transfer....................................................................798
Request parameters for rsp2rsp_push_transfer................................798
Response parameters for rsp2rsp_push_transfer..............................799
Examples for rsp2rsp_push_transfer..............................................799
send_password (transfer)................................................................802
Request parameters for send_password (transfer)............................802
Response parameters for send_password (transfer)..........................802
Examples for send_password (transfer)..........................................803
trade_domain................................................................................805
Request parameters for trade_domain............................................805
Response parameters for trade_domain..........................................806
Examples for trade_domain...........................................................807
Bulk Changes Commands...................................................................815
bulk_transfer.................................................................................816
Request parameters for bulk_transfer (domains)..............................816
Response parameters for bulk_transfer (domains)............................817
Examples for bulk_transfer (domains)............................................818
submit (bulk_change).....................................................................822
Request parameters for submit (bulk_change).................................823
Response parameters for submit (bulk_change)...............................832
Examples for submit (bulk_change)...............................................832
submit_bulk_change (WHOIS Privacy)...............................................849
Request parameters for submit_bulk_change...................................849
Response parameters for submit_bulk_change.................................850
Examples for submit_bulk_change.................................................850
Nameserver Commands.....................................................................852
advanced_update_nameservers........................................................853
Request parameters for advanced_update_nameservers...................853
Response parameters for advanced_update_nameservers.................854
Examples for advanced_update_nameservers..................................855
create (nameserver).......................................................................858
Request parameters for create (nameserver)...................................858
Response parameters for create (nameserver).................................859
Examples for create (nameserver).................................................859
delete (nameserver).......................................................................868
Request parameters for delete (nameserver)...................................868
Response parameters for delete (nameserver).................................869
Examples for delete (nameserver).................................................869
get (nameserver)...........................................................................873
Request parameters for get (nameserver).......................................873
Response parameters for get (nameserver).....................................873
Examples for get (nameserver)......................................................875
11

modify (nameserver)......................................................................880
Request parameters for modify (nameserver)..................................880
Response parameters for modify (nameserver)................................881
Examples for modify (nameserver).................................................881
registry_add_ns.............................................................................885
Request parameters for registry_add_ns.........................................885
Response parameters for registry_add_ns.......................................886
Examples for registry_add_ns.......................................................887
registry_check_nameserver.............................................................890
Request parameters for registry_check_nameserver.........................890
Response parameters for registry_check_nameserver.......................891
Examples for registry_check_nameserver.......................................891
DNS Zone Commands........................................................................895
create_dns_zone............................................................................896
Request parameters for create_dns_zone........................................896
Response parameters for create_dns_zone......................................898
Examples for create_dns_zone......................................................901
delete_dns_zone............................................................................906
Request parameters for delete_dns_zone........................................906
Response parameters for delete_dns_zone......................................906
Examples for delete_dns_zone......................................................907
force_dns_nameservers..................................................................909
Request parameters for force_dns_nameservers..............................909
Response parameters for force_dns_nameservers............................909
Examples for force_dns_nameservers.............................................910
get_dns_zone................................................................................912
Request parameters for get_dns_zone............................................912
Response parameters for get_dns_zone..........................................912
Examples for get_dns_zone..........................................................915
reset_dns_zone..............................................................................919
Request parameters for reset_dns_zone.........................................919
Response parameters for reset_dns_zone.......................................919
Examples for reset_dns_zone........................................................922
set_dns_zone................................................................................928
Request parameters for set_dns_zone............................................928
Response parameters for set_dns_zone..........................................932
Examples for set_dns_zone...........................................................934
Domain Forwarding Commands...........................................................941
create_domain_forwarding..............................................................942
Request parameters for create_domain_forwarding..........................942
Response parameters for create_domain_forwarding........................942
Examples for create_domain_forwarding.........................................943
delete_domain_forwarding...............................................................945
Request parameters for delete_domain_forwarding..........................945
Response parameters for delete_domain_forwarding........................945
Examples for delete_domain_forwarding.........................................946
12

get_domain_forwarding...................................................................948
Request parameters for get_domain_forwarding..............................948
Response parameters for get_domain_forwarding............................948
Examples for get_domain_forwarding.............................................950
set_domain_forwarding...................................................................955
Request parameters for set_domain_forwarding...............................955
Response parameters for set_domain_forwarding.............................957
Examples for set_domain_forwarding.............................................957
User Commands................................................................................961
add (subuser)................................................................................962
Request parameters for add (subuser)............................................962
Response parameters for add (subuser)..........................................963
Examples for add (subuser)..........................................................963
delete (subuser).............................................................................965
Request parameters for delete (subuser)........................................965
Response parameters for delete (subuser)......................................965
Examples for delete (subuser).......................................................967
get (subuser).................................................................................969
Request parameters for get (subuser)............................................969
Response parameters for get (subuser)..........................................969
Examples for get (subuser)...........................................................970
get (userinfo)................................................................................972
Request parameters for get (userinfo)............................................972
Response parameters for get (userinfo)..........................................972
Examples for get (userinfo)...........................................................975
modify (subuser)............................................................................978
Request parameters for modify (subuser).......................................978
Response parameters for modify (subuser).....................................979
Examples for modify (subuser)......................................................979
Authentication Commands..................................................................981
change (ownership)........................................................................982
Request parameters for change (ownership)....................................982
Response parameters for change (ownership)..................................983
Examples for change (ownership)..................................................983
change (password).........................................................................985
Request parameters for change (password).....................................985
Response parameters for change (password)...................................985
Examples for change (password)...................................................986
send_authcode...............................................................................988
Request parameters for send_authcode..........................................988
Response parameters for send_authcode........................................988
Examples for send_authcode.........................................................989
send_password (domain).................................................................991
Request parameters for send_password (domain)............................991
Response parameters for send_password (domain)..........................992
Examples for send_password (domain)...........................................992
13

Cookie/Session Commands.................................................................994
delete (cookie)...............................................................................995
Request parameters for delete (cookie)..........................................995
Response parameters for delete (cookie)........................................995
Examples for delete (cookie).........................................................996
quit (session).................................................................................998
Request parameters for quit (session)............................................998
Response parameters for quit (session)..........................................998
Examples for quit (session)...........................................................998
set (cookie).................................................................................1000
Request parameters for set (cookie).............................................1000
Response parameters for set (cookie)...........................................1001
Examples for set (cookie)............................................................1002
update (cookie)............................................................................1005
Request parameters for update (cookie)........................................1005
Response parameters for update (cookie)......................................1005
Examples for update (cookie)......................................................1006
WHOIS Privacy Command.................................................................1009
change_wp_expiry_date................................................................1010
Request parameters for change_wp_expiry_date............................1010
Response parameters for change_wp_expiry_date..........................1011
Examples for change_wp_expiry_date..........................................1011
Publishing Service Commands...........................................................1013
create_alias.................................................................................1014
Request parameters for create_alias.............................................1014
Response parameters for create_alias...........................................1014
Examples for create_alias...........................................................1015
create (publishing)........................................................................1017
Request parameters for create (publishing)...................................1017
Response parameters for create (publishing).................................1018
Examples for create (publishing)..................................................1018
delete_alias.................................................................................1021
Request parameters for delete_alias.............................................1021
Response parameters for delete_alias...........................................1021
Examples for delete alias............................................................1022
delete (publishing)........................................................................1024
Request parameters for delete (publishing)...................................1024
Response parameters for delete (publishing).................................1024
Examples for delete (publishing)..................................................1025
disable (publishing).......................................................................1027
Request parameters for disable (publishing)..................................1027
Response parameters for disable (publishing)................................1027
Examples for disable (publishing).................................................1028
enable (publishing).......................................................................1030
Request parameters for enable publishing.....................................1030
Response parameters for enable publishing...................................1030
14

Examples for enable publishing....................................................1031


generate redirection code..............................................................1033
Request parameters for generate_redirection_code........................1033
Response parameters for generate_redirection_code......................1034
Examples for generate_redirection_code.......................................1034
get_alias_list................................................................................1037
Request parameters for get_alias_list...........................................1037
Response parameters for get_alias_list.........................................1037
Examples for get_alias_list..........................................................1038
get_control_panel_url...................................................................1040
Request parameters for get_control_panel_url...............................1040
Response parameters for get_control_panel_url.............................1041
Examples for get_control_panel_url..............................................1041
get service info.............................................................................1044
Request parameters for get_service_info.......................................1044
Response parameters for get_service_info.....................................1044
Examples for get_service_info.....................................................1046
let expire (publishing)...................................................................1049
Request parameters for let expire (publishing)...............................1049
Response parameters for let expire (publishing).............................1049
Examples for let expire (publishing)..............................................1050
update publishing.........................................................................1052
Request parameters for update publishing.....................................1052
Response parameters for update publishing...................................1052
Examples for update publishing...................................................1053
Appendix A: Special Considerations for Asynchronous Registries............1055
Appendix B: Customizing the Transfer Approval URL.............................1056
Regular transfers.......................................................................1056
Bulk transfers............................................................................1057
Transfers away..........................................................................1057
Appendix C: Encoding Types for IDNs.................................................1059
Revisions and Updates.....................................................................1064

15

Introduction
Welcome to the OpenSRS API guide for the registration and management of
domain names and domain related services. This document is intended for
OpenSRS Resellers who offer domains and supporting services to their
customers.
Using this document, you can provide OpenSRS functionality to your
customers by integrating the API commands into your website that can send
XML requests to OpenSRS over HTTPS Post. You can also use the API
commands to run queries or automate tasks you would otherwise perform
manually using the OpenSRS Reseller Web Interface (RWI).
You can leverage the API to allow registrants to view and update their
contact details, nameservers, transfer Authcodes, domain locking, whois
privacy, and username and password settings. Additionally, the API can be
used to perform domain availability lookups, provide domain search
suggestions and aftermarket domain lookups, as well as process
registrations, transfers, and renewals.
Registrants are set up with a profile in which multiple domains can be stored.
A profile is defined by a username, password, and one of the domains in the
profile. When requesting information or updating domain information, an
authorization cookie needs to be requested first using a domain in the profile
and the username and password for the profile. The cookie is then submitted
with the request to look up or modify a domain's details, as well as when
changing name servers assigned to a registered domain. For information on
submitting commands without using a cookie, see Submitting API
commands with end-user credentials.

Purpose
The method of sending commands to OpenSRS using HTTPS Post supports
communication between a client process and the OpenSRS system. This
document describes how to formulate the XML commands and how to use
HTTPS Post to send the XML commands to OpenSRS.
Using this document as a reference, you can use any programming language
to write an implementation that supports this communication. If you are
writing your own implementation, please refer to the "Design Considerations"
section.
The process for executing commands consists of formulating the command in
XML and sending it to OpenSRS via HTTPS Post. This guide outlines the basic
method for creating the XML in a format usable by OpenSRS and includes
some language-specific methods.
The protocol assumes that the client process that is requesting an action
waits for a result from the server process in response to the requested
action. The protocol does not support session tracking.
16

Audience
This document assumes that you are familiar with XML document design and
the methods for sending data via HTTPS Post.

Using HTTPS Post to Access OpenSRS


The OpenSRS server supports SSL encryption and handles XML posts from
OpenSRS authorized Resellers. The OpenSRS server:
Applies IP address authentication to all HTTPS Post requests.
Authenticates the user by verifying the username and MD5 signature
of the XML, signed using the Resellers private key (generated in the
RWI) in the request header.
OpenSRS uses XML, because it is a more structured and manageable
approach than using Name Value Pairs.

Authenticating with the OpenSRS API


To authenticate against the OpenSRS API service, you need your reseller
username, and a private key that you can generate from the Reseller Web
Interface. (In the Profile Management section, click Generate New Private
Key).
For the Live environment, the IP that connects to the API service must be
added to an acceptance list. In the Profile Management section of the
Reseller Web Interface, click Add IPs for Script/API Access and add the IP
address to the list of allowed addresses.

Testing environment
OpenSRS provides a full test environment to assist with developing and
testing API integration. The Horizon test environment duplicates the
functionality of the Live environment, and is connected to the test
environments of all the registry platforms.
Transactions on Horizon are not real in other words, if you register a
domain using Horizon, it is registered on the test environment of the registry
in question, but the domain does not resolve. Your Horizon account is funded
with money to simulate payment for transactions you perform. If you
required additional testing funds, you can contact Reseller Support.
The Test environment API also requires a private key, but unlike the Live
environment, it doesn't require you to authorize your IP address.

17

Connection Information
Live production environment
Server: rr-n1-tor.opensrs.net/
Port: 55443

OT&E test environment


Server: horizon.opensrs.net/
Port: 55443

MD5 authentication
The MD5 Signature provides the authentication required by OpenSRS. The
process involves two steps:

Obtain an MD5 signature of the XML Content and the Private Key.
Note: The XML and the Private Key are concatenated.

Perform another MD5 of the signature from Step 1 with the Private
Key.
Note: The MD5 Signature from Step 1 and the Private key are
concatenated.
See the section "Writing Your Own Client" for examples of adding an MD5
Signature and creating the XML packet.

Construction of the POST Data


The header for the POST data should have the following format. The items in
italics should be replaced by the user- and command-specific information.
POST / HTTP/1.0
Content-Type: text/xml
X-Username: OpenSRS Username
X-Signature: MD5 Signature
Content-Length: Length of XML Document

Following this header should be one blank line followed by the XML document
that contains the OpenSRS command data. The header combined with the
XML makes up the packet that is sent to OpenSRS to execute your command.
This packet is what is sent to the server and port listed above, depending on
your environment, to execute the command.
For more information regarding the transmission of data over HTTPS, refer to
this document: http://www.ietf.org/rfc/rfc2616.txt

18

Response Messages
The process returns a response message to a client in answer to an action
that was executed on its behalf. Responses contain data appropriate for the
action that was executed. In some cases, this may be simple strings; in other
cases, this may be lists of information. This response is returned in the form
of an XML document.

Common fields
There are a few common fields that all responses share, regardless of the
action to which they are responding. The following fields comprise a standard
response message. Some actions only use standard response messages.
Parameter
name

Definition/Value

protocol

The protocol that is being used (XCP).

action

In the case of responses, this is always REPLY.

response_code

Response code (meaning is action-specific).

response_text

Response text (meaning is action-specific).

is_success

Indicates whether the command was successful. Returns 0 if not


successful and 1 if the action was successful.

Optional fields
In addition, the structure may contain the following fields, depending on the
specific action that was requested.
Parameter
name

Definition/Value

attributes

A hash that contains any specific parameters or attributes to be


sent along with the action request.

19

Troubleshooting HTTPS Post


401 Authentication Error

Check that you are using the correct Private Key for the right system
Horizon or Production.
Check that you have the correct RSP username.
Check that the IP address of the machine transmitting the data to the
OpenSRS server is in your list of allowed IP addresses in the Reseller
Web Interface.

If the above checks are correct, the problem is with the MD5:
Ensure that you have concatenated the XML content and the Private
Key.
Ensure that you have performed an MD5 twice. See the MD5 section
for more information.
Ensure that your HTTP Post implementation is not adding any extra
information. Some implementations of HTTP Post add a NULL to the
end of the HTTP Request. This is reflected in the MD5 and causes an
authentication error.
If you are still not connecting properly, check the result of the MD5
Hash:
Some MD5 algorithms put the MD5 hash in uppercase. Make sure that
the result is in lowercase before sending it to OpenSRS.
Some MD5 algorithms need to convert the string to bytes before
generating the hash. Make sure this is done properly. You can test your
script by performing an MD5 on the following text:
Text:
ConnecttoOpenSRSviaSSL
MD5 Result:

e787cc1d1951dfec4827cede7b1a0933

Invalid XML Response


Make sure you are sending the XML. The XML used in the MD5 is only for
authentication purposes. You must also send the XML as part of the content
header.

20

OpenSRS protocol
Purpose
The purpose of the OpenSRS Protocol (OPS) is to support the passing of
messages between processes in the OpenSRS Architecture.

Design considerations
The OPS uses XML-based messages. By using a meta language to describe
the protocol, it can remain programming language-neutral.
Any appropriate transport mechanism can be used to pass OPS protocol
messages between processes, provided the message is reassembled
precisely on the receiving end. Discussion of transport mechanisms is outside
the scope of this document.

Process flow
When a process sends a message to another process, it generates an OPS
protocol message that represents the data being sent. The OPS message is
then passed to the other process, which can act on it as required and return
any information that is needed (again, as a protocol message).
The generation of protocol messages is done with an API that is written for
the particular programming language being used (for example, Perl or C++).
The API handles the details of encoding and decoding protocol messages
from and to appropriate data structures for the language being used.

Protocol message structure


DTD
An OPS protocol message is an XML document, which satisfies the following
Document Type Declaration (DTD).
ops.dtd
<!-Opensrs Protocol Suite (OPS) v 0.1
(C) Copyright 2000, Tucows Inc.
All Rights Reserved

OPS Message Definition


21

-->
<!-- Envelope -->
<!ELEMENT OPS_envelope (header,body)>
<!-- header part -->
<!ELEMENT header (version)>
<!-- body part -->
<!ELEMENT body (data_block)>
<!-- data block -->
<!ELEMENT data_block (dt_assoc | dt_array |
dt_scalar| dt_scalarref)>
<!-- data types -->
<!ELEMENT dt_assoc (dt_assoc | dt_array|
dt_scalar | dt_scalarref|
(item)*)>
<!ELEMENT dt_array (dt_assoc | dt_array |
dt_scalar | dt_scalarref |
(item)*)>
<!ELEMENT dt_scalar (#PCDATA | dt_assoc | dt_array |
dt_scalar | dt_scalarref)*>
<!ELEMENT dt_scalarref (#PCDATA | dt_assoc | dt_array |
dt_scalar | dt_scalarref)*>
<!ELEMENT item (#PCDATA |
dt_assoc | dt_array |
dt_scalar | dt_scalarref)*>

<!ATTLIST item
key

CDATA #REQUIRED

class CDATA #IMPLIED

>

<!ELEMENT version (#PCDATA)>


<!-- document information entities -->
<!ENTITY company 'Tucows'>
<!ENTITY copyright '2000, Tucows'>

22

Description
The preamble of an OPS message must contain encoding and DOCTYPE
information specifying the correct DTD (ops.dtd).
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>

The start and end of an OPS message 'envelope' are delimited by


<OPS_envelope> and </OPS_envelope> tags.
<OPS_envelope>
?
?
?
</OPS_envelope>

A message consists of two basic parts: a header and a body. The header is
delimited by <header> and </header> and contains information that is
related to protocol transport. Currently the OPS protocol version is
supported. It is delimited by <version> and </version> tags.
The body is delimited by <body> and </body> tags. Currently the body can
only contain one component, which is the 'data_block'. The data block
contains an XML representation of a data structure, which in turn contains
the information being passed by the process. The data block is delimited by
<data_block> and </data_block> tags.

Example
<OPS_envelope>
<header>
?
</header>
<body>
<data_block>
?
</data_block>
</body>
</OPS_envelope>

The data structure within the data block is a represented according to data
type. The following data types are supported:
Data type

Definition/Value

associative

<dt_assoc></dt_assoc>
23

Data type

Definition/Value

array (hash)
array

<dt_array></dt_array>

array or
associative
array elements

<item key='' [class='']></item>


Where key is the name of the key used to access the element. For
an array, it is an integer (0...N). For an associative array, it is a
string.
Example for assoc array:
<dt_assoc>
<item key='firstname'>Tom</item>
<item key='lastname'>Jones</item>
</dt_assoc>
Example for array:
<dt_array>
<item key='0'>example1.com</item>
<item key='1'>example2.com</item>
</dt_array>
The class attribute is optional. If specified, it refers to a class
name that can be used to reconstruct the data into an object when
decoded.
The actual details of this are implementation specific. For example,
for a Perl implementation the class name would be used to bless
the underlying associative array (hash), back into an object.
Example for class:
<dt_array>
<item key='0' class='myClass'>
<dt_assoc>
<item key='firstname'>Tom</item>
<item key='lastname'>Jones</item>
</dt_assoc>
</item>
</dt_array>

scalars (for
example,
strings,
integers)

<dt_scalar></dt_scalar>

scalar reference <dt_scalarref></dt_scalarref>

Data types can be arbitrarily nested. For example, you could have an array of
an array of associative arrays. Any complex data type can be represented,
provided the base data type is an array or an associative array.
24

OPS message examples


Example 1
This example shows an OPS message that encodes an associative array that
contains an array of values:
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>1.0</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='domain_list'>
<dt_array>
<item key='0'>ns1.example.com</item>
<item key='1'>ns2.example.com</item>
<item key='2'>ns3.example.com</item>
</dt_array>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
This example shows an OPS message that encodes an associative array that
contains other associative arrays:
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>1.0</version>
</header>
25

<body>
<data_block>
<dt_assoc>
<dt_assoc>
<item key='owner'>
<dt_assoc>
<item key='first_name'>Tom</item>
<item key='last_name'>Jones</item>
</dt_assoc>
</item>
<item key='tech'>
<dt_assoc>
<item key='first_name'>Anne</item>
<item key='last_name'>Smith</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 3
This example shows an OPS message that encodes a scalar value:
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>1.0</version>
</header>
<body>
<data_block>
<dt_scalar>Tom Jones</dt_scalar>
</data_block>
26

</body>
</OPS_envelope>

Semantic validity and API implementation


Any API implementation that encodes/decodes OPS messages should be
reflexive. That means that, if a message is encoded and then decoded, the
results of that decoding and the original message should be identical. In
other words:
MSG A := decode (encode (MSG A) )

Alternatively,
let MSG A' := encode (MSG A)
then MSG A

:= decode (MSG A')

This restriction can be relaxed when it comes to the ordering of array


elements and associative array elements in the OPS message. As long as the
semantic meaning of the elements is preserved (semantic equivalence), the
actual textual ordering in the XML stream is not important.
This is because the XML data structure representation uses element numbers
(in the case of array) and field names (in the case of associative arrays) to
represent the data stream, and this information can be used by the API to
reconstruct the XML representation back into an in-memory data structure.
This approach supports languages in which the ordering of elements for inmemory data structures is not deterministic., for example, Perl hashes
(associative arrays), where the physical ordering of elements within the hash
is not guaranteed.

Example 1
The following two data blocks are considered semantically the same. Notice
that the order of elements is not the same, but the key values allow the data
blocks to be decoded into the same memory structure (array).
MSG A
<data_block>
<dt_assoc>
<item key='domain_list'>
<dt_array>
<item key='0'>ns1.example.com</item>
<item key='1'>ns2.example.com</item>
<item key='2'>ns3.example.com</item>
27

</dt_array>
</dt_assoc>
</data_block>
MSG B
<data_block>
<dt_assoc>
<item key='domain_list'>
<dt_array>
<item key='2'>ns3.example.com</item>
<item key='1'>ns2.example.com</item>
<item key='0'>ns1.example.com</item>
</dt_array>
</dt_assoc>
</data_block>

Example 2
The following two data blocks are considered semantically the same. Notice
that the order of fields is not the same, but the key values allow the data
blocks to be decoded into the same memory structure (associative array).
MSG A
<data_block>
<dt_assoc>
<item key='first_name'>Tom</item>
<item key='last_name'>Jones</item>
</dt_assoc>
</data_block>

MSG B
<data_block>
<dt_assoc>
<item key='last_name'>Jones</item>
<item key='first_name'>Tom</item>
</dt_assoc>
</data_block>
28

29

Submitting API commands without enduser credentials


You can submit API commands without specifying a username and password
or a cookie.
Note: The only exception is the change (password) command.
Before you can submit commands without end-user credentials, you must
establish a secure connection with the OpenSRS server using a private key
(use either CBC:Blowfish or HTTPS-Post).

Required parameter
When you submit API commands without end-user credentials, you must
include the domain parameter to identify the domain that will be affected by
the command.

Example
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="data">nexus_info</item>
....

30

Potential issues
Not permitted: apply_to_all flag
The apply_to_all flag is normally used to apply a change to all domains in
the Reseller's profile; however, you cannot use the apply_to_all flag when
you submit commands without credentials. If you submit the apply_to_all
flag without credentials, the command will fail.

Incorrect credentials
If end-user credentials are submitted, but they are incorrect, the command
will fail.

31

Writing Your Own Client


This section contains an explanation of the OpenSRS client/server data
exchange. This information is useful if you want to write your own client.

XML client protocol fundamentals


In our XML Client Protocol (XCP), the sender of a message (request or reply)
must always precede the message with the header 'Content-Length: X',
where 'X' is the number of bytes in the actual message (without the header).
This header must be followed by a carriage return and line feed combination.
Counted bytes only occur on the first non-blank line.

Example
Content-length: 55\015\012

# carriage return/line feed

# blank lines are ignored


<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
[ etc ]

XCP allows empty space to be placed in the XML message, as long as the
XML is still valid, so empty lines or end-of-line characters may be inserted
(though they must be counted in the byte count).
For more information regarding the transmission of data over HTTPS, refer to
this document: http://www.ietf.org/rfc/rfc2616.txt

MD5 Examples
The following examples show how to add an MD5 Signature and create an XML packet
for the various client languages.

PERL
use Digest::MD5 qw/md5_hex/;
md5_hex(md5_hex($xml, $private_key),$private_key)
32

PHP
md5(md5($xml.$private_key).$private_key);

VB6
Using the di_MD5DLL.dll from DI Management
This free cryptographic software code was written or adapted in Visual Basic
and ANSI C by David Ireland.
http://www.di-mgt.com.au/crypto.html#MD5
Private Declare Function MakeMD5Digest Lib "di_MD5DLL.dll" _
(ByVal sData As String, ByVal sDigest As String) As Long
Public Function MD5Encode(ByVal sData As String) As String
Dim iRet As Long
Dim sDigest As String
' Set sDigest to be 32 chars
sDigest = String(32, " ")
iRet = MakeMD5Digest(sData, sDigest)
MD5Encode = Trim(sDigest)
End Function

MD5Encode(MD5Encode(pXMLDoc.xml & strPrivateKey) & strPrivateKey)

VB .NET
Public Function cMD5(ByVal str As String) As String
'Must have Imports System.Web.Security in General Declarations
Dim Hash As String =
FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5")
Return Hash.ToLower
End Function

cMD5(cMD5(str & PRIVATE_KEY) & PRIVATE_KEY))

JAVA
protected String md5Sum(String str) {
String sum = new String();
33

try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
sum = String.format("%032x", new BigInteger(1,
md5.digest(str.getBytes())));
} catch (Exception ex) {
}
return sum;
}
public String getSignature(String xml) {
return md5Sum(md5Sum(xml + privateKey) + privateKey);
}

Coding Examples
Perl example
#!/usr/bin/perl
use strict;
use warnings;
########################################################
# Example script that takes registrant credentials in
# from CGI variables and pulls all info about a domain.
# A cookie is requested via a subroutine and is the
# first of two calls to the API. The second is the query
# for the domain's information.
########################################################
## Reseller Configuration Variables
my $rspusername = 'username'; # Your OpenSRS Reseller User Name
my $private_key='privatekey'; # Your Private Key Generated In The RWI
## Connection Location:
my $REMOTE_HOST = "horizon.opensrs.net:55443";
## CGI Variable Handling Definitions
use vars qw(%in $cgi);
( %in, $cgi) = ();
# Required Perl Modules
34

use CGI ':cgi-lib'; # Optional To CGI Handling


use HTTP::Request::Common;
use Digest::MD5 qw/md5_hex/;
use LWP::UserAgent;
use Data::Dumper;
use XML::Simple; # Can Be Replaced With Preferred XML Parser
# NOTE: LWP requires that Crypt::SSLeay is also installed for an HTTPS
call
# Define Data And Connection Handlers And CGI Handling
my $xmltohash = new XML::Simple; # Change To XML Parser Requires Update
Here
my $ua = LWP::UserAgent->new;
# Get, Read, Parse Registrant Credentials From CGI Submitted Form
$cgi = $ENV{SCRIPT_NAME};
%in = ();
ReadParse(\%in);
my $domain = $in{domain}; # Registrant's Domain being queried
my $username = $in{username}; # Registrant's Profile User Name
my $password = $in{password}; # Registrant's Profile Password
# Set Up Output Acceptance For Browser
print "Content-type: text/html\n\n";
# Subroutine Call To Authenticate Registrant And Generate Cookie
my $cookie = create_cookie($domain,$username,$password);
# XML Call For Domain Info Defined
my $xml = "<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='object'>DOMAIN</item>
<item key='action'>GET</item>
35

<item key='cookie'>$cookie</item>
<item key='attributes'>
<dt_assoc>;
<item key='type'>all_info</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>";
# Connection And Post To OpenSRS API For Domain Info
my $request = POST (
"https://$REMOTE_HOST",
'Content-Type' => 'text/xml',
'X-Username' => $rspusername,
'X-Signature' => md5_hex(md5_hex($xml, $private_key), $private_key),
'Content' => $xml);
my $response = $ua -> request($request);
## Response Handling
#

Output from the API is provide in XML.

Two examples of outputing the response from the API follow

# XML Output Of Respone


print "XML Output\n\n";
print Dumper($response->{'_content'});
# Conversion Of XML To Perl Hash
# Change To XML Parser Requires Update Here
my $hashresponse = $xmltohash->XMLin($response->{'_content'});
# Perl Hash Output Of Response
print "\n\nHash Output\n\n";
print Dumper($hashresponse);
# Subroutine To Generate Authentication Cookie From Registrant
Credentials
sub create_cookie {
# Take In Registrant Credentials
my ($domain, $username, $password) = @_;
36

# Define XML For Authentication Cookie Generation


my $xml = "<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='object'>cookie</item>
<item key='action'>set</item>
<item key='attributes'>
<dt_assoc>
<item key='reg_password'>$password</item>
<item key='domain'>$domain</item>
<item key='reg_username'>$username</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>";
# Connection And Post To OpenSRS API For Authentication Cookie
my $request = POST (
"https://$REMOTE_HOST",
'Content-Type' => 'text/xml',
'X-Username' => $rspusername,
'X-Signature' => md5_hex(md5_hex($xml, $private_key),
$private_key),
'Content' => $xml);
my $response = $ua -> request($request);
# Conversion Of XML To Perl Hash
# Change To XML Parser Requires Update Here
37

my $hashresponse = $xmltohash->XMLin($response->{'_content'});
# Return Of Cookie Value From Hash
return ($hashresponse->{'body'}->{'data_block'}->{'dt_assoc'}>{'item'}->{'attributes'}->{'dt_assoc'}->{'item'}->{'cookie'}>{'content'});
}

PHP example
<html>
<body>
<?php
$username = "RSPUsername";
$private_key = "PrivateKey";

$xml = '<?xml version=\'1.0\' encoding="UTF-8" standalone="no" ?>


<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="object">DOMAIN</item>
<item key="action">LOOKUP</item>
<item key="protocol">XCP</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>';
38

$signature = md5(md5($xml.$private_key).$private_key);
$host = "horizon.opensrs.net";
$port = 55443;
$url = "/";
$header = "";
$header .= "POST $url HTTP/1.0\r\n";
$header .= "Content-Type: text/xml\r\n";
$header .= "X-Username: " . $username . "\r\n";
$header .= "X-Signature: " . $signature . "\r\n";
$header .= "Content-Length: " . strlen($xml) . "\r\n\r\n";
# ssl:// requires OpenSSL to be installed
$fp = fsockopen ("ssl://$host", $port, $errno, $errstr, 30);

echo "<pre>";

if (!$fp) {
print "HTTP ERROR!";
} else {
# post the data to the server
fputs ($fp, $header . $xml);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
echo htmlEntities($res);
}
fclose ($fp);
}
echo "</pre>";
?>
</body>

VB6 example
Thanks to Serguei Seleznev from Softcom Technology for developing this
script.
This Script is using di_MD5DLL.dll from DI Management. This is free
cryptographic software code that David Ireland has written or adapted in
Visual Basic and ANSI C.
39

http://www.di-mgt.com.au/crypto.html#MD5
Dim ErrNumber As Long
Dim ErrDescription As String
Const strUserName = "RSP_USERNAME"
Const strPrivateKey = "Your Private Key Gos here
Const strURL = "https://horizon.opensrs.net:55443"

Private Declare Function MakeMD5Digest Lib "di_MD5DLL.dll" _


(ByVal sData As String, ByVal sDigest As String) As Long

Sub Main()
' POST XML document using VB6 and MSXML4(has to be installed)

Dim DocToSend As MSXML2.DOMDocument


Dim pFileRequest As String
Dim strXML As String

On Error GoTo err_Main


pFileRequest = App.Path & "\Sample.XML"
strXML = ""

Set DocToSend = New MSXML2.DOMDocument


If Not ReadXMLDocument(pFileRequest, DocToSend) Then
MsgBox "Cannot read " & pFileRequest & vbCrLf & _
ErrNumber & ", " & ErrDescription, vbCritical
Exit Sub
End If

If SendRequestXML(DocToSend, strXML, strURL) Then


MsgBox "Response has come. " & strXML
' here you may save to file or reload in DOMdocument to parse
Else
MsgBox "Cannot send " & DocToSend.xml & vbCrLf & _
ErrNumber & ", " & ErrDescription, vbCritical
40

Exit Sub
End If
Set DocToSend = Nothing
Exit Sub
err_Main:
ErrNumber = Err.Number
ErrDescription = "Run-time ERROR in Main. " & Err.Description
MsgBox "Error " & ErrNumber & ", " & ErrDescription, vbCritical
End Sub

Private Function SendRequestXML( _


ByRef pXMLDoc As MSXML2.DOMDocument, _
ByRef pcTmp As String, _
ByVal pstrURL As String _
) As Boolean

Dim xmlHttp As MSXML2.XMLHTTP40

On Error GoTo err_SendRequestXML


SendRequestXML = False

Set xmlHttp = New MSXML2.XMLHTTP40


xmlHttp.Open "POST", pstrURL, False ' False - syncronous mode
xmlHttp.setRequestHeader "Content-Type", "text/xml"
xmlHttp.setRequestHeader "X-Username", strUserName
xmlHttp.setRequestHeader "X-Signature",
MD5Encode(MD5Encode(pXMLDoc.xml & strPrivateKey) & strPrivateKey)
xmlHttp.send pXMLDoc.xml

pcTmp = xmlHttp.responseXML.xml
Set xmlHttp = Nothing
SendRequestXML = True

''

'You may try to use asyncronous post

''

xmlHttp.Open "POST", pstrURL, True


41

''

xmlHttp.setRequestHeader "Content-Type", "text/xml"

''

xmlHttp.setRequestHeader "X-Username", strUserName

''
xmlHttp.setRequestHeader "X-Signature",
MD5Encode(MD5Encode(pXMLDoc.xml & strPrivateKey) & strPrivateKey)
''

xmlHttp.send pXMLDoc.xml

''

PauseSeconds 1

''

pcTmp = ""

''

If xmlHttp.readyState = 4 Then

''

'wait

'we got it

If xmlHttp.Status = 200 Then

''

pcTmp = xmlHttp.responseXML.xml

''

SendRequestXML = True

''
''

End If
Else

' let's wait for a while

''

PauseSeconds 3

''

If xmlHttp.readyState = 4 Then

''

' check again

If xmlHttp.Status = 200 Then

''

cTmp = xmlHttp.responseXML.xml

''

SendRequestXML = True

''
''
''

End If
End If
End If

Exit Function

err_SendRequestXML:
If IsObject(xmlHttp) Then Set xmlHttp = Nothing

ErrNumber = Err.Number
ErrDescription = "Run-time ERROR in SendRequestXML. " &
Err.Description

Err.Clear
End Function

42

Private Function ReadXMLDocument(ByVal pDocName As String, ByRef


pXMLDoc As MSXML2.DOMDocument) As Boolean

On Error GoTo err_ReadXMLDocument

ReadXMLDocument = False

pXMLDoc.async = False
pXMLDoc.resolveExternals = False
refered DTD
pXMLDoc.validateOnParse = False

' otherwise you must have a


' in a same directory

pXMLDoc.Load pDocName

If pXMLDoc.parseError.errorCode = 0 Then
ReadXMLDocument = True
Else
ErrNumber = pXMLDoc.parseError.errorCode
ErrDescription = "Errors in " & pXMLDoc.parseError.url & ",
line " & pXMLDoc.parseError.Line & ", pos " & pXMLDoc.parseError.linepos
ErrDescription = ErrDescription & ". Error #" & ErrNumber & ".
" & pXMLDoc.parseError.reason
End If

Exit Function
err_ReadXMLDocument:
ErrNumber = Err.Number
ErrDescription = "Run-time ERROR in ReadXMLDocument " &
Err.Description & " for " & pDocName
Err.Clear
End Function

' contents of file Sample.XML

'<?xml version="1.0" encoding="UTF-8" standalone="no"?>


'<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
'<OPS_envelope>
'

<header>
43

'

<version>0.9</version>

'

</header>

'

<body>

'
'

<data_block>
<dt_assoc>

'

<item key="object">DOMAIN</item>

'

<item key="attributes">

'

<dt_assoc>

'

<item key="domain">MyDomainToLookup.com</item>

'

</dt_assoc>

'

</item>

'

<item key="protocol">XCP</item>

'

<item key="action">LOOKUP</item>

'
'
'

</dt_assoc>
</data_block>
</body>

'</OPS_envelope>

Public Function MD5Encode(ByVal sData As String) As String


Dim iRet As Long
Dim sDigest As String
' Set sDigest to be 32 chars
sDigest = String(32, " ")
iRet = MakeMD5Digest(sData, sDigest)
MD5Encode = Trim(sDigest)
End Function

VB .NET example
Dim mypost As New OpenSRS_XMLPOST
TextBox1.Text = mypost.sendPost(RESPONSE_TEXT)
-----------------Imports System.Web.Security
Public Class OpenSRS_XMLPOST
Public Const URL_BASE = "https://horizon.opensrs.net:55443"
44

Public Const RSP_USERNAME As String = "RSP USERNAME"


Public Const PRIVATE_KEY = "Enter Private Key"
Public Function sendPost(ByVal str As String)
Dim myHttpWebRequest As New System.Net.WebClient
myHttpWebRequest.Headers.Add("Content-Type", "text/xml")
myHttpWebRequest.Headers.Add("X-Username", RSP_USERNAME)
myHttpWebRequest.Headers.Add("X-Signature", cMD5(cMD5(str &
PRIVATE_KEY) & PRIVATE_KEY))
Dim sendData As Byte() =
System.Text.Encoding.ASCII.GetBytes(str)
Dim myHttpResponse As Byte() =
myHttpWebRequest.UploadData(URL_BASE, "POST", sendData)
Return System.Text.Encoding.ASCII.GetString(myHttpResponse)
End Function
'Used to convert to MD5
Public Function cMD5(ByVal str As String) As String
'Must have Imports System.Web.Security in General Declarations
Dim Hash As String =
FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5")
Return Hash.ToLower
End Function
End Class

Java example
package net.client;
import javax.net.ssl.*;
import javax.net.SocketFactory;
import java.net.*;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
import java.security.MessageDigest;
import java.util.Hashtable;
import java.math.BigInteger;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.PostMethod;
45

import org.apache.commons.httpclient.protocol.*;
import com.pureload.task.api.TaskExecuteException;
public class SslClient {
private String privateKey;
private String

host;

private int port;


private String userName;
private Header [] headers = null;
public class MySSLSocketFactory implements SecureProtocolSocketFactory {
private TrustManager[] getTrustManager() {
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
return trustAllCerts;
}

public Socket createSocket(String host, int port) throws IOException,


UnknownHostException {
TrustManager[] trustAllCerts = getTrustManager();
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
SocketFactory socketFactory =
HttpsURLConnection.getDefaultSSLSocketFactory();
return socketFactory.createSocket(host, port);
46

}
catch (Exception ex) {
throw new UnknownHostException("Problems to connect " + host +
ex.toString());
}
}
public Socket createSocket(Socket socket, String host, int port,
boolean flag) throws IOException, UnknownHostException {
TrustManager[] trustAllCerts = getTrustManager();
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
SocketFactory socketFactory =
HttpsURLConnection.getDefaultSSLSocketFactory();
return socketFactory.createSocket(host, port);
}
catch (Exception ex) {
throw new UnknownHostException("Problems to connect " + host +
ex.toString());
}
}
public Socket createSocket(String host, int port, InetAddress
clientHost, int clientPort) throws IOException, UnknownHostException {
TrustManager[] trustAllCerts = getTrustManager();
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
SocketFactory socketFactory =
HttpsURLConnection.getDefaultSSLSocketFactory();
return socketFactory.createSocket(host, port, clientHost, clientPort);
}
catch (Exception ex) {
throw new UnknownHostException("Problems to connect " + host +
ex.toString());
}
}
47

}
public SslClient(String host, int port, String userName, String
privateKey) {
this.host=host;
this.port = port;
this.userName = userName;
this.privateKey = privateKey;
}
protected String md5Sum(String str) {
String sum = new String();
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
sum = String.format("%032x", new BigInteger(1,
md5.digest(str.getBytes())));
} catch (Exception ex) {
}
return sum;
}
public String getSignature(String xml) {
return md5Sum(md5Sum(xml + privateKey) + privateKey);
}
public String sendRequest(String xml) throws TaskExecuteException {
HttpClient client = new HttpClient();
client.setConnectionTimeout(60000);
client.setTimeout(60000);
String response = new String();
String portStr = String.valueOf(port);
Protocol.registerProtocol("https", new Protocol("https", new
MySSLSocketFactory(), port));
String signature = getSignature(xml);
String uri = "https://" + host + ":" + portStr + "/";
PostMethod postRequest = new PostMethod(uri);
postRequest.addRequestHeader("Content-Length",
String.valueOf(xml.length()));
postRequest.addRequestHeader("Content-Type", "text/xml");
48

postRequest.addRequestHeader("X-Signature", signature);
postRequest.addRequestHeader("X-Username", userName);
postRequest.setRequestBody(xml);
System.out.println("Sending https request....."+postRequest.
toString());
try {
client.executeMethod(postRequest);
}
catch (Exception ex) {
throw new TaskExecuteException("Sending post got exception ", ex);
}
response = postRequest.getResponseBodyAsString();
headers = postRequest.getRequestHeaders();
return response;
}
public String getPrivateKey() {
return privateKey;
}
public void setPrivateKey(String privateKey) {
this.privateKey = privateKey;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getUserName() {
return userName;
49

}
public void setUserName(String userName) {
this.userName = userName;
}
public Header[] getHeaders() {
return headers;
}
public void setHeaders(Header[] headers) {
this.headers = headers;
}

public static void main(String[] args) {


String privateKey = "your_private_key";
String userName = "your_user_name";
String host="horizon.opensrs.net";
int port = 55443;
String xml=
"<?xml version='1.0' encoding='UTF-8' standalone='no' ?>"+
"<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>"+
"<OPS_envelope>"+
"<header>"+
"<version>0.9</version>"+
"</header>"+
"<body>"+
"<data_block>"+
"<dt_assoc>"+
"<item key='attributes'>"+
"<dt_assoc>"+
"<item key='domain'>test-1061911771844.com</item>"+
"<item key='pre-reg'>0</item>"+
"</dt_assoc>"+
50

"</item>"+
"<item key='object'>DOMAIN</item>"+
"<item key='action'>LOOKUP</item>"+
"<item key='protocol'>XCP</item>"+
"</dt_assoc>"+
"</data_block>"+
"</body>"+
"</OPS_envelope>";
SslClient sslclient = new
SslClient(host,port,userName,privateKey);
try {
String response = sslclient.sendRequest(xml);
System.out.println("\nResponse is:\n"+response);
}
catch (TaskExecuteException e) {
e.printStackTrace();
}
}
}

Data exchange
For each line of data passed, you must prepend the data with the length of
the string packed in 'network' or big-endian order. In Perl, this is
accomplished by:
$length = pack('n', length($data));

Where $data is the information you are going to send.


For example, assuming you have a socket SERVER already open to the server
process, you could send data as follows:
print SERVER pack('n', length($data));
print SERVER $data;

Since you must always send the length of the string first, it will not work to
simply telnet to the OpenSRS server and begin issuing commands.

51

Authentication handshake
The first step in communicating with the server process is the authentication
handshake. This proceeds between the Reseller Client and Reseller Agent
(server) as follows:

Process

Description

Reseller Client

Initiates connection with Reseller Agent (server process)


on a specific TCP/IP hostname:port.
Horizon: horizon.opensrs.net:55000
Live: rr-n1-tor.opensrs.net:55000

Reseller Agent

Server sends an XCP 'check version' request.


Perl Example (hash):
{
'protocol' => 'XCP',
'action' => 'check',
'object' => 'version',
'attributes' => {
'sender' => 'OpenSRS SERVER',
'version' => '$VERSION',
'state' => 'ready'
}
}
The values of $VERSION could be something such as
'XML:0.1', which indicates the language spoken and the
minimum version of the client required by this RSA. At
this point, the only value for 'state' is 'ready'. Other states
may be added in the future.

Reseller Client

Client responds with an XCP 'check version' response


(where version is the client's protocol version.)

Note: This number should not be changed. It allows for


API changes and backward compatibility. If you change
the version number of the client, results may be
unpredictable.
Perl Example (hash):
{
'protocol' => 'XCP',
'action' => 'check',
'object' => 'version',
'attributes' => {
'sender' => 'OpenSRS CLIENT',
52

Process

Description
'version' => 'XML:0.1',
'state' => 'ready',
}
}
The only difference here is the value of the sender
attribute. Again, the only valid state at this point is
'ready'.

Reseller Client

Client sends user data for authentication. This is done


using the XCP 'authenticate user' request.

Note: As a Reseller, you have a password and a


username. Do NOT send the password in this request, it is
not needed. The current XML Perl Client actually sends
the username in both the username and password fields.
This is because the data packets are not encrypted at this
stage of the transmission.
Perl Example (hash):
{
'protocol' => 'XCP',
'action' => 'authenticate',
'object' => 'user',
'attributes' => {
'crypt_type' => '',
'username' => '',
'password' => ''
}
}
The crypt_type can be either 'des' or 'blowfish'.
5

Reseller Agent

If authentication is successful, the Reseller Agent (server


side), sends the first challenge, but without XML. The
challenge is a random number of random bits.

Reseller Client

Reseller Client The client returns the challenge's md5


checksum, encrypted with the Reseller's private key and
without XML.

Reseller Agent

If the challenge is successful, the Reseller Agent (server)


replies with an XCP 'authenticate user' response.
Perl Example (hash):
{
'protocol' => 'XCP',
'action' => 'reply',
53

Process

Description
'response_code' => '200',
'response_text' => 'Authentication Successful'
}
If the Reseller Agent deems that the Reseller Client has
failed the challenge, it closes the socket without sending a
decline reply because it is assumed that the Reseller
Client cannot understand any of the encrypted messages
anyway.
Another possible response code would be code 310, if the
Reseller's command rate is exceeded.

Reseller Client

If the Reseller Client receives a response code of 200, it


can then send its first XCP command. All further
communication for the established session is encrypted.
The first XCP command the client must send after being
authenticated is 'set (cookie)'. This is required because
the cookie is used for all further authenticated commands.

Encryption
Supported ciphers
OpenSRSWe currently supports the DES and Blowfish encryption algorithms.
The suggested method of using these encryption types is through their
respective Perl modules, Crypt::DES and Crypt::Blowfish, which are then
accessed through a common interface created by Crypt::CBC. For your
convenience, Crypt::CBC is now included in the OpenSRS client distribution.
If you are unable to install Crypt::DES or Crypt::Blowfish there is a third
option available: Crypt::Blowfish_PP, which is a module for Blowfish written
in Pure Perl (PP). Our initial testing has shown this module to be at least 10
times slower than the standard Crypt::Blowfish, but it may be used as a last
resort.

Private key
DES only supports keys of 8 bytes, while Blowfish supports keys of up to 56
bytes for greater security.
Private keys in OpenSRS are 112 characters in length (56 bytes), to provide
the maximum security for people using Blowfish. If you are an existing
customer and you are using an old key (8 bytes), you will not be able to use
the Blowfish cipher until you generate a new key. We recommend that you
generate a new private key to ensure the strongest encryption possible. Old
keys were 8 bytes in length and new keys are 56 bytes in length.
54

You can continue using the (old) 8-byte key if you only wish to use DES as
your cipher. Even if you have a new key (56 bytes), you can still use it with
the DES cipher, since Crypt::CBC only uses the portion of the private key that
is needed (in the case of DES, it simply ignores everything after the first 8
bytes).
When creating your encryption cipher, do not use the private key in raw form.
Instead, first pack the key into a hexadecimal binary string. In Perl this is
accomplished with:
$private_key = pack('H*', $private_key);

You may then use the private key to create your encryption cipher,
authenticate, and begin sending data to the server.

Reseller Agent Return Codes


Code

Response text / Explanation

200

Command Successful.
Authentication Successful.
Closing Connection.
Registration Successful.
Modification Successful.
Nameserver Update Successful.
Nameserver Added.
Nameserver Created.
Nameserver deleted.
No nameserver changes necessary.
Query Successful.
Registration successful.

210

Domain available.

211

Domain taken.

221

Domain taken (a waiting registration exists in OpenSRS).


Note: This is used for asynchronous registries only.

250

Action submitted successfully for processing to asynchronous


registry.

260

Registration is pending registrant review before completing due to


claim/trademark.

300

Exceeded max command rate. Request deferred (for asynch).

310

Exceeded max simultaneous connections.


55

Code

Response text / Explanation

350

Number of command per connection exceeded limit. Client must reauthenticate with server.
A maximum of 100 commands can be sent through one
connection/session. After 100 commands have been submitted, the
connection is closed and a new connection must be opened to submit
outstanding requests.

400

Internal server error.


Invalid Command: xxx.
Access denied: invalid IP address.
Invalid encryption method; try -des: ...
Unable to change nameserver hostname to $new_fqdn.
Unable to complete registration. Please retry.
Domain already renewed; another renewal cannot be applied until
the first request completes at the registry.

403

Contact is not valid for requested types to modify: Missing required


field: admin org_name

404

Internal Server Error.

405

Registry error: domain's nameserver not updated.


Registry error, unable to add nameserver to domain.
Registry error, unable to remove nameserver.
Registry error, nameserver creation failed.
Nameserver deletion failed at registry.
Unable to modify nameserver record.

410

Reseller authentication error.

415

Registrant (end-user) authentication error.


Invalid Cookie Supplied.
Invalid Password supplied.

430

Invalid command.

435

Permission denied, subuser permissions.


Permission Denied for Modify $type, f_owner=xxx
#modify_contact_info.
Cannot remove domain owner.
Permission Denied: not owner.
Request failed validation: Name server 'nameserver.tld' is not found
at the registry. Please double check the nameserver and re-submit.

436

This error occurs when the RM does not know what to do with the
response code returned by the RA after it talked with the registry.
56

Code

Response text / Explanation


This error usually means that the RM needs to be fixed to understand
the new response.

437

Cannot process command because there is already another request


waiting on this domain. (Used for asynchronous registries.)

440

Registration Failed: over quota.

445

Nameserver quota exceeded.

447

Sub-user limit exceeded.

460

No Cookie Supplied.
No Domain Supplied.
Modify type not specified.
Required field 'username' not provided.
Required field 'password' not provided.
Missing required field.
Missing required field: fqdn.
Missing required field: ip.
Info type not specified.
Required field 'reg_username' not provided.
Required field 'reg_password' not provided.

465

Registration Failed: Invalid data, error=


Registration Failed, error=
Unknown Modify type: xxx
Invalid data, error=#modify_contact_info.
Subuser cannot be the same as the owner.
Invalid syntax for subuser name.
Password exceeded maximum length: 20 characters.
Invalid domain name syntax.
Invalid syntax for registrant username.
Password length below minimum: 3 characters.
Invalid nameserver syntax (common_rule for nameserver).
Invalid syntax for nameserver (2nd level domain).
Invalid new nameserver hostname.
Invalid domain name syntax.
Duplicate nameserver detected for xxx.
Duplicate sortorder detected for xxx.
Invalid IP address: $ip
Unknown Info type: $type'
57

Code

Response text / Explanation


Invalid syntax for username.
Invalid registration type: $reg_type
Domain does not belong to Registrar

480

Domain xxx not owned by user.


Renewals not supported for this TLD. Response text =
'capability is not enabled for domain.ca'.
Cookie not found.
Subuser not found.
Subuser xxx not found.
Sub-User not found.
User profile for xxx/xxx not found.
Profile based on xxx not found.
Command failed: unable to verify existence of nameserver xxx.
Nameserver doesn't exist.
Unable to locate nameserver in local database.
Unable to find domain in registry.
Nameserver $fqdn not currently mapped to domain.
Nameserver not found.
Non-existent nameserver #(in registry).

481

Failed to update the contact in the registry: [531] Authorization error


Reason:V096
Domain name is not registered to your tag

485

Domain taken.
Nameserver already mapped to domain.
Nameserver $fqdn already exists (as result of request in DB or RRP).
Nameserver in use.
New nameserver hostname already in registry.

486

Entity already exists in a processing state (usually a domain


registration) Trying again in a few seconds to a minute should resolve
the issue (i.e. show it truly taken or available).

487

Domain not transferable.

541

Domain's current expiration year in registry doesn't match the year


provided by user.

58

Code

Response text / Explanation

552

Domain is less than 60 days old.


This can occur if:

Domain is not yet 60 days old.

Existing registrar has the name locked for either nonpayment


or at the end users request - requesting party needs to
contact existing registrar to resolve.

Domain name is in dispute.

The name has been deleted.

555

Domain has already been successfully renewed, with the current


expiration year matching the year provided by the user.

557

Nameserver locked.
An attempt has been made to modify or delete a name server that is
hosting a TLD in the root zone. Modifications to the root zone can
only be made with the approval of the U.S. Department of Commerce
and IANA, so if the registrar absolutely needs to modify or delete
such a name server; the action needs to be coordinated through the
registry operator using an out-of-band communications channel.
(Extracted from the RRP spec.)

702

Catch all code for errors related to communication issues.

703

Could not send command.

704

Read empty message on the socket.

705

Timed out, resubmit request.


Client timed out waiting for the RA to respond.

unnumbered Domain: <sampledomainname> Registration attempt failed: Timeout


reading client request. Client must re-authenticate with server.
A connection with the server remains open for no more than 60
seconds. If the authentication and sending of a registration request
do not complete within 60 seconds, the connection is closed and a
new connection must be opened.

Purchasing Trust Services


Each request for a Trust Service product generates an order record with an
associated order ID. The order record represents the purchase order for the
product and tracks the product request through to the final issuance of the
product itself by the Trust Service Provider. Once a Trust Service product is
successfully issued, it is considered to be an object in its own right and is
tracked by a product ID. These concepts also apply to the search
functionality which is discussed later in this document.
59

Note: Some Trust Service products have associated services that can be
initiated, or turned on or off. When making such a request, it is the product
itself that is referenced, not the order record.

Before you begin


When collecting data from a customer who is purchasing a Trust Service
product, we recommend that you take two initial steps before submitting an
order.
Step 1 Use the parse_csr command to parse the CSR for the certificate
that is submitted by the purchaser to obtain the encoded CSR data. You can
then ask the purchaser to confirm the CSR.
Step 2 (Domain Vetted Certificates Only) - Use the query_approver_list
command to query the list of email addresses that are associated with the
purchasing customer and ask them to choose one address to ensure they can
receive the approval email.
When an order is submitted through the API for a domain vetted certificate,
an approval email is sent out by the Trust Service Provider. The customer
needs to be able to receive the email, follow its instructions, and approve the
Trust Service procurement request.
The email addresses that are available for product approval include the
following:

Domains Admin and Technical Contact email addresses.

Generic predefined email addresses within the domain.

The Trust Service Providers email address for manual processing.

Some organization vetted certificates also validate the domain and require
that an approver email is chosen. Organization verification may require
additional company information to be submitted directly to the certificate
provider as part of the review process.

Submitting a Trust Service SSL certificate order


Once the CSR and approver email address have been confirmed, use the
sw_register command to submit the Trust Service order, including the
required customer data, along with the CSR and the approver email address.
Note: For Organization vetted certificates, you must provide Organization
contact information, and you will have some additional approval steps.
Once the order has completed, and the Trust Service product has been
issued, you can use the get_order_info command to query the order and
obtain the Product ID number. The Product ID number can then be used to
manage any extra features of the Trust Service product.

60

You need to specify the Product ID in the update_product command to enable


or disable the Symantec Search-in-Seal features on qualifying Symantec
Trust Service products.
Additionally, for Symantec Trust Service products, you need to specify the
Product ID in the request_on_demand_scan command to request a malware
scan on your website.

Purchasing goMobi Services


The OpenSRS Publishing Services allows you and your customers to quickly
and easily create mobile domains that make your customers businesses
easily available to mobile users.
When a customer purchases the goMobi service, a mobile site is set up on
the specified mobile hostname. The mobile website can be set up using a sub
domain or an entire domain, as long as the mobile hostname is different from
what is used for the existing website.
To fully configure the mobile service, the DNS needs to be configured for the
mobile hostname and redirection code needs to be installed on the current
website.
The redirection code sends visitors to the appropriate version of the website,
depending on the device that they're using. For example, if they are using a
mobile phone to access the website, they will see the mobile version of the
site.
It's not necessary to specify the full website when setting up the goMobi
service (though if submitted, it must be a valid site). However, for mobile
phones to be re-directed to the mobile version of a website, the redirection
code must be in place, and the source domain must be specified.
An easy-to-use goMobi control panel allows your customers to add and
configure their mobile website content.

Integrating with OpenSRS


You can implement the OpenSRS Publishing Service by setting up either a
partial or a full integration with the OpenSRS API.

Partial integration
A partial integration allows you to integrate with the OpenSRS API to process
purchases of the goMobi service. You can then direct your customers to the
unbranded self management portal that is provided by OpenSRS so that they
can access the goMobi control panel to set up and manage their mobile
websites.
This interface requires a username and password as access credentials. The
interface is accessible at a URL that includes your Reseller username.
61

Example: https://[Reseller_username].domainadmin.com
The self management interface allows the customer to manage one or more
mobile domains, access the goMobi control panel, and generate redirection
code.
In this case, when provisioning the goMobi service, you must supply your
customer with a username and password to access the self management
portal.
New orders for an existing user account require only that the username be
submitted.
Important: If customer credentials are not supplied in the provisioning
request, the customer profile will not be created and it cannot be added at a
later time.

Full integration
You can also choose to implement a full integration with the OpenSRS API
and build your own portal for your customers to use to set up and manage
the mobile website service.
In this case, end user authentication information does not need to be
provided, nor does a user account need to be created. By leveraging the
commands described in this guide, you can build a portal to allow your
customers to fully manage the mobile website service.
The OpenSRS API allows you to generate the redirection code when
requested by a customer. It also allows you to generate a temporary unique
URL that can be used to load the goMobi control panel within a frameset of
an existing web portal.
In addition, there are commands that allow you to update and manage the
configuration details and lifecycle of the goMobi service.

Publishing Service API error response codes


Code

997

998

Response text/Explanation

Could not complete API request: 500 Internal Server Error.

It is not possible to reactive a subscription which is not


suspended!

It is not possible to use expired subscription for the action!

Alias "abc.123.com" does not exist.

Alias has been already used!

Cannot access goMobi control panel due to current status.

Cannot delete due to current status.


62

Code

Response text/Explanation

Cannot disable due to current status.

Cannot re-enable due to current status.

Domain "abc.123.com" does not exist for service type


"gomobi".

Domain garbageabc123: Malformed domain.

Email address is invalid. (RFC822)

Generating code for programming language


'$programming_language' not supported.

Invalid current password.

Password contains illegal characters.

Password must be at least 8 characters in length.

Service already exists at provider.

Service already exists for abc.123.com.

There is a problem with the source domain. It must be in the


format \'www.yourdomain.com\'. Paths are also permitted
(e.g. www.yourdomain.com/path/index.html).

The source domain, and mobile domain cannot be the same.

Username already exists.

Username contains illegal characters.

Username must be at least 6 characters in length.

63

Contact Set
Rather than including the entire contact set in every command example in
this guide, where it is required, contact details are listed in a separate topic.
Every command that requires contact details contains an ellipsis (...) that
links to the topic where the contact_set parameter is defined.

Example
This example shows a portion of the sw_register command with a link to the
contact_set example.
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew"/>
<item key="link_domains">0</item>
<item key="custom_tech_contact">0</item>
<item key="contact_set">
... see "Contact Set"
</item>
...

64

Examples for contact set


...
<item key='contact_set'>
<dt_assoc>
<item key="owner">
<dt_assoc>
<item key="first_name">Owen</item>
<item key="last_name">Ottway</item>
<item key="phone">+1.4165550123x1902</item>
<item key="fax">+1.4165550124</item>
<item key="email">ottway@example.com</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak Street</item>
<item key="address2">Suite 500</item>
<item key="address3">Owner</item>
<item key="city">SomeCity</item>
<item key="state">CA</item>
<item key="country">US</item>
<item key="postal_code">90210</item>
</dt_assoc>
</item>
<item key="admin">
<dt_assoc>
<item key="first_name">Adler</item>
<item key="last_name">Adams</item>
<item key="phone">+1.4165550123x1812</item>
<item key="fax">+1.4165550125</item>
<item key="email">adams@example.com</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak Street</item>
<item key="address2">Suite 100</item>
<item key="address3">Admin</item>
<item key="city">Santa Clara</item>
<item key="state">CA</item>
<item key="country">US</item>
65

<item key="postal_code">90210</item>
</dt_assoc>
</item>
<item key="billing">
<dt_assoc>
<item key="first_name">Bill</item>
<item key="last_name">Burton</item>
<item key="phone">+1.4165550123x1248</item>
<item key="fax">+1.4165550136</item>
<item key="email">burton@example.com</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak Street</item>
<item key="address2">Suite 200</item>
<item key="address3">Billing</item>
<item key="city">Santa Clara</item>
<item key="state">CA</item>
<item key="country">US</item>
<item key="postal_code">90210</item>
</dt_assoc>
</item>
<item key="tech">
<dt_assoc>
<item key="first_name">Tim</item>
<item key="last_name">Tucker</item>
<item key="phone">+1.4165550123x1243</item>
<item key="fax">+1.4165550125</item>
<item key="email">tucker@example.com</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak Street</item>
<item key="address2">Suite 100</item>
<item key="address3">Tech</item>
<item key="city">Santa Clara</item>
<item key="state">CA</item>
<item key="country">US</item>
<item key="postal_code">90210</item>
66

</dt_assoc>
</item>
</dt_assoc>
</item>
...

Domain contacts
The following tables list the contacts that are required for each gTLD and
ccTLD.
gTld

Owner

Admin

Billing

Tech

.aero
.asia
.biz
.coop
.com
.info
.jobs
.mobi
.name
.net
.org
.pro
.tel
.xxx

ccTld

Owner

Admin

Billing

Tech

.ac
.ae
.af (.af,
.com.af,
.net.ag, .org.af)
.ag (.ag, .co.ag,
.com.ag,
67

ccTld

Owner

Admin

Billing

Tech

.net.ag,
.nom.ag, .org.ag)
.ai (.com.ai,
.net,ai, .off.ai,
.org.ai)
.am
.ar (.com.ar)
.as
.at
.au (.asn.au,
.com.au,
.net.au, .id.au,
.org.au)
.be
.br (.com.br)
.bz
.ca
.cc
.cd
.ch
.cl
.cm
.co.cm
.com.cm
.net.cm
.co (.co, .com.co,
.net.co, .nom.co)
.cx
.cz
.de
.dk

68

ccTld

Owner

Admin

Billing

Tech

.ec (.ec,
.com.ec, .fin.ec,
.info.ec,
.med.ec,
.net.ec, .pro.ec)
.es (.es,
.com.es,
.nom.es, .org.es)
.eu
.fi
.fm
.fr
.gd
.gg (.gg,
.co.gg, .net.gg,
.org.gg)
.gl (.gl, .co.gl,
.com.gl, .net.gl,
.org.gl)
.gr (.com.gr,
.edu.gr, .net.gr,
.org.gr)
.gs
.gy (.gy,
.co.gy,
.com.gy, .net.gy)
.hk
.hm
.hn (.hn, .com.hn,
.net.hn, .org.hn)
.hr (.com.hr)
.ht (.ht,
.com.ht,
.info.ht, .net.ht,
.org,ht)
.hu (.hu, .co.hu)
.il (.co.il)
.im (.im, .co.im,
69

ccTld

Owner

Admin

Billing

Tech

.com.im,
.net.im, .org.im)
.in (.in, .co.in,
.firm.in, .gen.in,
.ind.in, .net.in,
.org.in)
.io
.is
.it
.je (.je, .co.je)
.jp
.kg
.ki (.biz.ki,
.com.ki,
.info.ki,
.mobi.ki,
.net.ki, .tel.ki)
.kr
.co.kr
.la
.lc (.lc, .co.lc,
.com.lc, .l.lc,
.net.lc, .org.lc,
.p.lc)
.li
.lt
.lu
.lv
.com.lv
.ly (.ly, .com.ly)
.ma
.co.ma
.md
.me
70

ccTld

Owner

Admin

Billing

Tech

.mn
.ms
.mu
.mx (.mx,
.com.mx)
.my (.my,
.com.my, .net.my,
.org.my)
.nl
.no
.nu
.nz (.co.nz,
.net.nz, .org.nz)
.pe (.pe,
.com.pe, .net.pe)
ph (.ph, .com.ph,
.net.ph, .org.ph)
.pl (.pl, .biz.pl
.com.pl, .edu.pl,
.info.pl, .net.pl,
.nom.pl, .org.pl,
.shop.pl, .waw.pl)
.pm
.pr (.com.pr)
.pt (.pt, .com.pt)
.pw
.qa
.re
.ro (.ro, .com.ro)
.ru (.ru, .com.ru)
.sb (.com.sb,
.net.sb, .org.sb)
71

ccTld

Owner

Admin

Billing

Tech

.sc
.com.sc
.net.sc
.org.sc
.se
.sg
.sh
.si
.so (.so, .com.so,
.net.so, .org.so)
.sr
.st
.sx
.tc
.tf
.tk
.tl
.tm
.to
.tv
.tw (.tw,
.com.tw, .org.tw,
idv.tw)
.ua (.com.ua)
.uk (.co.uk,
.ltd.uk, .me.uk,
.net.uk,
.org.uk, .plc.uk)
.us
72

ccTld

Owner

Admin

Billing

Tech

.uy (.com.uy)
.vc (.vc, .com.vc,
.net.vc, .org.vc)
.ve (.co.ve,
.com.ve)
.vg
.wf
.ws
.yt
.za (.co.za)

Default contact requirements


Note: Fields cannot contain leading or trailing white-spaces.

Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum 64 alphanumeric characters.

last_name

Required

Maximum 64 alphanumeric characters.

org_name

Required

Maximum 64 alphanumeric characters.

address1

Required

Maximum 100 alphanumeric characters.

address2

Optional

Maximum 100 alphanumeric characters.

address3

Optional

Maximum 100 alphanumeric characters.

city

Required

Maximum 64 alphanumeric characters.

state

Required if
Maximum 32 alphanumeric characters.
country =
.CA, .US, or .ES
Not required
for .NL

postal_code

Required

Maximum 32 alphanumeric characters.


Note: For .NL, ensure that the postal code does
not include any spaces.

country

Required

2 letter ISO country code.

phone

Required

Maximum 20 characters, in the format


+CCC.NNNNNNNNNNxEEEE, where C = country
code, N = phone number, and E = extension
73

Parameter
name

Obligation

Format/Constraints
(optional).

fax

Optional

Maximum 20 alphanumeric characters.

email

Required

Maximum 255 alphanumeric characters, validated


according to rfc822.

EPP contact requirements


Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum 64 alphanumeric characters.

last_name

Required

Maximum 63 alphanumeric characters.

org_name

Required

Maximum 64 alphanumeric characters.

address1

Required

Maximum 64 alphanumeric characters.

address2

Optional

Maximum 64 alphanumeric characters.

address3

Optional

Maximum 64 alphanumeric characters.

city

Required

Maximum 64 alphanumeric characters.

state

Required if
Maximum 32 alphanumeric characters.
country = CA or
US
Not required
for .NL

postal_code

Required

Maximum 16 alphanumeric characters.


Note: For .NL, ensure that the postal code does
not include any spaces.

country

Required

2 letter ISO country code.

phone

Required

Maximum 20 alphanumeric characters, syntax


verified according to EPP.

fax

Optional

Maximum 20 alphanumeric characters, in the


format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional).

email

Required

Maximum 64 characters to left of and 63 characters


right of "@" sign, alphanumeric characters,
validated according to rfc822.

74

.BE owner and tech contact requirements


Two contacts are required for .BE domains: 'owner' and 'tech'. If you submit
other contact types, they are ignored.
Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Required

Maximum length: 64 alphanumeric characters.

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric characters.

state

Required if
Maximum length: 32 alphanumeric characters.
country = CA or
US

postal_code

Required

Maximum length: 20 alphanumeric characters.

country

Required

Maximum length: 2 alphanumeric characters.

phone

Required

Maximum length: 20 alphanumeric characters, in


the format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional).

fax

Optional

Maximum length: 20 alphanumeric characters,


syntax verified according to EPP.

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

lang

Required

Maximum length: 2 alpha characters, must be one


of designated languages for .BE (see the language
list for .BE).

vat

Optional

Valid Value-Added Tax registration number of the


contact.

.CA owner, admin, and tech contact requirements


Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Optional for
individuals

Maximum length: 64 alphanumeric characters.

75

Parameter
name

Obligation

Format/Constraints

address1

Optional

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required for
admin and
tech; optional
for owner

Maximum length: 64 alphanumeric characters.

state

Required for
admin and
tech; optional
for owner

A valid 2 letter code for the Canadian province.

Alberta = AB

British Columbia = BC

Manitoba = MB

New Brunswick = NB

Newfoundland and Labrador = NL

Northwest Territories = NT

Nova Scotia = NS

Nunavut = NU

Ontario = ON

Prince Edward Island = PE

Quebec = QC

Saskatchewan = SK

Yukon = YT

postal_code

Required for
admin and
tech; optional
for owner

Maximum length: 32 alphanumeric characters.

country

Required for
admin and
tech; optional
for owner

Maximum length: 2 alphanumeric characters

phone

Required for
admin and
tech; optional
for owner

Maximum length: 20 alphanumeric characters, in


the format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional).

fax

Optional

Maximum length: 20 alphanumeric characters.

email

Required for
admin and
tech; optional
for owner

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

76

Parameter
name

Obligation

Format/Constraints

lang

Required

The contact's preferred language. The default is


English.
Allowed values are:

EN = English

FR = French

.DE admin contact requirements


Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Required

Maximum length: 64 alphanumeric characters.

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric characters.

state

Required if
country = CA
or US

Maximum length: 32 alphanumeric characters.

postal_code

Required

Maximum length: 20 alphanumeric characters.

country

Required

Maximum length: 2 alphanumeric characters.

phone

Required

Maximum length: 20 alphanumeric characters, in


the format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional).

fax

Optional

Maximum length: 20 alphanumeric characters, if


not null syntax verified according to EPP.

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

Additional rules
SUM (org_name address1 address2 address3) not to exceed 255 characters.

.DE owner contact requirements


Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.


77

Parameter
name

Obligation

Format/Constraints

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Required

Maximum length: 64 alphanumeric characters.

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric characters.

state

Required if
Maximum length: 32 alphanumeric characters.
country = CA or
US

postal_code

Required

Maximum length: 20 alphanumeric characters.

country

Required

Maximum length: 2 alphanumeric characters.

phone

Required

Maximum length: 20 alphanumeric characters, in


the format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional).

fax

Optional

Maximum length: 20 alphanumeric characters, if


not null syntax verified according to EPP.

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

Additional rules
SUM (first_name last_name address1 address2 address3 postal_code city)
must not exceed 248 characters.
SUM (org_name address1 address2 address3) not to exceed 255 characters.

.DE zone and tech contact requirements


Note: Submit .DE zone contact information as contact type billing.

Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Required

Maximum length: 64 alphanumeric characters.

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric characters.


78

Parameter
name

Obligation

Format/Constraints

state

Required if
Maximum length: 32 alphanumeric characters.
country = CA or
US

postal_code

Required

Maximum length: 20 alphanumeric characters.

country

Required

Maximum length: 2 alphanumeric characters.

phone

Required

Maximum length: 20 alphanumeric characters, in


the format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional).

fax

Required

Maximum length: 20 alphanumeric characters, if


not null syntax verified according to EPP.

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

Additional rules
SUM(org_name address1 address2 address3) not to exceed 255 characters.

.ES postal codes


When registering a .ES name, the postal code must correspond to the
province for each of the contacts. Refer to the chart below for the two digit
postal code prefix that applies to each province.
Postal code
prefix

Province

Postal code
prefix

Province

01

Araba

27

Lugo

02

Albacete

28

Madrid

03

Alicante

29

Malaga

04

Almeria

30

Murcia

05

Avila

31

Navarr

06

Badajoz

32

Ourense

07

Illes Balears

33

Asturias

08

Barcelona

34

Palencia

09

Burgos

35

Palmas, Las

10

Caceres

36

Pontevedra
79

Postal code
prefix

Province

Postal code
prefix

Province

11

Cadiz

37

Salamanca

12

Castellon

38

Santa Cruz de Tenerife

13

Ciudad Real

39

Cantabria

14

Cordoba

40

Segovia

15

Corua, A

41

Sevilla

16

Cuenca

42

Soria

17

Girona

43

Tarragona

18

Granada

44

Teruel

19

Guadalajara

45

Toledo

20

Gipuzkoa

46

Valencia

21

Huelva

47

Valladolid

22

Huesca

48

Bizkaia

23

Jaen

49

Zamora

24

Leon

50

Zaragoza

25

Lleida

51

Ceuta

26

Rioja, La

52

Melilla

.EU owner and tech contact requirements


Only two contacts are accepted for .EU domains: 'owner' and 'tech'. If you
submit other contact types, they are ignored.
Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Required

Maximum length: 64 alphanumeric characters.

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric character


80

Parameter
name

Obligation

Format/Constraints

state

Optional

Maximum length: 32 alphanumeric characters.

postal_code

Optional

Maximum length: 20 alphanumeric characters.

country

Required

Maximum length: 2 alphanumeric characters, for


owner contact the country must be one of the
designated countries for .EU (see the country list
for .EU).

phone

Required

Maximum length: 15 alphanumeric characters, in


the format +CCC.NNNNNNNNNN, where C =
country code and N = phone number.

fax

Optional

Maximum length: 20 alphanumeric characters, if


not null syntax verified according to EPP.

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

lang

Required

Maximum length: 2 alpha characters, must be one


of designated languages for .EU (see the language
list for .EU).

vat

Optional

Valid Value-Added Tax registration number of the


requesting contact.

.IT contact requirements


Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Required if
entity_type is Maximum length: 64 alphanumeric characters.
not 1

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric characters.

state

Required

Maximum length: 32 alphanumeric characters.


If country = IT, province must be a valid Italian
province. (See
http://en.wikipedia.org/wiki/ISO_3166-2:IT ).

81

Parameter
name

Obligation

Format/Constraints

postal_code

Required

Maximum length: 16 alphanumeric characters.


If country = IT, postal_code must be a valid
Italian postal code. (See
http://en.wikipedia.org/wiki/List_of_postal_codes_i
n_Italy)

country

Required

The ISO 3166-1 country code for the owner


contact. Maximum length: 2 alphanumeric
characters. (See nationality_code for
requirements.)
Note: Be sure to use capital letters.

phone

Required

Maximum length: 20 alphanumeric characters, in


the format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional).

fax

Optional

Maximum length: 20 alphanumeric characters, if


not null syntax verified according to EPP.

email

Required

Maximum length: 100 alphanumeric characters,


validated according to rfc822.

entity_type

Required

A numeric entry that indicates the type of domain


owner.
Valid values are:

nationality_
code

Optional

1Italian and foreign natural persons

2Companies/one man companies

3Freelance workers/professionals

4Non-profit organizations

5Public organizations

6Other subjects

7Foreigners who match 2-6

The ISO 3166-1 code for the nationality of the


domain owner. Maximum length: 2 alphanumeric
characters.
If entity_type = 1, nationality or owner's country
or both must be an EU country.
If entity_type = 2-6, this value must be IT.
If entity_type = 7, this value must match owner's
country and must be an EU country other than IT.
Note: Be sure to use capital letters.

82

Parameter
name

Obligation

Format/Constraints

reg_code

Required

An identifying number, usually the VAT or Codice


Fiscale (numeric tax code). The value that you
need to enter depends on the entity type of the
registrant.

Italian citizens must enter their Codice


Fiscale.

Non Italians not living in Italy can enter


n.a.

Italian companies, freelancers, and other


subjects must enter their 11 digit VAT
number or tax indentification number.

Italian non-profit organizations must enter


their VAT number or tax identification
number; however, if they do not have
one,they can enter n.a.

Non Italian entities other than persons


(organizations, freelancers, companies,
etc.) may enter their VAT number or n.a.

.MX contact requirements


Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum 64 alphanumeric characters.

last_name

Required

Maximum 64 alphanumeric characters.

org_name

Required

Maximum 64 alphanumeric characters.

address1

Required

Maximum 64 alphanumeric characters.

address2

Optional

Maximum 64 alphanumeric characters.

address3

Optional

Maximum 64 alphanumeric characters.

city

Required

Maximum 64 alphanumeric characters.

Required if
state/province country = CA,
MX, or US

A valid 2 letter code for the state or province

postal_code

Required

Maximum 16 alphanumeric characters.

country

Required

2 letter ISO country code.

phone

Required

Maximum 20 alphanumeric characters, syntax


83

Parameter
name

Obligation

Format/Constraints
verified according to EPP.

fax

Optional

Maximum 20 alphanumeric characters, in the


format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional).

email

Required

Maximum 64 characters to left of and 63 characters


right of "@" sign, alphanumeric characters,
validated according to rfc822.

.PRO contact requirements


The PRO registry does not support extensions in phone and fax numbers. If
you include an extension in the number, for example, +1.4165550123x1234,
the string will be accepted, but the registry drops the extension part of the
number and the resulting number becomes +1.4165550123.

.UK transfer-no change-admin contact


requirements
Note: The admin contact information is only used by OpenSRS, and the
information is not forwarded to the .UK registry.

Parameter
name

Obligation

Format/Constraints

first_name

Optional

Maximum length: 64 alphanumeric characters.

last_name

Optional

Maximum length: 64 alphanumeric characters.

org_name

Optional

Maximum length: 64 alphanumeric characters.

address1

Optional

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Optional

Maximum length: 64 alphanumeric characters.

state

Optional

Maximum length: 32 alphanumeric characters.

postal_code

Optional

Maximum length: 32 alphanumeric characters.

country

Optional

Maximum length: 2 alphanumeric characters

phone

Optional

Maximum length: 20 alphanumeric characters, in


the format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional), 7 bit ASCII only.

fax

Optional

Maximum length: 20 alphanumeric characters.


84

Parameter
name

Obligation

Format/Constraints

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

.UK contact requirements


Note: Technical contact information is not required or accepted for .UK.

Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Optional

Maximum length: 64 alphanumeric characters.

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric characters.

state

Required if
Maximum length: 32 alphanumeric characters.
country = CA or
US

postal_code

Required

Maximum length: 32 alphanumeric characters.

country

Required

Maximum length: 2 alphanumeric characters.

phone

Required

Maximum length: 20 alphanumeric characters, in


the format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional).

fax

Optional

Maximum length: 20 alphanumeric characters.

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

85

Trust Service contacts


This table lists the contacts that are required for each of the available Trust
Service products.
Admin

Billing

Tech

Organization

Signer

Comodo
EV SSL
InstantSSL
PremiumSSL
PremiumSSL Wildcard
SSL
SSL Wildcard

GeoTrust
QuickSSL
QuickSSL Premium
True BusinessID
True BusinessID
Wildcard
True BusinessID with EV

SiteLock
Basic
Premium
SMB Enterprise Secure

Symantec
SecureSite
SecureSite Pro
SecureSite with EV
SecureSite Pro with EV

thawte
SSL123
86

Admin

Billing

Tech

Organization

Signer

SGC SuperCerts
SSL Webserver
Certificate
SSL Webserver
Certificate with EV
SSL Webserver
Certificate Wildcard

TRUSTe
Privacy Policy
Privacy Policy with Seal

Trustwave
Domain Vetted (DV)
Premium EV
Premium SSL
Premium SSL Wildcard

87

Trust Service Admin, Billing, Signer and Tech


contact requirements
Most of the Trust Service products require Admin, Billing, and Tech contact
details. Please note the following exceptions:
Trustwave certificates require only the Admin contact and must include
first_name, last_name, address1, city, postal_code, state, country, email,
and phone.
Comodo certificates, other than EV, require only the Organization contact,
and must include org_name, address1, city, postal_code, state, country, and
email.
Comodo EV certificates require Organization, Admin, and Signer contacts,
and must include address1, city, postal_code, state, country, email, title,
first_name, last_name, phone, and org_name (only for Organization
contact).
Note: Fields cannot contain leading or trailing white-spaces.
Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum 64 alphanumeric characters.

last_name

Required

Maximum 64 alphanumeric characters.

title

Required for
thawte and
Symantec certs
Maximum 64 alphanumeric characters.
as well as
truebizid_ev
certs

org_name

Optional

Maximum 64 alphanumeric characters.

address1

Required

Maximum 100 alphanumeric characters.

address2

Optional

Maximum 100 alphanumeric characters.

address3

Optional

Maximum 100 alphanumeric characters.

city

Required

Maximum 64 alphanumeric characters.

state

Required if
country = CA,
US, or .ES

Maximum 32 alphanumeric characters.

postal_code

Required if
country = CA
or US

Maximum 32 alphanumeric characters.

country

Required

2 letter ISO country code


88

Parameter
name

Obligation

Format/Constraints

phone

Required

Maximum 20 characters, in the format


+CCC.NNNNNNNNNNxEEEE, where C = country
code, N = phone number, and E = extension
(optional).

fax

Optional

Maximum 20 alphanumeric characters.

email

Required

Maximum 255 alphanumeric characters, validated


according to rfc822.

Trust Service Organization contact requirements


Organization vetted certificates require Organization contact details.
Parameter
name

Obligation

Format/Constraints

first_name

Optional

Maximum 64 alphanumeric characters.

last_name

Optional

Maximum 64 alphanumeric characters.

org_name

Required

Maximum 64 alphanumeric characters.

address1

Required

Maximum 100 alphanumeric characters.

address2

Optional

Maximum 100 alphanumeric characters.

address3

Optional

Maximum 100 alphanumeric characters.

city

Required

Maximum 64 alphanumeric characters.

state

Required if
country = CA,
US, or .ES

Maximum 32 alphanumeric characters.

postal_code

Required if
country = CA
or US

Maximum 32 alphanumeric characters.

country

Required

2 letter ISO country code.

phone

Required

Maximum 20 characters, in the format


+CCC.NNNNNNNNNNxEEEE, where C = country
code, N = phone number, and E = extension
(optional).

fax

Optional

Maximum 20 alphanumeric characters.

89

TLD Data
The tld_data associative array contains that contains additional information
that is required by some registries, such as the residency of the registrant.
For instance, .ASIA domains require Charter Eligibility Declaration (CED)
information to demonstrate that at least one of the contacts is a member of
the .ASIA community, and this information is provided within the tld_data
associative array, under ced_info.
The allowed values for tld_data are:

au_registrant_infoEligibility requirements for .AU registrants.


br_register_numberLegal Brazilian identifier.
ced_infoCharter Eligibility Declaration (CED) information for .ASIA

domains.
ipr_dataSponsored Community information associated with .XXX
domains.
it_registrant_infoRegional presence requirements for .IT domains.
nexusAmerican presence requirements for .US domains.
professional_dataThe professional designation information that is
associated with the .PRO domain.
registrant_extra_infoAdditional parameters that are required by
various domain registries. See below for specific requirements for each
TLD.
The tld_data information is used by the following commands: sw_register,
modify domain, get domain, get_order_info, and trade domain (.FR only).

.AERO registrant_extra_info
Registration of .AERO domains is restricted to members of the aviation
community such as airlines, airports, and qualifying companies and
individuals.
To prove that they meet the requirements, registrants must provide an
Eligibility and Name Selection (ENS) ID and password, which can be obtained
by applying to the registry through this site:
http://www.nic.aero/registration/manage_your_aero_id/apply.
Parameters within the registrant_extra_info associative array are described
below.
Parameter name Definition/Value

sw_register
(request)

aero_ens_id

Eligibility and Name Selection (ENS)


identifier

Required

aero_ens_password

Eligibility and Name Selection (ENS)


password

Required

90

.ASIA ced_info
The ced_info associative array contains Charter Eligibility Declaration (CED)
information to satisfy regional presence requirements of the .ASIA registry,
including the stated purpose of the domain, the category of the registrant
and the country code validator.
Parameters within the ced_info associative array are described below.
Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

contact_
type

Required

Required

Always
returned

Always
returned

The contact that is the


designated CED Contact.
Allowed values are owner,
admin, tech, or billing.

id_number

Identification number or
code of reference for the
specified id_type, for
example, a passport
number.

Required

Required

Always
returned

Always
returned

id_type

The type of ID used to


validate the CED
information.

Required

Required

Always
returned

Always
returned

id_type_info A description of the id type; Required if


the maximum number of
id_type =
characters allowed is 255. other

Required if
id_type =
other

Returned if
id_type =
other

Returned if
id_type =
other

legal_entity The legal entity type of the Required


_type
CED.

Required

Always
returned

Always
returned

Allowed values are


passport, certificate (of
Incorporation or business
registration), legislation
(act, decree or legislation
chartering the formation of
an entity),
societyRegistry,
politicalPartyRegistry, or
other.
Note: If you specify
other, you must also
submit the id_type_info
parameter.

Allowed values are


naturalPerson,
corporation,
cooperative,
partnership,
91

Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

legal_entity_ A description of the legal


type_info
entity type; the maximum
number of characters
allowed is 255.

Required if
legal_
entity_
type =
other

Required if
legal_
entity_
type =
other

Returned if
legal_
entity_
type =
other

locality_city The city where the CED


contact resides.

Optional

Optional

Returned if Returned if
submitted
submitted
in the order in the order

locality_
country

County code from the list of Required


qualifying countries. For a
definition of the
geographical boundaries of
the Asia/Australia/Pacific
region, see
http://www.icann.org/mont
real/geo-regions-topic.htm

Required

Always
returned

locality_
state_prov

The state or province


where the CED contact
resides.

Optional

Returned if Returned if
submitted
submitted
in the order in the order

government,
politicalParty, society,
institution, or other.

Note: If you specify other,


you must also submit the
legal_entity_type_info
parameter.

Optional

Returned if
legal_
entity_
type =
other

Always
returned

.AU au_registrant_info
The au_registrant_info associative array contains information about specific
requirements that registrants of .AU domains must meet.
Parameters within the au_registrant_info associative array are described
below.
Parameter Definition/Value
name

sw_
register
(request)

get domain get_order_


(response) info
(response)

eligibility_id

Required for
.ASN.AU,
.COM.AU
.NET.AU, and
.ORG.AU

Always
returned

The identifier of the


eligibility document.
Important: This number
will be verified, and if you
submit an incorrect

Returned if
submitted in
the order

92

Parameter Definition/Value
name

eligibility_id
_type

sw_
register
(request)

number, the registration


will fail.

Note: This
value is
optional for
.ID.AU unless
you specify an
eligibility_id_
type, in which
case this value
is required.

The Eligibility ID type. The


allowed values depend on
the eligibility_type
specified.

Required for
.ASN.AU,
.COM.AU,
.NET.AU, and
.ORG.AU

Allowed value for Charity


is ABN.

get domain get_order_


(response) info
(response)

Always
returned

Returned if
submitted in
the order

Allowed value for Club is


ABN.
Allowed values for
Incorporated
Association are ACT BN,
NSW BN, NT BN, QLD
BN, SA BN, TAS BN, VIC
BN, and WA BN.
Allowed values for Nonprofit Organization are
ABN, ACT BN, ACN,
NSW BN, NT BN, QLD
BN, SA BN, TAS BN, VIC
BN, WA BN, and OTHER.
Allowed value for Trade
Union is OTHER.
Allowed value for
Company is ACN.
Allowed value for
Registered Business is
OTHER.
Allowed value for Sole
Trader is ABN.
Allowed value for
Trademark Owner is
TM.
Allowed value for Pending
Trademark Owner is
93

Parameter Definition/Value
name

sw_
register
(request)

get domain get_order_


(response) info
(response)

TM.
Allowed value for
Partnership is ABN.
eligibility_
name

The name on the eligibility Required for


ID document.
.ASN.AU,
.COM.AU,
.NET.AU, and
.ORG.AU

Returned if
submitted in
the order

Returned if
submitted in
the order

eligibility_
type

The reason that the


Required
registrant is eligible for the
domain name. The
eligibility_type must
correspond to the
eligibility_name. For
example, if the registrant
is using their company
name to register the
domain, then their
eligibility_type is
Company. If they are
using their Registered
Business Name to register
the domain, then their
eligibility_type is
Registered Business,
even if they are also a
company.

Always
returned

Always
returned

Allowed values for


.ASN.AU and .ORG.AU
domains are:

Charity

Club

Incorporated
Association

Non-profit
Organization

Trade Union

Allowed values for


.COM.AU and .NET.AU
domains are:

Company

Partnership

Pending TM
94

Parameter Definition/Value
name

sw_
register
(request)

get domain get_order_


(response) info
(response)

Owner

Registered
Business

Sole Trader

Trademark
Owner

Allowed value for .ID.AU


domains is
Citizen/Resident
policy_
reason

Indicates the reason the


Required
registrant is entitled to the
domain name.

Returned if
submitted in
the order

Returned if
submitted in
the order

Required if
registrant_
id_type =
ACN or ABN

Always
returned

Always
returned

Required

Always
returned

Always
returned

Allowed values are:

registrant_
id

1The name
exactly matches
the acronym or
abbreviation of the
registrant's
company or trading
name, organization
or association
name, or
trademark.

2The name is
connected closely
and substantially to
the registrant. This
is the default.

The registrant identifier.


Must correspond to the
registrant_id_type value
(that is, the ABN or ACN),
Important: This number
will be verified, and if you
submit an incorrect
number, the registration
will fail.

registrant_
id_type

The Registrant ID type.


Allowed values are:

ACNAustralian
Company Number

ABNAustralian
95

Parameter Definition/Value
name

sw_
register
(request)

get domain get_order_


(response) info
(response)

Required

Always
returned

Business Number
registrant
name

The legal entity such as a


company, incorporated
association, government
agency or individual
person. Cannot be a
registered business name
or trademark.

Always
returned

.CL registrant_extra_info
The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

id_card_
number

registrant_
type

registrant_
vat_id

The number of
the
individual's
identity card.

Optional; can
be submitted
when
registrant_
type =
individual

trade
domain
(request)

get domain
(response)

get_order_
info
(response)

Optional; can
be submitted
when
registrant_
type =
individual

Returned if
applicable and
is_success =
true

Returned if
applicable and
is_success =
true l

Required

Returned if
is_success =
true

Returned if
is_success =
true

Optional; can
be submitted
when
registrant_
type =
organization

Returned if
applicable and
is_success =
true

Returned if
applicable and
is_success =
true

The entity
type of
registrant.
Allowed values Required
are individual
or
organization.
Value Added
Tax
registration
number.

Optional; can
be submitted
when
registrant_
type =
organization

96

.COM.AR, .PT, and .COM.PT registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameter Definition/ sw_
name
Value
register
(request)

trade domain get domain get_order_


(request)
(response)
info
(response)

id_card_
number

The number of
the
individual's
identity card.

Required when
registrant_
type =
individual

Required when
registrant_
type =
individual

Returned if
Returned if
is_success = is_success =
true
true and
registrant_
type =
individual

registrant_

The entity
type of
registrant.

Required

Required

Returned if
Returned if
is_success = is_success =
true
true

Required

Required

Returned if
Returned if
is_success = is_success =
true
true

type

Allowed values
are individual
or
organization.
tax_number The number
used for tax
purposes.

.COM.BR tld_data
The tld_data associative array contains information contains information to
satisfy requirements of the registry.
Parameters within the tld_data associative array are described below.
Parameter Definition/Value
name

sw_
register
(request)

br_register_ The Brazilian legal identifier.


Required
number
For organizations, this is the
SNPJ (Business
Identifier/Cadastro Nacional de
Pessoa Juridica)

get
get_order_
domain
info
(response) (response)
Returned if Returned if
is_success is_success
= true
= true

For individuals, this is the CPF


(Individual Tax
Number/Cadastro de Pessoa
Fisica)

97

.COOP registrant_extra_info
Registration of .COOP domains is restricted to cooperatives and related
organizations. The registrant_extra_info associative array contains
information to satisfy requirements of the .COOP registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/
name
Value

coop_
verification_
code

sw_
register
(request)

The coop
Required
verification code
(CVC) is issued
by dotCoop, and
proves that the
registrant is
eligible to
register the
domain name.

modify
domain
(request)

get
get_order
domain
_
(response) info
(response)

Required

Returned if Returned if
is_success is_success
= true
= true

.DE registrant_extra_info
The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_register
name
Value
(request)

get domain
(response)

get_order_info
(response)

registrant_
type

Returned if
is_success =
true

Returned if
is_success =
true

The entity
type of
registrant.

Required

Allowed values
are individual
or
organization.

98

.DK registrant_extra_info
The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_registe trade
name
Value
r
domain
(request)
(request)

get domain
(response)

get_order_
info
(response)

registrant_
type

The entity
type of
registrant.

Required

Required

Returned if
is_success =
true

Returned if
is_success =
true

Required
when
registrant_
type =
organization

Required when
registrant_
type =
organization

Returned if
is_success =
true and type
= organization

Returned if
is_success =
true and type
=
organization

Allowed values
are individual
or
organization.
registrant_
vat_id

Value Added
Tax
registration
number.

.FI. MY, and .SG registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response) info
(response)

id_card_
number

The number of
the
individual's
identity card.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success
= true and
registrant_
type =
individual

Returned if
is_success
= true and
registrant_
type =
individual

registrant_
type

The entity
type of
registrant.

Required

Required

Returned if
is_success
= true

Returned if
is_success
= true

Allowed values
99

Parameter Definition/ sw_


name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response) info
(response)

Required
when
registrant_
type =
organization

Returned if
is_success
= true and
registrant_
type =
organization

are individual
or
organization.
registration_ The business Required
number
number of the when
organization. registrant_
type =
organization

Returned if
is_success
= true and
registrant_
type =
organization

.FR registrant_extra_info
.FR domains are available to any individuals and organizations located in the
European Union, Switzerland, Norway, Iceland, or Liechtenstein. Individuals
must reside within one of the qualifying countries; organizations must have
their registered or main office located in a qualifying country; therefore,
when registering or transferring .FR domains, you must provide additional
residency information.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/Value
name

sw_
register
(request)

get_order trade
_info
domain
(response) (request)

country_of_ The two-letter ISO3166 code Required


birth
for the country in which the when
registrant was born.
registrant_
type =
individual

Returned
when
registrant
_type =
individual

Required
when
registrant_
type =
individual

date_of_
birth

The registrant's date of birth Required


in the format YYYY-MM-DD. when
registrant_
type =
individual

Returned
when
registrant
_type =
individual

Required
when
registrant_
type =
individual

place_of_
birth

The city in which the


individual was born.

Returned
when
registrant
_type =
individual

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual
and country_
of_birth =
FR

100

Parameter Definition/Value
name

sw_
register
(request)

get_order trade
_info
domain
(response) (request)

postal_
code_of_
birth

The postal code of the


registrant's place of birth.

Required
when
registrant_
type =
individual
and country_
of_birth =
FR

Returned
when
registrant
_type =
individual

Required
when
registrant_
type =
individual

registrant_
type

The entity type of registrant. Required

Always
returned

Required

registrant_
vat_id

The Value Added Tax (VAT)


number of the organization.

Optional, but Returned if


recommended submitted
for
in the order
organizations
located in
France

Optional, but
recommended
for
organizations
located in
France

siren_siret

The 9 digit SIREN code or


the 14 digit SIRET code that
is used to identify the
business for tax reasons.

Optional, but Returned if


recommended submitted
for
in the order
organizations
located in
France

Optional, but
recommended
for
organizations
located in
France

trademark_ The organization's trademark Optional, but Returned if


number
registration number, if
recommended submitted
applicable.
for
in the order
organizations
located in
France

Optional, but
recommended
for
organizations
located in
France

Allowed values are


individual and
organization.

101

.HK registrant_extra_info
The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade
domain
(request)

get domain
(response)

get_order_
info
(response)

date_of_
birth

The
registrant's
date of birth in
the format
YYYY-MM-DD.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

id_card_
number

The number of
the
individual's
identity card.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

registrant_
type

The entity
type of
registrant.

Required

Required

Returned if
is_success =
true

Returned if
is_success =
true

Required
when
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

Allowed values
are individual
and
organization.
registration_ The business Required
number
number of the when
organization. registrant_
type =
organization

.HU, and .CO.HU registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.

102

Parameter Definition/ sw_


name
Value
register
(request)

id_card_
number

registrant_
type

registrant_
vat_id

get domain
(response)

get_order_
info
(response)

Required when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Allowed values Required


are individual
or
organization.

Required

Returned if
is_success =
true

Returned if
is_success =
true

Value Added
Tax
registration
number.

Required when
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

The number of
the
individual's
identity card.

trade
domain
(request)

Required when
registrant_
type =
individual

The entity
type of
registrant.

Required when
registrant_
type =
organization

.IT it_registrant_info
The it_registrant_info associative array contains information to satisfy the
regional presence requirements of the registry.
Parameters within the it_registrant _info associative array are described
below.
Parameter Definition/Value
name

sw_
register
(request)

get domain get_order_


(response)
info
(response)

entity_type The legal entity type of


registrant.

Required

Always
returned

Always
returned

Allowed values are:

1Italian and
foreign natural
persons

2Companies/one
man companies

3Freelance
workers/professiona
ls

4Non-profit
103

Parameter Definition/Value
name

sw_
register
(request)

get domain get_order_


(response)
info
(response)

Optional

Returned if
submitted in
order

Returned if
submitted in
order

Always
returned

Always
returned

organizations

5Public
organizations

6Other subjects

7Foreigners who
match 2-6

nationality_ The 2-digit ISO 3166-1


code
code that identifies the
Registrant's nationality.
If entity_type = 1,
nationality or owner's
country or both must be an
EU country.
If entity_type = 2-6, this
value must be IT.
If entity_type = 7, this
value must match owner's
country and must be an EU
country other than IT.

Note: Be sure to use


capital letters.
reg_code

An identifying number,
Required
usually the VAT or Codice
Fiscale (numeric tax code).
The value that you need to
enter depends on the
entity type of the
registrant.

Italian citizens must


enter their Codice
Fiscale.

Non Italians not


living in Italy can
enter n.a.

Italian companies,
freelancers, and
other subjects must
enter their 11 digit
VAT number or tax
identification
number.

Italian non-profit
organizations must
104

Parameter Definition/Value
name

sw_
register
(request)

get domain get_order_


(response)
info
(response)

enter their VAT


number or tax
identification
number; however, if
they do not have
one,they can enter
n.a.

Non Italian entities


other than persons
(organizations,
freelancers,
companies, etc.)
may enter their VAT
number or n.a.

.JOBS registrant_extra_info
Registration of .JOBS domains is restricted to those who are involved in
Human Resource management. To be eligible, registrants must be a member
of the Society for Human Resource Management (SHRM) or involved in HR
practices that meet any of the following criteria:
Possess salaried-level human resource management experience.
Are certified by the Human Resource Certification Institute.
Are supportive of the SHRM Code of Ethical and Professional Standards
in Human Resource Management, as amended from time to time.
Consequently, when registering a .JOBS domain, registrants must complete
some additional information.

For more information on the restrictions and policies regarding .JOBS


registrations, see http://www.policy.jobs/
Parameters within the registrant_extra_info associative array are described
below.
Parameter
name

Definition/Value

sw_register modify
(request)
domain
(request)

jobs_admin_
type

Indicates whether the


Required
registrant is the Admin
contact.

Required

get domain
(response)
Always
returned

Allowed values are Yes


or No.

105

Parameter
name

Definition/Value

jobs_association Indicates whether the


_member
registrant is a member
of SHRM.

sw_register modify
(request)
domain
(request)

get domain
(response)

Required

Required

Always
returned

Allowed values are Yes


or No.
jobs_industry_
type

The type of business.

Optional

Optional

Returned if
submitted in
order

jobs_title

The registrant's job


title.

Optional

Optional

Returned if
submitted in
order

jobs_website

The URL for the


registrant's company.

Required

Required

Always
returned

.LV and .COM.LV registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

modify
domain
(request)

get domain get_order_


(response)
info
(response)

id_card_
number

Required when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success
= true and
registrant_
type =
individual

registration_ The business Required


number
number of the when
organization. registrant_
type =
organization

Required when
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

Returned if
is_success
= true and
registrant_
type =
organization

registrant_
type

Required

Returned if
Returned if
is_success = is_success
true
= true

The number of
the
individual's
identity card.

The entity
type of
registrant.

Required
when
registrant_
type =
individual

Required

Allowed values
are
106

Parameter Definition/ sw_


name
Value
register
(request)

modify
domain
(request)

get domain get_order_


(response)
info
(response)

Required when
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

individual or
organization.
registrant_
vat_id

The Value
Added Tax
(VAT) number
of the
organization

Required
when
registrant_
type =
organization

Returned if
is_success
= true and
registrant_
type =
organization

.MX, .COM.MX, and .CO.ZA registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

modify
domain
(request)

get domain get_order_


(response)
info
(response)

registrant_
type

Required

Returned if
Returned if
is_success = is_success =
true
true

The entity
type of
registrant.

Required

Allowed values
are
individual or
organization.

.NO registrant_extra_info
The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response) info
(response)

registration_ The number


Required
number
of the
individual's
identity card.

Required

Returned if
Returned if
is_success = is_success =
true
true

107

.NYC registrant_extra_info
The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_register
name
Value
(request)

get domain
(response)

get_order_info
(response)

registrant_
type

Returned if
is_success =
true

Returned if
is_success =
true

The entity
type of
registrant.

Required

Allowed values
are individual
or
organization.

.PM, .RE, .TF, .WF, and .YT registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response)
info
(response)

country_of_ The country in


birth
which the
registrant was
born.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success
= true and
registrant_
type =
individual

date_of_
birth

The
registrant's
date of birth in
the format
YYYY-MM-DD.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success
= true and
registrant_
type =
individual

place_of_
birth

The city in
which the
individual was
born.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =

Returned if
is_success
= true and
registrant_
type =
108

Parameter Definition/ sw_


name
Value
register
(request)

trade
domain
(request)

and
country_of_
birth = FR

get domain get_order_


(response)
info
(response)
individual

individual

postal_code_ The postal


of_birth
code of the
registrant's
place of birth.

Required
when
registrant_
type =
individual
and
country_of_
birth = FR

Required
when
registrant_
type =
individual
and
country_of_
birth = FR

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success
= true and
registrant_
type =
individual

province_of_ The province


birth
in which the
individual was
born.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success
= true and
registrant_
type =
individual

registrant_
type

Required

Required

Returned if
Returned if
is_success = is_success
true
= true

Optional. May
be used when
registrant_
type =
organization

Optional. May
be used when
registrant_
type =
organization

Returned if
is_success =
true if
submitted in
the order

Returned if
is_success
= true if
submitted in
the order

registration_ The business Optional, but


number
number of the recommended
organization. for
organizations
located in
France

Optional, but
recommended
for
organizations
located in
France

Returned if
is_success =
true if
submitted in
the order

Returned if
is_success
= true if
submitted in
the order

trademark_
number

Optional but
recommended
when
registrant_
type =
organization

Returned if
is_success =
true if
submitted in
the order

Returned if
is_success
= true if
submitted in
the order

The entity
type of
registrant.
Allowed values
are individual
and
organization.

registrant_
vat_id

The Value
Added Tax
(VAT) number
of the
organization.

The number
assigned to
the
organizations
pending or
registered
trademark.

Optional but
recommended
when
registrant_
type =
organization

109

.PRO professional_data
In order to register a .PRO domain name, the registrant must belong to an
accredited profession.
Parameters within the professional_data associative array are described
below.
Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

authority

The name of the authority


from which the registrant
receives their professional
credentials.

Optional

Optional

Returned if Returned if
submitted submitted
in order
in order

authority_
website

The URL to an online


resource for the authority,
preferably, a member
search directory.

Optional

Optional

Returned if Returned if
submitted submitted
in order
in order

license_
number

The license number of the


registrant's credentials, if
applicable.

Optional

Optional

Returned if Returned if
submitted submitted
in order
in order

profession

The stated profession of


the registrant.

Required

Required

Always
returned

Always
returned

.RO, and .COM.RO registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response)
info
(response)

id_card_
number

Required when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

The number of
the
individual's
identity card.

Required
when
registrant_
type =
individual

Returned if
is_success
= true and
registrant_
type =
individual

110

Parameter Definition/ sw_


name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response)
info
(response)

registration_ The business Required


number
number of the when
organization. registrant_
type =
organization

Required when
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

registrant_
type

Required

Required

Returned if
Returned if
is_success = is_success
true
= true

Required
when
registrant_
type =
organization

Required when
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

The entity
type of
registrant.

Returned if
is_success
= true and
registrant_
type =
organization

Allowed values
are
individual or
organization.
registrant_
vat_id

The Value
Added Tax
(VAT) number
of the
organization

Returned if
is_success
= true and
registrant_
type =
organization

.RU registrant_extra_info
The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition sw_
name
/Value
register
(request)

trade
domain
(request)

get domain get_order_


(response)
info
(response)

date_of_
birth

Required
when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

The
registrant's
date of
birth in the
format
YYYY-MMDD.

Required
when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

111

Parameter Definition sw_


name
/Value
register
(request)

trade
domain
(request)

get domain get_order_


(response)
info
(response)

id_card_
authority

The name
of the
issuer.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

id_card_
issue_date

The date
that the ID
card was
issued, in
the format
YYYY-MMDD.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

id_card_
number

The number Required


of the
when
individual's registrant_
identity
type =
card.
individual

Required
when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

place_of_
birth

The city in
which the
individual
was born.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

registrant_
type

The entity
type of
registrant.

Required

Required

Returned if
Returned if
is_success = is_success =
true
true

Allowed
values are
individual
and
organizati
on.

112

.SE and .NU registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response)
info
(response)

id_card_num The number of


ber
the
individual's
identity card.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

registrant_
type

Required

Required

Returned if
Returned if
is_success = is_success =
true
true

Required
when
registrant_
type =
organization

Required
when
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

registration_ The business Required


number
number of the when
organization
registrant_
type =
organization

Required
when
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

The entity
type of
registrant.

Returned if
is_success =
true and
registrant_
type =
individual

Allowed values
are
individual or
organization.
registrant_
vat_id

The Value
Added Tax
(VAT) number
of the
organization

113

.TRAVEL registrant_extra_info
In order to register a .TRAVEL domain name, the registrant must be a
participant in the travel and tourism industry, and they must have a Unique
Identifying Number (UIN).
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/Value
name
travel_uin

sw_
register
(request)

The Unique Identifying


Optional
Number that proves the
registrant is a participant in
the travel and tourism
industry

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

Optional

Returned if Returned if
submitted submitted
in order
in order

.US nexus
The nexus associative array contains Nexus information for .US domains, to
satisfy the American presence requirements of the registry.
Parameters within the nexus associative array are described below.
Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

app_
purpose

Required

Required

Always
returned

Always
returned

Required

Required

Always
returned

Always
returned

category

A description of the
domain's application
purpose:

P1Business use
for profit.

P2Non-profit
business, club,
association,
religious
organization, and so
on.

P3Personal use.

P4Education
purposes.

P5Government
purposes.

A description of the
domain's nexus category:

C11A citizen of
114

Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

the U.S. or any of


its territories.

validator

C12A permanent
resident of the U.S.
or any of its
territories.

C21An
organization
incorporated within
the U.S.

C31An entity that


regularly engages in
lawful activities in
the U.S.

C32An entity that


has an office or
other facility in the
U.S.

The domain owner's


country of citizenship.
Value must be a valid twoletter country code.

Required if Required if Returned if


category = category = category
C31 or
C31 or C32 = C31 or
C32
C32

Returned if
category
= C31 or
C32

.XXX ipr_data
.XXX domains are available to those within the adult entertainment industry
who are members of the Sponsored Community (SC). The ipr_data
associative array contains information to prove that the registrant is a
member of the Sponsored Community.
Parameters within the ipr_data associative array are described below.
Parameter Definition/Value
name

sw_
register
(request)

icm_
The ID number that was
Optional
membership provided when the
_id
registrant successfully
completed the XXX
Sponsored Community
validation process. If this
value is not submitted with
the domain registration,
the registry will contact the

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

Optional

Returned if Returned if
submitted submitted
in the order in the
order

115

Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

N/A

N/A

N/A

Optional

N/A

N/A

Returned if
submitted
in the
order

When this value is set to 1 Optional


the domain will not
resolve.

N/A

N/A

N/A

registrant with instructions


on how to become a
member of the Sponsored
Community.
If you submit this value,
you do not need to submit
any of the other ipr_data
values.
ipr_email

The email address to which Optional


all communications from
the registry will be
addressed.
If you submit this value,
you must also submit the
ipr_name value.

ipr_name

The name (in the format


firstname lastname) to
which all communications
from the registry will be
addressed.
If you submit this value,
you must also submit the
ipr_email value.

ipr_non_
resolver

If you submit this value,


you do not need to submit
any of the other ipr_data
values.

116

Lookup Commands
This section contains the following commands:

belongs_to_rspDetermines whether domain belongs to the RSP


who issued the command.
cira_email_pwdDeprecated. Sends CIRA login information to
admin contact.
get (domain)Queries various types of data associated with a
domain.
get_domain_affiliate_idRetrieves the affiliate id associated with a
domain.
get_balanceQueries the requester's account, and returns the
total amount of money in the account and the amount that is
allocated to pending transactions.
get_ca_blocker_listDeprecated. Checks for any domains
blocking the registration of a new .CA domain.
get_certReturns the certificate for the specified Trust Service
product as well as associated product information.
get_deleted_domainsLists domains that have been deleted due
to expiration or request.
get_domain_affiliate_idRetrieves the affiliate id associated with a
domain.
get_domains_contactsQueries contact information for a list of
domains.
get_domains_by_expiredateQueries domains expiring within a
date range.
get_notesRetrieves the domain notes that detail the history of
the domain, for example, renewals and transfers.
get_order_infoQueries all information related to an order.
get_orders_by_domainRetrieves information about orders placed
for a specific domain.
get_priceQueries the price of a domain.
get_product_infoQueries the properties of the specified Trust
Service product.
get_productsReturns a list of the Trust Service products whose
expiry dates are within a specific date range.
get_registrant_verification_statusReturns the current state of the
verification request.
lookup (domain)Determines the availability of a domain.
name_suggestChecks whether a name, word, is phrase is
available for registration.
uk_get_blocker_contactChecks whether the specified domain
name is registered as a third level .UK domain (for example. .co.uk
117

or .org.uk) with the same registrar and reseller, and if so, returns
the owner contact details.

118

belongs_to_rsp
Description
Action & object
action = belongs_to_rsp
object = domain

Usage
Determines whether the domain belongs to the RSP who issued the
command.

Request parameters for belongs_to_rsp


Standard parameters
action = belongs_to_rsp
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Required

The domain to be checked.

Response parameters for belongs_to_rsp


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

119

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

belongs_to_rsp

Returned if is_success = Whether the domain belongs to the


true
RSP who issued the command.

domain_expdate

Returned when
belongs_to_RSP = 1
and is_success = true

Definition/Value

0Does not belong to the RSP

1Belongs to the RSP

Domain's expiry date

Examples for belongs_to_rsp


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">belongs_to_rsp</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>
120

Response
If belongs to RSP
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="belongs_to_rsp">1</item>
<item key="domain_expdate">2007-08-26 11:40:14</item>
</dt_assoc>
</item>
<item key="response_text">Query successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If does not belong to RSP


<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
121

<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="belongs_to_rsp">0</item>
</dt_assoc>
</item>
<item key="response_text">Query successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

122

cira_email_pwd
Description
Action & object
action = cira_email_pwd
object = domain

Usage
Sends the CIRA login information (used for confirming critical changes) to the
email address associated with a .CA domain's admin contact.
Important: This command has been deprecated. If this command is part of
your current integration, it will continue to work; however, the results will be
ignored. The response will return 'is_success' => '1'.

Request parameters for cira_email_pwd


Standard parameters
action = cira_email_pwd
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition / Value

domain

Required

The domain for which the login information is to


be sent.

Response parameters for cira_email_pwd


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request
123

Examples for cira_email_pwd


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">CIRA_EMAIL_PWD</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.ca</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
124

<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">domain</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command verified</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

125

get_balance
Description
Action & object
action = get_balance
object = balance

Usage
Queries the requester's account, and returns the total amount of money in
the account and the amount that is allocated to pending transactions.

Request parameters for get_balance


Standard parameters
action = get_balance
object = balance
registrant_ip = valid IP address of the registrant
attributes

Response parameters for get_balance


Standard parameters
action = reply
object = balance
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition / Value

balance

Returned if
The total amount of money in the requester's
is_success = account, including the amount that is allocated to
true
pending transactions.

126

Parameter
name

Obligation

Definition / Value

hold_balance

Returned if
The amount of money in the requester's account
is_success = that is allocated to pending transactions.
true

Examples for get_balance


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET_BALANCE</item>
<item key="object">BALANCE</item>
<item key="registrant_ip"/>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
127

<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">BALANCE</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="balance">8549.18</item>
<item key="hold_balance">1676.05</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

128

get_ca_blocker_list
Description
Action & object
action = get_ca_blocker_list
object = domain

Usage
Before a .CA domain can be registered, it is checked against the CIRA
registry for any conflicting domains. If a variation of the requested domain is
already registered, the requested domain registration is put on hold. For
example, if a registrant owns 'domain.ca' or 'domain.pv.ca' (where .pv is the
provincial code), the CIRA system automatically reserves all variants of the
name.
This command checks for any domains blocking the registration of a new .CA
domain, and returns a list of those domains, if any exist. If blockers exist,
the .CA domain cannot be registered until the owners of the blocker domains
consent.
Important: This command has been deprecated. If this command is part of
your current integration, it will continue to work; however, the results will be
ignored. The response will return 'is_success' => '1'.

Request parameters for get_ca_blocker_list


Standard parameters
action = get_ca_blocker_list
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition / Value

domain

The .CA domain to query for blocking domains.

Optional

129

Response parameters for get_ca_blocker_list


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition / Value

blocker_list

Returned if
Contains a list of all .CA domains that are blocking
is_success = the registration of the specified .CA domain.
true
For more information, see the Blocker_List table
below.

Blocker_List
Parameters within the blocker_list associative array are described below.
Parameter
name

Obligation

Definition / Value

admin_email

Always returned

Admin email address of the blocking domain.

owner_org

Always returned

Name of owner of the blocking domain.

registrar

Always returned

Current registrar of the blocking domain.

tech_email

Always returned

Tech email address of the blocking domain.

130

Examples for get_ca_blocker_list


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get_ca_blocker_list</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.ca</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
131

<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">get_ca_blocker_list command is
deprecated</item>
<item key="attributes">
<dt_assoc>
<item key="blocker_list">
<dt_assoc>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

132

get_cert
Description
Action & object
action = get_cert
object = trust_service

Usage
Returns the certificate for the specified Trust Service product as well as
associated product information.
Note: This command can only be used for orders whose status is Completed.

Request parameters for get_cert


Standard parameters
action = get_cert
object = trust_service
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

order_id

Required if
The Trust Service order ID number.
product_id is not
submitted

product_id

Required if
order_id is not
submitted

The Trust Service ID number.

return_ca_certs

Optional

If this parameter is included and set to 1, the


response will include root CA and
intermediate certificates.

return_pkcs7_cert

Optional

If this parameter is included and set to 1, the


response will include the PKCS#7 format
certificate.

133

Response parameters for get_cert


Standard parameters
action = reply
object = trust_service

is_success = a Boolean is returned, indicating success or failure of the


request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

cert_data

Returned if
is_success =
true

The Trust Service Certificate.

Returned if
is_success =
true

The contact email address that was


submitted with the Trust Service order; may
be the admin email address or the
organization email address, depending on
the product type.

contact_email

For more information, see the cert_data


table below.

Note: The contact_email value can be


updated by using the update_product
command.
domain

Returned if
is_success =
true

The domain with which the Trust Service is


associated.

expiry_date

Returned if
is_success =
true

The date on which the Trust Service


certificate expires.

issue_date

Returned if
is_success =
true

The date on which the Trust Service


certificate was issued.

product_id

Returned if
is_success =
true

The ID number for the Trust Service.

134

Parameter
name

Obligation

Definition/Value

product_type

Returned if
is_success =
true

The Trust Service product type.

start_date

Returned if
is_success =
true

Allowed values are:

comodo_ev

comodo_instantssl

comodo_premiumssl

comodo_premiumssl_wildcard

comodo_ssl

comodo_wildcard

malwarescan

quickssl

quickssl_premium

securesite

securesite_pro

securesite_ev

securesite_pro_ev

sgcsuper_certs

sitelock_basic

sitelock_premium

sitelock_enterprise

ssl123

sslwebserver

sslwebserver_wildcard

sslwebserver_ev

truebizid

truebizid_ev

truebizid_wildcard

truste_hpp (Hosted Privacy


Policy)

truste_tps (TRUSTE Privacy Policy


with seal)

trustwave_dv

trustwave_ev

trustwave_premiumssl

trustwave_premiumssl_wildcard

The effective date for the Trust Service.

135

Parameter
name

Obligation

Definition/Value

state

Returned if
is_success =
true

The state of the product. Allowed values are:

expired

active

renewing

renewed

revoked

cert_data
Parameters within the cert_data associative array are described below.
Parameter
name

Obligation

Definition/Value

ca_certificates

Returned if
An array that includes the ROOT or
return_ca_certs = Intermediate CA certificates chain, in order.
1
Note: Trustwave does not return CA
certificates; however, the intermediate
bundle can be downloaded by visiting the
Trustwave Support page.

certificate

Returned if
is_success = true

pkcs7

Returned if
The PKCS#7 format certificate that was
return_pkcs7_cert issued.
=1

The Trust Service certificate that was


issued.

Examples for get_cert


Example 1
Uses the order ID to retrieve the properties for a Trust Service product.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
136

<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get_cert</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='return_pkcs7_cert'>1</item>
<item key='return_ca_certs'>1</item>
<item key='order_id'>7360</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='response_text'>Command completed successfully.</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='attributes'>
137

<dt_assoc>
<item key='cert_data'>
<dt_assoc>
<item
key='pkcs7'>MIIYFAYJKoZIhvcNAQcCoIIYBTCCGAECAQExADALBgkqhkiG9w0BBwGgghf
pMIIF
SzCCBDOgAwIBAgIQKBqJ8LG7xMORrbudRYUgPjANBgkqhkiG9w0BAQUFADByMQsw
CQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQH
EwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDEYMBYGA1UEAxMP
RXNzZW50aWFsU1NMIENBMB4XDTExMTAwNTAwMDAwMFoXDTEyMTAwNTIzNTk1OVow
gYUxITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDEeMBwGA1UECxMV
SG9zdGVkIGJ5IFR1Y293cyBJbmMuMR4wHAYDVQQLExVFc3NlbnRpYWxTU0wgV2ls
ZGNhcmQxIDAeBgNVBAMUFyoucmVnNC5xYXJlZ3Jlc3Npb24ub3JnMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAukPlCL1vnnl9kgRhdRZ XQ2yo3FqnFbG
IBZkjg2dJ8X3M/hM Lat5u /A1rkHP3kNvchwjf2kOmh29Hul6JLkfFlv6ZfYNsT
va/28P4RMZ38CBiTomAEwsxxrU5zDZmOLOqY3mg1sifhXT7lma0tgGSCil8Ru9NF
/jbAnShJx/MdvRdKORo1LGYplwg0 Esho5ODbIOlgEY18qgEDg8f0ir3jlOdsUzH
1A/qyl332eowlzztSmaJkbkjOJhMl9WaGfp0LeybNk7nGiSyIMWsHotlrQdiaftE
Rg6SkS9eDFljYGXEnoexa5BbQGO0mpAGO5WbeB0KNWUyRAHYPdaZ1wIDAQABo4IB
xzCCAcMwHwYDVR0jBBgwFoAU2svqrVsIXcz//CZUzknlVcY49PgwHQYDVR0OBBYE
FLLQDNSlCLlxPNKvHiVYCm/SBridMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8E
AjAAMDQGA1UdJQQtMCsGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDAwYJ
YIZIAYb4QgQBMEUGA1UdIAQ MDwwOgYLKwYBBAGyMQECAgcwKzApBggrBgEFBQcC
ARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNvbS9DUFMwOwYDVR0fBDQwMjAwoC6g
LIYqaHR0cDovL2NybC5jb21vZG9jYS5jb20vRXNzZW50aWFsU1NMQ0EuY3JsMG4G
CCsGAQUFBwEBBGIwYDA4BggrBgEFBQcwAoYsaHR0cDovL2NydC5jb21vZG9jYS5j
b20vRXNzZW50aWFsU1NMQ0FfMi5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3Nw
LmNvbW9kb2NhLmNvbTA5BgNVHREEMjAwghcqLnJlZzQucWFyZWdyZXNzaW9uLm9y
Z4IVcmVnNC5xYXJlZ3Jlc3Npb24ub3JnMA0GCSqGSIb3DQEBBQUAA4IBAQBo8rwM
rpd2iSi45Vl69urPeUwMTeuEugN1V5zW26gxUE7nMLuOwwaFKKJFnOrxYSLbYK7e
z61Oujx9AyNwRyCja/0JdMEV9PHJHsn/mkLjXLnkgFmoxX75dsISBpIjy5f Q0t5
xzbkVxBV3ZGW5OHRIy76h0gyrsRTNVr2BK3j apQUfQkdlPLq2DxHtJjuL5XrkVj
4mnUESS8Suhb8nEebc367kyXlVr453dHuQKfOUHtTmNOh5hin9yYOt0c1Dcyqsm
ue7TkHwniAryq4QsukxckiTyIAU4q 2BjO0gULy9C/3Nu8guFtLof DEO9t2g0sP
CFcn9QtLIdF oeMNMIIFAzCCA ugAwIBAgIQGLLLuqME8aAPwfLzJkYqSjANBgkq
hkiG9w0BAQUFADCBgTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFu
138

Y2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExp
bWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
Fw0wNjEyMDEwMDAwMDBaFw0xOTEyMzEyMzU5NTlaMHIxCzAJBgNVBAYTAkdCMRsw
GQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAY
BgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMRgwFgYDVQQDEw9Fc3NlbnRpYWxTU0wg
Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt8AiwcsargxIxF3CJ
hakgEtSYau2A1NHf5I5ZLdOWIY120j8YC0YZYwvHIPPlC92AGvFaoL0dds23Izp0
XmEbdaqb1IX04XiR0y3hr/yYLgbSeT1awB8hLRyuIVPGOqchfr7tZ291HRqfalsG
s2rjsQuqag7nbWzDypWMN84hHzWQfdvaGlyoiBSyD8gSIF/F03/o4Tjg27z5H6Gq
1huQByH6RSRQXScqoChBRVt9vKCiL6qbfltTxfEFFld Edc7tNkBdtzffRDPUanl
OPJ7FAB1WfnwWdsXPvev5gItpHnBXaIcw5rIp6gLSApqLn8tl2X2xQScRMiZln5
pN0vAgMBAAGjggGDMIIBfzAfBgNVHSMEGDAWgBQLWOWLxkwVN6RAqTCpIb5HNlpW
/zAdBgNVHQ4EFgQU2svqrVsIXcz//CZUzknlVcY49PgwDgYDVR0PAQH/BAQDAgEG
MBIGA1UdEwEB/wQIMAYBAf8CAQAwIAYDVR0lBBkwFwYKKwYBBAGCNwoDAwYJYIZI
AYb4QgQBMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwczov
L3NlY3VyZS5jb21vZG8uY29tL0NQUzBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8v
Y3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNy
bDBsBggrBgEFBQcBAQRgMF4wNgYIKwYBBQUHMAKGKmh0dHA6Ly9jcnQuY29tb2Rv
Y2EuY29tL0NvbW9kb1VUTlNHQ0NBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29j
c3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQAtlzR6QDLqcJcvgTtL
eRJ3rvuq1xqo2l/zodueTZbLN3qo6u6bldudu Ennv1F7Q5Slqz0J790qpL0pcRD
AB8OtXj5isWMcL2aejGjKdBZa0wztSz4iw SY1dWrCRnilsvKcKxudokxeRiDn55
w/65g onO7wdQ7VuF6r7yJiIatnyfKH2cboZT7g440LX8NqxwCPf3dfxp 0Jj1ag
q8MLy6SSgIGSH6lv Wwz3D5XxqfyH8wqfOQsTEZf6/Nh9yvENZ NWPU6g0QO2JOs
TGvMd/QDzczc4BxLXSXaPV7Od4rhPsbXlM1wSTz/Dr0ISKvlUhQVnQ6cGodWaK2c
CQBkMIIEqzCCA5OgAwIBAgIQLnmDLpCIh qLjvMabuZ6RDANBgkqhkiG9w0BAQUF
ADCBkzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExh
a2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQL
ExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFD
b3JwIFNHQzAeFw0wNjEyMDEwMDAwMDBaFw0yMDA1MzAxMDQ4MzhaMIGBMQswCQYD
VQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdT
YWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09N
T0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH 7uIzg3jLz8GlvCi
KVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGz
139

UvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH 1GImGEaaP vB fGQV useg2L


23IwambV4EajcNxo2f8ESIl33rXp 2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovG
uFVDiOEjPqXSJDlqR6sA1KGzqSX DT nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G
1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVIrLsm9wIDAQABo4IBCTCCAQUwHwYDVR0j
BBgwFoAUUzLRs89/ uDxoF2FTpLSnkUdtE8wHQYDVR0OBBYEFAtY5YvGTBU3pECp
MKkhvkc2Wlb/MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MCAGA1Ud
JQQZMBcGCisGAQQBgjcKAwMGCWCGSAGG EIEATARBgNVHSAECjAIMAYGBFUdIAAw
bQYDVR0fBGYwZDAxoC gLYYraHR0cDovL2NybC5jb21vZG9jYS5jb20vVVROLURB
VEFDb3JwU0dDLmNybDAvoC2gK4YpaHR0cDovL2NybC5jb21vZG8ubmV0L1VUTi1E
QVRBQ29ycFNHQy5jcmwwDQYJKoZIhvcNAQEFBQADggEBANheksSuFNxDrcKkw2dF
Bx35N6IZxxw3NZETHAfEfUKmDvCGXENrDkTPviRhOkKpzp1Mr3k5cN0OBCBOlZw8
3rdgumNDQO1qD4FJRrsek8BL8/jhNkkbb7YMDfKQV4r8bZPyKMf6hgoosxcOWYou
tr/N4axMZmzyVZFWtzK/seR9teg6ti/bspzaUJOOTsWsmn5cnhI8O03GUHCzZSuO
92uhuyXAALv17BZlgQ771KMhlneaqHS8U6rCOVD/CwIJYcyVt9eIavZcxWjTFJUa
R1/Z y3kL48ThqsxE0ATrG7ttRAwixtQqc7ujMrrfLW5Fj3U m SbR6ivfsCSsVw
vvEwggSmMIIDjqADAgECAhBG6vCWBUzF4/pl6m6fQsZkMA0GCSqGSIb3DQEBBQUA
MG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMd
QWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0
IEV4dGVybmFsIENBIFJvb3QwHhcNMDUwNjA3MDgwOTEwWhcNMjAwNTMwMTA0ODM4
WjCBkzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExh
a2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQL
ExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFD
b3JwIFNHQzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN/uWBCiK25V
xI6/LkYJ5 AIDy4rehOUG732toCOZQWTAB68r IPjhkNEkfsrK2j i5w N5u 1ZC
FZ4uXO8j3iG5BXYnGQ9P1sOctL6UGWPyphEK61NInL7yKTsW6BqgTKbJ9BhZaMBw
8lMAwF5QgqVWbzb5SuBEhqBNTtZHbklKy2fXpsQFuY4e9Pz/zec24JwFbLIzIhXQ
tODMF8CywPT Mj8pKpV72PKnTg9UfKENgLMJA8H/XN1emj68rrxHimquccofsSq4
X0IFC xGMNFyC8rpVm317994vmG6sqWuBEy8qKxpFZe97 u0jL81 NTD0SgOXDqf
cBgzIHfEoq8CAwEAAaOCARcwggETMB8GA1UdIwQYMBaAFK29mHo0tCb3 sQmVO8D
veAky1QaMB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzAOBgNVHQ8BAf8E
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAgBgNVHSUEGTAXBgorBgEEAYI3CgMDBglg
hkgBhvhCBAEwEQYDVR0gBAowCDAGBgRVHSAAMHsGA1UdHwR0MHIwOKA2oDSGMmh0
dHA6Ly9jcmwuY29tb2RvY2EuY29tL0FkZFRydXN0RXh0ZXJuYWxDQVJvb3QuY3Js
MDagNKAyhjBodHRwOi8vY3JsLmNvbW9kby5uZXQvQWRkVHJ1c3RFeHRlcm5hbENB
Um9vdC5jcmwwDQYJKoZIhvcNAQEFBQADggEBAGOGkhCxE/o3vo4qthuKQ/Vcrg4U
140

3/dpQH /GnEACdi/1CRKv CT/wHYC8YP7H5HnLBd93wUnfzAM5KEW9KD9FLiIlh0


/EMbP6ejWNoD/bzwOuTtzBK7ybmuewSgBHK/6d4t0qdRZgBz0r1 qp5Tln1pshg
jq1WUH731bD/OWJlgoyWV8OP92D2wo00h/xPQ Xbvxyq9obN5t8RP40H922DE8A4
iDlgoX4w4eOIPqS7Y28s6YpoLO6WaawEYeFPTg6dckz2eTjIx0hpb5QPdLS8yM9X
Tbl1cZYNigYL693Q8Dx9xi6YRmo4xwK1yLiyZXXe2pAItne4UwAly0fKc18wggQ2
MIIDHqADAgECAgEBMA0GCSqGSIb3DQEBBQUAMG8xCzAJBgNVBAYTAlNFMRQwEgYD
VQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQ
IE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3QwHhcN
MDAwNTMwMTA0ODM4WhcNMjAwNTMwMTA0ODM4WjBvMQswCQYDVQQGEwJTRTEUMBIG
A1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRU
UCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt/caM byAAQtOeBOW 0fvGwP
zbX6I7bO3psRM5ekKUx9k5 9SryT7QMa44/P5W1QWtaXKZRagLBJetsulf24yr83
OC0ePpFBrXBWx/BPP gynnTKyJBU6cZfD3idmkA8Dqxhql4Uj56HoWpQ3NeaTq8F
s6ZxlJxxs1BgCscTnTgHhgKo6ahpJhiQq0ywTyOrOk E2N/On Fpb7vXQtdrROTH
re5tQV9yWnEIN7N5ZaRZoJQ39wAvDcKSctrQOHLbFKhFxF0qfbe01sTurM0TRLfJ
K91DACX6YblpalgjEbenM49WdVn1zSnXRrcKK2W200JvFbK4e/vv6V1T1TRaJwID
AQABo4HcMIHZMB0GA1UdDgQWBBStvZh6NLQm9/rEJlTvA73gJMtUGjALBgNVHQ8E
BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zCBmQYDVR0jBIGRMIGOgBStvZh6NLQm9/rE
JlTvA73gJMtUGqFzpHEwbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0
IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAG
A1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9vdIIBATANBgkqhkiG9w0BAQUF
AAOCAQEAsJvghSXC1iPiD5YGkp1BmJzZhHmB2R5bFAcjNmWPsNh3u6xBbEdgg1Gw
TI95/z2JhPHgBalv1r8h894eYkhmuJMBwqGNbzy3lHE0pa33H5O7nD9HDnrDAJR
FC2OvRbgwd9Gdeckrez0QrSFk3AQZ7qdBjVKGNMresxRQqF6Y9Hmu6HFK8I2vhMN
5r1jfnl7pwkNQKtq3Y Kw/b2jBpCBVHURfWfp2IhaBUgQzyZ53y9JNipkRdziD9W
GzE4GLRxD5rNyA6eji4b4YyYg8sfMfFETMYEc0l2YA/H L0XgGsu6cxMDlqaeQ8g
Ci7VnmMmHlWSlNiCF1p70LzHj06GBDEA</item>
<item key='ca_certificates'>
<dt_array>
<item key='0'>-----BEGIN CERTIFICATE----MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
141

FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
H7xsD821 iO2zt6bETOXpClMfZOfvUq8k 0DGuOPz VtUFrWlymUWoCwSXrbLpX9
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI eh6FqUNzX
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW 710LX
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
E0S3ySvdQwAl mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77 ldU9U0
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
AQEFBQADggEBALCb4IUlwtYj4g WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x Tu5w/Rw5
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
c4g/VhsxOBi0cQ azcgOno4uG GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
-----END CERTIFICATE-----</item>
<item key='1'>-----BEGIN CERTIFICATE----MIIEpjCCA46gAwIBAgIQRurwlgVMxeP6Zepun0LGZDANBgkqhkiG9w0BAQUFADBv
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
eHRlcm5hbCBDQSBSb290MB4XDTA1MDYwNzA4MDkxMFoXDTIwMDUzMDEwNDgzOFow
gZMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtl
IENpdHkxHjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMY
aHR0cDovL3d3dy51c2VydHJ1c3QuY29tMRswGQYDVQQDExJVVE4gLSBEQVRBQ29y
cCBTR0MwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDf7lgQoituVcSO
vy5GCefgCA8uK3oTlBu99raAjmUFkwAevK/iD44ZDRJH7Kyto/oucPjebvtWQhWe
LlzvI94huQV2JxkPT9bDnLS lBlj8qYRCutTSJy 8ik7FugaoEymyfQYWWjAcPJT
AMBeUIKlVm82 UrgRIagTU7WR25JSstn16bEBbmOHvT8/83nNuCcBWyyMyIV0LTg
zBfAssD0/jI/KSqVe9jyp04PVHyhDYCzCQPB/1zdXpo vK68R4pqrnHKH7EquF9C
BQvsRjDRcgvK6VZt9e/feL5hurKlrgRMvKisaRWXve/rtIy/NfjUw9EoDlw6n3AY
MyB3xKKvAgMBAAGjggEXMIIBEzAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73g
142

JMtUGjAdBgNVHQ4EFgQUUzLRs89/ uDxoF2FTpLSnkUdtE8wDgYDVR0PAQH/BAQD
AgEGMA8GA1UdEwEB/wQFMAMBAf8wIAYDVR0lBBkwFwYKKwYBBAGCNwoDAwYJYIZI
AYb4QgQBMBEGA1UdIAQKMAgwBgYEVR0gADB7BgNVHR8EdDByMDigNqA0hjJodHRw
Oi8vY3JsLmNvbW9kb2NhLmNvbS9BZGRUcnVzdEV4dGVybmFsQ0FSb290LmNybDA2
oDSgMoYwaHR0cDovL2NybC5jb21vZG8ubmV0L0FkZFRydXN0RXh0ZXJuYWxDQVJv
b3QuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQBjhpIQsRP6N76OKrYbikP1XK4OFN/3
aUB/vxpxAAnYv9QkSr/gk/8B2AvGD x R5ywXfd8FJ38wDOShFvSg/RS4iJYdPxD
Gz no1jaA/288Drk7cwSu8m5rnsEoARyv neLdKnUWYAc9K9fqqeU5Z9abIYPo6t
VlB 99Ww/zliZYKMllfDj/dg9sKNNIf8T0Pl278cqvaGzebfET NB/dtgxPAOIg5
YKF MOHjiD6ku2NvLOmKaCzulmmsBGHhT04OnXJM9nk4yMdIaW UD3S0vMjPV025
dXGWDYoGC vd0PA8fcYumEZqOMcCtci4smV13tqQCLZ3uFMAJctHynNf
-----END CERTIFICATE-----</item>
<item key='2'>-----BEGIN CERTIFICATE----MIIEqzCCA5OgAwIBAgIQLnmDLpCIh qLjvMabuZ6RDANBgkqhkiG9w0BAQUFADCB
kzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVUTiAtIERBVEFDb3Jw
IFNHQzAeFw0wNjEyMDEwMDAwMDBaFw0yMDA1MzAxMDQ4MzhaMIGBMQswCQYDVQQG
EwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxm
b3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RP
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH 7uIzg3jLz8GlvCiKVCZ
rts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAh
TaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH 1GImGEaaP vB fGQV useg2L23Iw
ambV4EajcNxo2f8ESIl33rXp 2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVD
iOEjPqXSJDlqR6sA1KGzqSX DT nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ
0o7KBWFxB3NH5YoZEr0ETc5OnKVIrLsm9wIDAQABo4IBCTCCAQUwHwYDVR0jBBgw
FoAUUzLRs89/ uDxoF2FTpLSnkUdtE8wHQYDVR0OBBYEFAtY5YvGTBU3pECpMKkh
vkc2Wlb/MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MCAGA1UdJQQZ
MBcGCisGAQQBgjcKAwMGCWCGSAGG EIEATARBgNVHSAECjAIMAYGBFUdIAAwbQYD
VR0fBGYwZDAxoC gLYYraHR0cDovL2NybC5jb21vZG9jYS5jb20vVVROLURBVEFD
b3JwU0dDLmNybDAvoC2gK4YpaHR0cDovL2NybC5jb21vZG8ubmV0L1VUTi1EQVRB
Q29ycFNHQy5jcmwwDQYJKoZIhvcNAQEFBQADggEBANheksSuFNxDrcKkw2dFBx35
N6IZxxw3NZETHAfEfUKmDvCGXENrDkTPviRhOkKpzp1Mr3k5cN0OBCBOlZw83rdg
umNDQO1qD4FJRrsek8BL8/jhNkkbb7YMDfKQV4r8bZPyKMf6hgoosxcOWYoutr/N
143

4axMZmzyVZFWtzK/seR9teg6ti/bspzaUJOOTsWsmn5cnhI8O03GUHCzZSuO92uh
uyXAALv17BZlgQ771KMhlneaqHS8U6rCOVD/CwIJYcyVt9eIavZcxWjTFJUaR1/Z
y3kL48ThqsxE0ATrG7ttRAwixtQqc7ujMrrfLW5Fj3U m SbR6ivfsCSsVwvvE=
-----END CERTIFICATE-----</item>
<item key='3'>-----BEGIN CERTIFICATE----MIIFAzCCA ugAwIBAgIQGLLLuqME8aAPwfLzJkYqSjANBgkqhkiG9w0BAQUFADCB
gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
MDBaFw0xOTEyMzEyMzU5NTlaMHIxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVh
dGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9E
TyBDQSBMaW1pdGVkMRgwFgYDVQQDEw9Fc3NlbnRpYWxTU0wgQ0EwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt8AiwcsargxIxF3CJhakgEtSYau2A1NHf
5I5ZLdOWIY120j8YC0YZYwvHIPPlC92AGvFaoL0dds23Izp0XmEbdaqb1IX04XiR
0y3hr/yYLgbSeT1awB8hLRyuIVPGOqchfr7tZ291HRqfalsGs2rjsQuqag7nbWzD
ypWMN84hHzWQfdvaGlyoiBSyD8gSIF/F03/o4Tjg27z5H6Gq1huQByH6RSRQXScq
oChBRVt9vKCiL6qbfltTxfEFFld Edc7tNkBdtzffRDPUanlOPJ7FAB1WfnwWdsX
Pvev5gItpHnBXaIcw5rIp6gLSApqLn8tl2X2xQScRMiZln5 pN0vAgMBAAGjggGD
MIIBfzAfBgNVHSMEGDAWgBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAdBgNVHQ4EFgQU
2svqrVsIXcz//CZUzknlVcY49PgwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQI
MAYBAf8CAQAwIAYDVR0lBBkwFwYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMD4GA1Ud
IAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwczovL3NlY3VyZS5jb21v
ZG8uY29tL0NQUzBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9kb2Nh
LmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBsBggrBgEFBQcB
AQRgMF4wNgYIKwYBBQUHMAKGKmh0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NvbW9k
b1VUTlNHQ0NBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2Eu
Y29tMA0GCSqGSIb3DQEBBQUAA4IBAQAtlzR6QDLqcJcvgTtLeRJ3rvuq1xqo2l/z
odueTZbLN3qo6u6bldudu Ennv1F7Q5Slqz0J790qpL0pcRDAB8OtXj5isWMcL2a
ejGjKdBZa0wztSz4iw SY1dWrCRnilsvKcKxudokxeRiDn55w/65g onO7wdQ7Vu
F6r7yJiIatnyfKH2cboZT7g440LX8NqxwCPf3dfxp 0Jj1agq8MLy6SSgIGSH6lv
Wwz3D5XxqfyH8wqfOQsTEZf6/Nh9yvENZ NWPU6g0QO2JOsTGvMd/QDzczc4BxL
XSXaPV7Od4rhPsbXlM1wSTz/Dr0ISKvlUhQVnQ6cGodWaK2cCQBk
-----END CERTIFICATE-----</item>
</dt_array>
</item>
144

<item key='certificate'>-----BEGIN CERTIFICATE----MIIFSzCCBDOgAwIBAgIQKBqJ8LG7xMORrbudRYUgPjANBgkqhkiG9w0BAQUFADBy


MQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD
VQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDEYMBYGA1UE
AxMPRXNzZW50aWFsU1NMIENBMB4XDTExMTAwNTAwMDAwMFoXDTEyMTAwNTIzNTk1
OVowgYUxITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDEeMBwGA1UE
CxMVSG9zdGVkIGJ5IFR1Y293cyBJbmMuMR4wHAYDVQQLExVFc3NlbnRpYWxTU0wg
V2lsZGNhcmQxIDAeBgNVBAMUFyoucmVnNC5xYXJlZ3Jlc3Npb24ub3JnMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAukPlCL1vnnl9kgRhdRZ XQ2yo3Fq
nFbGIBZkjg2dJ8X3M/hM Lat5u /A1rkHP3kNvchwjf2kOmh29Hul6JLkfFlv6Zf
YNsTva/28P4RMZ38CBiTomAEwsxxrU5zDZmOLOqY3mg1sifhXT7lma0tgGSCil8R
u9NF/jbAnShJx/MdvRdKORo1LGYplwg0 Esho5ODbIOlgEY18qgEDg8f0ir3jlOd
sUzH1A/qyl332eowlzztSmaJkbkjOJhMl9WaGfp0LeybNk7nGiSyIMWsHotlrQdi
aftERg6SkS9eDFljYGXEnoexa5BbQGO0mpAGO5WbeB0KNWUyRAHYPdaZ1wIDAQAB
o4IBxzCCAcMwHwYDVR0jBBgwFoAU2svqrVsIXcz//CZUzknlVcY49PgwHQYDVR0O
BBYEFLLQDNSlCLlxPNKvHiVYCm/SBridMA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMB
Af8EAjAAMDQGA1UdJQQtMCsGCCsGAQUFBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoD
AwYJYIZIAYb4QgQBMEUGA1UdIAQ MDwwOgYLKwYBBAGyMQECAgcwKzApBggrBgEF
BQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNvbS9DUFMwOwYDVR0fBDQwMjAw
oC6gLIYqaHR0cDovL2NybC5jb21vZG9jYS5jb20vRXNzZW50aWFsU1NMQ0EuY3Js
MG4GCCsGAQUFBwEBBGIwYDA4BggrBgEFBQcwAoYsaHR0cDovL2NydC5jb21vZG9j
YS5jb20vRXNzZW50aWFsU1NMQ0FfMi5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9v
Y3NwLmNvbW9kb2NhLmNvbTA5BgNVHREEMjAwghcqLnJlZzQucWFyZWdyZXNzaW9u
Lm9yZ4IVcmVnNC5xYXJlZ3Jlc3Npb24ub3JnMA0GCSqGSIb3DQEBBQUAA4IBAQBo
8rwMrpd2iSi45Vl69urPeUwMTeuEugN1V5zW26gxUE7nMLuOwwaFKKJFnOrxYSLb
YK7ez61Oujx9AyNwRyCja/0JdMEV9PHJHsn/mkLjXLnkgFmoxX75dsISBpIjy5f
Q0t5xzbkVxBV3ZGW5OHRIy76h0gyrsRTNVr2BK3j apQUfQkdlPLq2DxHtJjuL5X
rkVj 4mnUESS8Suhb8nEebc367kyXlVr453dHuQKfOUHtTmNOh5hin9yYOt0c1Dc
yqsmue7TkHwniAryq4QsukxckiTyIAU4q 2BjO0gULy9C/3Nu8guFtLof DEO9t2
g0sPCFcn9QtLIdF oeMN
-----END CERTIFICATE-----</item>
</dt_assoc>
</item>
<item key='expiry_date'>2012-10-05T00:00:00.000-04:00</item>
<item key='state'>active</item>
145

<item key='product_type'>truebizid_wildcard</item>
<item key='domain'>*.example.com</item>
<item key='issue_date'>2011-10-05T00:00:00.000-04:00</item>
<item key='product_id'>1701</item>
<item key='contact_email'>zack@example.com</item>
<item key='start_date'>2011-10-05T00:00:00.000-04:00</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Uses the product ID to retrieve the properties for a Trust Service product.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get_cert</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='product_id'>2096</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
146

</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='cert_data'>
<dt_assoc>
<item key='certificate'>-----BEGIN CERTIFICATE----MIIEUTCCAzmgAwIBAgIDAX8yMA0GCSqGSIb3DQEBBQUAME8xCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxHZW9UcnVzdCBJbmMxKTAnBgNVBAMTIEdlb1RydXN0IFByZS1Q
cm9kdWN0aW9uIFNVQiBDQSAzMB4XDTEyMDQyODIzNDIzMFoXDTEyMDUwODExMzQ0
OVowgZoxEzARBgNVBAsTCkdUMDgzMjUxNzMxMTAvBgNVBAsTKFNlZSB3d3cucmFw
aWRzc2wuY29tL3Jlc291cmNlcy9jcHMgKGMpMTIxLzAtBgNVBAsTJkRvbWFpbiBD
b250cm9sIFZhbGlkYXRlZCAtIFJhcGlkU1NMKFIpMR8wHQYDVQQDExZyYXBpZC5x
YXJlZ3Jlc3Npb24ub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
01fy13nKyEaR7BcXW/ZOzrgNbW/v57Q4HtJsFLhakoVU30C6N+xUwZMVMTpMlq5f
xmHjC8/bJN1vho9l3EI9W+QEFXcyh3O9F/11SPqFxStjA/F1R5uzIQuMwMpe4Z3o
EPAusTDDEZDn6KtDMrsjgDRXNUL6IjWHTErj9G4bl13bwqBUy6LyCQoGOpME5qNA
skJ3HWdv99xJy4b1XjOw5qekIrYYXcslV3INDnV+V+jR/LuU+JuqTaZKL5fnIp5i
147

n6WDTK1EYQ7L1KnA4WlXL0cOy7xCnH2AjR5iV+gOX0mypJ0RbCYWMWfQC+1BxLVP
/wlljvTkIaZkiGkJPz3KUwIDAQABo4HpMIHmMB8GA1UdIwQYMBaAFGV1riJo592U
KxNo1SwYK4YYVaDFMA4GA1UdDwEB/wQEAwIFoDAhBgNVHREEGjAYghZyYXBpZC5x
YXJlZ3Jlc3Npb24ub3JnMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly90ZXN0LWNy
bC5nZW90cnVzdC5jb20vY3Jscy9wcmVwcm9kc3ViY2EzLmNybDAMBgNVHRMBAf8E
AjAAMB0GA1UdDgQWBBQDOAEoYLLChTqOW8wOPRiHwcgQMjAdBgNVHSUEFjAUBggr
BgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADggEBAMBPQE2zs+68mvwQ
xWs5ajDPkDerr5IGWwAPx9n9YonnIydHuB5wqAN6tr34f8wT4hqwMhGO1JPZzEyF
I3flV4Ca5P14bpLC96G4O8/XDG0off2tDYf5OVQgbNP/s93mvMhSo3jAHN3Enpn0
iLDRXuc+UVFmiakLrANsVGKzMReBeWtk0tej6ONSC0Ds6PGrlzHSXcWHR9WD1dVF
+1vKnaS2pp4nXBQthh1wbvk8+VekrYRaPy/5h3/9hRHVb85rb8hbLWSBfN6oyLRw
KZnecg3wOB449Hfi072JKEgEViBkuYJLr94KQ8gTSEtDlGmSLGCZaGsrtgmNbyne
aNzofSA=
-----END CERTIFICATE-----</item>
</dt_assoc>
</item>
<item key='expiry_date'>2012-05-08T07:34:49.000-04:00</item>
<item key='state'>active</item>
<item key='product_type'>quickssl</item>
<item key='domain'>example.com</item>
<item key='issue_date'>2012-04-30T11:27:59.000-04:00</item>
<item key='product_id'>2096</item>
<item key='contact_email'>zack@example.com</item>
<item key='start_date'>2012-04-28T19:42:30.000-04:00</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

148

get_contract
Description
Action & object
action = get_contract
object = domain
Usage
Retrieves the text of the Reseller agreement known as Exhibit A.

Request parameters for get_contract


Standard parameters
action = get_contract
object = domain
attributes
Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation Definition / Value

type

Required

Type of query.
Allowed value is exhibit_a.

Response parameters for get_contract


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the
request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request
149

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition / Value

contract

Returned if is_success
=1

The text of the Reseller agreement


known as Exhibit A.

Examples for get_contract


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET_CONTRACT</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="type">exhibit_a</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
150

<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">


<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Contract data successfully retrieved</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="contract">
<dt_assoc>
<item key="text">1. AGREEMENT. In this Registration Agreement ("Agreement") "you" and
"your" refer to the registrant of each domain name registration.....etc.....</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

151

get_deleted_domains
Description
Action & object
action =get_deleted_domains
object = domain

Usage
Lists domains that have been deleted due to expiration or deleted by request
(revoked). This command applies to all domains in a Reseller's profile.
Results include the domain, status, and deleted date.
All attributes are optional, but can be used to narrow the search criteria. If
no attributes are specified, the response contains all domains that were ever
deleted from your profile.

Request parameters for get_deleted_domains


Standard parameters
action = get_deleted_domains
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition / Value

admin_email

Optional

Can be used to search for deleted domains associated


with a specific admin email. Wildcards (*) are
accepted.

billing_email

Optional

Can be used to search for deleted domains associated


with a specific billing email. Wildcards (*) are
accepted.

del_from

Optional

Specify a starting date, in the format YYYY-MM-DD,


from which to return deleted domains. Can be used
with the del_to attribute to specify a range to search
within. If not used with del_to, all domains from the
del_from date onward are returned. The year
specified cannot exceed 2030; otherwise an error is
returned.
152

Parameter
name

Obligation

Definition / Value

del_to

Optional

Specify an end date, in the format YYYY-MM-DD,


before which to return deleted domains. Can be used
with the del_from attribute to specify a range to
search within. If not used with del_from, all domains
ever deleted from the del_to date and earlier are
returned. The year specified cannot exceed 2030;
otherwise an error is returned.

domain

Optional

Submit this attribute only if you want to check if a


particular domain has been deleted.

exp_from

Optional

Specify a starting date, in the format YYYY-MM-DD,


from which to return expired-deleted domains. Can
be used with the exp_to attribute to specify a range
to search within. If not used with exp_to, all
expired-deleted domains from the exp_from date
onward are returned. The year specified cannot
exceed 2030; otherwise an error is returned.

exp_to

Optional

Specify a date, in the format YYYY-MM-DD, before


which to return expired-deleted domains. Can be
used with the exp_from attribute to specify a range
to search within. If not used with exp_from, all
domains ever expired-deleted from the exp_to date
and earlier are returned. The year specified cannot
exceed 2030; otherwise an error is returned.

limit

Optional

The maximum number of domains to return per


page.

owner_email

Optional

Can be used to search for deleted domains associated


with a specific owner email. Wildcards (*) are
accepted.

page

Optional

Determines which page to retrieve, using the page


number. The page index starts at 0 (zero).

tech_email

Optional

Can be used to search for deleted domains associated


with a specific tech email. Wildcards (*) are
accepted.

153

Response parameters for get_deleted_domains


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition / Value

del_domains

Returned if is_success = Contains arrays that list details about


true
each deleted domain.
For more information, see the
Del_Domains table below.

page_size

Returned if specified in
the request and
is_success = true.

The maximum number of domains


returned per page.

total

Returned if is_success = The number of deleted domains.


true

Del_Domains
Parameters within the del_domains associative array are described below.
Parameter name Obligation

Definition / Value

delete_date

Always returned for deleted


domains.

The date that the domain was


deleted, in the format DD-MMMYYYY hh:mm:ss.

delete_date_epoch

Always returned for deleted


domains.

The date that the domain was


deleted, in UNIX time.

expire_date

Always returned for deleted


domains.

The date that the domain will


expire, in the format DD-MMMYYYY hh:mm:ss.

expiredate_epoch

Always returned for deleted


domains.

The date that the domain


expires, in UNIX time.
154

Parameter name Obligation

Definition / Value

name

Always returned if a deleted The domain that was deleted.


domain exists and meets the
specified search criteria.

reason

Always returned for deleted


domains.

Indicates if the domain was


deleted by request (revoked), or
deleted due to expiry:

y-Request

xpired

ransferred

istorical

Examples for get_deleted_domains


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET_DELETED_DOMAINS</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="owner_email">*</item>
<item key="del_to">2011-10-10</item>
<item key="admin_email">*</item>
<item key="limit">10</item>
<item key="del_from">2000-10-10</item>
155

<item key="page">1</item>
<item key="billing_email">*</item>
<item key="exp_to">2014-10-10</item>
<item key="tech_email">*</item>
<item key="exp_from">2002-10-10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="page">1</item>
<item key="page_size">2</item>
<item key="total">2</item>
<item key="del_domains">
<dt_array>
156

<item key="0">
<dt_assoc>
<item
key="expiredate_epoch">1229135427</item>
<item key="delete_date">12-DEC-2004

21:31:30</item>

<item key="reason">By-Request</item>
<item
key="delete_date_epoch">1102905090</item>
<item key="name">pure1102905253608.com</item>
<item key="expiredate">12-DEC-2008
21:30:27</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item
key="expiredate_epoch">1229135516</item>
<item key="delete_date">12-DEC-2004
21:32:48</item>
<item key="reason">By-Request</item>
<item
key="delete_date_epoch">1102905168</item>
<item key="name">pure-

1102905358159.net</item>

<item key="expiredate">12-DEC-2008

21:31:56</item>

</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

157

get (domain)
Description
Action & object
action = get
object = domain

Usage
Queries various types of data regarding the user's domain. For example, the
all_info type allows you to retrieve all data for the domain linked to the
current cookie. The list type queries the list of domains associated with the
user's profile. The list type can also be used to return a list of domains that
expire within a specified range. The nameservers type returns the
nameservers currently acting as DNS servers for the domain.

Request parameters for get (domain)


Standard Parameters
action = get
object = domain
registrant_ip = valid IP address of the registrant
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes
Note: The get (domain) command may be used without end-user credentials when
type=admin, all_info, billing, expire_action, forwarding_email (.NAME only),
list, tech, owner, nameservers, status, rsp_whois_info, ced_info,
nexus_info, or whois_privacy_state. For more information, see "Submitting API
commands without credentials".

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

clean_ca_subset Optional

Definition / Value
Determines the type of contact_set values that
are returned for .CA domains when type =
admin or tech.
If clean_ca_subset = 1, the address data is
returned in the standard address fields
(address1, address2, and address3).
158

Parameter
name

Obligation

Definition / Value
If clean_ca_subset is not specified, the query
returns the values addr_address_number,
addr_corporative, addr_office,
addr_orientation, addr_street_cat, and
addr_street_name along with the standard
address fields (address1, address2, and
address3).

domain

Required if
cookie is not
submitted

The relevant domain.

limit

Optional

The maximum number of domains to return per


page.

max_to_expiry

Required when Defines the expiration range (in days): to fetch


type = list
the list of domains that are between
max_to_expiry and min_to_expiry before the
expiration date.
If min_to_expiry is not provided, it defaults to
0. If min_to_expiry > max_to_expiry, the list
is empty. These parameters can have negative
values, which means days past the expiration
date. For example, -5 means 5 days past the
expiration date.

min_to_expiry

Required when Defines the expiration range (in days): to fetch


type = list
the list of domains that are between
max_to_expiry and min_to_expiry before
expiration date.
If min_to_expiry is not provided, it defaults to
0. If min_to_expiry > max_to_expiry, the list
is empty. These parameters can have negative
values, which means days past the expiration
date. For example, -5 means 5 days past the
expiration date.

page

Optional

Determines which page to retrieve, using the


page number. The page index starts at 0 (zero).

type

Required

Type of query. Allowed values are:

adminReturns admin contact


information.

all_infoReturns all information.

auto_renew_flagDeprecated,
Returned list of domains.

billing Returns billing contact


information.
159

Parameter
name

Obligation

Definition / Value

ca_whois_display_settingReturns the
current CIRA Whois Privacy setting for .CA
domains.

domain_auth_info Returns domain


authorization code, if applicable.

expire_action Returns the action to be


taken upon domain expiry, specifically
whether to auto-renew the domain, or let
it expire silently.

forwarding_email Returns forwarding


email for .NAME 2nd level.

list Returns list of domains for user.

nameservers Returns nameserver


information.

owner Returns owner contact


information.

rsp_whois_info Returns name and


contact information for RSP.

status Returns lock or escrow status of


the domain.

tech Returns tech contact information.

tld_dataReturns additional information


that is required by some registries, such as
the residency of the registrant.

trademark Deprecated. Used for .CA


domains; returns 'Y' or 'N' value indicating
whether the registered owner of the
domain name is the legal holder of the
trademark for that word.

waiting history Returns information on


asynchronous requests.

whois_privacy_state Returns the state


for the WHOIS Privacy feature: enabled,
disabled, enabling, or disabling.
Note: If the TLD does not allow WHOIS
Privacy, always returns Disabled.

xpack_waiting_history Returns the


state of completed/cancelled requests not
yet deleted from the database for
.DKdomains.
All completed/cancelled requests are
deleted from the database two weeks after
they move to final state.

160

Deprecated
Parameter name

Obligation

Definition / Value

with_encoding_types

Deprecated

If submitted, this attribute is ignored.

Response parameters for get (domain)


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes

The response message returned varies depending on the value of the type
field that was used to send the request.

Return details for type = admin, billing, owner,or tech


Parameter
name

Obligation

Definition/Value

contact_set

Returned when type = An associative array containing the contact


owner, admin,
information of the requested type. For
billing, or tech and
details on contact fields, see "Contact Set".
is_success = true

descr

Returned when type = The domain description.


owner, admin,
billing, or tech and
is_success = true

Return details for type = all_info


The response message consists of a combination of the fields used for type =
nameserver, and type = owner, admin, tech, or billing. The contact_set
contains a type for each possible contact type.
Also returns the fields: auto_renew, expiredate, let_expire, sponsoring_rsp
as per the Extended Results of type = list.
Parameter name

Obligation

Definition/Value

affiliate_id

Returned if applicable and The affiliate id associated with


161

Parameter name

Obligation

Definition/Value

is_success = 1

the domain.

descr

Returned when type =


all_info and is_success
= true

The text of the domain


description.

dns_errors

Returned when type =


all_info and is_success
= true

The text of the DNS errors.

nameserver_list

Returned when type =


all_info and is_success
= true

A list of nameservers. Each


nameserver is represented as
an anonymous associative
array.
For more information, see the
Nameserver_List table below.

registry_createdate

Returned when type =


all_info and is_success
= true

The date that the domain was


created at the Registry.

registry_expiredate

Returned when type =


all_info only if the
Registry provides this
information.

The domain's expiry date as


recorded at the Registry.

registry_transferdate

Returned when type =


all_info only if the
Registry provides this
information and the
domain was transferred.

The Registry's record of when


the domain was transferred.

registry_updatedate

Returned when type =


all_info only if the
Registry provides this
information.

The date the domain was last


updated at the Registry.

sponsoring_rsp

Returned when type =


all_info and is_success
= true

Indicates if the domain is under


your Reseller profile:

0Domain is
provisioned by a
different Reseller

1Domain is under your


Reseller profile (loggedin Reseller)

162

Parameter name

Obligation

Definition/Value

tld_data

Returned for .ASIA,


.AR, .AU, .BR, .CL, .COOP,
.DK, .FI, .HK, .HU, .IT,
.JOBS, .LV, .MX, .NO, .PM,
.PRO, .PT, .RE, .RO,
.RU, .SE, .TF, .US, .WF,
.XXX, .YT, and .ZA
domains when type =
all_info and is_success
= true

An associative array containing


registrant information.
For more information, see
tld_data.

Deprecated
Parameter name

Obligation

Definition/Value

rant_no

Deprecated

The CIRA Registrant number. Valid values


are:

valid CIRA Registrant number

0no existing CIRA Registrant


number or don't know CIRA
Registrant number.

Nameserver_List
Parameters within the nameserver_list associative array are described below.
Parameter
name

Obligation

Definition/Value

ip_address

Returned if the nameserver


has an IPv4 address.

The IPv4 address of the


nameserver.

ipv6

Returned if the nameserver


has an IPv6 address.

The IPv6 address of the


nameserver.

name

Returned when type =


all_info

The name of the nameserver.

sort_order

Returned when type =


all_info

The nameserver sort order.

163

Return details for type = ca_whois_display_setting


Parameters within the ca_whois_display_setting associative array are
described below.
Parameter
name

Obligation

display

Returned if
Indicates the current setting for the CIRA WHOIS
is_success = Privacy setting.
true
Allowed values are:

individual

Returned if
is_success =
true

Definition/Value

PRIVATEWhen a WHOIS lookup is done


on the domain name, do not display
personal information.

FULLWhen a WHOIS lookup is done on


the domain name, display all of the data
that is on the WHOIS directory, including
name, address, telephone number and
email address.

Indicates whether the domain owner is an


individual registrant. Only individual registrants
(Canadian citizens, Permanent residents, Legal
representatives, Aboriginal peoples) can change
their CIRA Whois Privacy setting.
Allowed values are Y or N.

Return details for type = domain_auth_info


Parameter name Obligation
domain_auth_info

Definition/Value

Returned when type Authentication password for the domain.


=
This facilitates transfers to others
domain_auth_info registrars.
and is_success =
true

Return details for type = expire_action


Parameter
name

Obligation

Definition/Value

auto_renew

Returned when type =


expire_action and
is_success = true

Indicates whether the domain can auto


renew or not:

0Do not auto-renew

1Auto-renew.

164

Parameter
name

Obligation

Definition/Value

expiredate

Returned when type =


expire_action and
is_success = true

The date that the domain is set to expire,


in the format YYYY-MM-DD HH24:MM:SS.

let_expire

Returned when type =


expire_action and
is_success = true

Indicates whether the domain is set to


expire silently:

0Do not expire silently.

1Expire silently

Return details for type = forwarding_email


Parameter
name

Obligation

Definition/Value

forwarding_email

Returned when type =


forwarding_email and
is_success = true

The domain's e-mail address that is


used for forwarding purposes.

Return details for type = list


Parameter
name

Obligation

Definition/Value

count

Returned when
type = list and
is_success =
true

The count (total number) of domain names in the


current user profile.

domain_list

Returned when
type = list and
is_success =
true

An array of domain name hashes.


For compatibility reasons, if you set
with_encoding_types attribute in the request to
0 or don't set it at all, then you get an array of
scalars, domain names.
For more information, see the Domain_List table
below.

ext_results

remainder

Returned when
type = list and
is_success =
true

An array of extended results that indicate the


domains and their expiry dates.

Returned when
type = list and
is_success =
true

A Boolean variable indicating whether there are


more domains in the list:

For more information, see the Ext_Results table


below.

0No more domains.

1More domains to be listed.

165

Domain_List
Parameters within the domain_list associative array are described below
Parameter
name

Obligation

Definition/Value

domain

Returned when
type = list and
is_success =
true

Fully qualified domain name.

encoding_type

Returned when
type = list and
is_success =
true

The three-character tag that represents the


language encoding type for the domain. For a
list of languages and codes, see Appendix C:
Encoding Types for IDNs.

Ext_Results
Parameters within the ext_results associative array are described below.
Parameter name Obligation

Definition/Value

auto_renew

Returned when
Status of the auto-renew flag:
type = list and
0Do not auto-renew
is_success = true
1Auto-renew

expiredate

Returned when
Expiration date of the domain.
type = list and
is_success = true

has_whois_privacy

Returned when
Indicates whether WHOIS Privacy is
type = list and
enabled:
is_success = true
0Disabled

1Enabled

let_expire

Returned when
Status of the let-expire flag:
type = list and
0Don't expire domain silently
is_success = true
1Expire domain silently

lock_state

Returned when
Flag indicating if the domain is locked to
type = list and
prevent transfers:
is_success = true
0Not locked.

sponsoring_rsp

1Locked.

Returned when
Flag indicating if the domain is sponsored
type = list and
by the reseller making the call:
is_success = true
0Not sponsoring RSP

1Sponsoring RSP

166

Deprecated
Parameter
name

Obligation

Definition/Value

wp_expiredate

Deprecated

Expiration date of WHOIS Privacy. (Always returns


0.)

wp_service

Deprecated

Flag indicating if WHOIS Privacy is enabled.

Return details for type = nameservers


Parameter
name

Obligation

Definition/Value

nameserver_list

Returned when type = A list of nameservers. Each nameserver is


nameservers and
represented as an anonymous associative
is_success = true
array.
For more information, see the
Nameserver_List table below.

Nameserver_List
Parameters within the nameserver_list associative array are described below.
Parameter
name

Obligation

Definition/Value

ipaddress

Returned when
type =
nameservers

IP address of the nameserver

name

Returned when
type =
nameservers

Fully qualified domain name of the nameserver.

sortorder

Returned when
type =
nameservers

Sort order of this nameserver. The sortorder


does not necessarily start at 0 and there may be
gaps between nameserver entries. It does
indicate the relative sorting order of the
nameservers. The sort order value must be
preserved for nameserver modification
commands.

Deprecated
Parameter
name

Obligation

Definition/Value

encoding_type

Deprecated

The encoding type for the nameserver.


167

Return details for type = rsp_whois_info


Parameter
name

Obligation

Definition/Value

business

Returned when type =


rsp_whois_info and
is_success = true

The business name of the RSP.

domain_enabled

Returned when type =


rsp_whois_info and
is_success = true

Indicates whether this feature enabled


for given domain:

YEnabled

NDisabled

email

Returned when type =


rsp_whois_info and
is_success = true

Email address of the RSP.

phone

Returned when type =


rsp_whois_info and
is_success = true

Phone number of the RSP.

rsp_enabled

Returned when type =


rsp_whois_info and
is_success = true

Indicates whether this feature is


enabled or disabled by RSP:

url

Returned when type =


rsp_whois_info and
is_success = true

YEnabled

NDisabled

The URL of the RSP.

Return details for type = status


Parameter name

Obligation

auctionescrow

Returned when type Indicates whether the domain has


= status and domain been placed in auction escrow. If in
is in auction escrow. auction escrow, the domain cannot be
renewed.

can_modify

Definition/Value

0Not in escrow.

1In escrow.

Returned when type Indicates whether the lock state can be


= status and
modified during this session:
is_success = true
0Cannot be modified.

domain_supports

1Can be modified.

Returned when type Indicates whether the TLD is one that


= status and
supports domain locking:
168

Parameter name

Obligation

Definition/Value

is_success = true

lock_state

0Does not support domain


locking.

1Supports domain locking

Returned when type Indicates whether the domain is


= status and
locked:
is_success = true
0Not locked.

1Locked.

parkp_status

Optional

Indicates if the domain is enabled for


the Parked Pages service. Values are
Enabled, Activating, or blank. If
returned but left blank, the domain is
not enabled.

transfer_away_in_
progress

Optional

If returned, indicates that the domain


is in the process of being transferred
away. Value is 1.

Note: The domain_supports and can_modify attributes are different in that a


TLD from a registry that supports domain locking always returns 1 for
domain_supports, but the state of the current session as well as the internal
state of the domain at OpenSRS affects can_modify. This is only true when
all of the following conditions are met:

Request is done through the sponsoring Reseller for the domain.


The TLD for the domain is one that supports locking at the registry
level.
The domain is not locked internally by OpenSRS.
If a cookie is set for the session, it cannot be for a sub-user of the
domain.

Return details for type = tld_data


Parameter
name

Obligation

Definition/Value

tld_data

Returned for
An associative array containing registrant
.ASIA, .AR, .AU,
information.
.BR, .CL. .COOP,
For more information, see tld_data.
.DE, .DK, .FI,
.HK, .HU, .IT,
.JOBS, .LV, .MX,
.NO, .PM, .PRO,
.PT, .RE, .RO,
.RU, .SE, .TF,
.US, .WF, .XXX, .YT,
and .ZA domains
169

Parameter
name

Obligation

Definition/Value

when type
tld_data and
is_success = true

Return details for type = whois_privacy_state


Parameter
name

Obligation

Definition / Value

state

Returned when type =


whois_privacy_state and
is_success = true

WHOIS Privacy state: enabled,


disabled, enabling (in process), or
disabling (in process).

Deprecated
Parameter
name

Obligation

Definition/Value

changeable

Deprecated

Always returns 1 to indicate that the current state


can be changed to another state.
Note: changeble (a misspelling) is also
deprecated.

Return details for type = xpack_waiting_history


Parameter
name

Obligation

Definition / Value

record_count

Returned when type =


xpack_waiting_history
and is_success = true

The number of completed/cancelled


requests not yet deleted from the
database for xpack domains.

waiting_history

Returned when type =


xpack_waiting_history
and is_success = true

The history of the request.


For more information, see the
Waiting_History table below.

170

Waiting_History
Parameters within the waiting_history associative array are described below.
Parameter
name

Obligation

Definition / Value

create_time

Returned when type =


xpack_waiting_history
and is_success = true

The date and time the request was


initiated, in the format DD-MMM-YYYY
hh:mm:ss.

current_state

Returned when type =


xpack_waiting_history
and is_success = true

The current state of the request.

reg_type

Returned when type =


xpack_waiting_history
and is_success = true

Type of request. Completed and


cancelled requests are deleted from
the database two weeks after they
move to final state.

xpack_req_id

Returned when type =


xpack_waiting_history
and is_success = true

The identification number of the


request.

Get domain examples


For type = admin or tech
Example 1
Including the clean_ca_subset parameter

Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
171

<item key="cookie">h5LkkIeCjbTDndsL:235293:6221</item>
<item key="action">GET</item>
<item key="attributes">
<dt_assoc>
<item key="clean_ca_subset">1</item>
<item key="type">admin</item>
</dt_assoc>
</item>
<item key="registrant_ip">10.0.62.128</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="action">REPLY</item>
<item key="attributes">
<dt_assoc>
<item key="contact_set">
<dt_assoc>
<item key="admin">
172

<dt_assoc>
<item key="address1">32 Oak Street</item>
<item key="address2"></item>
<item key="address3"></item>
<item key="city">Toronto</item>
<item key="state">ON</item>
<item key="postal_code">M1M1M1</item>
<item key="country">CA</item>
<item key="org_name">Example Company</item>
<item key="phone">+1.4165551212</item>
<item key="fax"></item>
<item key="first_name">Marlin</item>
<item key="last_name">Wilk</item>
<item key="email">test@example.com</item>
<item key="lang">EN</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Without the clean_ca_subset parameter

Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
173

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.62.128</item>
<item key="cookie">HyaiLx1KeHzxRWdX:235293:5217</item>
<item key="attributes">
<dt_assoc>
<item key="type">admin</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="response_text">Query Successful</item>
<item key="action">REPLY</item>
<item key="attributes">
<dt_assoc>
174

<item key="contact_set">
<dt_assoc>
<item key="admin">
<dt_assoc>
<item key="addr_address_number"></item>
<item key="addr_corporative"></item>
<item key="addr_office"></item>
<item key="addr_orientation"></item>
<item key="addr_street_cat"></item>
<item key="addr_street_name">32 Oak Street</item>
<item key="address1">32 Oak Street</item>
<item key="address2"></item>
<item key="address3"></item>
<item key="city">Toronto</item>
<item key="state">ON</item>
<item key="postal_code">M1M1M1</item>
<item key="country">CA</item>
<item key="org_name">Example Company</item>
<item key="first_name">Marlin</item>
<item key="last_name">Wilk</item>
<item key="lang">EN</item>
<item key="email">test@example.com</item>
<item key="phone">+1.4165551212</item>
<item key="fax"></item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>
175

Example 3
Without end-user credentials

Request
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">mydomain.com</item>
<item key="type">admin</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
176

<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="contact_set">
<dt_assoc>
<item key="billing">
<dt_assoc>
<item key="org_name">Empire Limited Inc.</item>
<item key="first_name">George</item>
<item key="last_name">Walsh</item>
<item key="address1">44 Hemlock St.</item>
<item key="address2"></item>
<item key="address3"></item>
<item key="city">Tampa</item>
<item key="state">Florida</item>
<item key="country">US</item>
<item key="postal_code">90211</item>
<item key="phone">+1.4165551122</item>
<item key="fax"></item>
<item key="email">gwalsh@mydomain.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
177

</data_block>
</body>
</OPS_envelope>

For type = all_info


Example 1
Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="registrant_ip">111.121.121.121</item>
<item key="attributes">
<dt_assoc>
<item key="type">all_info</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
178

<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew">0</item>
21:27:25</item>
21:27:25</item>
21:27:25</item>

<item key="registry_createdate">2006-12-12
<item key="registry_expiredate">2007-12-12
<item key="registry_updatedate">2006-12-12
<item key='affiliate_id'>NUAffiliate123</item>
<item key="sponsoring_rsp">1</item>
<item key="expiredate">2007-12-12 21:27:25</item>
<item key="let_expire">0</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="ipaddress">21.40.33.21</item>
<item key="sortorder">1</item>
<item key="name">ns1.systemdns.com</item>
</dt_assoc>
</item>
179

<item key="1">
<dt_assoc>
<item
key="ipaddress">207.136.100.142</item>
<item key="sortorder">2</item>
<item key="name">ns2.systemdns.com</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="ipaddress">24.22.23.28</item>
<item key="sortorder">3</item>
<item
key="name">patrick.example.com</item>
</dt_assoc>
</item>
<item key="3">
<dt_assoc>
<item key="ipaddress">24.22.23.24</item>
<item key="sortorder">4</item>
<item key="name">qa1.example.com</item>
</dt_assoc>
</item>
<item key="4">
<dt_assoc>
<item key="ipaddress">24.22.23.25</item>
<item key="sortorder">5</item>
<item key="name">qa2.example.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
180

</body>
</OPS_envelope>

Example 2
For .CA domains

Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET</item>
<item key="object">DOMAIN</item>
<item key="cookie">NNMxlmPhKbMOWswr:654537:28355</item>
<item key="attributes">
<dt_assoc>
<item key="limit">10</item>
<item key="type">all_info</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
181

<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Query Successful</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="registry_createdate">2009-10-26 00:00:00</item>
<item key="fqdn2">ns3.systemdns.com</item>
<item key="legal_type">CCT</item>
<item key="fqdn1">ns2.systemdns.com</item>
<item key="sponsoring_rsp">1</item>
<item key="expiredate">2010-10-26 00:00:00</item>
<item key="auto_renew">0</item>
<item key="registry_expiredate">2010-10-26 00:00:00</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns2.systemdns.com</item>
<item key="sortorder">1</item>
<item key="ipaddress"></item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns3.systemdns.com</item>
<item key="sortorder">2</item>
182

<item key="ipaddress"></item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="name">ns1.systemdns.com</item>
<item key="sortorder">3</item>
<item key="ipaddress"></item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="let_expire">0</item>
<item key="contact_set">
<dt_assoc>
<item key="owner">
<dt_assoc>
<item key="org_name">Setter Sanctuary</item>
<item key="first_name">Owen</item>
<item key="last_name">Ottway</item>
<item key="address1">32 Oak St.</item>
<item key="address2">Suite 100</item>
<item key="address3"/>
<item key="city">Toronto</item>
<item key="state">ON</item>
<item key="postal_code">M1M1M1</item>
<item key="country">CA</item>
<item key="phone">+14165551212</item>
<item key="fax"></item>
<item key="email">ottway@example.com</item>
</dt_assoc>
</item>
<item key="admin">
<dt_assoc>
<item key="country">CA</item>
183

<item key="org_name">Setter Sanctuary</item>


<item key="phone">+14165551212</item>
<item key="state">ON</item>
<item key="last_name">Wilk</item>
<item key="address2"></item>
<item key="email">rwilk@example.com</item>
<item key="lang">EN</item>
<item key="city">Toronto</item>
<item key="postal_code">M1M1M1</item>
<item key="fax"></item>
<item key="address1"> 123 Oak St.</item>
<item key="first_name">Marlin</item>
</dt_assoc>
</item>
<item key="tech">
<dt_assoc>
<item key="country">CA</item>
<item key="org_name">Setter Sanctuary</item>
<item key="phone">+14165551212</item>
<item key="state">ON</item>
<item key="last_name">Wilk</item>
<item key="address2"></item>
<item key="email">rwilk@example.com</item>
<item key="lang">EN</item>
<item key="city">Toronto</item>
<item key="postal_code">M1M1M1</item>
<item key="fax"></item>
<item key="address1"> 123 Oak St.</item>
<item key="first_name">Robson</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="domain_description"></item>
<item key="fqdn3">ns1.systemdns.com</item>
</dt_assoc>
184

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 3
For .AU domains

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get</item>
<item key='object'>domain</item>
<item key='cookie'>CpnuM7wfv81zsYGl:685255:1736</item>
<item key='attributes'>
<dt_assoc>
<item key='type'>all_info</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

185

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="action">REPLY</item>
<item key="attributes">
<dt_assoc>
<item key="tld_data">
<dt_assoc>
<item key="au_registrant_info">
<dt_assoc>
<item key="eligibility_type">Charity</item>
<item key="registrant_id">38 144 482 002</item>
<item key="registrant_id_type">ABN</item>
<item key="registrant_name">Example Company Ltd</item>
<item key="policy_reason">1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="registry_createdate">2010-09-22 18:29:35</item>
<item key="auto_renew">1</item>
<item key="sponsoring_rsp">1</item>
<item key="expiredate">2012-09-22 18:29:35</item>
186

<item key="registry_expiredate">2012-09-22 18:29:35</item>


<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns1.systemdns.com</item>
<item key="sortorder">1</item>
<item key="ipaddress"></item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns2.systemdns.com</item>
<item key="sortorder">2</item>
<item key="ipaddress"></item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key="let_expire">0</item>
<item key="registry_updatedate">2010-09-22 18:30:05</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 4
For .XXX domains

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
187

<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get</item>
<item key='object'>domain</item>
<item key='cookie'>DopdK7wvd8erYGl:502741:5622</item>
<item key='attributes'>
<dt_assoc>
<item key='type'>all_info</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_text'>Query Successful</item>
188

<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='auto_renew'>1</item>
<item key='ipr_data'>
<dt_assoc>
<item key='icm_membership_id'>123456</item>
</dt_assoc>
</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='registry_updatedate'>2011-11-29 21:16:04</item>
<item key='sponsoring_rsp'>1</item>
<item key='registry_createdate'>2011-11-29 21:11:25</item>
<item key='expiredate'>2012-11-29 21:11:25</item>
<item key='let_expire'>0</item>
<item key='registry_expiredate'>2012-11-29 21:11:25</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='name'>ns1.systemdns.com</item>
<item key='sortorder'>1</item>
<item key='ipaddress'/>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='name'>ns2.systemdns.com</item>
<item key='sortorder'>2</item>
<item key='ipaddress'/>
</dt_assoc>
</item>
189

</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = ca_whois_display_setting


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol"> XCP</item>
<item key="action">GET</item>
<item key="object">DOMAIN</item>
<item key="cookie">M813iGXs5fNhAJYt:256158:11781</item>
<item key="attributes">
<dt_assoc>
<item key="type">ca_whois_display_setting</item>
<item key="registrant_ip">10.0.62.142</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>
190

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol"> XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">OK</item>
<item key="attributes">
<dt_assoc>
<item key="individual">Y</item>
<item key="display">FULL</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = domain_auth_info


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
191

<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">domain_auth_info</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="attributes">
<dt_assoc>
192

<item key="domain_auth_info">ewgnRwnH</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = expire_action


This command returns the action that occurs on domain expiry, in particular
whether the domain will renew automatically, or silently expires.
Note: The list type will return, at most, 40 domains per command. Use the
page attribute in the get request to retrieve more than 40 domains.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">expire_action</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
193

</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="ext_results">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain1">
<dt_assoc>
<item key="auto_renew">1</item>
<item key="expiredate">2001-07-15

15:41:11</item>

</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
194

<item key="domain2">
<dt_assoc>
<item key="auto_renew">0</item>
<item key="expiredate">2001-11-21
14:16:23</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
<item key="count">33</item>
<item key="domain_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">domain1</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="remainder">1</item>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = forwarding_email


This type is currently for use with .NAME domains which have been bundled
or which have been upgraded with email forwarding.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
195

<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">forwarding_email</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
196

<item key="response_text">Query Successful</item>


<item key="attributes">
<dt_assoc>
<item key="forwarding_email"/>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = list


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">list</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
197

</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="count">1</item>
<item key="remainder">0</item>
<item key="domain_list">
<dt_array>
<item key="0">example.com</item>
</dt_array>
</item>
<item key="ext_results">
<dt_array>
<item key="0">
<dt_assoc>
<item key="example.com">
<dt_assoc>
<item key="let_expire">0</item>
<item key="wp_service">0</item>
198

key="has_whois_privacy">0</item>

<item
<item key="sponsoring_rsp">1</item>
<item key="auto_renew">0</item>
<item key="lock_state">0</item>
<item key="expiredate">0</item>
</dt_assoc>

</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

199

For type = nameservers


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="registrant_ip">111.121.121.121</item>
<item key="attributes">
<dt_assoc>
<item key="type">nameservers</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
200

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="attributes">
<dt_assoc>
<item key="type">nameservers</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="ipaddress">21.40.33.21</item>
<item key="sortorder">1</item>
<item key="name">ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item
key="ipaddress">207.136.100.142</item>
<item key="sortorder">2</item>
<item key="name">ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
201

</OPS_envelope>

For type = owner, admin, billing, or tech


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">owner</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
202

<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="attributes">
<dt_assoc>
<item key="contact_set">
... see "Contact Set"
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = rsp_whois_info


Example 1
Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
203

<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">rsp_whois_info</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="url"/>
<item key="domain_enabled">Y</item>
<item key="rsp_enabled">Y</item>
<item key="fax"/>
204

<item key="business">Example</item>
<item key="opt_info">This company may be contacted
for domain login/passwords, DNS/Nameserver changes, and general domain
support questions.</item>
<item key="email">fraser@example.com</item>
<item key="phone">+1.4165350123</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Without end-user credentials

Request
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">DOMAIN</item>>
<item key="attributes">
<dt_assoc>
<item key="domain">mydomain.com</item
<item key="type">rsp_whois_info</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
205

</data_block>
</body>
</OPS_envelope>

Response
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="business">Enterprise Limited Inc</item>
<item key="email">rspemail@elimited.com</item>
<item key="domain_enabled">Y</item>
<item key="rsp_enabled">Y</item>
<item key="phone">+1351.3451212</item>
<item key="fax"></item>
<item key="url"></item>
<item key="opt_info"></item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

206

For type = status


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">status</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
207

<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="can_modify">0</item>
<item key="domain_supports">1</item>
<item key="auctionescrow">1</item>
<item key="parkp_status">enabled</item>
<item key="lock_state">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response if domain is being transferred away


<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
208

<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="can_modify">0</item>
<item key="domain_supports">1</item>
<item key="parkp_status"/>
<item key="lock_state">0</item>
<item key="transfer_away_in_progress">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = tld_data


Example 1
For a .ASIA domain

Request
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get</item>
<item key='object'>domain</item>
<item key='cookie'>lQr4eKXz4ydiFBXL:698303:1653</item>
209

<item key='attributes'>
<dt_assoc>
<item key='type'>tld_data</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_text'>Query Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='attributes'>
<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='ced_info'>
<dt_assoc>
<item
key='legal_entity_type_info'>proprietorship</item>
<item key='locality_state_prov'>NSW</item>
<item key='id_type'>other</item>
210

<item key='contact_type'>tech</item>
<item key='locality_city'>Sydney</item>
<item key='locality_country'>AU</item>
<item key='id_type_info'>driver\'s license</item>
<item key='legal_entity_type'>other</item>
<item key='id_number'>AB1234567</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
For a .COOP domain

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get</item>
<item key='object'>domain</item>
<item key='cookie'>ndxOATL2zdtVpWXJ:710538:6469</item>
<item key='attributes'>
211

<dt_assoc>
<item key='type'>tld_data</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Query Successful</item>
<item key='attributes'>
<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='coop_verification_code'>123456789</item>
</dt_assoc>
</item>
</dt_assoc>
212

</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 3
For a .DK domain

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get</item>
<item key='object'>domain</item>
<item key='cookie'>pKuqcg3if1AeYWB8:754002:2258</item>
<item key='attributes'>
<dt_assoc>
<item key='type'>tld_data</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

213

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Query Successful</item>
<item key='attributes'>
<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>organization</item>
<item key='registrant_vat_id'>123456789</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

214

Example 4
For a .JOBS domain

Request
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get</item>
<item key='object'>domain</item>
<item key='cookie'>7rQitruAeYGgKcBO:707623:6222</item>
<item key='attributes'>
<dt_assoc>
<item key='type'>tld_data</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
215

<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Query Successful</item>
<item key='attributes'>
<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='jobs_admin_type'>Yes</item>
<item key='jobs_industry_type'>Supply Chain
Management</item>
<item key='jobs_title'>HR Generalist</item>
<item key='jobs_association_member'>Yes</item>
<item
key='jobs_website'>http://www.example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

216

Example 5
For .LV and .COM.LV domains

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get</item>
<item key='object'>domain</item>
<item key='cookie'>BOx2X6bZrHX4HeXp:710540:6468</item>
<item key='attributes'>
<dt_assoc>
<item key='type'>tld_data</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
217

<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Query Successful</item>
<item key='attributes'>
<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>individual</item>
<item key='id_card_number'>987654321</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 6
For a .PRO domain

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
218

</header>
<body>
<data_block>
<dt_assoc>
<item key='attributes'>
<dt_assoc>
<item key='type'>tld_data</item>
</dt_assoc>
</item>
<item key='protocol'>XCP</item>
<item key='action'>get</item>
<item key='object'>domain</item>
<item key='cookie'>kXO4IpLLr7EJidWD:698312:17335</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_text'>Query Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='attributes'>
219

<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='professional_data'>
<dt_assoc>
<item key='profession'>Dentist</item>
<item key='license_number'>123456789</item>
<item key='authority_website'>http://www.cdaadc.ca/</item>
<item key='authority'>Canadian Dental
Association</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = waiting history


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
220

<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">waiting_history</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="attributes">
<dt_assoc>
<item key="record_count">0</item>
<item key="waiting_history">
<dt_array/>
</item>
</dt_assoc>
221

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = whois_privacy_state


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET</item>
<item key="object">DOMAIN</item>
<item key="cookie">746419257:9536368</item>
<item key="registrant_ip"/>
<item key="attributes">
<dt_assoc>
<item key="type">whois_privacy_state</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

222

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="attributes">
<dt_assoc>
<item key="state">enabled</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = xpack_waiting_history


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
223

<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET</item>
<item key="object">DOMAIN</item>
<item key="cookie">963351639</item>
<item key="attributes">
<dt_assoc>
<item key="type">xpack_waiting_history</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="attributes">
224

<dt_assoc>
<item key="record_count">1</item>
<item key="waiting_history">
<dt_array>
<item key="0">
<dt_assoc>
<item key="xpack_req_id">156013</item>
<item key="current_state">INITIATE</item>
<item key="create_time">05-JAN-2006

03:25:18</item>

<item key="req_type">domain_change</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

225

get_domain_affiliate_id
Description
Action & object
action = get_domain_affiliate_id
object = domain
Usage
Retrieves the affiliate id associated with a domain.

Request parameters for get_domain_affiliate_id


Standard parameters
action = get_domain_affiliate_id
object = domain
attributes
Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation Definition / Value

domain

Required

The domain name to be queried.

Response parameters for get_domain_affiliate_id


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the
request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

226

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition / Value

affiliate_id

Returned if is_success
=1

The affiliate id associated with the


domain.

Examples for get_domain_affiliate_id


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
<msg_type>standard</msg_type>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get_domain_affiliate_id</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

227

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='response_text'>Command Successful</item>
<item key='is_success'>1</item>
<item key='attributes'>
<dt_assoc>
<item key='affiliate_id'>UpdatedAffiliate</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

228

get_domains_contacts
Description
Action & object
action = get_domains_contacts
object = domain

Usage
Queries the contact information for the specified domains.

Request parameters for get_domains_contacts


Standard parameters
action = get_domains_contacts
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain_list

Always
returned

The list of domain names for which to query contact


information. The maximum number of domains that
can be specified in a single request is 100.

Response parameters for get_domains_contacts


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

229

Attributes
The attributes array includes an array of associative arrays, one for each
domain queried. The associative array for each domain includes the contact
set for that domain.

Examples for get_domains_contacts


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET_DOMAINS_CONTACTS</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain_list">
<dt_array>
<item key="0">js4.be</item>
<item key="1">js3.be</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

230

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="js3.be">
<dt_assoc>
<item key="contact_set">
... see "Contact Set"
</item>
</dt_assoc>
</item>
<item key="js4.be">
<dt_assoc>
<item key="contact_set">
... see "Contact Set"
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
231

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

232

get_domains_by_expiredate
Description
Action & object
action = get_domains_by_expiredate
object = domain

Usage
Retrieves domains that expire within a specified date range.

Request parameters for


get_domains_by_expiredate
Standard parameters
action = get_domains_by_expiredate
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

exp_from

Required

Used in conjunction with exp_to attribute.


The date from which to list expiring
domains.
Date must be in the format YYYY-MM-DD.

exp_to

Required

Used in conjunction with exp_from


attribute. The date until which to list
expiring domains.
Date must be in the format YYYY-MM-DD.

limit

Optional - if not
The number of domains to return on each
specified, the default '40' page.
will be used.

page

Optional - if not
specified, the default '1'
will be used.

Determines which page to retrieve, using


the page number. The page index starts at
0 (zero).

233

Response parameters for


get_domains_by_expiredate
Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

exp_domains

Returned if
Lists the domains that expire during the specified
is_success = period.
true
For more information, see the Exp_Domains table
below.

page

Returned if
The number of the page retrieved.
is_success =
true

remainder

Returned if
Indicates if some expiring domains were not
is_success = returned due to restrictions set by the page and
true
limit values.

total

Definition/Value

0No, all expiring domains are listed.

1Yes, there are remaining expiring


domains not listed.

Returned if
The total number of domains expiring in the
is_success = specified date range.
true

Exp_Domains
Parameters within the exp_domains associative array are described below.
Parameter
name

Obligation

Definition/Value

expiredate

Always

The date the domain expires.


234

Parameter
name

Obligation

Definition/Value

returned
f_auto_renew

Always
returned

Flag (Y or N) indicating whether domain is


automatically renewed.

f_let_expire

Always
returned

Flag (Y or N) indicating whether domain is


allowed to expire.

name

Always
returned

The name of the domain that is expiring.

Examples for get_domains_by_expiredate


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get_domains_by_expiredate</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="limit">20</item>
<item key="exp_from">2009-12-03</item>
<item key="exp_to">2009-12-25</item>
<item key="page">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
235

</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Command successful</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="page">1</item>
<item key="total">2</item>
<item key="remainder">0</item>
<item key="exp_domains">
<dt_array>
<item key="0">
<dt_assoc>
<item key="f_let_expire">N</item>
<item key="name">katarina.biz</item>
<item key="expiredate">2009-12-18
23:59:59</item>
<item key="f_auto_renew">N</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
236

<item key="name">kristina.ch</item>
<item key="expiredate">2009-12-18
23:59:59</item>
<item key="f_let_expire">N</item>
<item key="f_auto_renew">N</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

237

get_notes
Description
Action & object
action = get_notes
object = domain

Usage
Retrieves the domain notes that detail the history of the domain, for
example, renewals and transfers.

Request parameters for get_notes


Standard parameters
action = get_notes
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain to query.

limit

Optional

Maximum number of notes to display on a page;


the default is 40.

order_id

Optional

The ID number of the order.

page

Optional

Determines which page to retrieve, using the page


number. The page index starts at 1.

transfer_id

Optional

The ID number of the transfer.

type

Required

Type of notes to display. Allowed values are


domain, order, and transfer.

238

Response parameters for get_notes


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

notes

Returned if
The contents of the note.
is_success =
timestampDate and time the note was
true
recorded, in the format DD-MMM-YYYY
hh:mm:ss.

noteContents of the note

page

Optional

Page retrieved, using the page number. The page


index starts at 1

page_size

Returned if
The maximum number of notes returned per page.
is_success =
true

total

Returned if
Total number of notes returned.
is_success =
true

Examples for get_notes


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
239

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get_notes</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="page">1</item>
<item key="order_id">123456</item>
<item key="type">order</item>
<item key="limit">100</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
240

<item key="response_text">Command successful</item>


<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="page_size">100</item>
<item key="page">1</item>
<item key="total">1</item>
<item key="notes">
<dt_array>
<item key="0">
<dt_assoc>
<item key="timestamp">15-OCT-2007
16:23:04</item>
<item key="note">Domain taken</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

241

get_order_info
Description
Action & object
action = get_order_info
object = domain or trust_service

Usage
Queries all the information on an order ID, but does not return sensitive
information such as username, password, and Authcode.

Request parameters for get_order_info


Standard parameters
action = get_order_info
object = domain or trust_service
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

order_id

Required

The ID of the order to query.

Response parameters for get_order_info


Standard parameters
action = reply
object = domain or trust_service
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

242

Domain attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name Obligation
field_hash

Definition/Value

Always returned A list (array) of the details of the domain


for domain orders order ID. For more information, see the
if is_success = Field Hash table below.
true

Field Hash
Parameter name Obligation

Definition/Value

affiliate_id

Returned if
The associated affiliate ID.
is_success = true
and reg_type =
new, transfer,
premium, or sunrise

application_id

Returned if
is_success = true
and the order's
reg_type = sunrise
or landrush and the
order is for a .XXX
domain

application_status

Returned if
The status of the application. Allowed
is_success = true
values are:
and the order's
processedWaiting for
reg_type = sunrise
notification from registry.
and the order is for
completedDomain awarded
a .XXX domain
and manageable.

The domainid number. The domainid is


required for .XXX Sunrise AD
applications to prove that the person
requesting the .XXX domain owns the
corresponding name in another gTLD or
ccTLD.

declinedDomain registration
unsuccessful.

not_availableThis status is
always returned for Sunrise B
applications.

waitingDomain awarded but


not yet manageable.

comments

Optional

Comments submitted in the original


transaction.

completed_date

Returned when
reg_type =
transfer

Date when the transfer was


completed.
243

Parameter name Obligation

Definition/Value

cost

Returned if
is_success = true

Transaction cost to Reseller.

domain

Returned if
is_success = true

The domain being queried.

encoding type

Returned if
The three-character tag that represents
is_success = true
the language encoding type for the
and reg_type =
domain. See "Appendix B: Encoding
new, transfer,
Types for IDNs".
premium, or sunrise

expiry_year

Returned if
is_success = true
and reg_type =
transfer

Domain's current expiry year.

f_auto_renew

Returned if
is_success = true

Flag (Y or N) indicating whether


domain is set to automatically renew.

f_lock_domain

Returned if
Indicates whether the domain is locked.
is_success = true
0Domain is not locked
and reg_type =
1Domain is locked
new, transfer,
premium, or sunrise

flag_saved_ns_
fields

Returned if
Indicates whether the nameserver
is_success = true
fields that were used were those
and reg_type =
submitted in the transaction request or
new, transfer,
the default nameserver information.
premium, or sunrise

flag_saved_tech_
fields

Returned if
Indicates whether the technical contact
is_success = true
fields that were used were those
and reg_type =
submitted in the transaction request or
new, transfer,
the default Reseller account technical
premium, or sunrise contact information.

forwarding_email

Returned if
The domain's e-mail address that is
is_success = true
used for forwarding purposes.
and reg_type =
new, transfer,
premium, or sunrise

fqdn1/2/3/4

Returned if
Nameservers submitted with the
is_success = true
registration.
and reg_type =
new, transfer,
premium, or sunrise

id

Returned if
is_success = true

The ID number of the order.

244

Parameter name Obligation

Definition/Value

master_order_id

Returned if
The order ID for a group of domains
is_success = true
that are linked.
and reg_type =
new, transfer,
premium, or sunrise

notes

Returned if
is_success = true

order_date

Returned if
is_success = true

The contents of the note.

timestampDate and time the


note was recorded, in the format
DD-MMM-YYYY hh:mm:ss.

noteContents of the note

Date the order was created.

owner, admin, billing, Returned if


The current contact information for
and tech contact
is_success = true
owner, admin, billing, and tech
information
and reg_type =
contacts. May include org_name,
new, transfer,
first_name, last_name, address1, 2,
premium, or sunrise and 3, city, state, postal_code, country,
phone, fax, and email.
owner_confirm_
time

Returned if
is_success = true
and reg_type =
transfer

Date when the owner responded to the


transfer request

owner_request_
time

Returned if
is_success = true
and reg_type =
transfer

Date when the email to confirm that


transfer was sent.

period

Returned if
is_success = true

The length of the registration period in


years.

processed_date

Returned if
is_success = true.
Empty for new
domain registration.

Date the order was processed.

reg_domain

Returned if
An existing, active domain name in
is_success = true
OpenSRS, owned by the registrant that
and reg_type =
was used to link the newly registered or
new, transfer,
transferred domain to the profile of the
premium, or sunrise existing domain.

reg_type

Returned if
is_success = true

Type of order, for example, new,


premium, renewal, sunrise,
transfer, or whois_privacy.

registry_request_
time

Returned if
is_success = true
and reg_type =
transfer

The time when the transfer request was


sent to the registry.

request_address

Returned if

Address to which the transfer approval


245

Parameter name Obligation

Definition/Value

is_success = true
and reg_type =
transfer

email was sent.

status

Returned if
is_success = true

Current status of the order. Values may


be declined, pending, deleted,
completed, cancelled, or
waiting_ca_owner_approval.

tld_data

Returned for .ASIA,


An associative array containing
.AR, .AU, .BR, .CL,
registrant information.
.COOP, .DE, .DK,
For more information, see tld_data.
.FI, .FR, .HK, .HU, .IT,
.LV, .MX, .MY, .NO,
.NU, .PM, .PRO,
.PT, .RE, .RO, .RU,
.SE, .SG, .TF, .US,
.WF, .XXX. .YT, and
.ZA domains if
is_success = true

transfer_notes

Returned if

is_success = true
and reg_type =
transfer

The contents of the note related to


transfers.

the note was recorded, in the


format DD-MMM-YYYY
hh:mm:ss.

transfer_status

Returned if
is_success = true
and reg_type =
transfer

timestampDate and time

noteContents of the note

Current status of the transfer. Pending


Owner Approval

Trust Service order attributes


Parameters within the attributes associative array for Trust Service orders
are described below.
Parameter name

Obligation

Definition/Value

approver_email

Returned for
domain vetted
certificates if
is_success =
true.

One of the approver emails.

contact_email

Returned if
The email contact from the order.
is_success = true
246

Parameter name

Obligation

Definition/Value

contact_set

Returned if
The current contact information for
is_success = true organization, admin, billing, and tech
contacts.

csr

Optional

The Certificate Signing Request for the


certificate.

domain

Optional

The full domain name for which the SSL


Certificate was purchased.

notes_list

Returned if
Event logging for the Trust Service order.
is_success = true For more information, see the Notes_list
table below.

order_id

Returned if
The ID of the Trust Service order.
is_success = true

period

Returned if
The number of years of the registration
is_success = true period. Allowed values are 1 4,
depending on the Trust Service.

comodo_evto 2

comodo_instantssl1 to 4

comodo_premiumssl1 to 4

comodo_premiumssl_wildcard1
to 4

comodo_ssl1 to 4

comodo_wildcard1 to 4

malwarescan1

quickssl1 to 4

quickssl_premium1 to 4

sgcsuper_certs1 to 4

sitelock_basic1

sitelock_premium1

sitelock_enterprise1

ssl1231 to 4

sslwebserver1 to 4

sslwebserver_wildcard1 to 2

sslwebserver_ev1 to 2

securesite1 to 4

securesite_ev1 to 2

securesite_pro1 to 4

securesite_pro_ev1 to 2

truebizid1 to 4

truebizid_wildcard1 to 4
247

Parameter name

Obligation

Definition/Value

truebizid_ev1 to 2

truste_hpp1 to 3

truste_tps1 to 3

trustwave_dv1 to 3

trustwave_ev1 to 2

trustwave_premiumssl1 to 3

trustwave_premiumssl_wildcard
1 to 3

price

Returned if
The price charged for the Trust Service.
is_success = true

product_id

Returned if
The ID number of the Trust Service
is_success = true product.
and order is
completed.

product_type

Returned if
The product type from the SSL Certificate
is_success = true inventory. The product types are detailed
in the allowed values section for this key.
Allowed values are:

comodo_ev

comodo_instantssl

comodo_premiumssl

comodo_premiumssl_wildcard

comodo_ssl

comodo_wildcard

malwarescan

quickssl

quickssl_premium

securesite

securesite_pro

securesite_ev

securesite_pro_ev

sgcsuper_certs

sitelock_basic

sitelock_premium

sitelock_enterprise

ssl123

sslwebserver

sslwebserver_wildcard

sslwebserver_ev
248

Parameter name

Obligation

Definition/Value

truebizid

truebizid_wildcard

truebizid_ev

truste_hpp (Hosted Privacy


Policy)

truste_tps (TRUSTE Privacy Policy


with seal)

trustwave_dv

trustwave_ev

trustwave_premiumssl

trustwave_premiumssl_
wildcard

reg_type

Returned if
Type of order, for example, new,
is_success = true renewal, transfer, upgrade.

server_type

Optional

The type of server software used to


generate the CSR.
Allowed values are:

Symantec,
thawte, and
GeoTrust

Comodo

apache2

apachessl

apacheapach
essl

citrix

apacheopens
sl

domino

ensim

apacheraven

hsphere

apachessl

iis4

c2net

iis6

cobaltseries

iis7

cobaltraq3

iplanet

cobaltraq2

cpanel

javawebserv
er

domino

netscape
ibmhttp

dominogo46
26

novell

dominogo46
25

oracle

other

ensim

plesk

hsphere

redhat

sap
249

Parameter name

Obligation

Definition/Value
Symantec,
thawte, and
GeoTrust

Comodo

iis

tomcat

iis4

webstar

iis5

whmcpanel

iplanet

ipswitch

netscape
ibmhttp

other

plesk

tomcat

weblogic

website

webstar

webstar4

zeusv3

Note: Trustwave does not support server


types.
special_instructions

Optional

User defined instructions regarding the


Trust Service certificate purchase.

state

Returned if
The state of the order
is_success = true Allowed values are:

approver-confirmedOwner has
confirmed the domain vetted
certificate.

awaiting-approvalOrder
processed successfully; waiting for
supplier approval.

cancelledPending order was


cancelled.

completedOrder is complete.

declinedOrder cancelled after it


was processed or declined by the
supplier.

in-progressOrder is in progress.

pendingOrder saved as

pending.
250

Parameter name

Obligation

Definition/Value

supplier_order_id

Returned if
The ID number for the vendor.
is_success = true

Notes_list
Parameters within the notes_list associative array are described below.
Parameter
name

Obligation

Definition/Value

date

Optional

The date that the note was created.

note

Optional

The text of the note.

type

Optional

The type of note. Allowed values are:


order_created, order_processed,
order_cancelled, order_completed,
order_resend_approve_email, money_held,
money_unheld, money_charged,
money_refunded, supplier_order_cancelled,
supplier_appr_confirmed,
supplier_appr_rejected,
supplier_product_created,
supplier_product_rejected, product_renewed,
product_active, product_renewing,
product_revoked, product_expired,
product_updated, product_scan_requested,
product_resend_cert_email.

251

Examples for get_order_info


Example 1
For a .COM domain order

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get_order_info</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="order_id">3515690</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
252

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command completed
successfully</item>
<item key="attributes">
<dt_assoc>
<item key="field_hash">
<dt_assoc>
<item key="owner_first_name">Owen</item>
<item key="owner_last_name">Ottway</item>
<item key="owner_org_name">Example Inc.</item>
<item key="owner_address1">32 Oak St.</item>
<item key="owner_address2">Suite 500</item>
<item key="owner_address3"/>
<item key="owner_city">Santa Clara</item>
<item key="owner_state">CA</item>
<item key="owner_country">US</item>
<item key="owner_postal_code">90210</item>
<item
key="owner_phone">+1.4165550123x1902</item>
<item key="owner_fax">+1.4165550124</item>
<item key="owner_email">owner@example.com</item>
<item key="admin_first_name">Adler</item>
<item key="admin_last_name">Adams</item>
<item key="admin_org_name">Example Inc.</item>
<item key="admin_address1">32 Oak St.</item>
<item key="admin_address2">Suite 100</item>
<item key="admin_address3"/>
<item key="admin_city">Santa Clara</item>
253

<item key="admin_state">CA</item>
<item key="admin_country">US</item>
<item key="admin_postal_code">90210</item>
<item
key="admin_phone">+1.4165550123x1812</item>
<item key="admin_fax"/>
<item key="admin_email">admin@example.com</item>
<item key="billing_first_name">Bill</item>
<item key="billing_last_name">Burton</item>
<item key="billing_org_name">Example Inc.</item>
<item key="billing_address1">32 Oak St.</item>
<item key="billing_address2">Suite 200</item>
<item key="billing_address3"/>
<item key="billing_city">Santa Clara</item>
<item key="billing_state">CA</item>
<item key="billing_country">US</item>
<item key="billing_postal_code">90210</item>
<item
key="billing_phone">+1.4165550123x1248</item>
<item key="billing_fax"/>
<item
key="billing_email">burton@example.com</item>
<item key="tech_first_name">Ted</item>
<item key="tech_last_name">Tucker</item>
<item key="tech_org_name">Example Inc.</item>
<item key="tech_address1">32 Oak St.</item>
<item key="tech_address2">Suite 100</item>
<item key="tech_address3"/>
<item key="tech_city">Santa Clara</item>
<item key="tech_state">CA</item>
<item key="tech_country">US</item>
<item key="tech_postal_code">90210</item>
<item key="tech_phone">+1.4165550123x1243</item>
<item key="tech_fax">+1.4165550127</item>
<item key="tech_email">tucker@example.com</item>
<item key="comments"/>
254

2002.com</item>

<item key="reg_domain">december-2<item key="domain">example.com</item>


<item key="transfer_notes">
<dt_array>
<item key="0">
<dt_assoc>
<item key="timestamp">05-OCT-2007

17:07:42</item>
<item key="note">Transfer Request
message sent to owner@example.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="affiliate_id"/>
<item key="order_date">1083590189</item>
<item key="status">completed</item>
<item key="f_lock_domain">0</item>
<item key="forwarding_email"/>
<item key="flag_saved_ns_fields">1</item>
<item key="processed_date"/>
<item key="id">3515690</item>
<item key="encoding_type">undef</item>
<item key="flag_saved_tech_fields">1</item>
<item key="completed_date">1083590192</item>
<item key="f_auto_renew">Y</item>
<item key="fqdn1">ns1.systemdns.com</item>
<item key="fqdn2">ns2.systemdns.com</item>
<item key="fqdn3"/>
<item key="fqdn4"/>
<item key="fqdn5"/>
<item key="fqdn6"/>
<item key="reg_type">new</item>
<item key="notes">
<dt_array>
255

<item key="0">
<dt_assoc>
<item key="note">RSP Note: testing

first note</item>

<item key="timestamp">27-OCT-2007

11:15:03</item>

</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="note">RSP Note: testing

second note</item>

<item key="timestamp">27-OCT-2007

11:15:05</item>

</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="note">RSP Note: testing

third note</item>

<item key="timestamp">27-OCT-2007

11:15:07</item>

</dt_assoc>
</item>
</dt_array>
</item>
<item key="master_order_id">0</item>
<item key="period">1</item>
<item key="cost">15</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>
256

Example 2
For a .DK domain order

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='action'>get_order_info</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='order_id'>607642</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'> <OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
257

<item key='object'>DOMAIN</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed successfully</item>
<item key='attributes'>
<dt_assoc>
<item key='field_hash'>
<dt_assoc>
<item key='owner_last_name'>Jensen</item>
<item key='owner_org_name'>Example Co.</item>
<item key='owner_address2'/>
<item key='owner_address3'/>
<item key='owner_city'>Copenhagen V</item>
<item key='owner_state'/>
<item key='owner_postal_code'>1610</item>
<item key='owner_phone'>+1.33257400</item>
<item key='owner_fax'>+1.33257410</item>
<item key='owner_email'>djensen@example.dk</item>
<item key='admin_org_name'>Example Co.</item>
<item key='admin_first_name'>Katrin</item>
<item key='admin_last_name'>Jensen</item>
<item key='admin_address1'>Gammel Kongevej 1</item>
<item key='admin_address2'/>
<item key='admin_address3'/>
<item key='admin_city'>Copenhagen V</item>
<item key='admin_state'/>
<item key='admin_country'>DK</item>
<item key='admin_postal_code'>1610</item>
<item key='admin_phone'>+1.33257400</item>
<item key='admin_fax'>+1.33257410</item>
<item key='admin_email'>kjensen@example.dk</item>
<item key='billing_org_name'>Example Co.</item>
<item key='billing_first_name'>Sarah</item>
<item key='billing_last_name'>Jensen</item>
<item key='billing_address1'>Gammel Kongevej 1</item>
<item key='billing_address2'/>
258

<item key='billing_address3'/>
<item key='billing_city'>Copenhagen V</item>
<item key='billing_state'/>
<item key='billing_postal_code'>1610</item>
<item key='billing_country'>DK</item>
<item key='billing_phone'>+1.33257400</item>
<item key='billing_fax'>+1.33257410</item>
<item key='billing_email'>sjensen@example.dk</item>
<item key='tech_org_name'>Example Co.</item>
<item key='tech_first_name'>Eric</item>
<item key='tech_last_name'>Jensen</item>
<item key='tech_address1'>Gammel Kongevej 1</item>
<item key='tech_address2'/>
<item key='tech_address3'/>
<item key='tech_city'>Copenhagen V</item>
<item key='tech_state'/>
<item key='tech_postal_code'>1610</item>
<item key='tech_country'>DK</item>
<item key='tech_phone'>+1.33257400</item>
<item key='tech_fax'>+1.33257410</item>
<item key='tech_email'>ejensen@example.dk</item>
<item key='affiliate_id'>affiliatetest1</item>
<item key='domain'>qatest1380643516039.dk</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>organization</item>
<item key='registrant_vat_id'>123456789</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='flag_saved_tech_fields'>1</item>
<item key='completed_date'>1380643717</item>
259

<item key='notes'>
<dt_array>
</dt_array>
</item>
<item key='reg_domain'/>
<item key='comments'/>
<item key='id'>607642</item>
<item key='cost'>15</item>
<item key='flag_saved_ns_fields'>1</item>
<item key='master_order_id'>0</item>
<item key='order_date'>1380643519</item>
<item key='f_auto_renew'>Y</item>
<item key='forwarding_email'/>
<item key='status'>completed</item>
<item key='fqdn1'>ns1.systemdns.com</item>
<item key='fqdn2'>ns2.systemdns.com</item>
<item key='fqdn3'/>
<item key='fqdn4'/>
<item key='fqdn5'/>
<item key='fqdn6'/>
<item key='reg_type'>new</item>
<item key='f_lock_domain'>0</item>
<item key='period'>1</item>
<item key='encoding_type'/>
<item key='processed_date'/>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

260

Example 3
For a .FR domain order

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get_order_info</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='order_id'>457700</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
261

<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed successfully</item>
<item key='attributes'>
<dt_assoc>
<item key='field_hash'>
<dt_assoc>
<item key='domain'>example.fr</item>
<item key='owner_org_name'>Example GmbH</item>
<item key='owner_first_name'>Astrid</item>
<item key='owner_last_name'>Bauer</item>
<item key='owner_address1'>Klostergasse 10</item>
<item key='owner_address2'/>
<item key='owner_address3'/>
<item key='owner_city'>Innsbruck</item>
<item key='owner_state'>Tirol</item>
<item key='owner_postal_code'>6020</item>
<item key='owner_country'>AT</item>
<item key='owner_phone'>+43 512 5333 10</item>
<item key='owner_fax'>+43 512 5333 11</item>
<item key='owner_email'>astrid@example.com</item>
<item key='admin_first_name'>Franz</item>
<item key='admin_last_name'>Bauer</item>
<item key='admin_org_name'>Example GmbH</item>
<item key='admin_address1'>Klostergasse 10</item>
<item key='admin_address2'/>
<item key='admin_address3'/>
<item key='admin_city'>Innsbruck</item>
<item key='admin_state'>Tirol</item>
<item key='admin_postal_code'>6020</item>
<item key='admin_country'>AT</item>
<item key='admin_phone'>+1.4165350125</item>
262

<item key='admin_fax'>+1.4165350124</item>
<item key='admin_email'>franz@example.com</item>
<item key='billing_first_name'/>
<item key='billing_last_name'/>
<item key='billing_org_name'/>
<item key='billing_address1'/>
<item key='billing_address2'/>
<item key='billing_address3'/>
<item key='billing_city'/>
<item key='billing_state'/>
<item key='billing_postal_code'/>
<item key='billing_country'/>
<item key='billing_phone'/>
<item key='billing_fax'/>
<item key='billing_email'/>
<item key='tech_first_name'>Jorg</item>
<item key='tech_last_name'>Bauer</item>
<item key='tech_org_name'>Example GmbH</item>
<item key='tech_address1'>Klostergasse 10</item>
<item key='tech_address2'/>
<item key='tech_address3'/>
<item key='tech_city'>Innsbruck</item>
<item key='tech_state'>Tirol</item>
<item key='tech_country'>AT</item>
<item key='tech_postal_code'>6020</item>
<item key='tech_phone'>+1.4165350125</item>
<item key='tech_fax'>+1.4165350124</item>
<item key='tech_email'>jorg@example.com</item>
<item key='processed_date'/>
<item key='fqdn1'>ns1.systemdns.com</item>
<item key='fqdn2'>ns2.systemdns.com</item>
<item key='fqdn3'/>
<item key='fqdn4'/>
<item key='fqdn5'/>
<item key='fqdn6'/>
263

<item key='period'>1</item>
<item key='encoding_type'/>
<item key='affiliate_id'/>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>individual</item>
<item key='date_of_birth'>1989-03-03</item>
<item key='country_of_birth'>FR</item>
<item key='postal_code_of_birth'>75008</item>
<item key='place_of_birth'>Paris</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='flag_saved_tech_fields'>1</item>
<item key='completed_date'>1329504888</item>
<item key='notes'>
<dt_array>
</dt_array>
</item>
<item key='reg_domain'/>
<item key='comments'/>
<item key='id'>457700</item>
<item key='cost'>15</item>
<item key='flag_saved_ns_fields'>1</item>
<item key='master_order_id'>0</item>
<item key='order_date'>1329504872</item>
<item key='f_auto_renew'>Y</item>
<item key='forwarding_email'/>
<item key='status'>completed</item>
<item key='reg_type'>new</item>
<item key='f_lock_domain'>0</item>
</dt_assoc>
264

</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 4
For a .RE domain order

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get_order_info</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="order_id">16732959</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

265

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed successfully</item>
<item key='attributes'>
<dt_assoc>
<item key='field_hash'>
<dt_assoc>
<item key='owner_first_name'>Henrie</item>
<item key='owner_last_name'>LaFleur</item>
<item key='owner_org_name'>French Impressions</item>
<item key='owner_address1'>13 Rue Daze</item>
<item key='owner_address2'/>
<item key='owner_address3'/>
<item key='owner_city'>Paris</item>
<item key='owner_state'/>
<item key='owner_postal_code'>75002</item>
<item key='owner_country'>FR</item>
<item key='owner_phone'>+1.3365551212</item>
<item key='owner_fax'>>+1.3365550124</item>
<item key='owner_email'>lafleur@example.com</item>
<item key='admin_first_name'>Marie</item>
<item key='admin_last_name'>LaFleur</item>
266

<item key='admin_org_name'>French Impressions</item>


<item key='admin_address1'>13 Rue Daze</item>
<item key='admin_address2'/>A
<item key='admin_address3'/>
<item key='admin_city'>Paris</item>
<item key='admin_state'/>
<item key='admin_postal_code'>75002</item>
<item key='admin_country'>FR</item>
<item key='admin_email'>marie@example.com</item>
<item key='admin_phone'>>+1.3365551213</item>
<item key='admin_fax'>>+1.3365550125</item>
<item key='billing_first_name'/>
<item key='billing_last_name'/>
<item key='billing_org_name'/>
<item key='billing_address1'/>
<item key='billing_address2'/>
<item key='billing_address3'/>
<item key='billing_city'/>
<item key='billing_state'/>
<item key='billing_postal_code'/>
<item key='billing_country'/>
<item key='billing_phone'/>
<item key='billing_fax'/>
<item key='billing_email'/>
<item key='tech_first_name'>Pierre</item>
<item key='tech_last_name'>Richard</item>
<item key='tech_org_name'>French Impressions</item>
<item key='tech_address1'>13 Rue Daze</item>
<item key='tech_address2'/>
<item key='tech_address3'/>
<item key='tech_city'>Paris</item>
<item key='tech_state'/>
<item key='tech_postal_code'>75002</item>
<item key='tech_country'>FR</item>
<item key='tech_phone'>+1.3365551215</item>
267

<item key='tech_fax'>+1.3365550125</item>
<item key='tech_email'>pierre@example.com</item>
<item key='processed_date'/>
<item key='period'>1</item>
<item key='encoding_type'/>
<item key='affiliate_id'/>
<item key='domain'>example.re</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>individual</item>
<item key='date_of_birth'>1976-08-05</item>
<item key='country_of_birth'>FR</item>
<item key='postal_code_of_birth'>33023</item>
<item key='place_of_birth'>Bordeaux</item>
<item key='province_of_birth'>Gironde</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='flag_saved_tech_fields'>1</item>
<item key='completed_date'>1341517755</item>
<item key='notes'>
<dt_array>
</dt_array>
</item>
<item key='reg_domain'/>
<item key='fqdn1'>ns1.systemdns.com</item>
<item key='fqdn2'>ns2.systemdns.com</item>
<item key='fqdn3'>ns3.systemdns.com</item>
<item key='fqdn4'/>
<item key='fqdn5'/>
<item key='fqdn6'/>
<item key='comments'/>
268

<item key='id'>485395</item>
<item key='cost'>50</item>
<item key='flag_saved_ns_fields'>1</item>
<item key='master_order_id'>0</item>
<item key='order_date'>1341517725</item>
<item key='f_auto_renew'>Y</item>
<item key='forwarding_email'/>
<item key='status'>completed</item>
<item key='reg_type'>new</item>
<item key='f_lock_domain'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 5
For a .XXX order

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get_order_info</item>
<item key="object">domain</item>
269

<item key="attributes">
<dt_assoc>
<item key="order_id">457626</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed successfully</item>
<item key='attributes'>
<dt_assoc>
<item key='field_hash'>
<dt_assoc>
<item key='owner_org_name'>Example Inc.</item>
<item key='owner_first_name'>Owen</item>
<item key='owner_last_name'>Ottway</item>
<item key='owner_address1'>32 Oak St.</item>
<item key='owner_address2'>Suite 500</item>
270

<item key='owner_address3'/>
<item key='owner_city'>Santa Clara</item>
<item key='owner_state'>CA</item>
<item key='owner_postal_code'>90210</item>
<item key='owner_country'>US</item>
<item key='owner_email'>owner@example.com</item>
<item key='owner_phone'>+1.4165550123x1902</item>
<item key='owner_fax'>+1.4165350124</item>
<item key='admin_org_name'>Example Inc.</item>
<item key='admin_first_name'>Adler</item>
<item key='admin_last_name'>Adams</item>
<item key='admin_address1'>32 Oak St.</item>
<item key='admin_address2'>Suite 100</item>
<item key='admin_address3'/>
<item key='admin_city'>Santa Clara</item>
<item key='admin_state'>CA</item>
<item key='admin_postal_code'>90210</item>
<item key='admin_country'>US</item>
<item key='admin_phone'>+1.4165550123x1812</item>
<item key='admin_fax'>+1.4165350124</item>
<item key='admin_email'>admin@example.com</item>
<item key='billing_first_name'>Bill</item>
<item key='billing_last_name'>Burton</item>
<item key='billing_org_name'>Example Inc.</item>
<item key='billing_address1'>32 Oak St.</item>
<item key='billing_address2'>Suite 200</item>
<item key='billing_address3'/>
<item key='billing_city'>Santa Clara</item>
<item key='billing_state'>CA</item>
<item key='billing_country'>US</item>
<item key='billing_postal_code'>90210</item>
<item key='billing_email'>burton@example.com</item>
<item key='billing_phone'>+1.4165550123x1248</item>
<item key='billing_fax'>+1.4165350124</item>
<item key='tech_first_name'>Ted</item>
271

<item key='tech_last_name'>Tech Lastname</item>


<item key='tech_org_name'>Tucker</item>
<item key='tech_address1'>32 Oak St.</item>
<item key='tech_address2'>Suite 100</item>
<item key='tech_address3'/>
<item key='tech_city'>Santa Clara</item>
<item key='tech_state'>CA</item>
<item key='tech_postal_code'>90210</item>
<item key='tech_email'>tucker@example.com</item>
<item key='tech_phone'>+1.4165550123x1243</item>
<item key='tech_fax'>+1.4165350124</item>
<item key='processed_date'/>
<item key='fqdn2'>ns2.systemdns.com</item>
<item key='period'>1</item>
<item key='application_id'>D10215-XXX</item>
<item key='ipr_entitlement'>OWNER</item>
<item key='affiliate_id'/>
<item key='fqdn4'/>
<item key='ipr_type'>AD</item>
<item key='domain'>example.xxx</item>
<item key='flag_saved_tech_fields'>1</item>
<item key='completed_date'/>
<item key='tld_data'>
<dt_assoc>
<item key='ipr_data'>
<dt_assoc>
<item key='ipr_name'>Owen Ottway</item>
<item key='ipr_email'>ottway@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='notes'>
<dt_array>
<item key='0'>
272

<dt_assoc>
<item key='timestamp'>15-FEB-2012
18:08:50</item>
<item key='note'>Domain lock enabled</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='reg_domain'/>
<item key='fqdn3'/>
<item key='fqdn5'/>
<item key='comments'/>
<item key='id'>315169</item>
<item key='ipr_registration_date'>2011-01-01</item>
<item key='cost'>85</item>
<item key='flag_saved_ns_fields'>1</item>
<item key='application_status'>processed</item>
<item key='master_order_id'>0</item>
<item key='order_date'>1314713193</item>
<item key='f_auto_renew'>Y</item>
<item key='forwarding_email'/>
<item key='status'>completed</item>
<item key='fqdn6'/>
<item key='reg_type'>sunrise</item>
<item key='fqdn1'>ns1.systemdns.com</item>
<item key='tech_country'>CA</item>
<item key='f_lock_domain'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

273

Example 6
For a Trust Service order

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get_order_info</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='order_id'>780</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
274

<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='response_code'>200</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='is_success'>1</item>
<item key='attributes'>
<dt_assoc>
<item key='special_instructions'>Test ABC</item>
<item key='period'>1</item>
<item key='notes_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='date'>2010-09-20T15:02:43.00004:00</item>
<item key='type'>order_processed</item>
<item key='note'>Order id [780] has been
processed, supplierOrderId is [141777].</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='date'>2010-09-20T15:02:43.00004:00</item>
<item key='type'>order_created</item>
created.</item>

<item key='note'>Order id [780] has been


</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='date'>2010-09-20T15:02:43.000-

04:00</item>
<item key='type'>money_held</item>
[780].</item>

<item key='note'>Money has been held for order id


</dt_assoc>
</item>
<item key='3'>
275

<dt_assoc>
<item key='date'>2010-09-20T15:26:20.000-

04:00</item>

<item key='type'>supplier_product_created</item>
<item key='note'>The supplier product has been
created for order id [780].</item>
</dt_assoc>
</item>
<item key='4'>
<dt_assoc>
<item key='date'>2010-09-20T15:26:20.000-

04:00</item>

<item key='type'>money_charged</item>
<item key='note'>The money has been charged for
order id [780].</item>
</dt_assoc>
</item>
<item key='5'>
<dt_assoc>
<item key='date'>2010-09-20T15:26:21.000-

04:00</item>

<item key='type'>order_completed</item>
<item key='note'>The order with the id [780] has
been completed and product has been created with product id
[194].</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='order_id'>780</item>
<item key='state'>completed</item>
<item key='product_type'>truebizid</item>
<item key='domain'>truebiz.example.com</item>
<item key='product_id'>194</item>
<item key='contact_email'>qafive@example.com</item>
<item key='contact_set'>
<dt_assoc>
<item key='admin'>
<dt_assoc>
<item key='first_name'>Adler</item>
276

<item key='last_name'>Adams</item>
<item key='title'>Director</item>
<item key='address1'>32 Oak Street</item>
<item key='address2'>Suite 100</item>
<item key='address3'/>
<item key='city'>Santa Clara</item>
<item key='state'>CA</item>
<item key='country'>US</item>
<item key='postal_code'>90210</item>
<item key='org_name'>Example Inc.</item>
<item key='email'>adams@example.com</item>
<item key='phone'>+1.4165550123x1812</item>
<item key='fax'>+1.4165550125</item>
</dt_assoc>
</item>
<item key='tech'>
<dt_assoc>
<item key='first_name'>Tim</item>
<item key='last_name'>Tucker</item>
<item key='title'>Director</item>
<item key='org_name'>Example Inc.</item>
<item key='address1'>32 Oak Street</item>
<item key='address2'>Suite 100</item>
<item key='address3'/>
<item key='city'>Santa Clara</item>
<item key='state'>CA</item>
<item key='country'>US</item>
<item key='postal_code'>90210</item>
<item key='phone'>+1.4165550123x1243</item>
<item key='fax'>+1.41655501255</item>
<item key='email'>tucker@example.com</item>
</dt_assoc>
</item>
<item key='organization'>
<dt_assoc>
<item key='org_name'>Example Inc.</item>
<item key='duns'>12345</item>
<item key='address1'>32 Oak Street</item>
277

<item key='address2'>Suite 100</item>


<item key='address3'/>
<item key='city'>Santa Clara</item>
<item key='state'>CA</item>
<item key='postal_code'>90210</item>
<item key='country'>US</item>
<item key='phone'>+1.4165550123</item>
<item key='fax'>+1.4165550125</item>
</dt_assoc>
</item>
<item key='billing'>
<dt_assoc>
<item key='first_name'>Bill</item>
<item key='last_name'>Burton</item>
<item key='org_name'>Example Inc.</item>
<item key='title'/>
<item key='address1'>32 Oak Street</item>
<item key='address2'>Suite 100</item>
<item key='address3'/>
<item key='city'>Santa Clara</item>
<item key='state'>CA</item>
<item key='postal_code'>90210</item>
<item key='country'>US</item>
<item key='phone'>+1.4165550123x1248</item>
<item key='fax'>+1.4165550125</item>
<item key='email'>burton@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='csr'>-----BEGIN CERTIFICATE REQUEST----MIIC2jCCAcICAQAwgZQxITAfBgNVBAMTGHRydWViaXoucWFyZWdyZXNzaW9uLm9y
ZzELMAkGA1UEBhMCQ0ExCzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMQ8w
DQYDVQQKEwZUdWNvd3MxEDAOBgNVBAsTB1FBIERlcHQxIDAeBgkqhkiG9w0BCQEW
EXFhZml2ZUB0dWNvd3MuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAo+4AzMq3JeXV5KlAD3BBOGdAOuJYBW3Bz1BooLPX4MGefxqzfVcR8KLGg5MS
PLqdiY4Sqc+/tK8qabpHttdbAZ1WBvgYmviMkhRjpSrbVjOca0CmydPCVsXu5nnE
HMEZODrzhpuHHIzrkclBpGAqEhf9v1g4OFt1sInVB0o8NpeT10aFyvX2HbtsJyfZ
278

S4RMsP+XjVWzWZ+8v2bH6gapJ0tzXvTKwXzhUzElvVqpldpzO0FgnJtHmfJ/EOs5
gntzVIxzP12ZKFf0dYYUj0OKWU+aQodlic2oVxETyWKCoX5W7jQgpTV/vAF7nQY8
Y9VtV6SE5yQRYPJutDTk2PouEwIDAQABoAAwDQYJKoZIhvcNAQEEBQADggEBAAUr
DUNxyrYpt3t9r0GCIiIDVyQdJvY4tQUFIEJdxcvRo2TUcrgiWPyntGc1OCtUFE9Z
2JX4BNEmFVN1jUdBzh6/0loAA36iGYWTSB6CPVe5+y+dcgbViWcNV4or7FOslzRH
/Eu0CquMGmGtSdaT/DNIrJvM2iGOtuhFBhFyru61YMoeaQLU12i5XvK7bR4wHrG6
8DwlwUdzBRqiaq32rM/ZF2KmMzfLFKug1Hubt3OBQHSKwXz3CR7hrJSzf1q3lF/w
HD47TC982HXaUuskI+E0LcuR/qprLkvAO6hKT60CP+V/yNwcBu79Zjeg1MsAmH/W
SzFmc1swYutlFBxmyLU= -----END CERTIFICATE REQUEST-----</item>
<item key='reg_type'>new</item>
<item key='price'>99.0</item>
<item key='server_type'>apachessl</item>
<item key='supplier_order_id'>141777</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

279

get_orders_by_domain
Description
Action & object
action = get_orders_by_domain
object = domain

Usage
Retrieves information about orders placed for a specific domain.

Request parameters for get_orders_by_domain


Standard parameters
action = get_orders_by_domain
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain to query.

limit

Optional

Maximum number of orders to display on a page; the


default is 40.

order_from

Optional

Specify a starting date, in the format YYYY-MM-DD


from which to return orders. Can be used with the
order_to parameter to specify a range within which
to search. If not used with order_to, all orders from
the order_from date onward are returned.

order_to

Optional

Specify an end date, in the format YYYY-MM-DD,


before which to return orders. Can be used with the
attribute order_from parameter to specify a range
within which to search. If not used with
order_from, all orders from the order_to date and
earlier are returned.

page

Optional

Determines which page to retrieve, using the page


number. The page index starts at 1.

280

Parameter
name

Obligation

Definition/Value

status

Optional

Status of the order. Allowed values are declined,


pending, pending_fax, deleted, completed,
cancelled, ca_owner_approval, or waiting.

type

Optional

Type of order query, for example, new, premium,


renewal, sunrise, or transfer.

Response parameters for get_orders_by_domain


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

orders

Returned if
Contains arrays that list details about each
is_success = order.
true
For more information, see the Orders table
below.

page_size

Returned if
The maximum number of orders returned per
is_success = page.
true

Orders
Parameters within the orders associative array are described below.
Parameter
name

Obligation

Definition/Value

id

Always
returned

The ID number of the order.


281

Parameter
name

Obligation

Definition/Value

order_date

Always
returned

Date the order was created.

status

Optional

Current status of the order. Values may be declined,


pending, pending_fax, deleted, completed,
cancelled, declined, ca_owner_approval, or
waiting.

type

Always
returned

Type of order, for example, new, premium,


renewal, sunrise, transfer, or whois_privacy.

Examples for get_orders_by_domain


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get_orders_by_domain</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="page">1</item>
<item key="order_from">2007-10-01</item>
<item key="status">pending</item>
<item key="type">new</item>
<item key="limit">100</item>
<item key="order_to">2007-10-16</item>
</dt_assoc>
282

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Command successful</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="page_size">100</item>
<item key="orders">
<dt_array>
<item key="0">
<dt_assoc>
<item key="order_date">16-OCT-2007 15:21:26</item>
<item key="status">pending</item>
<item key="type">new</item>
<item key="id">103789</item>
</dt_assoc>
</item>
283

<item key="1">
<dt_assoc>
<item key="order_date">16-OCT-2007 15:21:23</item>
<item key="status">pending</item>
<item key="type">new</item>
<item key="id">103788</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

284

get_price
Description
Action & object
action = get_price
object = domain

Usage
Queries the price of a domain, and can be used to determine the cost of a
billable transaction for any TLD. A returned price for a given domain does not
guarantee the availability of the domain, but indicates that the requested
action is supported by the system and calculates the cost to register the
domain (if available).

Request parameters for get_price


Standard parameters
action = get_price
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain to be queried.

period

Optional

The desired registration period. The default is 1.

reg_type

Optional

The type of registration.


Allowed values are new, renewal, and trade.
The default is new.

285

Response parameters for get_price


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

price

Returned if
The price of the queried domain. This value includes
is_success = the OpenSRS price and the ICANN fee.
true

Examples for get_price


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET_PRICE</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
286

<item key="domain">example.com</item>
<item key="period">1</item>
<item key="reg_type">new</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="price">20.2</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

287

get_product_info
Description
Action & object
action = get_product_info
object = trust_service

Usage
Queries the properties of the specified Trust Service product.

Request parameters for get_product_info


Standard parameters
action = get_product_info
object = trust_service
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

all_info

Optional

If included and set to 1, the response


includes the CSR and contact
information. If the certificate was
migrated from TPP, the response includes
the TPP order ID and inventory ID.

inventory_item_id

Optional; may be
used for
certificates that
were migrated
from TPP.

The certificate product ID number that


was used in the TPP system.

Required

The Trust Service ID number.

product_id

This value may be used in place of


product_id.

Note: This value is not required for


certificates that were migrated from TPP
if inventory_item_id is submitted.

288

Response parameters for get_product_info


Standard parameters
action = reply
object = trust_service
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

contact_email

Returned if
The administrator email address.
is_success = true

csr

Returned if
Certificate Signing Request. The Trust
is_success = true Service provider uses this information to
generate the certificate.

domain

Returned if
The domain with which the Trust Service is
is_success = true associated.

expiry_date

Returned if
The date that the Trust Service certificate
is_success = true expires.

inventory_item_
id

Returned if
The certificate product ID number that was
is_success = true used in the TPP system.
and cert was
migrated from TPP

is_renewable

Returned if
Indicates whether the product is can be
is_success = true renewed at this time. Trust Service
products can be renewed between 60 days
before the expiry date and 15 days after
expiry date.
Allowed values are:

issue_date

0Product cannot be renewed at


this time.

1Product can be renewed.

Returned if
The date that the Trust Service certificate
is_success = true was issued.
289

Parameter
name

Obligation

Definition/Value

product_id

Returned if

The ID number for the Trust Service.

is_success = true
product_type

Returned if

The product type from the SSL Certificate


is_success = true inventory. The product types are detailed in
the allowed values section for this key.
Allowed values are:

comodo_ev

comodo_instantssl

comodo_premiumssl

comodo_premiumssl_wildcard

comodo_ssl

comodo_wildcard

malwarescan

quickssl

quickssl_premium

securesite

securesite_pro

securesite_ev

securesite_pro_ev

sgcsuper_certs

sitelock_basic

sitelock_premium

sitelock_enterprise

ssl123

sslwebserver

sslwebserver_wildcard

sslwebserver_ev

truebizid

truebizid_wildcard

truste_hpp (Hosted Privacy Policy)

truste_tps (TRUSTE Privacy Policy


with seal)

truebizid_ev

trustwave_dv

trustwave_ev

trustwave_premiumssl

trustwave_premiumssl_wildcard
290

Parameter
name

Obligation

Definition/Value

start_date

Returned if
The effective date for the Trust Service.
is_success = true

state

Returned if
The state of the product. Allowed values
is_success = true are:

expired

active

renewing

renewed

revoked

tpp__order_id

Returned if cert was The order number that was used in the TPP
migrated from TPP system.
and is_success =
true

upgrade_options

Returned if
is_success = true
and product_type
= sitelock_basic
or
sitelock_premium

Indicates the product types to which the


existing product can be upgraded.
Currently, this applies to Sitelock products
only.
If product_type = sitelock_basic, values
returned are sitelock_premium and
sitelock_enterprise; if product_type =
sitelock_premium, value returned is
sitelock_enterprise.

Examples for get_product_info


Example 1
Retrieves the properties for a Trust Service product.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
291

<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get_product_info</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='product_id'>99</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='product_type'>truebizid_wildcard</item>
<item key='issue_date'>2010-09-14-04:00</item>
292

<item key='domain'>*.example.com</item>
<item key='product_id'>99</item>
<item key='contact_email'>qafive@example.com</item>
<item key='start_date'>2010-09-13-04:00</item>
<item key='expiry_date'>2010-09-22-04:00</item>
<item key='is_renewable'>0</item>
<item key='state'>expired</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Retrieves all information for a Trust Service product.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get_product_info</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='all_info'>1</item>
<item key='product_id'>2071</item>
</dt_assoc>
</item>
293

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='csr_data'>
<dt_assoc>
<item key='country'>US</item>
<item key='organization_unit'>QA Dept</item>
<item key='valid_true_domain'>1</item>
<item key='state'>CA</item>
<item key='locality'>Santa Clara</item>
<item key='email'>qafive@example.com</item>
<item key='domain'>abc123.example.org</item>
<item key='valid_quick_domain'>1</item>
<item key='has_bad_extensions'>0</item>
<item key='organization'>Example Co.</item>
294

</dt_assoc>
</item>
<item key='notes_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='date'>2012-04-12T10:05:08.000-

05:00</item>

<item key='type'>product_active</item>
<item key='note'>The product with the id [2071] has
been created.</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='expiry_date'>2013-04-12T18:59:59.000-05:00</item>
<item key='state'>active</item>
<item key='product_type'>sitelock_premium</item>
<item key='domain'>trust.example.org</item>
<item key='issue_date'>2012-04-12T10:02:01.000-05:00</item>
<item key='product_id'>2071</item>
<item key='is_renewable'>0</item>
<item key='contact_email'>qafive@example.com</item>
<item key='contact_set'>
<dt_assoc>
<item key='admin'>
<dt_assoc>
<item key='first_name'>Adler</item>
<item key='last_name'>Adams</item>
<item key='title'>Administrator</item>
<item key='org_name'>Example Inc.</item>
<item key='address1'>32 Oak Street</item>
<item key='address2'>Suite 100</item>
<item key='address3'/>
<item key='city'>Santa Clara</item>
<item key='state'>CA</item>
295

<item key='country'>US</item>
<item key='postal_code'>90210</item>
<item key='phone'>+1.4165550123x1812</item>
<item key='email'>adams@example.com</item>
<item key='fax'>+1.4165550125</item>
</dt_assoc>
</item>
<item key='tech'>
<dt_assoc>
<item key='first_name'>Tim</item>
<item key='last_name'>Tucker</item>
<item key='title'/>
<item key='org_name'>Example Inc.</item>
<item key='address1'>32 Oak Street</item>
<item key='address2'>Suite 100</item>
<item key='address3'/>
<item key='city'>Santa Clara</item>
<item key='state'>CA</item>
<item key='country'>US</item>
<item key='postal_code'>90210</item>
<item key='phone'>+1.4165550123x1243</item>
<item key='fax'>+1.4165550125</item>
<item key='email'>tucker@example.com</item>
</dt_assoc>
</item>
<item key='organization'>
<dt_assoc>
<item key='first_name'>Jim</item>
<item key='last_name'>Johnson</item>
<item key='title'>Director</item>
<item key='org_name'>Example Inc.</item>
<item key='address1'>32 Oak Street</item>
<item key='address2'>Suite 100</item>
<item key='address3'/>
<item key='city'>Santa Clara</item>
296

<item key='state'>CA</item>
<item key='country'>US</item>
<item key='postal_code'>90210</item>
<item key='email'>jjohnson@example.com</item>
<item key='phone'>+1.4165550125x1224</item>
<item key='fax'>+1.4165550126</item>
</dt_assoc>
</item>
<item key='billing'>
<dt_assoc>
<item key='first_name'>Bill</item>
<item key='last_name'>Burton</item>
<item key='title'/>
<item key='org_name'>Example Inc.</item>
<item key='address1'>32 Oak Street</item>
<item key='address2'>Suite 200</item>
<item key='address3'/>
<item key='city'>Santa Clara</item>
<item key='state'>CA</item>
<item key='country'>US</item>
<item key='postal_code'>90210</item>
<item key='phone'>+1.4165550123x1248</item>
<item key='fax'>+1.4165550136</item>
<item key='email'>burton@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='csr'>-----BEGIN CERTIFICATE REQUEST----MIIC2TCCAcECAQAwgZMxIDAeBgNVBAMTF3NzbDEyMy5xYXJlZ3Jlc3Npb24ub3Jn
MQswCQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xDzAN
BgNVBAoTBlR1Y293czEQMA4GA1UECxMHUUEgRGVwdDEgMB4GCSqGSIb3DQEJARYR
cWFmaXZlQHR1Y293cy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQDpKz48gJG4ImyJi76kH3AdDZoGNZCC8xgWBUDk4yNXPqe3NxJvZooZIoctP2o8
CX6+xoK8p6jMb9iIz7ZVC9LuoUmoYZZWdoatMUwaz3xIa4Fq7HeLtCE3misKMcZq
+QomhLFv2yMSgyzWWitHdW5oVDuT83Xs8FTZG33rI8gut1J9+5fhJV4WKuncfLwM
xMrj+5iWm+KwoE86dTarGAPwYhC2FepcblszVbz87Dp1clTJLaN4potMES83RHo1
teHHmJAilNzy2PfRoylbzlQ38x1n10wbhqjMcoDYk6CSB40PlduqbsMjpkOClwu4
H92c2Hmo3bqRGWM2K5SXkj29AgMBAAGgADANBgkqhkiG9w0BAQQFAAOCAQEAKUh6
297

WH4WtC/LtlJhj+p5i3sLEG/L//8DQh30eOxwMxrSGGZUGTfLBT4RaeDA5JEIF5pK
v4MxvDw1+NExMQW3h/9eVWXpGGjvC2EoLgya3ri3OJlQNOyqSzOvNunk0EPaWoO+
v9o2yKdH88e7NQZp8Pw5jhE9RV9u3+mNw2sztqpzcXYDXW3kKI2UiIP3eur2/iiH
nSAIRl5NfUPgAzCem/zpM1lc3s+EVKysn2wF4bwOkNyYPo4DmgHCb7ggSQyhh5vN
UAoDkyqu2ZScDZTyDG7YOdobMqwbsCT5er5Bq+NWOZyUE+3zO/1VQpznJehaGLrQ
N7UAJliUAO+SFFGdxQ== -----END CERTIFICATE REQUEST-----</item>
<item key='upgrade_options'>sitelock_enterprise</item>
<item key='start_date'>2012-04-11T19:00:00.000-05:00</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 3
Retrieves all information for a Trust Service product that was migrated from
the TPP system.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get_product_info</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='all_info'>1</item>
<item key='product_id'>2076</item>
</dt_assoc>
</item>
298

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='response_text'>Command completed successfully.</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='attributes'>
<dt_assoc>
<item key='tpp_order_id'>9997602</item>
<item key='csr_data'>
<dt_assoc>
<item key='country'>US</item>
<item key='organization_unit'>QA Dept</item>
<item key='valid_true_domain'>1</item>
<item key='state'>CA</item>
<item key='locality'>Santa Clara</item>
<item key='email'>qafive@example.com</item>
<item key='domain'>renewtest.example.org</item>
<item key='valid_quick_domain'>1</item>
<item key='has_bad_extensions'>0</item>
299

<item key='organization'>Example Co.</item>


</dt_assoc>
</item>
<item key='notes_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='date'>2012-04-12T11:20:11.00005:00</item>
<item key='type'>product_active</item>
<item key='note'>The product with the id [2076] has

been created.</item>

</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='date'>2012-04-12T11:20:59.000-

05:00</item>

<item key='type'>product_renewing</item>
<item key='note'>The product with the id [2076] is
in the process
of being renewed.</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='date'>2012-04-12T11:25:07.000-

05:00</item>

<item key='type'>product_renewed</item>
<item key='note'>The product with the id [2076] has
been renewed.</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='expiry_date'>2012-04-19T20:46:39.000-05:00</item>
<item key='inventory_item_id'>8887602</item>
300

<item key='state'>renewed</item>
<item key='product_type'>quickssl</item>
<item key='domain'>renewtest.example.org</item>
<item key='issue_date'>2012-04-12T11:19:11.000-05:00</item>
<item key='product_id'>2076</item>
<item key='is_renewable'>0</item>
<item key='contact_email'>qafive@examle.com</item>
<item key='contact_set'>
<dt_assoc>
<item key='admin'>
<dt_assoc>
<item key='first_name'>Adler</item>
<item key='last_name'>Adams</item>
<item key='title'>Administrator</item>
<item key='org_name'>Example Co.</item>
<item key='address1'>32 Oak Street</item>
<item key='address2'>Suite 100</item>
<item key='address3'/>
<item key='city'>Santa Clara</item>
<item key='state'>CA</item>
<item key='postal_code'>90210</item>
<item key='country'>US</item>
<item key='phone'>+1.4165550123x1812</item>
<item key='fax'>+1.4165550125</item>
<item key='email'>adams@example.com</item>
</dt_assoc>
</item>
<item key='tech'>
<dt_assoc>
<item key='first_name'>Ted</item>
<item key='last_name'>Tucker</item>
<item key='title'/>
<item key='org_name'>Example Co.</item>
<item key='address1'>32 Oak Street</item>
<item key='address2'>Suite 100</item>
301

<item key='address3'/>
<item key='city'>Santa Clara</item>
<item key='state'>CA</item>
<item key='postal_code'>90210</item>
<item key='country'>US</item>
<item key='phone'>+1.4165550123x1243</item>
<item key='fax'>+1.4165550125</item>
<item key='email'>tucker@example.com</item>
</dt_assoc>
</item>
<item key='organization'>
<dt_assoc>
<item key='first_name'>Jim</item>
<item key='last_name'>Johnson</item>
<item key='title'>Director</item>
<item key='org_name'>Example Co.</item>
<item key='address1'>32 Oak Street</item>
<item key='address2'>Suite 100</item>
<item key='address3'/>
<item key='city'>Santa Clara</item>
<item key='state'>CA</item>
<item key='country'>US</item>
<item key='postal_code'>90210</item>
<item key='phone'>+1.4165550123x1224</item>
<item key='email'>jjohnson@example.com</item>
<item key='fax'>+1.4165550126</item>
</dt_assoc>
</item>
<item key='billing'>
<dt_assoc>
<item key='first_name'>Bill</item>
<item key='last_name'>Burton</item>
<item key='title'/>
<item key='org_name'>Example Co.</item>
<item key='address1'>32 Oak Street</item>
302

<item key='address2'>Suite 200</item>


<item key='address3'/>
<item key='city'>Santa Clara</item>
<item key='state'>CA</item>
<item key='country'>US</item>
<item key='postal_code'>90210</item>
<item key='phone'>+1.4165550123x1248</item>
<item key='fax'>+1.4165550136</item>
<item key='email'>burton@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='csr'>-----BEGIN CERTIFICATE REQUEST----MIIC3DCCAcQCAQAwgZYxIzAhBgNVBAMTGnJlbmV3dGVzdC5xYXJlZ3Jlc3Npb24ub3JnMQs
wCQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8x
DzANBgNVBAoTBlR1Y293czEQMA4GA1UECxMHUUEgRGVwdDEgMB4GCSqGSIb3DQEJARYRcWF
maXZlQHR1Y293cy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDS7+XQflaRIXlWlRv9MRwa5vidu4uKciZdthDVkWo50lYPVZcwSY1v5bhTwIGpGna
22ak3snH+GDcYKqy9umY0cVbJRM16jsWNiVc4xgylR6JD/rGxG7DVlUu/
qJK1T8tl09PGLz9yRWnLSb9BbZ85tRgq1+up57/O4zXNgznRZhxibr5mgb4w/5yWga/elUa
t6GJNLsbvZo+k516JgCk2trudH9+tr72454T8ZR5fbdw23GruqvQGilUY
UsKe1Uywv8vgml1AIGTPctPwfxcFhRPMdWbZ/YmmaxNvd1/DBXZKL8F0wh672aGNEx5DXTk
so2tVPwpadgyLJFqMaHdzAgMBAAGgADANBgkqhkiG9w0BAQQFAAOCAQEA
YYLY/3lGaxxxQASKwm4mUY4QAytqp24A0/i1OSOJNG86OOR8ws7VtFSGKa2B//gx6y2KAI6
zomWL4Zpl4DcD8ttckv343DqFwjzJWn5P5/uLBg1z1QVJfVXAyWOt7PQb
qx3EfaiVMgoHYCyQgXx50/iKg1w+k2Q2PUGPVJQFTBdXKBn5eaRJJW2JNJVhaNok9peAgsE
adXTUGMrKpU0iaExWTvHBN3v9jjF1tow/hhbUqBGk80OVb2MGsa5Rp5aP
WG8wWgI67EYcDe2IKvRfoPfzKw6WsLHq2GHp+qqJjXAUB4TBP3/cb3nIrAA8+h9lR3UCZ0L
yB0rQM7pkk0t9Jw== -----END CERTIFICATE REQUEST-----</item>
<item key='start_date'>2012-04-11T09:02:43.000-05:00</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

303

get_products
Description
Action & object
action = get_products
object = trust_service

Usage
Returns a list of the Trust Service products whose expiry dates are within a
specific date range.

Request parameters for get_products


Standard parameters
action = get_products
object = trust_service
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation Definition/Value

max_expiry_date Required

Used in conjunction with min_expiry_date attribute.


The latest expiry date to use to generate a list of Trust
Service products.
Date must be in the format YYYY-MM-DD.

min_expiry_date Required

Used in conjunction with max_expiry_date


attribute. The earliest expiry date to use to generate a
list of Trust Service products.
Date must be in the format YYYY-MM-DD.

state

Optional

The state of the Trust Service products that you want


returned. Allowed values are:

activated

active

expired

renewed

revoked

upgraded

304

Response parameters for get_products


Standard parameters
action = reply
object = trust_service
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

product_list

Returned if
is_success =
true

An array that lists the products whose expiry


dates are within a specific date range.
For more information, see the product_list
table below.

product_list
Parameters within the product_list associative array are described below.
Parameter
name

Obligation

Definition/Value

contact_email

Returned if
is_success =
true

The email contact from the order.

domain

Returned if
is_success =
true

The domain or hostname to which the Trust


Service applies.

expiry_date

Returned if
is_success =
true

The date that the Trust Service product


expires.

is_renewable

Returned if
is_success =
true

Indicates whether the product is can be


renewed at this time. Trust Service products
can be renewed between 60 days before the
expiry date and 15 days after expiry date.
Allowed values are:

0Product cannot be renewed at this


time.
305

Parameter
name

Obligation

Definition/Value

1Product can be renewed.

issue_date

Returned if
is_success =
true

The date that the Trust Service product was


issued.

product_id

Returned if
is_success =
true

The ID number of the Trust Service product

product_type

Returned if
is_success =
true

The product type from the SSL Certificate


inventory.
Allowed values are:

comodo_ev

comodo_instantssl

comodo_premiumssl

comodo_premiumssl_wildcard

comodo_ssl

comodo_wildcard

malwarescan

quickssl

quickssl_premium

securesite

securesite_ev

securesite_pro

securesite_pro_ev

sgcsuper_certs

sitelock_basic

sitelock_premium

sitelock_enterprise

ssl123

sslwebserver

sslwebserver_ev

sslwebserver_wildcard

truebizid

truebizid_ev

truebizid_wildcard

truste_hpp (Hosted Privacy Policy)

truste_tps (TRUSTE Privacy Policy with


seal)

trustwave_dv
306

Parameter
name

Obligation

Definition/Value

trustwave_ev

trustwave_premiumssl

trustwave_premiumssl_wildcard

start_date

Returned if
is_success =
true

The effective date for the Trust Service.

state

Returned if
is_success =
true

The state of the Trust Service product.


Allowed values are:

approver-confirmedOwner has
confirmed the domain vetted certificate.

awaiting-approvalOrder processed
successfully; waiting for supplier
approval.

cancelled Pending order was


cancelled.

completedOrder is complete.

declinedOrder cancelled after it was


processed or declined by the supplier.

in-progressOrder is in progress.

pendingOrder saved as pending.

Examples for get_products


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get_products</item>
<item key='object'>trust_service</item>
<item key='attributes'>
307

<dt_assoc>
<item key='min_expiry_date'>2012-04-23</item>
<item key='state'>expired</item>
<item key='max_expiry_date'>2012-09-22</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='response_text'>Command completed successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='product_list'>
<dt_array>
<item key='0'>
<dt_assoc>
04:00</item>

<item key='expiry_date'>2012-04-23T10:41:04.000<item key='state'>expired</item>


<item key='product_type'>quickssl</item>
308

<item key='issue_date'>2012-04-16T09:17:46.000-

04:00</item>

<item key='domain'>example.org</item>
<item key='product_id'>2094</item>
<item key='contact_email'>qafive@example.com</item>
<item key='is_renewable'>0</item>
<item key='start_date'>2012-04-14T20:14:48.000-

04:00</item>

</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='expiry_date'>2012-05-08T07:34:49.000-

04:00</item>

<item key='state'>expired</item>
<item key='product_type'>securesite_pro</item>
<item key='issue_date'>2012-04-30T11:27:59.000-

04:00</item>

<item key='domain'>example.net</item>
<item key='product_id'>2096</item>
<item key='contact_email'>qafive@example.com</item>
<item key='is_renewable'>0</item>
<item key='start_date'>2012-04-28T19:42:30.000-

04:00</item>

</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

309

get_registrant_verification_status
Description
Action & object
action =get_registrant_verification_status
object = domain
Usage
When a domain is registered or transferred, or when the registrant contact
information is changed, the registrant must reply to an email requesting
them to confirm that the submitted contact information is correct. This
command returns the current state of the verification request.

Request parameters for


get_registrant_verification_status
Standard parameters
action = get_registrant_verification_status
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition / Value

domain

The relevant domain.

Required if cookie is not submitted

Response parameters for


get_registrant_verification_status
Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the
request
310

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation Definition/Value

days_to_suspend Returned if
is_success
= true

The number of days remaining until the domain is


suspended if the registrant information is not
validated. If the domain has already been
suspended, this value will be a negative number.
Note: This parameter is returned only if the value
for registrant_verification_status is pending,
verifying, suspended, or admin_reviewing.

email_bounced

Returned if Returns 1 if the verification email was triggered


is_success because the WDRP or the renewal notice bounced.
= true

registrant_
verification_
status

Returned if
is_success
= true

verification_
deadline

The current status of the verification.


Allowed values are:

admin_reviewingThe registrant data has


been submitted and is being validated
manually by the Tucows Compliance team

pendingThe verification process has been


initiated, and the verification email will be
sent.

suspendedThe registrant has failed


verification and the domain has been
suspended.

verifiedThe registrant has been validated.

verifyingThe verification process has


been initiated and is waiting for registrant
response.

unverifiedThe verification process has not


been initiated.

Returned if The number of days remaining until the domain is


is_success suspended if the registrant information is not
= true
validated. If the domain has already been
suspended, this value will be a negative number.
Note: This parameter is returned only if the value
for registrant_verification_status is pending,
verifying, suspended, or admin_reviewing.

311

Examples for get_registrant_verification_status


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get_registrant_verification_status</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
312

<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="registrant_verification_status">suspended</item>
<item key="verification_deadline">2013-112-02
00:00:00</item>
<item key="email_bounced">1</item>
<item key="days_to_suspend">2</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

313

lookup (domain)
Description
Action & object
action = lookup
object = domain

Usage
Determines the availability of a specified domain name.
Note: This command checks the availability of a single domain name. We
recommend that you use the much more robust name_suggest API instead.
In addition to checking the specified domain name, the name_suggest API
also checks whether the domain name is available in other TLDs (.COM, .NET,
.ORG, .INFO, and .BIZ), and it returns a list of suggested domains names
that are related to the specified name.

Request parameters for lookup (domain)


Standard parameters
action = lookup
object = domain
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain name to be queried.

no_cache

Optional

In order to obtain results quickly, the default for the


lookup command is to check the local OpenSRS
cache to determine domain name availability. If you
specify no_cache = 1, instead of checking the
cache, the lookup command queries the applicable
registry to determine domain name availability.

Note: Setting no_cache to 1 increases the amount


of time it takes to get results.

314

Deprecated
Parameter
name

Obligation

Definition/Value

pre_reg

Deprecated

Used during the .BIZ round robin.

Note: No encoding type is sent on a lookup.

Response parameters for lookup (domain)


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Note: Even if the domain being queried is taken (response_code = 211),


is_success is set to 1 because the query was successful. Therefore, be sure
to check the response_code and response_text when reading the reply.

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

email_available

Optional

Indicates whether a forwarding email is


available or not. Applies to .NAME domains
only.

has_claim

0No forwarding email available

1Forwarding email available

Returned for the Indicates whether the domain name has a


new TLDs during matching mark registered at the Trademark
the claims period Clearinghouse (TMCH)
(90 days from the
0No matching marks exist at the
start of GA)
TMCH.

noservice

Returned for
.NAME if
is_success =

1A mark is registered at the TMCH


that matches the domain name.

Indicates Registry Agent availability. If RA is


available, noservice does not appear in
response.
315

Parameter
name

Obligation

Definition/Value

true

1Supplier unavailable

Note: when noservice = 1, is_success = 0.


price_status

status

Returned if
is_success =
true

The pricing status.

Returned if
is_success =
true

Whether the domain is available or taken.

UndefNon .TV domains

FixedPrice is fixed for .TV domains

Examples for lookup (domain)


Example 1
Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">LOOKUP</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">111.121.121.121</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="no_cache">1</item>
</dt_assoc>
</item>
</dt_assoc>
316

</data_block>
</body>
</OPS_envelope>

Response
If domain is available
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">210</item>
<item key="response_text">Domain available</item>
<item key="attributes">
<dt_assoc>
<item key="status">available</item>
<item key="email_available">undef</item>
<item key="price_status">undef</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If domain is unavailable
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
317

<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>


<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">211</item>
<item key="response_text">Domain taken</item>
<item key="attributes">
<dt_assoc>
<item key="status">taken</item>
<item key="email_available">undef</item>
<item key="price_status">undef</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Lookup request for a new TLD during the claims period

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
318

<msg_type>standard</msg_type>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>LOOKUP</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.guru</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?> <!DOCTYPE
OPS_envelope SYSTEM 'ops.dtd'> <OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='is_success'>1</item>
<item key='response_code'>210</item>
<item key='response_text'>Domain available</item>
<item key='attributes'>
<dt_assoc>
319

<item key='status'>available</item>
<item key='has_claim'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

320

name_suggest (domain)
Description
Action & object
action = name_suggest
object = domain

Usage
Checks whether a specified name, word, or phrase is available for registration
in gTLDs and ccTLDs, suggests other similar domain names for .COM,
.NET, .ORG, .INFO, .BIZ, .US, and .MOBI domains, and checks whether they
are available. Reseller must be enabled for the specified TLDs. Can also be
used to search for domains owned by external domain suppliers.

Request parameters for name_suggest (domain)


Standard parameters
action = name_suggest
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

languages

Specify the languages in which to return


suggestions for other similar names.

Optional

enEnglish

fr French

deGerman

itItalian

esSpanish

You can specify the languages in which you


want to see name suggestions, for example,
you can submit a name, word or phrase in
Spanish and specify es to request suggestions
in Spanish.
If you do not specify a language code, the
system tries to determine the language used in
the searchstring and returns suggestions in
321

Parameter name Obligation

Definition/Value
that language.

max_wait_time

Optional

Specify the number of seconds that the


command can run, and return as many results
as can be found in that time period. You can
specify a fraction of a second, as long as the
value is at least 0.1. If the results cannot be
determined for any of the lookup domains
within the specified time, the returned status
value is in_progress.
If all results cannot be returned for
suggestion, premium, or personal names
within the specified time period, no results are
returned for that service; that is the command
returns all results or no results for each of these
services.
After the results obtained within the
max_wait_time are returned, the command
continues to run in the background, and you
can resubmit the command with the
search_key to see more results.
Note: If you do not include the
max_wait_time parameter, the command
takes as long as it needs to return complete
results.

search_key

Optional

Resumes the previously run name_suggest


command if the command did not return
complete results during the specified
max_wait_time

searchstring

Required

The name, word, or phrase whose availability


you want to check.
Note: The first level domain (for example,
.COM) is not required.

322

Parameter name Obligation

Definition/Value

service_override

Overrides default settings for lookup,


suggestion, or premium.

Optional

For more information, see the


Service_Override table below.
Note: service_override is not available for
personal_names.
services

Optional

skip_registry_lookup Optional

Specify the services for which you want to


check availability.

lookupCheck availability.

suggestionRequest suggestions.

personal_namesCheck the
availability of the specified personal
name, (firstname lastname).

premiumInclude domains owned by


external domain suppliers.

premium_brokered_transferInclude
domain names that may be purchased
from external suppliers that use a broker
to complete the purchase process.

premium_make_offerInclude
domain names that may be purchased
from external suppliers where the buyer
and seller negotiate the purchase price.

Specifies whether to query the applicable


registries to find out if the lookup domain
names are available for registration.

0Query the registries; this is the


default.

1Do not query the registries.

Note: If you set this parameter to 1, the


response is returned more quickly; however, the
results do not indicate whether or not the
lookup names are available. You still have to
check the availability of any names you are
interested in, for example, by using the lookup
(domain) command.
suggestion

Optional

Specify the TLDs to check for name


suggestions; can also specify the number of
suggestions to return. Suggestions are only
available for .COM, .NET, .ORG, .INFO, and
.BIZ.
Allowed values may be the tlds array and the
maximum parameter.
For more information, see the Lookup and
Suggestion table below.
323

Parameter name Obligation

Definition/Value

tlds

The TLDs you want to check for domain name


availability and suggestions.

Required

Lookups are available for all gTLDs and ccTLDs.


Suggestions are available for .COM, .NET, .ORG,
.INFO, .BIZ, .US, and .MOBI.

Service_Override
Parameters within the service_override associative array are described
below.
Parameter
name

Obligation

Definition/Value

lookup

Optional

Specify the TLDs to check for availability.


Lookups are available for all gTLDs and ccTLDs.

personal_names

Optional

Specify the TLDs to check for available personal


names.

premium

Optional

Specify the TLDs to check for availability.


Premium domain name lookups are available
for .COM, .NET, .ORG, .INFO, and .BIZ.

suggestion

Optional

Specify the TLDs to check for name suggestions;


can also specify the number of suggestions to
return. Suggestions are available for .COM, .NET,
.ORG, .INFO, .BIZ, .US, and .MOBI.
Allowed values may be the tlds array and the
maximum parameter.
For more information, see the Lookup and
Suggestion table below.

Lookup and Suggestion


Parameters within the lookup and suggestion associative arrays are
described below.
Parameter
name

Obligation

Definition/Value

maximum

Optional

The maximum number of domain name suggestions


to return.
Specify 1 to 100; 100 is the default.

324

Parameter
name

Obligation

Definition/Value

price_max

Optional; used The maximum price of the Premium domains to


only for
return.
Premium
The value must be an integer, for example, 1150;
domains
decimal points are not allowed.
If this parameter is not submitted or if the value is
not acceptable, the default value of 5000 is used. If
this value is less than the price_min value, the
default values for both price_min and price_max
are used.

price_min

Optional; used The minimum price of the Premium domains to


only for
return. The value must be greater than zero, and
Premium
must be an integer, for example, 250; decimal
domains
points are not allowed.
If this parameter is not submitted or if the value is
not acceptable, the default value of 50 is used. If
this value is greater than the price_max value, the
default values for both price_min and price_max
are used.

tlds

Required

The TLDs you want to check for domain name


availability and suggestions.
Lookups are available for all gTLDs and ccTLDs.
Suggestions are available for .COM, .NET, .ORG,
.INFO, .BIZ, .US, and .MOBI.

Lookup
The following parameter may be used in the lookup associative array:
Parameter
name

Obligation

Definition/Value

no_cache_tlds

Optional

In order to obtain results quickly, the default for the


lookup command is to check the local OpenSRS
cache to determine domain name availability. If you
specify no_cache_tlds = 1, instead of checking
the cache, the lookup command queries the
applicable registries to determine domain name
availability.

Note: Setting no_cache_tlds to 1 increases the


amount of time it takes to get results.

325

Response parameters for name_suggest (domain)


Standard parameters
action = reply
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request
attributes

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name

Obligation

Definition/Value

has_claim

Returned for the


Indicates whether the domain name has
new TLDs during a matching mark registered at the
the claims period Trademark Clearinghouse (TMCH)
(90 days from the
0No matching marks exist at
start of GA)
the TMCH.

is_search_completed

lookup

Returned if
is_success =
true

Optional

1A mark is registered at the


TMCH that matches the domain
name.

Indicates whether all results were


returned within the specified
max_wait_time.

0Search results are not


complete.
Note: The command continues to
run in the background, and you
can resubmit the command with
the search_key to see more
results.

1Search completed.

The results returned for lookup.


Values may be the count parameter and
items associative array.
For more information, see the Premium,
Personal_Names, Lookup, and
Suggestion table below.

326

Parameter name

Obligation

Definition/Value

personal_names

Optional

The results returned for


personal_names.
Values may be the count parameter and
the items associative array.
For more information, see the Premium,
Personal_Names, Lookup, and
Suggestion table below.

premium

Optional

The results returned for premium.


Values may be the count parameter and
the items associative array.
For more information, see the Premium,
Personal_Names, Lookup, and
Suggestion table below.

premium_brokered_
transfer

Optional

The results returned for


premium_brokered_transfer.
Values may be the count parameter and
the items associative array.
For more information, see the Premium,
Personal_Names, Lookup, and
Suggestion table below.

premium_make_offer

Optional

The results returned for


premium_make_offer.
Values may be the count parameter and
the items associative array.
For more information, see the Premium,
Personal_Names, Lookup, and
Suggestion table below.

search_key

suggestion

Returned if
is_success =
true and
is_search_
completed = 0

A key that is returned if the


name_suggest command did not return
complete results during the specified
max_wait_time.

Optional

The results returned for suggestion.

The command continues to run in the


background, and you can resubmit the
command with the search_key to see
more results.
Values may be the count parameter and
the items associative array.
For more information, see the Premium,
Personal_Names, Lookup, and
Suggestion table below.

327

Premium, Personal_Names, Lookup, and Suggestion


Parameters within the premium, personal_names, lookup, and suggestion
associative arrays are described below.
Parameter
name

Obligation

Definition/Value

count

Always
returned

The number of results returned for lookup,


personal_names, suggestion, or premium.

items

Always
returned

List of domain names and their statuses.


Allowed values are domain and status.

Items
Parameters within the items associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Always
returned

Returned domain name.

price

Optional

The purchase price for the premium domain.

status

Always
returned

Indicates whether the returned domain names are


available and can be registered. Allowed values are:

third_party_
offer_url

Returned for
premium_
make_offer
domains

availableDomain name is available and


can be registered.

justsoldDomain name has been sold and


is not available.

takenDomain name is not available.

undeterminedReturned if
skip_registry_lookup = 1 in the request,
or if the registry could not be contacted.

in_progressThe command could not


determine the status of the domain name in
the allowed time. The command continues to
run in the background, and you can resubmit
the command with the search_key to see
more results.

The URL of the vendor that is facilitating the


negotiations between buyer and seller for the Make
Offer Premium domain.

328

Examples for name_suggest (domain)


Note: Due to the length of the responses in these examples, in some cases,
the results have been truncated by using ellipses (...) to represent omitted
results.

Example 1
For lookup, suggestion, premium, and personal names with suggestion
limited to .COM, .NET, and .ORG, in English, German, Italian, and Spanish.

Request
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>name_suggest</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='services'>
<dt_array>
<item key='0'>lookup</item>
<item key='1'>suggestion</item>
<item key='2'>premium</item>
<item key='3'>personal_names</item>
</dt_array>
</item>
<item key='searchstring'>search string</item>
<item key='languages'>
<dt_array>
<item key='0'>en</item>
329

<item key='1'>de</item>
<item key='2'>it</item>
<item key='3'>es</item>
</dt_array>
</item>
<item key='tlds'>
<dt_array>
<item key='0'>.com</item>
<item key='1'>.net</item>
<item key='2'>.org</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='response_text'>Command completed successfully</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='attributes'>
330

<dt_assoc>
<item key='lookup'>
<dt_assoc>
<item key='count'>6</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>searchstring.com</item>
<item key='status'>taken</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>searchstring.net</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='domain'>searchstring.org</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='3'>
<dt_assoc>
<item key='domain'>search-string.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
...
331

</dt_array>
</item>
</dt_assoc>
</item>
<item key='personal_names'>
<dt_assoc>
<item key='count'>6</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>search.stringham.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>search.stringhini.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item
key='domain'>search.stringfield.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='3'>
<dt_assoc>
<item key='domain'>search.stringer.net</item>
<item key='status'>available</item>
332

</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key='premium'>
<dt_assoc>
<item key='count'>20</item>
<item key='response_text'>Command Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>badmintonstring.com</item>
<item key='status'>available</item>
<item key='price'>1349.00</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>cheapstring.com</item>
<item key='status'>available</item>
<item key='price'>1549.00</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='domain'>elasticstring.com</item>
<item key='status'>available</item>
<item key='price'>1399.00</item>
</dt_assoc>
333

</item>
<item key='3'>
<dt_assoc>
<item key='domain'>findcordblood.com</item>
<item key='status'>available</item>
<item key='price'>1688.00</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key='suggestion'>
<dt_assoc>
<item key='count'>50</item>
<item key='response_text'>Command Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item
key='domain'>amazonsearchstring.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item
key='domain'>archivesearchstring.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='2'>
334

<dt_assoc>
<item key='domain'>briefsearchstring.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
...
<item key='49'>
<dt_assoc>
<item key='domain'>search-string.org</item>
<item key='status'>available</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
For both lookup and suggestion with lookups limited to .COM and .INFO,
querying the registry (not OpenSRS cache) for .COM lookups, suggestions
limited to .COM and .ORG, and maximum 25 suggestions returned.

Request
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
335

<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">name_suggest</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="searchstring">example@search.com</item>
<item key="service_override">
<dt_assoc>
<item key="suggestion">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
<item key="1">.org</item>
</dt_array>
</item>
<item key="maximum">25</item>
</dt_assoc>
</item>
<item key="lookup">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
<item key="1">.info</item>
</dt_array>
</item>
<item key = "no_cache_tlds">
<dt_array>
<item key="0">.com</item>
</dt_array>
</item>
</dt_assoc>
336

</item>
</dt_assoc>
</item>
<item key="services">
<dt_array>
<item key="0">lookup</item>
<item key="1">suggestion</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="response_text">Command completed
successfully</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="lookup">
<dt_assoc>
337

<item key="count">8</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">example-

search.com</item>

<item key="status">available</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="domain">examplesearch.info</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
key="domain">example.com</item>

<item
<item key="status">taken</item>
</dt_assoc>

</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key="suggestion">
<dt_assoc>
<item key="count">25</item>
<item key="response_text"/>
338

<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item

key="domain">modelhunt.org</item>

<item key="status">available</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item
key="domain">modelfind.org</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
key="domain">problemfind.org</item>

<item
<item key="status">available</item>

</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>
339

Example 3
For premium domains, limited to .COM and .NET.

Request
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>name_suggest</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='searchstring'>abc&amp;d !</item>
<item key='service_override'>
<dt_assoc>
<item key='premium'>
<dt_assoc>
<item key='tlds'>
<dt_array>
<item key='0'>.com</item>
<item key='1'>.net</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='services'>
<dt_array>
340

<item key='0'>premium</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="is_success">1</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="premium">
<dt_assoc>
<item key="count">4</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
341

<item key="0">
<dt_assoc>
<item key="domain">abc-and-

d.com</item>

<item key="status">available</item>
<item key="price">299.98</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
key="domain">abcandd.com</item>

<item
<item key="status">available</item>
<item key="price">499.98</item>
</dt_assoc>

</item>
<item key="2">
<dt_assoc>
key="domain">abcandd.net</item>

<item
<item key="status">available</item>
<item key="price">99.78</item>
</dt_assoc>

</item>
<item key="3">
<dt_assoc>
<item key="domain">abcd.com</item>
<item key="status">available</item>
<item key="price">1523.45</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
342

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 4
For premium, lookup, and suggestion, limited to .COM, maximum 10
suggestions returned.

Request
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">name_suggest</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="service_override">
<dt_assoc>
<item key="premium">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
</dt_array>
</item>
</dt_assoc>
343

</item>
<item key="suggestion">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
</dt_array>
</item>
<item key="maximum">10</item>
</dt_assoc>
</item>
<item key="lookup">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="services">
<dt_array>
<item key="0">lookup</item>
<item key="1">suggestion</item>
<item key="2">premium</item>
</dt_array>
</item>
<item key="searchstring">abc&amp;d</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
344

</OPS_envelope>

Response
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="response_text">Command completed
successfully</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="lookup">
<dt_assoc>
<item key="count">2</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">abc-d.com</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
345

<item key="domain">abcd.com</item>
<item key="status">taken</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="premium">
<dt_assoc>
<item key="count">3</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">abc-and-

d.com</item>

<item key="status">available</item>
<item key="price">299.98</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
key="domain">abcandd.com</item>

<item
<item key="status">available</item>
<item key="price">499.98</item>
</dt_assoc>

</item>
<item key="2">
<dt_assoc>
<item key="domain">abcd.com</item>
<item key="status">available</item>
346

<item key="price">1523.45</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="suggestion">
<dt_assoc>
<item key="count">10</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item
key="domain">abcdlive.com</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item

key="domain">abcdpro.com</item>

<item key="status">available</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item
key="domain">abcdslive.com</item>
<item key="status">available</item>
</dt_assoc>
</item>
347

...
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 5
For lookup and suggestion, limited to .COM, not checking the availability of
the lookup domain, maximum 10 suggestions returned.

Request
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">name_suggest</item>
<item key="object">domain</item>
<item key="attributes">
<item key="services">
<dt_array>
<item key="0">lookup</item>
<item key="1">suggestion</item>
</dt_array>
348

</item>
<dt_assoc>
<item key="searchstring">smith</item>
<item key="skip_registry_lookup">1</item>
<item key="service_override">
<dt_assoc>
<item key="suggestion">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
</dt_array>
</item>
<item key="maximum">10</item>
</dt_assoc>
</item>
<item key="lookup">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

349

Response
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="response_text">Command completed
successfully</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="lookup">
<dt_assoc>
<item key="count">1</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">smith.com</item>
key="status">undetermined</item>

<item
</dt_assoc>

</item>
</dt_array>
</item>
</dt_assoc>
350

</item>
<item key="suggestion">
<dt_assoc>
<item key="count">10</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">smithmail.com</item>
<item key="status">taken</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
key="domain">smithfamily.com</item>

<item
<item key="status">taken</item>

</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item
key="domain">smithslive.com</item>
<item key="status">taken</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
351

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 6
For lookup, suggestion, premium, and personal names with suggestion
limited to .COM, .NET, .ORG, and .IN, in English, German, Italian, and
Spanish, with the command run time limited to 0.4 seconds.

Request
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>name_suggest</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='searchstring'>search string</item>
<item key='max_wait_time'>0.4</item>
<item key='languages'>
<dt_array>
<item key='0'>en</item>
<item key='1'>de</item>
<item key='2'>it</item>
<item key='3'>es</item>
</dt_array>
</item>
<item key='tlds'>
352

<dt_array>
<item key='0'>.com</item>
<item key='1'>.net</item>
<item key='2'>.org</item>
<item key='3'>.in</item>
</dt_array>
</item>
<item key='services'>
<dt_array>
<item key='0'>lookup</item>
<item key='1'>suggestion</item>
<item key='2'>premium</item>
<item key='3'>personal_names</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
The results were in the specified time; however, not all lookup results are
complete. Premium name results were returned but suggestion and personal
names could not be returned in the specified time. The returned unique_key
allows you to resubmit the command.
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
353

<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='response_text'>Command completed successfully</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='is_search_completed'>0</item>
<item key='search_key'>vgL2FeBzZ8JuS5lIluIEYhDc7Vg</item>
<item key='attributes'>
<dt_assoc>
<item key='lookup'>
<dt_assoc>
<item key='count'>84</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>searchstring.com</item>
<item key='status'>taken</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>searchstring.net</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='domain'>searchstring.org</item>
<item key='status'>available</item>
</dt_assoc>
354

</item>
<item key='3'>
<dt_assoc>
<item key='domain'>searchstring.in</item>
<item key='status'>undetermined</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key='premium'>
<dt_assoc>
<item key='count'>20</item>
<item key='response_text'>Command Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>badmintonstring.com</item>
<item key='status'>available</item>
<item key='price'>1349.00</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>cheapstring.com</item>
<item key='status'>available</item>
<item key='price'>1549.00</item>
</dt_assoc>
</item>
<item key='2'>
355

<dt_assoc>
<item key='domain'>elasticstring.com</item>
<item key='status'>available</item>
<item key='price'>13998.00</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 7
Resubmits the previously run name_suggest command which did not return
complete lookup results during the specified max_wait_time. The command
can run for a maximum of 0.7 seconds.

Request
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>name_suggest</item>
<item key='object'>DOMAIN</item>
356

<item key='attributes'>
<dt_assoc>
<item key='search_key'>vgL2FeBzZ8JuS5lIluIEYhDc7Vg</item>
<item key='max_wait_time'>0.7</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
Complete results for lookup are returned as well as results for suggestion,
premium, and personal names.
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='response_text'>Command completed successfully</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='is_search_completed'>1</item>
<item key='attributes'>
<dt_assoc>
<item key='lookup'>
<dt_assoc>
<item key='count'>84</item>
<item key='response_text'>Command completed
357

successfully.</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>searchstring.com</item>
<item key='status'>taken</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>searchstring.net</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='domain'>searchstring.org</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='3'>
<dt_assoc>
<item key='domain'>searchstring.in</item>
<item key='status'>undetermined</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key='premium'>
358

<dt_assoc>
<item key='count'>20</item>
<item key='response_text'>Command Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>badmintonstring.com</item>
<item key='status'>available</item>
<item key='price'>1349.00</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>cheapstring.com</item>
<item key='status'>available</item>
<item key='price'>1549.00</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='domain'>elasticstring.com</item>
<item key='status'>available</item>
<item key='price'>13998.00</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key='personal_names'>
<dt_assoc>
359

<item key='count'>6</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>search.stringham.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>search.stringhini.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item
key='domain'>search.stringfield.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key='suggestion'>
<dt_assoc>
<item key='count'>50</item>
<item key='response_text'>Command Successful</item>
<item key='response_code'>200</item>
360

<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item
key='domain'>amazonsearchstring.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item
key='domain'>archivesearchstring.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='domain'>briefsearchstring.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

361

Example 8
For premium domains, limited to .COM and .NET names that cost between
$100 and $10000, maximum 10 suggestions returned.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='action'>name_suggest</item>
<item key='object'>domain</item>
<item key='protocol'>XCP</item>
<item key='attributes'>
<dt_assoc>
<item key='service_override'>
<dt_assoc>
<item key='premium'>
<dt_assoc>
<item key='tlds'>
<dt_array>
<item key='0'>.com</item>
<item key='1'>.net</item>
</dt_array>
</item>
<item key='maximum'>10</item>
<item key='price_min'>100</item>
<item key='price_max'>10000</item>
</dt_assoc>
</item>
</dt_assoc>
362

</item>
<item key='services'>
<dt_array>
<item key='0'>premium</item>
</dt_array>
</item>
<item key='searchstring'>computerstore</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed successfully</item>
<item key='is_search_completed'>1</item>
<item key='attributes'>
<dt_assoc>
<item key='premium'>
<dt_assoc>
<item key='count'>2</item>
<item key='response_text'>Command Successful</item>
363

<item key='response_code'>200</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>childhoodneglect.com</item>
<item key='status'>available</item>
<item key='price'>499.00</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>child-neglect.com</item>
<item key='status'>available</item>
<item key='price'>499.00</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='is_success'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 9
Lookup for one of the new TLDs.

Request
<?xml version='1.0' encoding='UTF-8'?> <OPS_envelope>
<header>
<version>0.9</version>
364

<msg_type>standard</msg_type>
</header>
<body>
<data_block>
<dt_assoc>
<item key='action'>name_suggest</item>
<item key='object'>domain</item>
<item key='protocol'>XCP</item>
<item key='attributes'>
<dt_assoc>
<item key='services'>
<dt_array>
<item key='0'>lookup</item>
</dt_array>
</item>
<item key='searchstring'>example</item>
<item key='tlds'>
<dt_array>
<item key='0'>guru</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
365

<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='request_response_time'>0.065</item>
<item key='response_text'>Command completed
successfully</item>
<item key='is_search_completed'>1</item>
<item key='attributes'>
<dt_assoc>
<item key='lookup'>
<dt_assoc>
<item key='count'>1</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>example.guru</item>
<item key='status'>available</item>
<item key='has_claim'>1</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
366

</data_block>
</body>
</OPS_envelope>

Example 10
For premium, premium_brokered_transfer, and premium_make_offer
domains, limited to .COM, .NET, .ORG, and .DE names.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">NAME_SUGGEST</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="searchstring">testdomain</item>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
<item key="1">.net</item>
<item key="2">.org</item>
<item key="3">.de</item>
</dt_array>
</item>
<item key="services">
<dt_array>
<item key="0">premium</item>
367

item key="1">premium_make_offer</item>
<item key="2">premium_brokered_transfer</item>
<item key="3">lookup</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="request_response_time">1.960</item>
<item key="response_text">Command completed successfully</item>
<item key="is_search_completed">1</item>
<item key="attributes">
<dt_assoc>
<item key="lookup">
<dt_assoc>
<item key="count">4</item>
<item key="response_text">Command completed successfully.</item>
368

<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">testdomain.com</item>
<item key="status">taken</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="domain">testdomain.net</item>
<item key="status">taken</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="domain">testdomain.org</item>
<item key="status">taken</item>
</dt_assoc>
</item>
<item key="3">
<dt_assoc>
<item key="domain">testdomain.de</item>
<item key="status">taken</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="premium_brokered_transfer">
<dt_assoc>
<item key="count">5</item>
369

<item key="response_text">Command Successful</item>


<item key="response_code">200</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">testdomain-ast-2606349.net</item>
<item key="status">available</item>
<item key="price">1150.00</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="domain">testdomain-ast-2606349.org</item>
<item key="status">available</item>
<item key="price">1150.00</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="domain">testdomain2-ast-2606349.com</item>
<item key="status">available</item>
<item key="price">1150.00</item>
</dt_assoc>
</item>
<item key="3">
<dt_assoc>
<item key="domain">testdomain2-ast-2606349.net</item>
<item key="status">available</item>
<item key="price">1150.00</item>
</dt_assoc>
</item>
<item key="4">
<dt_assoc>
<item key="domain">testdomain2-ast-2606349.org</item>
370

<item key="status">available</item>
<item key="price">1150.00</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="premium_make_offer">
<dt_assoc>
<item key="count">3</item>
<item key="response_text">Command Successful</item>
<item key="response_code">200</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">testdomain-mo-2606349.com</item>
<item key="status">available</item>
<item key="price">0.00</item>
<item
key="third_party_offer_url">http://www.sedo.com/search/details.php4?
language=us&partnerid=316601&domain=testdomain-mo-2606349.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="domain">testdomain-mo-2606349.net</item>
<item key="status">available</item>
<item key="price">0.00</item>
<item
key="third_party_offer_url">http://www.sedo.com/search/details.php4?
language=us&partnerid=316601&domain=testdomain-mo-2606349.net</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
371

<item key="domain">testdomain-mo-2606349.org</item>
<item key="status">available</item>
<item key="price">0.00</item>
<item
key="third_party_offer_url">http://www.sedo.com/search/details.php4?
language=us&partnerid=316601&domain=testdomain-mo-2606349.org</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="premium">
<dt_assoc>
<item key="count">12</item>
<item key="response_text">Command Successful</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">testdomain-2606349.com</item>
<item key="status">available</item>
<item key="price">1150.00</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="domain">testdomain-2606349.net</item>
<item key="status">available</item>
<item key="price">1150.00</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
372

<item key="domain">testdomain-2606349.org</item>
<item key="status">available</item>
<item key="price">1150.00</item>
</dt_assoc>
</item>
<item key="3">
<dt_assoc>
<item key="domain">testdomain2-2606349.com</item>
<item key="status">available</item>
<item key="price">1150.00</item>
</dt_assoc>
</item>
<item key="4">
<dt_assoc>
<item key="domain">testdomain2-2606349.net</item>
<item key="status">available</item>
<item key="price">1150.00</item>
</dt_assoc>
</item>
<item key="5">
<dt_assoc>
<item key="domain">testdomain2-2606349.org</item>
<item key="status">available</item>
<item key="price">1150.00</item>
</dt_assoc>
</item>
<item key="6">
<dt_assoc>
<item key="domain">moviesite.org</item>
<item key="status">available</item>
<item key="price">749.00</item>
</dt_assoc>
</item>
<item key="7">
<dt_assoc>
373

<item key="domain">testfax.com</item>
<item key="status">available</item>
<item key="price">2449.00</item>
</dt_assoc>
</item>
<item key="8">
<dt_assoc>
<item key="domain">testdsl.com</item>
<item key="status">available</item>
<item key="price">1849.00</item>
</dt_assoc>
</item>
<item key="9">
<dt_assoc>
<item key="domain">testact.com</item>
<item key="status">available</item>
<item key="price">2249.00</item>
</dt_assoc>
</item>
<item key="10">
<dt_assoc>
<item key="domain">religiontest.com</item>
<item key="status">available</item>
<item key="price">699.00</item>
</dt_assoc>
</item>
<item key="11">
<dt_assoc>
<item key="domain">psychopathtest.com</item>
<item key="status">available</item>
<item key="price">699.00</item>
</dt_assoc>
</item>
</dt_array>
</item>
374

</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

375

uk_get_blocker_contact
Description
Action & object
action = uk_get_blocker_contact
object = domain

Usage
Until June 10, 2019, if you want to register an available second level .UK
domain name, and the name is already registered as a third level .UK domain
(for example. .co.uk or .org.uk), the owner contact information for the
second level .UK name must be an exact match to the owner contact
information of the equivalent third level .UK domain name.
This command checks whether the specified domain name is registered as a
third level .UK domain (for example. .co.uk or .org.uk) with the same
registrar and reseller, and if so, returns the owner contact details.

Request parameters for uk_get_blocker_contact


Standard parameters
action = uk_get_blocker_contact
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The second level domain name, including the .uk


extension.

Response parameters for uk_get_blocker_contact


Standard parameters
action = reply
object = domain

376

is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Attributes
The owner contact details for the third level domain.

Examples for uk_get_blocker_contact


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="action">UK_GET_BLOCKER_CONTACT</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.uk</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

377

Response
If no equivalent third level domain is registered with the same
registrar and reseller
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">There is no domain blocking
example.uk</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If there is an equivalent domain name registered under the same


registrar and reseller
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
378

<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Command Successfully Completed</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="first_name">Spencer</item>
<item key="last_name">Gibbons</item>
<item key="address1">96 Mowat Ave</item>
<item key="address2"></item>
<item key="address3"></item>
<item key="city">Bristol</item>
<item key="state"></item>
<item key="country">GB</item>
<item key="postal_code">BS1 4AW </item>
<item key="uk_whois_opt">N</item>
<item key="org_name">Spencer Gibbons</item>
<item key="phone">+44.2075551234</item>
<item key="registrant_type">IND</item>
<item key="email">foo@gmail.com</item>
<item key="blocker">example.co.uk</item>
</dt_assoc>
</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If the equivalent domain name is not registered with the same


registrar and reseller
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
379

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="action">REPLY</item>
<item key="is_success">1</item>
<item key="response_text">Cannot get contact details for
example.co.uk which is blocking registration of example.uk because
example.co.uk is not with this registrar or not with this
reseller</item>
<item key="response_code">465</item>
<item key="attributes">
<dt_assoc>
<item key="blocker">example.co.uk</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If the domain name is not available


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Domain name not available</item>
380

<item key="response_code">211</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

381

Provisioning Commands
This section contains the following commands:

activate (domain)Activates a parked .DE domain.


cancel_active_processDeprecated. Cancels an active .CA order.
cancel_orderCancels a Trust Service order.
cancel_free_trialCancel a Trust Service 30 day free trial order.
cancel_pending_ordersCancels pending or declined orders.
create_resellerCreates a new Reseller account.
modify (domain)Changes information associated with a domain.
parse csrParses the CSR and identifies its data elements.
process_pendingProcesses or cancels pending orders.
query_approver_listQueries the list of approvers for the Trust
Service that is associated with the specified domain.
query_queued_requestQueries the status of a queued request.
redeem (domain)Redeems a .COM, .NET, .CA, .IT, or .NL domain
that has expired but is within the redemption grace period.
renew (domain)Renews a domain.
request_on_demand_scanAsks Symantec to rescan your system.
resend approve emailResends the Approver email.
resend_cert_emailResends the certificate email address.
revoke (domain)Removes the domain at the registry.
send_CIRA_approval_emailDeprecated. Resends CIRA
registration approval email.
send_registrant_verification_emailSends or resends the
verification email to the registrant.
set_domain_affiliate_idAssigns an affiliate id to a domain.
sw_register (domain)Submits a new registration or transfer
order.
update_all_infoSubmits a domain-information update for .DK
domains.
update_contactsSubmits a domain-contact information update to
the OpenSRS system.
update_orderSubmits a Trust Service order update to the
OpenSRS system.
update_productUpdates the Symantec Trust Service product to
enable or disable the Symantec Trust Seal and/or the Symantec
Search-in-Seal.

382

activate (domain)
Description
Action & object
action = activate
object = domain

Usage
Activates a parked .DE domain. The .DE registry requires a domain to be
parked on a valid nameserver. The domain can be parked prior to the
registration, or within thirty days of the successful registration. Use this
command within thirty days of registering the domain and after you park the
domain.

Request parameters for activate (domain)


Standard parameters
action = activate
object = domain
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

domain

The .DE domain that you want to activate

Required if
cookie is not
submitted

Response parameters for activate (domain)


Standard parameters
action = activate
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request

383

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for activate (domain)


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">ACTIVATE</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<item key="registrant_ip">10.0.11.253</item>
<dt_assoc>
<item key="domain">example.de</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

384

<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='is_success'>0</item>
<item key='response_code'>437</item>
<item key='response_text'>A request is currently waiting on
this domain</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

385

cancel_active_process (.CA order)


Description
Action & object
action = cancel_active_process
object = domain

Usage
Cancels an active .CA order in OpenSRS. This command is useful if you have
placed a .CA order with OpenSRS and subsequently cancelled it, or were
unable to confirm the order with CIRA, but the OpenSRS system has not yet
been updated and still shows the order as active. In such a situation, you
cannot use OpenSRS to resubmit a revised order for the same .CA domain
until the original .CA order is cancelled with OpenSRS. You can either wait for
OpenSRS to be updated with CIRA's records, or you can cancel the order in
OpenSRS using this command. The cancel .CA order functionality is also
available in the Reseller Web Interface (RWI).
Note: OpenSRS synchronizes with CIRA once a day, during non-business
hours, EST, including weekends.

Important: This command has been deprecated. If this command is part of


your current integration, it will continue to work; however, the results will be
ignored. The response will return 'is_success' => '0'.

Request parameters for cancel_active_process


Standard parameters
action = cancel_active_process
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

order_id

Optional - either order-id or


domain must be specified.

The ID of the order to be


cancelled.

386

Response parameters for cancel_active_process


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Examples for cancel_active_process


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">cancel_active_process</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="order_id">2099</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

387

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Cancellation successful</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

388

cancel_free_trial
Description
Action & object
action = cancel_free_trial
object = trust_service

Usage
Cancel a Trust Service 30 day free trial order.
Free trials are available for the following Trust Service products:

GeoTrustTrue BusinessID with EV

SymantecSecureSite, Secure Site Pro, Secure Site with EV, and


Secure Site Pro with EV

TRUSTeHosted Privacy Policy (HPP) and Privacy Policy with Seal


(TPS)

You can cancel the free trial at any time during the 30 day free trial period
without incurring a charge. If the product is not cancelled by the end of the
30 day period, the product is immediately activated, and the customer is
charged for the term that they selected when they placed the order. The
expiry date is calculated from the date that the paid term begins, not the
date that the free trial began.
For TRUSTe, the cancellation is processed immediately, but when GeoTrust
and Symantec require customer approval. The supplier sends the customer
an email asking them to approve the cancellation. Once the cancellation is
approved, the status of the order changes to Revoked/Declined.
Note: When you cancel a free trial, you will not be able to order another
Trust Service order for that domain until the full 30 days of the free trial
period have passed. For TRUSTe, a call needs to be made to the supplier to
get the domain unlocked.

Request parameters for cancel_free_trial


Standard parameters
Action & object
action = cancel_order
object = trust_service
attributes

389

Attributes
Parameters within the attributes associative array are described below.
Note: You must specify at least one of these parameters.

Parameter name

Obligation

Definition/Value

order_id

Optional

The Trust Service order ID number.

product_id

Optional

The Trust Service product ID number.

Response parameters for cancel_free_trial


Standard parameters
action = reply
object = trust_service
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

domain

Returned if
is_success =
true

The domain with which the Trust Service


order is associated..

product_id

Returned if
is_success =
true

The Trust Service product ID number.

state

Returned if
is_success =
true

The state of the order. Allowed values are:

approver-confirmedOwner has
confirmed the domain vetted
certificate.

awaiting-approvalOrder
processed successfully; waiting for
supplier approval.

cancelledPending order was


cancelled.

390

Parameter
name

Obligation

Definition/Value

completedOrder is complete.

declinedOrder cancelled after it


was processed or declined by the
supplier.

in-progressOrder is in progress.

pendingOrder saved as pending.

Examples for cancel_free_trial


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">cancel_free_trial</item>
<item key="object">trust_service</item>
<item key="attributes">
<dt_assoc>
<item key="order_id">7712</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>

391

<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">


<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action"> REPLY</item>
<item key="object">TRUST_SERVICE</item>
<item key="response_text">Command completed successfully.</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="domain">1320701286testing.com</item>
<item key="product_id">1848</item>
<item key="state">revoked</item>
</dt_assoc>
</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

392

cancel_order
Description
Action & object
action = cancel_order
object = trust_service

Usage
Cancel a Trust Service order.

Request parameters for cancel_order


Description
Action & object
action = cancel_order
object = trust_service

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

order_id

Required

The ID of the order.

Response parameters for cancel_order


Standard parameters
action = reply
object = trust_service
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

393

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

domain

Returned if
The domain with which the Trust Service order is
is_success = associated.
true

order_id

Returned if
The ID of the order.
is_success =
true

state

Returned if
The state of the order. Allowed values are:
is_success =
approver-confirmedOwner has
true
confirmed the domain vetted certificate.

awaiting-approvalOrder processed
successfully; waiting for supplier approval.

cancelledPending order was cancelled.

completedOrder is complete.

declinedOrder cancelled after it was


processed or declined by the supplier.

in-progressOrder is in progress.

pendingOrder saved as pending.

Examples for cancel_order


Request
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>cancel_order</item>

394

<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='order_id'>578</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.org</item>
<item key='order_id'>578</item>
<item key='state'>declined</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

395

</body>
</OPS_envelope>

396

cancel_pending_orders
Description
Action & object
action = cancel_pending_orders
object = order

Usage
Cancels orders with a status of pending or declined.

Request parameters for cancel_pending_orders


Standard parameters
action = cancel_pending_orders
object = order
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

status

Optional

Lists the status for which to cancel orders, either


pending or declined. Valid values are declined or
pending. The default is pending.

to_date

Required

Specify the date, in UNIX (epoch) time before which


to cancel orders. Orders put in pending or declined
state on this date and earlier are cancelled.

Response parameters for cancel_pending_orders


Standard parameters
action = reply
object = order
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request

397

response_text = message describing the outcome of the request


attributes

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

cancelled

Returned if
Contains associative arrays identifying orders that
is_success = were cancelled. Valid values are domain,
true
reg_type, and id.
For more information, see the Cancelled table
below.

total

Returned if
The number of orders that were cancelled.
is_success =
true

Cancelled
Parameters within the cancelled associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Always
returned

The domain name of the cancelled order.

id

Always
returned

The order ID of the cancelled order.

reg_type

Always
returned

The type of order that was cancelled. Valid values


are new, transfer, and renewal.

Examples for cancel_pending_orders


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>

398

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">cancel_pending_orders</item>
<item key="object">order</item>
<item key="attributes">
<dt_assoc>
<item key="to_date">1115228160</item>
<item key="status">
<dt_array>
<item key="0">declined</item>
<item key="1">pending</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>

399

<item key="object">ORDER</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="total">2</item>
<item key="cancelled">
<dt_array>
<item key="0">
<dt_assoc>
<item key="reg_type">new</item>
<item key="id">5261</item>
<item key="domain">example.de</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="reg_type">transfer</item>
<item key="id">5530</item>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

400

create_reseller
Description
Action & object
action = create
object = reseller

Usage
Creates a new Reseller account.
Important: This command is disabled by default. If you want to be enabled
for this command, please contact help@opensrs.com.

Request parameters for create_reseller


Standard parameters
action = create
object = reseller
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

admin_email

Required

Administrators email address.

contact_set

Required

Resellers contact information.

nameservers

Required

List of default nameservers for the new Reseller.

password

Required

Password for the new Reseller account.

username

Required

Username for the new Reseller.

401

Response parameters for create_reseller


Standard parameters
action = reply
object = reseller
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name Obligation
signup_reseller_id

Definition/Value

Returned if
The ID of the newly created Reseller.
is_success =
true

Examples for create_reseller


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>create</item>
<item key='object'>reseller</item>
<item key='attributes'>
<dt_assoc>

402

<item key='username'>reseller4574389</item>
<item key='nameservers'>
<dt_assoc>
<item key='fqdn3'>ns3.systemdns.com</item>
<item key='fqdn2'>ns2.systemdns.com</item>
<item key='fqdn1'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='password'>changeit</item>
<item key='admin_email'>robson@example.com</item>
<item key='contact_set'>
<dt_assoc>
<item key='address3'/>
<item key='state'>CA</item>
<item key='address2'>Suite 100</item>
<item key='address1'>32 Oak Street</item>
<item key='country'>US</item>
<item key='fax'>+1.4165352516</item>
<item key='org_name'>Example Inc.</item>
<item key='city'>Santa Clara</item>
<item key='first_name'>Adler</item>
<item key='phone'>+1.4165350123</item>
<item key='email'>adams@example.com</item>
<item key='postal_code'>90210</item>
<item key='last_name'>Adams</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

403

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>RESELLER</item>
<item key='response_text'>Provisioning of reseller
reseller4574389 is in progress.</item>
<item key='attributes'>
<dt_assoc>
<item key='signup_reseller_id'>842</item>
</dt_assoc>
</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

404

create_token
Description
Action & object
action = create_token
object = trust_service

Usage
Creates a SiteLock or TRUSTe account so that users can log in and manage
the Trust Service product. To use this command, the order cannot be in the
pending state.
Important: The resulting URL is valid for only a limited period of time that
may be as short as five minutes.

Request parameters for create_token


Standard parameters
action = create_token
object = trust_service
attributes

Attributes
Parameters within the attributes associative array are described below.
Note: You must enter at least one of these parameters.

Parameter
name

Obligation

Definition/Value

order_id

Optional

The Trust Service order ID number.

product_id

Optional

The Trust Service product ID number.

405

Response parameters for create_token


Standard parameters
action = reply
object = trust_service
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

login_url

Returned if
The The URL where the user can log in to manage
is_success = the SiteLock or TRUSTe product.
true

Examples for create_token


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>create_token</item>
<item key='object'>trust_service</item>

406

<item key='attributes'>
<dt_assoc>
<item key='order_id'>50094</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='login_url'>https://www.sitelock.com/rlogin.php?
token=ccc038d24c91a7a67d0a12f46f29a260</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

407

</OPS_envelope>

408

modify (domain)
Description
Action & object
action = modify
object = domain

Usage
Changes information associated with a domain, such as contact info. The
action request message is different depending on the type of modification
being made, and is shown separately for each type.
This command also allows you to set an auto-renew flag for the domain from
which you logged in. If you are using the affected_domains option, you can
set the renewal action flags for all domains in the user's profile.

Request parameters for modify (domain)


Standard parameters
action = modify
object = domain
registrant_ip = valid IP address of the registrant (optional)
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes
Note: The modify (domain) command may be used without end-user credentials
when data= change_ips_tag, contact_info, expire_action, forwarding_email,
nameserver_list, rsp_whois_info, uk_whois_opt, whois_privacy_state, or
tld_data.

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

affect_domains

Required

Flag indicating the domains to which to apply


the change.

0Change applies only to the specified


domain.

1Change applies to all domains linked

409

Parameter
name

Obligation

Definition/Value
to this profile.

data

Required

Type of data. Allowed values are:

auto_renew Deprecated. Use the


expire_action value instead.

ca_whois_display_settingFor
changes to the CIRA Whois Privacy
setting for .CA domains. Only allowed for
individual registrants, including Canadian
citizens, Permanent residents, Legal
representatives, and Aboriginal peoples.

change_ips_tag For transfers of .UK


domains between registrars. The
domain's domain tag must be changed
to that of the gaining registrar in order to
transfer a .UK domain.

cira_registrantUsed to change the


owner of a .CA domain.
Warning: When you include the
cira_registrant parameter, you transfer
the ownership of a domain to the
specified contact.

contact_info For contact information


changes.

descr Deprecated. For changes to


.DE owner contact.

domain_auth_info For changes to


domain-auth-info.

expire_action For changes to domain


renewal action flags. Requires both
auto_renew and let_expire flags to be
specified.

forwarding_email For forwarding


feature on .NAME domains (cannot be
set if it was missing from the capabilities
in the response to the 'Get User Info'.).

nameserver_list Deprecated. Use the


advanced_update_nameservers
command instead.

parkpage_state Enables or disables


the parked pages service for a particular
domain.

rsp_whois_info To control 'RSP Info


in Whois' feature.

status To control the lock state of the

410

Parameter
name

Obligation

Definition/Value
domain.

tld_data For changes to the tld_data


information that is required to satisfy the
regional presence and other
requirements of the registry. Used for
.ASIA, .COOP, .JOBS, .LV, .MX, .PRO,
.RO, .US, ZA; optional for .XXX.
If you submit this value, you must also
submit the tld_data array (see below).

trademarkDeprecated. Used for .CA


domains to indicate whether the
registered owner of the domain name is
the legal holder of the trademark for that
name.

uk_whois_opt Allows individuals to


activate WHOIS opt-out for a .UK
domain. The WHOIS opt-out for .UK
domains is available only to individuals
(not available to organizations). When
activated, the individual's personal
information is not returned with the
WHOIS for their .UK domain.

whois_privacy_state Used to enable


or disable WHOIS Privacy.

domain

Required if
cookie is not
submitted

The relevant domain.

tld_data

Required for
An associative array that contains additional
changes to
information required by the registry, such as the
tld_data values residency of the registrant. If you submit a
for .ASIA,
request that contains this array, you must also
.COOP, .JOBS, include data = tld_data.
.LV, .MX,
Allowed values are:
.PRO, .RO, .US,
ced_infoAn array that contains Charter
ZA; optional
Eligibility (CED) information for .ASIA
for .XXX
domains.

ipr_dataUsed to make changes to the


ICM information associated with .XXX
domains.

it_registrant_infoFor changes to
the .IT identification information.

nexusFor changes to the .US Nexus


information.

professional_dataUsed to make
changes to the professional designation

411

Parameter
name

Obligation

Definition/Value
information that is associated with the
.PRO domain.

registrant_extra_infoadditional
registrant information.

For more information see tld_data.

For data = ca_whois_display_setting


When the data parameter uses the ca_whois_display_setting value, the
following additional parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

display

Required

The setting for the CIRA Whois Privacy.


Allowed values are:

PRIVATEWhen a
WHOIS lookup is done on the domain name, do
not display personal information.

FULLWhen a
WHOIS lookup is done on the domain name,
display all of the data that is on the WHOIS
directory, including name, address, telephone
number and email address.

For data = change_ips_tag


When the data parameter uses the change_ips_tag value, the following
additional parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

change_tag_all

Optional

Flag to change all domains on the


registrant's profile.

0Change Domain Tag for specified

412

Parameter name

Obligation

Definition/Value
domain only; this is the default.

1Change Domain Tag for all *.UK


domains on this profile.

domain

Required if
cookie is not
submitted

The domain whose Domain Tag is being


changed.

gaining_registrar_tag

Required

The Domain Tag of the gaining registrar.

rsp_override

Optional

Flag to enable or disable the ability of the


RSP to override the End User's Domain Tag
change settings.

0Reseller cannot override End


User's Domain Tag change settings.

1Reseller can change Domain Tag,


regardless of End User's settings.

For data = cira_registrant


When the data parameter uses the cira_registrant value, the following
additional parameters can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter Obligation
name

Definition/Value

address1

Optional

The new registrant's address. Maximum 64


characters.

address2

Optional

The new registrant's address. Maximum 64


characters.

address3

Optional

The new registrant's address. Maximum 64


characters.

city

Optional

The new registrant's city. Maximum 64 characters.

country

Optional

The 2 letter ISO country code.

email

Optional

Maximum 64 characters, validated according to


rfc822.

fax

Optional

Maximum 20 characters, in the format


+CCC.NNNNNNNNNNxEEEE, where C = country code,
N = phone number, and E = extension (optional).

first_name

Required

New registrant's first name.

413

Parameter Obligation
name

Definition/Value

lang

The registrant's language preference. The default is


English.

Optional

Allowed values are:

ENEnglish

FRFrench

last_name

Required

New registrant's last name.

legal_type

Required

The code that indicates the new registrant's legal


classification to satisfy CIRA's Canadian Presence
Requirement (CPR).
Allowed values are:

ABOAboriginal

ASSAssociation

CCOCanadian Corporation

CCTCanadian Citizen

EDUEducational Institution

GOVGovernment

HOPHospital

INBIndian Band

LAMLibrary, Archive, or Museum

LGRLegal Representative

MAJHer Majesty the Queen

OMKProtected by Trademarks Act

PLTPolitical Party

PRTPartnership

RESPermanent Resident

TDMTrademark Owner

TRDTrade Union

TRSTrust

org_name

Optional for
individuals

The name of the organization.

phone

Optional

Maximum 20 characters, in the format


+CCC.NNNNNNNNNNxEEEE, where C = country code,
N = phone number, and E = extension (optional).

postal_code

Optional

Maximum 16 characters.

state

Optional

A valid 2 letter code for the Canadian province:

ABAlberta

BCBritish Columbia

MBManitoba

414

Parameter Obligation
name

Definition/Value

NBNew Brunswick

NLNewfoundland and Labrador

NTNorthwest Territories

NSNova Scotia

NUNunavut

ONOntario

PEPrince Edward Island

QCQuebec

SKSaskatchewan

YTYukon

For data = contact_info


When the data parameter uses the contact_info value, the following
additional parameters can be used.
Note: The contact_info value is not supported for .DK. Use the
update_all_info command to change the contact information for .DK
domains.

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

contact_set

Required

A hash containing the modified contact information


of a specific type:

admin

billing

owner
Note: The owner contact for .IT domains
requires three additional parameters:
entity_type, nationality_code, and
reg_code. For information about these
parameters, see .IT contact requirements.

tech

For more information about contact_set values, see


"Contact Set".

415

Parameter
name

Obligation

Definition/Value

org_name

Required

Organization name.

report_email

Optional

The End User's email address to which notification of


success or failure is sent. The notification email is
sent on behalf of the Reseller.
Note: This parameter can only be specified if
affect_domains is set to '1'

Contact_Set
You can submit different contact information for each contact type, or you
can use the also_apply_to parameter to apply the changes to other contact
types.
Parameters within the contact_set associative array are described below.
Parameter
name

Obligation

Definition/Value

also_apply_to

Optional

An array of other contact types to which you want to


apply the changes.
For example, if you want to apply the changes
indicated in the admin contact set to the owner and
tech types as well, use:
also_apply_to => ['owner', 'tech']
If only one contact type is specified and
also_apply_to is empty, update only that contact
type.
If also_apply_to is specified, but the complete
contact set for the contact types in also_apply_to
is also submitted, the complete contact set is used,
and also_apply_to is ignored.
Allowed values are:

contact information

owner Owner

admin
Administrator contact information

billing
Billing contact information
Note: This value is not supported for .IT
domains; if submitted, the command will fail.

contact information

tech Tech

416

For data = domain_auth_info


When the data parameter uses the domain_auth_info value, the following
additional parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

domain_auth_info

Domain authentication code. (For .COM,


.NET, .ORG, .INFO, .BIZ, .CA, .CN, .CO, .IN,
.ME, .MOBI, .NAME, and .US TLDs only.)

Required

For data = expire_action


When the data parameter uses the expire_action value, the following
additional parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

auto_renew

Required

Determines whether the domain renews


automatically.

let_expire

Required

0Do not set to auto-renew.

1Set to auto-renew.

Determines whether to allow the domain to


expire at the end of the registration term.

0Do not expire domain silently.

1Expire domain silently.

Note: This flag cannot be used for .DE


domains. To delete a .DE name or allow it to
expire, you need to complete and submit
the Domain Termination/Deletion form at
least 5 days prior to the expiry date:
http://opensrs.com/site/resources/agreeme
nts/domain-policies#de

417

For data = forwarding_email


When the data parameter uses the forwarding_email value, the following
additional parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

forwarding_email

Required

For use with .NAME forwarding feature.

For data = parkpage_state


This parameter is used to enable or disable the Parked Pages service for a
particular domain. The Parked Pages service is available for .COM, .NET,
.ORG, .INFO, .BIZ, .MOBI, .NAME, .ASIA, .BE, .BZ, .CA, .CC, .CO, .EU,
.IN, .ME, .NL, .TV, .UK, .US, .WS and .XXX domains.
When the data parameter uses the parkpage_state value, the following
additional parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain for which you want to enable or


disable Parked Pages.

state

Required

Used to enable or disable the Parked Pages service


for a domain.

onEnable Parked Pages

offDisable Parked Pages

For data = rsp_whois_info


When the data parameter uses the rsp_whois_info value, the following
additional parameter can be used:

418

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

all

Required

Indicates whether the request is to be applied to


all domains in the profile.

affect_domains

flag

Required

Required

0Do not apply to all domains; this is the


default.

1Apply the request to all domains in the


profile.

Flag indicating the domains to which the change is


to be applied.

0Only change this specific domain.

1Change applies to all domains linked to


this profile.

Specifies whether to display the RSP info in Whois


query results.

YDisplay RSP info.

NDo not display RSP info.

For data = status


When the data parameter uses the status value, the following additional
parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required if cookie is The relevant domain.


not submitted

lock_state

Required

Indicates whether to lock the domain.

0Unlocked

1Locked

419

For data = uk_whois_opt


When the data parameter uses the uk_whois_opt value, the following
additional parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

reg_type

Specifies whether the opt-out request is for an


individual or a foreign individual (non UK
citizen).

Required

uk_affect_domains

uk_whois_opt

Optional

Required

INDIndividual

FINDForeign Individual

Flag used to request opt-out for all domains on


registrant's profile.

0Activate WHOIS opt-out for specified


domain only; this is the default.

1Activate WHOIS opt-out for all *.UK


domains on this profile

Flag to activate WHOIS opt-out for .UK


domains. Personal information is not displayed
with WHOIS query (available for individuals
only).

YDo not make personal information


available on .UK WHOIS.

NMake personal information available


on .UK WHOIS; this is the default.

For data = whois_privacy_state


When the data parameter uses the whois_privacy_state value, the following
additional parameters can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

affect_domains

Required

Determines whether to apply the change to all


domains in the Reseller's profile, on just the

420

Parameter
name

Obligation

Definition/Value
specified domain.

report_email

Optional

0Apply change to this domain only.

1Apply to all domains linked to this


profile.

The End User's email address to which notification


of success or failure is sent on behalf of the
Reseller.
Note: This parameter can only be specified if
affect_domains is set to 1.

state

Required

Used to enable or disable WHOIS Privacy. Allowed


values are enable or disable.

Note: The following values are deprecated, but


are still accepted for backward compatibility:

NDisable WHOIS Privacy

YEnable WHOIS Privacy

421

Response parameters for modify (domain)


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

details

Returned if
A case-by-case description of the success or
is_success = true failure of each affected domain.
The key is the name of the domain.
When you specify a contact_info
modification, you can specify that you want
the action to apply to all domains.
Because the modification may succeed or
fail on a case-by-case basis, you get a
response code for each domain that is
affected.
The key that is used to access this domain
success information is the name of the
domain itself, for example, 'mydomain.com'
or 'mydomain.co.uk'.
Each key contains a hash (described below)
that provides details on the action
performed on that domain.

encoding_type

Optional

The encoding type for this domain. For a list


of languages and codes, see Appendix C:
Encoding Types for IDNs.

response_code

Returned if
The response code associated with the
is_success = true modification on this domain.

response_text

Returned if
The response text associated with the
is_success = true modification on this domain

waiting_requests_ Returned if
The number of registry requests in the
no
is_success = true waiting state.

422

Deprecated
Parameter
name

Obligation

Definition/Value

waiting_request

Deprecated

Replaced by waiting_requests_no.

Modify (domain) Examples


For data = ca_whois_display_setting
Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="cookie">M813iGXs5fNhAJYt:256158:11781</item>
<item key="registrant_ip">10.0.62.142</item>
<item key="attributes">
<dt_assoc>
<item key="data">ca_whois_display_setting</item>
<item key="display">FULL</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

423

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">OK</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = change_ips_tag


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">MODIFY</item>

424

<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.11.121</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="data">change_ips_tag</item>
<item key="domain">example.me.uk</item>
<item key="gaining_registrar_tag">q1q1</item>
<item key="change_tag_all">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successfully
completed.</item>
</dt_assoc>
</data_block>
</body>

425

</OPS_envelope>

For data = cira_registrant


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="cookie">sDYKUWhe8vdtc2iB:682913:27858</item>
<item key="attributes">
<dt_assoc>
<item key="data">cira_registrant</item>
<item key="first_name">Pierre</item>
<item key="last_name">Lalonde</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak St.</item>
<item key="address2">Suite 100</item>
<item key="address3"/>
<item key="city">Toronto</item>
<item key="state">ON</item>
<item key="postal_code">M1M 1M1</item>
<item key="country">CA</item>
<item key="legal_type">CCT</item>
<item key="email">plalonde@example.com</item>
<item key="phone">+1.4165551212x1234</item>
<item key="fax">+1.4165551024</item>

426

<item key="lang">FR</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">OK</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = contact_info


Example 1
In this example, only one type is specified and also_apply_to contains other
types.

427

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="cookie">2121:1212</item>
<item key="registrant_ip">111.121.121.11</item>
<item key="attributes">
<dt_assoc>
<item key="data">contact_info</item>
<item key="affect_domains">0</item>
<item key="contact_set">
<dt_assoc>
<item key="also_apply_to">
<dt_array>
<item key="0">owner</item>
<item key="1">billing</item>
</dt_array>
</item>
<item key="admin">
<dt_assoc>
<item key="first_name">Adler</item>
<item key="last_name">Adams</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak St.</item>
<item key="address2">Suite 100</item>
<item key="address3"/>

428

<item key="city">Santa Clara</item>


<item key="state">CA</item>
<item key="postal_code">90210</item>
<item key="country">US</item>
<item
key="phone">+1.7075551212x1812</item>
<item key="fax">+1.7075553123</item>
<item key="email">adams@example.com</item>
<item
key="url">http://www.example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>

429

<item key="response_text">Modification(s) successful</item>


<item key="attributes">
<dt_assoc>
<item key="details">
<dt_assoc>
<item key="example.com">
<dt_assoc>
<item key="response_text">Contact
modification successful</item>
<item key="response_code">200</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
In this example, admin and tech contact information is changed for a .CA
domain.
Note: For .CA domains when data = contact_info, instead of address1,
address2, and address3, you can specify these address attributes:
addr_office, addr_address_number, addr_street_name, addr_street_cat,
and addr_orientation.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>

430

<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="cookie">853675384:13254444</item>
<item key="registrant_ip">72.53.78.221</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="contact_set">
<dt_assoc>
<item key="admin">
<dt_assoc>
<item key="org_name">Example Co.</item>
<item key="first_name">Adler</item>
<item key="last_name">Adams</item>
<item key="ddress1">32 Oak Street</item>
<item key="address2">Suite 100</item>
<item key="address3"/>
<item key="city">Saskatoon</item>
<item key="state">SK</item>
<item key="country">CA</item>
<item key="postal_code">M1M1M1</item>
<item key="phone">+1/4165551212</item>
<item key="fax">+1.4165552222</item>
<item key="email">adams@example.ca</item>
<item key="language">EN</item>
</dt_assoc>
</item>
<item key="also_apply_to">
<dt_array>
<item key="0">tech</item>
</dt_array>

431

</item>
</dt_assoc>
</item>
<item key="report_email"></item>
<item key="data">contact_info</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Modification(s) successful</item>
<item key="attributes">
<dt_assoc>
<item key="details">
<dt_assoc>
<item key="example.ca">
<dt_assoc>
<item key="response_text">Contact

modification successful</item>

432

<item key="response_code">200</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 3
In this example, owner contact information is modified for a .IT domain.
The .IT owner contact requires three additional parameters:
nationality_code, reg_code, and entity_type.
Note: The other contact types do not require these additional parameters, so
if you change the owner contact information, and you use also_apply_to to
apply the changes to another type, for example, tech, the command will be
successful, but those additional parameters and values are ignored by the
other contact type. However, also_apply_to billing is not supported for .IT
domains, and if you submit that value, the command will fail. When the
domain owner is a person (entity_type = 1), changing the owner contact
information also changes the admin contact information as these are
considered to be the same at the Registry.

Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">MODIFY</item>

433

<item key="object">DOMAIN</item>
<item key="cookie">EKQygsAX2t5OqLM2:256400:25530</item>
<item key="registrant_ip">10.0.62.128</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains"></item>
<item key="report_email"></item>
<item key="data">contact_info</item>
<item key="contact_set">
<dt_assoc>
<item key="owner">
<dt_assoc>
<item key="entity_type">1</item>
<item key="nationality_code">IT</item>
<item key="first_name">Mario</item>
<item key="last_name">Segale</item>
<item key="org_name"></item>
<item key="address1">Via del Campidoglio, 1</item>
<item key="address2"></item>
<item key="address3"></item>
<item key="city">Rome</item>
<item key="state">RM</item>
<item key="country">IT</item>
<item key="postal_code">00123</item>
<item key="email">mario@example.com</item>
<item key="reg_code">SGLMRA80A01H501E</item>
<item key="phone">+39.0612345678</item>
<item key="fax"></item>
</dt_assoc>
</item>
<item key="also_apply_to"/>
</dt_assoc>
</item>
</dt_assoc>
</item>

434

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Command completed successfully</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="details">
<dt_assoc>
<item key="example033.it">
<dt_assoc>
<item key="response_text">Command completed
successfully</item>
<item key="waiting_requests_no">0</item>
<item key="encoding_type"></item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</item>
</dt_assoc>

435

</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = domain_auth_info


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="cookie">992262064:387073</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="domain_auth_info">mysecret</item>
<item key="data">domain_auth_info</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

436

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Domain auth code modification
Successful</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = expire_action


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>

437

<item key="action">modify</item>
<item key="object">domain</item>
<item key="cookie">692767317:3214395</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="auto_renew">0</item>
<item key="let_expire">0</item>
<item key="data">expire_action</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Update successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>

438

</OPS_envelope>

For data = forwarding_email


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="cookie">113013968:388172</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="forwarding_email">new@example.com</item>
<item key="data">forwarding_email</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>

439

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Domain forwarding email
modification Successful</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = parkpage_state


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="state">on</item>

440

<item key="data">parkpage_state</item>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Parked page successfully enabled
for domain example.com</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = rsp_whois_info


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>

441

<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="cookie">631119177:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="flag">Y</item>
<item key="all">1</item>
<item key="data">rsp_whois_info</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>

442

<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successfully
Completed</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = status


As with the type 'status' for get domain, this can be called with or without a
cookie. Note that the conditions for this succeeding are those for which a get
domain status call would return a can_modify result of true (1).

Example 1
Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="lock_state">0</item>
<item key="data">status</item>

443

<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Lock disabled for
example.com</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Without end-user credentials

Request
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>

444

<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="lock_state">0</item>
<item key="data">status</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Lock disabled for example.com</item>

445

<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

446

For data = uk_whois_opt


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">216.40.46.115</item>
<item key="cookie">435686610:3185178</item>
<item key="attributes">
<dt_assoc>
<item key="data">uk_whois_opt</item>
<item key="uk_whois_opt">Y</item>
<item key="reg_type">FIND</item>
<item key="uk_affect_domains">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>

447

<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Modification Successful</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = whois_privacy_state


Example 1
Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="cookie">77467901:3893</item>
<item key="attributes">

448

<dt_assoc>
<item key="affect_domains">0</item>
<item key="report_email"/>
<item key="state">disable</item>
<item key="data">whois_privacy_state</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Whois Privacy successfully
disabled</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

449

Example 2
Without end-user credentials

Request
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="state">enable</item>
<item key="data">whois_privacy_state</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>

450

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Whois Privacy successfully disabled</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For tld_data = ced_info (.ASIA)


Example 1
Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="cookie">364577922:3202133</item>
<item key="attributes">
<dt_assoc>

451

<item key="affect_domains">0</item>
<item key="data">tld_data</item>
<item key="tld_data">
<dt_assoc>
<item key='ced_info'>
<dt_assoc>
<item key="contact_type">tech</item>
<item key="legal_entity_type">other</item>
<item key="legal_entity_type_info">add some

text here</item>

<item key="id_type">other</item>
<item key="id_type_info">other</item>
<item key="id_number">8675309</item>
<item key="locality_city">Sydney</item>
<item key="locality_state_prov">NSW</item>
<item key="locality_country">AU</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>

452

<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Data modification
Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Without end-user credentials

Request
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.asia</item>
<item key="data">tld_data</item>
<item key="tld_data">
<dt_assoc>

453

<item key='ced_info'>
<dt_assoc>
<item key="contact_type">tech</item>
<item key="id_number">8675309</item>
<item key="id_type">passport</item>
<item
key="legal_entity_type">corporation</item>
<item key="locality_city">Sydney</item>
<item key="locality_state_prov">NSW</item>
<item key="locality_country">AU</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">CED Data modification Successful</item>
<item key="response_code">200</item>

454

<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For tld_data = ipr_data (.XXX)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="cookie">364577922:3202133</item>
<item key="attributes">
<dt_assoc>
<item key='data'>tld_data</item>
<item key='tld_data'>
<dt_assoc>
<item key='ipr_data'>
<dt_assoc>
<item key="icm_membership_id">123456</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>

455

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">OK</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For tld_data = it_registrant_info (.IT)


Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

456

<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>modify</item>
<item key='object'>domain</item>
<item key='cookie'>jL81QUn9BKTJAdSN:698497:1284</item>
<item key='attributes'>
<dt_assoc>
<item key='data'>tld_data</item>
<item key='tld_data'>
<dt_assoc>
<item key='it_registrant_info'>
<dt_assoc>
<item key='entity_type'>1</item>
<item key='reg_code'>SGLMRA80A01H501E</item>
<item key='nationality_code'>it</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>

457

<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Command completed successfully</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="details">
<dt_assoc>
<item key="feb22test1.it">
<dt_assoc>
<item key="response_text">Command completed
successfully</item>
<item key="waiting_requests_no">0</item>
<item key="encoding_type"></item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

458

For tld_data = nexus (.US)


Example 1
Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="cookie">364577922:3202133</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="data">tld_data</item>
<item key="tld_data">
<dt_assoc>
<item key='nexus'>
<dt_assoc>
<item key="validator">CA</item>
<item key="category">C31</item>
<item key="app_purpose">P1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>

459

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Nexus Data modification
Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Without end-user credentials

Request
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>

460

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.us</item>
<item key="data">tld_data</item>
<item key='tld_data'>
<dt_assoc>
<item key="nexus">
<dt_assoc>
<item key="validator">CA</item>
<item key="category">C31</item>
<item key="app_purpose">P1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>

461

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Nexus Data modification Successful</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For tld_data =professional_data (.PRO)


Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>modify</item>
<item key='object'>domain</item>
<item key='cookie'>blp4auSCgspDRbEM:698486:1271</item>
<item key='attributes'>
<dt_assoc>
<item key='data'>tld_data</item>
<item key='tld_data'>

462

<dt_assoc>
<item key='professional_data'>
<dt_assoc>
<item key='authority_website'>http://www.cdaadc.ca</item>
<item key='license_number'>987654321</item>
<item key='authority'>Canadian Dental

Association</item>

<item key='profession'>Dentist</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_text'>OK</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>

463

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For tld_data = registrant_extra_info (.COOP)


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>modify</item>
<item key='object'>domain</item>
<item key='cookie'>ndxOATL2zdtVpWXJ:710538:6469</item>
<item key='attributes'>
<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='coop_verification_code'>93599789</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='data'>tld_data</item>
</dt_assoc>
</item>

464

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_text'>OK</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For tld_data = registrant_extra_info (.JOBS)


Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>

465

<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>modify</item>
<item key='object'>domain</item>
<item key='cookie'>7rQitruAeYGgKcBO:707623:6222</item>
<item key='attributes'>
<dt_assoc>
<item key='data'>tld_data</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='jobs_admin_type'>Yes</item>
<item
key='jobs_website'>http://www.example.com</item>
<item key='jobs_association_member'>Yes</item>
<item key='jobs_title'>HR Generalist</item>
<item key='jobs_industry_type'>Logistics
Management</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>

466

</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_text'>OK</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For tld_data = registrant_extra_info (.RU)


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>modify</item>
<item key='object'>domain</item>
<item key='cookie'>jJGPPma5I1lYrMYp:296765:22940</item>
<item key='attributes'>
<dt_assoc>
<item key='data'>tld_data</item>
<item key='tld_data'>

467

<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='date_of_birth'>1976-08-05</item>
<item key='id_card_authority'>Republic of

Khakassia </item>

<item key='id_card_issue_date'>2001-01-01</item>
<item key='id_card_number'>987654321</item>
<item key='registrant_type'>individual</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_text'>OK</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>

468

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

469

parse csr
Description
Action & object
action = parse_csr
object = trust_service

Usage
Parses the CSR and identifies its data elements.

Request parameters for parse_csr


Standard parameters
action = parse_csr
object = trust_service
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

csr

Required

A Certificate Signing Request for the required SSL


Certificate.

Note: All certificates require 2048 bit CSRs;


however, Symantec will accept 1024 bit CSRs for
certificates with expiry dates prior to December 31,
2013, except for EV certs, which require 2048,
regardless of the term.
product_type

Required

The product type from the SSL Certificate inventory.


Allowed values are:

comodo_ev

comodo_instantssl

comodo_premiumssl

comodo_premiumssl_wildcard

quickssl

quickssl_premium

securesite

securesite_pro

470

Parameter
name

Obligation

Definition/Value

securesite_ev

securesite_pro_ev

sgcsuper_certs

ssl123

sslwebserver

sslwebserver_wildcard

sslwebserver_ev

truebizid

truebizid_wildcard

truebizid_ev

trustwave_dv

trustwave_ev

trustwave_premiumssl

trustwave_premiumssl_wildcard

Response parameters for parse_csr


Standard parameters
action = reply
object = trust_service
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

csr_data

Returned if
A list of the data elements of the CSR. For more
is_success = information, see the csr_data table.
true

471

csr_data
Parameters within the csr_data associative array are described below.
Parameter name

Obligation

Definition/Value

country

Always returned

The country specified in the CSR.

domain

Always returned

The domain specified in the CSR.

email

Always returned

The email address specified in the


CSR.

has_bad_extensions

Always returned

Indicates whether the CSR contains


any unsupported extensions.
Allowed values are:

0The CSR can be used.

1 Re-generate the CSR


without the unsupported
extensions.

locality

Always returned

The city specified in the CSR.

organization

Always returned

The organization specified in the


CSR.

organization_unit

Always returned

The organization unit specified in


the CSR.

state

Always returned

The state specified in the CSR.

valid_quick_domain

Returned for QuickSSL


Certificates only

Indicates whether the CSR is valid


for QuickSSL certificates.
Allowed values are:

valid_true_domain

Returned for True


BusinessID Certificates
only

0No

1Yes

Indicates whether the CSR is valid


for True BusinessID certificates.
Allowed values:

0No

1Yes

Examples for parse_csr


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>

472

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>parse_csr</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='product_type'>quickssl</item>
<item key='csr'>-----BEGIN CERTIFICATE REQUEST----MIIBqTCCARICAQAwaTELMAkGA1UEBhMCQ0ExCzAJBgNVBAgTAm9uMRAwDgYDVQQH
Ewd0b3JvbnRvMQ8wDQYDVQQKEwZ0dWNvd3MxCzAJBgNVBAsTAnFhMR0wGwYDVQQD
ExR3d3cucWFyZWdyZXNzaW9uLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
gYEAz+hbqqnE5BSW0THf7txxsJxF8Vtca2uL52iutI1SRTm9J6NNtAjgMbL9upOm
SFnObpWKriUIlvxKrecygGWkjiMeyU/F6auAS9/vwDdxYEVT2szK+Q2At1FgU433
Pds53v2J/vyB6SL+k/w54H2gF4ORpU1hjUggo7fM353TeeMCAwEAAaAAMA0GCSqG
SIb3DQEBBAUAA4GBAIYvVThVeocN7N7HbsO/au9AXnx6LULQ5LMDWx6FlyBB5g9h
5HYZa6xieYCYDxYIsjLjR3qx1BWl9+0kSL2MW4EdDPzbcrZvHAtrw2/hPrm9EGA3
2w3a26W79N3clCkrahnpcNFLFyzU3CtZASJ+VuixGXTEkdiBAliqtGp+QBhf -----END
CERTIFICATE REQUEST-----</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

473

<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='csr_data'>
<dt_assoc>
<item key='country'>US</item>
<item key='organization_unit'>QA</item>
<item key='valid_true_domain'>1</item>
<item key='state'>CA</item>
<item key='locality'>Santa Clara</item>
<item key='email'/>
<item key='domain'>www.example.com</item>
<item key='valid_quick_domain'>1</item>
<item key='has_bad_extensions'>0</item>
<item key='organization'>Example Inc.</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

474

process_pending
Description
Action & object
action = process_pending
object = domain or trust_service

Usage
Processes or cancels pending orders; also applicable to any order that is
declined. The order is cancelled and a new order is created. Can also be used
to process cancelled domain orders, provided the cancelled order was a new
order or a transfer.

Request parameters for process_pending


Standard parameters
action = process_pending
object = domain or trust_service
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

command

Optional

Only necessary if you want to cancel the pending


order. If you want to process the pending order, do
not add this attribute.
Allowed value is cancel.

fax_received

Optional

Only required for .DE orders that are pending a


confirmation fax.

0No

1Yes

order_id

Required

The ID of the order to be processed.

owner_address

Optional

Owner's email address; only used for .DE


transfers.

475

Response parameters for process_pending


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request
attributes

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

async_reason

Included in domain
response for
asynchronous
requests

Indicates the reason that the request was


asynchronous. Allowed values are:

generalOrder was submitted to an


asynchronous registry.

has_claimRegistrant action required


before order can complete.

domain

Included in Trust
Service response if
is_success = true

The domain with which the Trust Service


order is associated.

f_auto_renew

Included in domain
response if
is_success = true

Flag indicating whether domain is


automatically renewed. Allowed values are Y
or N.

id

Included in domain The ID of the domain


response if
is_success = true

order_id

Included in Trust
Service response if
is_success = true

registration
expiration date

Included in domain The new expiration date for the service, in


response if
the format YYYY-MM-DD hh:mm:ss
is_success = true

state

Included in Trust
Service response if
is_success = true

The ID of the order.

The state of the order. Allowed values are:

awaiting-approvalOrder

476

Parameter
name

Obligation

Definition/Value
processed successfully; waiting for
supplier approval.

supplier_order_ Included in Trust


id
Service response if
is_success = true

in-progressOrder is in progress.

The ID number for the vendor.

Deprecated
Parameter
name

Obligation

Definition / Value

transaction_id

Deprecated

Deprecated

Examples for process_pending domain


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">process_pending</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="owner_address">myemail@example.com</item>
<item key="fax_received">1</item>
<item key="order_id">535242</item>
</dt_assoc>
</item>

477

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
If successful
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="f_auto_renew">Y</item>
<item key="id">3343012</item>
<item key="registration expiration date">2007-12-05
15:23:15</item>
</dt_assoc>
</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text"> Domain registration successfully
completed
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

478

If unsuccessful
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">0</item>
<item key="response_code">480</item>
<item key="response_text">Order 535242 is not a pending or
declined order and cannot be processed</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If domain name matches a trademark at the TMCH


<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>260</item>
<item key='is_success'>1</item>

479

<item key='response_text'>Registration is pending registrant


review before completing due to claim/trademark.</item>
<item key='transaction_id'/>
<item key='action'>REPLY</item>
<item key='attributes'>
<dt_assoc>
<item key='order_id'>654155</item>
<item key='async_reason'>has_claim</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Examples for process_pending trust_service


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">process_pending</item>
<item key="object">trust_service</item>
<item key="attributes">
<dt_assoc>
<item key="order_id">6617</item>
</dt_assoc>
</item>

480

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">TRUST_SERVICE</item>
<item key="response_text">Command completed
successfully.</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="order_id">6617</item>
<item key="supplier_order_id">219</item>
<item key="state">awaiting-approval</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

481

query_approver_list
Description
Action & object
action = query_approver_list
object = trust_service

Usage
Queries the list of approvers for the Trust Service that is associated with the
specified domain.
Note: This command is currently not supported for Trustwave certificates.

Request parameters for query_approver_list


Standard parameters
action = query_approver_list
object = trust_service
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain to which the Trust Service approver


list belongs.

product_type

Required

The product type from the SSL Certificate


inventory.
Allowed values are:

comodo_ev

comodo_instantssl

comodo_premiumssl

comodo_premiumssl_wildcard

quickssl

quickssl_premium

securesite

securesite_pro

securesite_ev

482

Parameter
name

Obligation

Definition/Value

securesite_pro_ev

sgcsuper_certs

ssl123

sslwebserver

sslwebserver_wildcard

sslwebserver_ev

truebizid

truebizid_wildcard

truebizid_ev

Response parameters for query_approver_list


Standard parameters
action = reply
object = trust_service
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes

If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

approver_list

Returned if
The list of approvers and their properties. For more
is_success = information, see the approver_list table.
true

Approver_list
Parameters within the approver_list associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Always
returned

The domain to which the Trust Service applies.

483

Parameter
name

Obligation

Definition/Value

email

Always
returned

Trust Service approver email address.

type

Always
returned

Trust Service approver type. Allowed values are:

genericGenerated by pre-pending
predefined list of prefixes to the domain
name. Prefixes include admin, administrator,
hostmaster, root, webmaster, postmaster,
and support.

manualA list of support addresses taken


from WHOIS.

Examples for query_approver_list


Request
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>query_approver_list</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.com</item>
<item key='product_type'>quickssl</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

484

</OPS_envelope>

485

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='approver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='email'>qafive@example.com</item>
<item key='domain'>example.com</item>
<item key='type'>MANUAL</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='email'>ottway@example.com</item>
<item key='domain'>example.com</item>
<item key='type'>MANUAL</item>
</dt_assoc>
</item>

486

<item key='2'>
<dt_assoc>
<item key='email'>admin@example.com</item>
<item key='domain'>example.com</item>
<item key='type'>GENERIC</item>
</dt_assoc>
</item>
<item key='3'>
<dt_assoc>
<item key='email'>administrator@example.com</item>
<item key='domain'>example.com</item>
<item key='type'>GENERIC</item>
</dt_assoc>
</item>
<item key='4'>
<dt_assoc>
<item key='email'>hostmaster@example.com</item>
<item key='domain'>example.com</item>
<item key='type'>GENERIC</item>
</dt_assoc>
</item>
<item key='5'>
<dt_assoc>
<item key='email'>root@example.com</item>
<item key='domain'>example.com</item>
<item key='type'>GENERIC</item>
</dt_assoc>
</item>
<item key='6'>
<dt_assoc>
<item key='email'>webmaster@example.com</item>
<item key='domain'>example.com</item>
<item key='type'>GENERIC</item>
</dt_assoc>
</item>

487

<item key='7'>
<dt_assoc>
<item key='email'>postmaster@example.com</item>
<item key='domain'>example.com</item>
<item key='type'>GENERIC</item>
</dt_assoc>
</item>
<item key='8'>
<dt_assoc>
<item key='email'>support@example.com</item>
<item key='domain'>example.com</item>
<item key='type'>MANUAL</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

488

query_queued_request
Description
Action & object
action = query_queued_request
object = domain

Usage
Queries the status of a queued request.

Request parameters for query_queued_request


Standard parameters
action = query_queued_request
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

request_id

Required

The ID of the queued request; the


queue_request_id is returned when an order is
queued.

Response parameters for query_queued_request


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

489

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

queue_date

Returned if
The date the order was queued, in the format
is_success = true DD-MMM-YYYY hh:mm:ss.

request_data

Returned if
The content of the original queued request. All
is_success = true data is returned in a single variable.

Examples for query_queued_request


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">query_queued_request</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="request_id">1782</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

490

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command completed
successfully</item>
<item key="attributes">
<dt_assoc>
<item key="queue_date">04-MAR-2004 10:27:01</item>
<item key="request_data">
<dt_assoc>
<item key="ip">10.0.11.121</item>
<item key="username">purple</item>
<item key="action">SW_REGISTER</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

491

redeem (domain)
Description
Action & object
action = redeem
object = domain

Usage
Redeems a .COM, .NET, .CA, .IT, or .NL domain that has expired but is within
the redemption grace period.
Note: Domain redemptions may incur addition fees.

Request parameters for redeem domain


Standard parameters
action = redeem
object = domain
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation Definition/Value

domain

Required

The name of the domain to be redeemed. Domain


must be within the redemption grace period.

Response parameters for redeem domain


Standard parameters
action = reply
object = domain

492

is_success = a Boolean is returned, indicating success or failure of the


request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Examples for redeem domain


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REDEEM</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.ca</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>

493

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="action">REPLY</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

494

renew (domain)
Description
Action & object
action = renew
object = domain

Usage
Renews a domain and allows you to set the auto-renewal flag on a domain.

Request parameters for renew (domain)


Standard parameters
action = renew
object = domain
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

affiliate_id

Optional

ID that allows RSP's to track orders coming


through various affiliates.

auto_renew

Required

A flag indicating whether the domain should


be set to auto-renew.

0Not set to auto-renew

1Set to auto-renew

currentexpirationyear

Required

The domain's current expiration year in the


format YYYY; must match the data in the
registry.

domain

Required

The name of the domain to be renewed.


Domain must be registered, and must exist
in both OpenSRS and the appropriate
registry.

f_parkp

Optional

Enables the Parked Pages Program. When


the Parked Pages Program is enabled, a
customized page containing contextual ads

495

Parameter name

Obligation

Definition/Value
is displayed. The ads generate revenue
whenever a visitor clicks on one of the links,
and that revenue is shared with you, the
Reseller.
Important: Enabling Parked Pages changes
the nameservers of that domain, and any
existing website will not display.
Parked Pages functionality is available for
these TLDs: .COM, .NET, .ORG, .INFO,
.BIZ, .MOBI, .NAME, .ASIA, .BE, .BZ, .CA,
.CC, .CO, .EU, .IN, .ME, .NL, .TV, .UK,
.US, .WS and .XXX.

YEnable Parked Pages for the


domain

NDo not enable Parked Pages for


the domain

If a Reseller has opted out of Parked Pages,


the default value (N) is used, even if Y is
submitted.
handle

Required

Instructions for the processing of the order.


(Overrides the RSP's 'process immediately'
settings.).

savePend the order for the RSP's


later approval

processProcess the order

immediately
period

Required

The renewal period, from 1 to 10 years.


(May not exceed 10 years.)

Response parameters for renew (domain)


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

496

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name Obligation

Definition/Value

admin_email

Returned if
is_success =
true

The email address of the administrative


contact for the domain.

auto_renew

Returned if
is_success =
true

A flag indicating whether the domain is set


to auto-renew.

0Not set to auto-renew

1Set to auto-renew

id

Returned if
is_success =
true and order is
not queued

The domain ID. If queue_request_id is


returned, id is not returned.

order_id

Returned if
is_success =
true

The order ID of the renewal.

queue_request_id

Returned if
is_success =
true and order is
queued

The ID of the request as it occurs within the


queue. Later, if you want to renew the order
from the queue, you'll need this ID.

Returned if
is_success =
true

The domain's current expiration year.

registration
expiration date

If queue_request_id is returned, id is not


returned.

Response codes
Response
Code

Response Text

Explanation

200

Command completed
successfully

Success response.

480

Renew capability is not Renewals are not yet supported for this TLD.
enabled for domain.tv

555

Domain already
renewed

Domain has already been successfully


renewed, with the current expiration year
matching the year provided by the user.

541

Invalid attribute value

Domain's current expiration year in registry


doesn't match the year provided by user.

400

Fatal Server Error

System error.

497

Response
Code

Response Text

Explanation

400

Domain already
Domain is already in 'renewal applied' state.
renewed; another
renewal cannot be
applied until the first
request completes', at
the registry,
approximately six to
eight weeks after the
original expiration date
(2003-03-19 12:12:00)

Note: When a renew operation fails, the Reseller receives a message


indicating which domain failed to be renewed. This message is only sent
once in 24 hours, regardless of how many renewals failed within this period.

Examples for renew (domain)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">renew</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew">1</item>
<item key="f_parkp">Y</item>
<item key="handle">process</item>
<item key="domain">example.com</item>
<item key="currentexpirationyear">2008</item>
<item key="period">1</item>

498

</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="registration expiration date">2009-01-08

15:35:00</item>

<item key="auto_renew">1</item>
<item key="admin_email">admin1@example.com</item>
<item key="id">3212624</item>
<item key="order_id">3511417</item>
</dt_assoc>
</item>
<item key="response_text">Command completed
successfully</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>

499

</body>
</OPS_envelope>

500

request_on_demand_scan
Description
Action & object
action = request_on_demand_scan
object = trust_service

Usage
If you have a Symantec or SiteLock seal, or the GeoTrust Web Site AntiMalware Scan product, and you have corrected a malware issue on your site,
you can ask the Trust Service provider to rescan your system immediately
and reinstate the Seal.
Note: You can only request a scan if the Trust Seal order is complete.

Request parameters for request_on_demand_scan


Standard parameters
action = request_on_demand_scan
object = trust_service
attributes

Attributes
Parameters within the attributes associative array are described below.
Note: You must specify at least one of these parameters.
Parameter name

Obligation

Definition/Value

order_id

Optional

The Trust Service order ID number.

product_id

Optional

The Trust Service product ID number.

Response parameters for


request_on_demand_scan
Standard parameters
action = reply
object = trust_service

501

is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name

Obligation

Definition/Value

product_id

Returned if
is_success =
true

The Trust Service ID number.

Examples for request_on_demand_scan


Example 1
This example requests a scan for a site by submitting the product ID.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>request_on_demand_scan</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='product_id'>275</item>
</dt_assoc>
</item>

502

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='product_id'>275</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
This example requests a scan for a site by submitting the order ID.

503

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>request_on_demand_scan</item>
<item key='object'>trust_service</item>
<item key='action'>REQUEST_ON_DEMAND_SCAN</item>
<attributes>
<item key='order_id'>49841</item>
</attributes>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>

504

<item key='response_text'>Command completed


successfully.</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='product_id'>275</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

505

resend_approve_email
Description
Action & object
action = resend_approve_email
object = trust_service

Usage
Resends the Approver email
Note: This command is not supported for SiteLock products, or for Comodo
EV SSL certificates or for Trustwave Premium EV, Premium SSL and Premium
SSL Wildcard certificates, or the GeoTrust Web Site Anti-Malware Scan
product. For TRUSTe products, this command resends the fulfillment email
after the order is submitted.

Request parameters for resend_approve_email


Standard parameters
action = resend_approve_email
object = trust_service
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

order_id

Required

The ID number of the Trust Service order.

Response parameters for resend_approve_email


Standard parameters
action = reply
object = trust_service
is_success = a Boolean is returned, indicating success or failure of the

request

506

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

order_id

Returned if
is_success =
true

The ID number of the Trust Service order.

Examples for resend_approve_email


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>resend_approve_email</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='order_id'>1859</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

507

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='order_id'>1859</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

508

resend_cert_email
Description
Action & object
action = resend_cert_email
object = trust_service

Usage
Resends the certificate email.
In order to request the SSL Certificate email, the order must be completed.
Note: This command is not supported for SiteLock or Comodo, or the
GeoTrust Web Site Anti-Malware Scan product. For TRUSTe products, this
command resends the fulfillment email after the order is completed.

Request parameters for resend_cert_email


Standard parameters
action = resend_cert_email
object = trust_service
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

order_id

Required

The ID number of the Trust Service order.

Response parameters for resend_cert_email


Standard parameters
action = reply
object = trust_service
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request

509

response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name

Obligation

Definition/Value

order_id

Returned if
is_success =
true

The ID number of the Trust Service order.

Examples for resend_cert_email


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>resend_cert_email</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='order_id'>1799</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

510

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='order_id'>1799</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

511

revoke (domain)
Description
Action & object
action = revoke
object = domain

Usage
Removes the domain at the registry. Use this command to request a refund
for a domain purchase. This call can refund/revoke only one domain at the
time.
Note: A refund can be issued for only those domains which fall within the
specified grace period as defined by each registry.

Request parameters for revoke (domain)


Standard parameters
action = revoke
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

Domain to be revoked.

notes

Optional

Information relevant to action. Notes are saved to


domain notes.

512

Response parameters for revoke (domain)


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

charge

Optional

Value indicating whether the Reseller has been


charged:

price

Optional

0No charge

1Indicates a charge

The sum of money of that the Reseller is charged.

Examples for revoke (domain)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REVOKE</item>

513

<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="notes">this is a test</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
If successful
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="charge">0</item>
<item key="price">undef</item>
</dt_assoc>
</item>
<item key="response_text">Domain example.com revoked
successfully.</item>

514

<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If unsuccessful
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">0</item>
<item key="response_text">Domain not found.</item>
<item key="response_code">461</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

515

send_CIRA_approval_email
Description
Action & object
action = send_CIRA_approval_email
object = domain

Usage
When a .CA domain is registered, it goes into a waiting-approval state, and
the admin contact must confirm the registration by responding to an approval
email message, sent by CIRA. This command resends that CIRA registration
approval email message to the domain's contact.
Important: This command has been deprecated. If this command is part of
your current integration, it will continue to work; however, the results will be
ignored. The response will return 'is_success' => '1'.

Request parameters for


send_CIRA_approval_email
Standard parameters
action = send_CIRA_approval_email
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain for which the CIRA approval email is


to be sent

516

Response parameters for


send_CIRA_approval_email
Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for send_CIRA_approval_email


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">send_cira_approval_email</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.ca</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

517

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">domain</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">CIRA registration confirmation
mail sent to user1@example.ca</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

518

send_registrant_verification_email
Description
Action & object
action =send_registrant_verification_email
object = domain

Usage
When a domain is registered or transferred, or when the registrant contact
information is changed, the registrant must reply to an email requesting
them to confirm that the submitted contact information is correct. This
command sends or resends the verification email to the registrant.

Request parameters for


send_registrant_verification_email
Standard parameters
action = send_registrant_verification_email
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition / Value

domain

Required if cookie is not submitted

The relevant domain.

Response parameters for


send_registrant_verification_email
Standard parameters
action = reply
object = domain
519

is_success = a Boolean is returned, indicating success or failure of the


request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Examples for send_registrant_verification_email


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>send_registrant_verification_email</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>

520

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Verification email has been resent
successfully.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

521

set_domain_affiliate_id
Description
Action & object
action = set_domain_affiliate_id
object = domain

Usage
Assigns an affiliate id to a domain.

Request parameters for set_domain_affiliate_id


Standard parameters
action = set_domain_affiliate_id
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation Definition / Value

affiliate_id

Required

The affiliate id associated with the domain (max 256


char).

domain

Required

The domain to which you want to assign an


affiliate_id.

Response parameters for set_domain_affiliate_id


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the
request
522

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for set_domain_affiliate_id


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>set_domain_affiliate_id</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='affiliate_id'>UpdatedAffiliate</item>
<item key='domain'>example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

523

<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_text'>Command Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

524

sw_register (domain or trust_service)


Description
Action & object
action = sw_register
object = domain or trust_service

Usage
Submits a new registration or transfer order that obeys the Reseller's
'process immediately' flag setting.

Trust Service free trials


Free 30 day trials are available for the following Trust Service products:
GeoTrustTrue BusinessID with EV
SymantecSecureSite, Secure Site Pro, Secure Site with EV, and
Secure Site Pro with EV
TRUSTeHosted Privacy Policy (HPP) and Privacy Policy with Seal
(TPS)
The free trial lasts for 30 days, and can be cancelled at any time during that
30 day period without incurring a charge by issuing the cancel_free_trial
command.

After the 30 days, if the order has not been cancelled, the customer is
automatically charged for the term that they selected when they placed the
order. The expiry date is calculated from the date that the paid term begins,
not the date that the free trial began. For GeoTrust and Symantec, once the
order has passed the free trial stage and become activated, you cannot order
another free trial for the same domain until the one year period has passed.
Note:The Symantec certs and the GeoTrust True BusinessID with EV
certificate can only be ordered for a one year term when taking advantage of
the 30 day free trial offer.

Request parameters for sw_register (domain or


trust_service)
Standard parameters
action = sw_register
object = domain or trust_service
registrant_ip = valid IP address of the registrant (optional)
attributes

525

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

affiliate_id

Optional

The unique identifier of an RSP's affiliate,


which allows the RSP to track orders coming
through different affiliates. Specify a valid
affiliate ID (max 256 char).

auto_renew

Optional

Used to set domain to auto-renew.

change_contact

Optional

0Do not auto-renew

1Auto-renew

Used to change contact information for


.ORG, .INFO, .BIZ, .BE, .CN, .EU, .IT, .ME,
.MOBI, .UK, and .US domains during a transfer
or after transfer completion. Contact changes
are always applied for all other TLDs except for
.CA, which does not allow contact changes
during the transfer.

0Do not change contact set

1Apply new contact set when transfer


completes. Value is always set to 1
for .CC, .TV, .COM, .NET, and .NAME.

comments

Optional

Adds additional notes to the order, for


example, the additional residency information
that is required for .FR domain registrations.

contact_set

Required

A collection of associative arrays containing


contact information for each contact type
(owner, admin, billing, tech). See "Contact
Set".
Notes:
For .CA, .ES, .MX, and .US registrations, state
is required.
For .NL, state is NOT required.
For .ES domains registrations, the postal code
must correspond to the province for each of
the contacts. See .ES postal codes for a list
of the postal code prefixes that apply to each
province.
For .IT domain registrations, if the
entity_type is anything other than 1,
org_name is required, and you must include
the admin associative array. If entity_type =
1, the admin contact is assumed to be the
same as the owner and you do not need to
submit it.

526

Parameter name Obligation

Definition/Value

custom_
nameservers

An indication of whether to use the RSP's


default nameservers, or those provided in the
'sw_register' request.

Required for
domain
registrations

0Use Reseller's default nameservers.


If set to 0 and default nameservers are
not defined, no nameservers are
associated with the domain.
Note: .TEL always uses the default
nameservers, so this value should be 0
for .TEL registrations. Any nameservers
submitted for .TEL will be ignored.

custom_transfer_
nameservers

1Use nameservers provided in


request.

Required for .EU This flag is only used if reg_type = transfer,


transfers - If
and indicates whether to use the nameservers
not submitted, provided in the request.
the nameserver
0Use the domain's existing
list is ignored
nameservers and ignore nameservers
provided in request.

1Use nameservers provided in


request. A minimum of two
nameservers must be provided. If no
nameservers are supplied, domain's
nameservers are used.

Note: For .EU transfers, this parameter must


always be set to 1.
custom_tech_
contact

Required for
domain
registrations

An indication of whether to use the RSP's tech


contact info, or the tech contact info provided
in the 'sw_register' request.

0Use Reseller's tech contact info.

1Use tech contact info provided in


request.

527

Parameter name Obligation

Definition/Value

dns_template

Specify the name of the DNS template that you


want to use to enable DNS and assign initial
DNS records, or specify *blank* to enable
DNS without defining any records.

Optional

Note: You must enter the word blank


preceded and followed by asterisks.
The template name can be a maximum of 50
characters.
If this parameter is specified, the nameservers
are automatically set to the nameservers for
the DNS service:

ns1.systemdns.com

ns2.systemdns.com

ns3.systemdns.com

For information on creating a DNS template,


see the Reseller's Guide to Domain Name
Registration and Management.
domain

Required for
domain
registrations
and domain
vetted
certificates

The domain name to be acted upon in the


sw_register request.

encoding_type

Optional

The encoding type for the domain.


Submit a valid three-character language tag.
For a list of allowed values, see "Appendix C:
Encoding Types for IDNs".
If you submit the reg_domain parameter to
link two profiles, and the previously registered
domain contains multilingual characters, the
reg_domain value must also be in Punycode
format.
For a list of the languages supported for each
TLD, see the gTLD and ccTLD Reference Chart
on the OpenSRS website.

f_lock_domain

f_parkp

Optional

Optional

Allows you to lock the domain so that it cannot


be transferred away. To allow a transfer on a
locked domain, the domain must first be
unlocked. Even if submitted, this setting is not
applied to TLDs where locking is not supported
such as .DE, .UK, .CH, .NL, .FR, IT, BE, and AT.

0Do not lock domain

1Lock domain

Enables the Parked Pages Program. When the


Parked Pages Program is enabled, a

528

Parameter name Obligation

Definition/Value
customized page containing contextual ads is
displayed. The ads generate revenue whenever
a visitor clicks on one of the links, and that
revenue is shared with you, the Reseller.
Important: Enabling Parked Pages changes
the nameservers of that domain, and any
existing website will not display.
Parked Pages functionality is available for new
and transferred domain registrations for these
TLDs: .COM, .NET, .ORG, .INFO, .BIZ,
.MOBI, .NAME, .ASIA, .BE, .BZ, .CA, .CC,
.CO, .EU, .IN, .ME, .NL, .TV, .UK, .US, .WS and
.XXX .
If Parked Pages is enabled, DNS settings
entered at registration are saved for future use
and the Parked Pages nameservers are used
instead.
For transfers, the DNS settings that were
entered with the transfer request are used. If
DNS settings were not submitted at the time of
transfer, the pre-transfer DNS settings are
used. If the domain was using the Parked
Pages DNS at the time of transfer, and DNS
settings are not provided, the domain
continues to use the Parked Pages DNS.

f_whois_privacy

handle

link_domains

Optional

Required

Optional

YEnable Parked Pages for the domain

NDo not enable Parked Pages for the


domain; this is the default.

Allows you to enable WHOIS Privacy for new


.COM, .NET, .ORG, .INFO, .BIZ, .NAME, .ME,
.MOBI, .CC, .CO, and .TV registrations.

0Disable

1Enable

Indicates how to process the order.

savePend the order for later approval


by the RSP.

processProceed with the order


immediately.

Indicates whether to link this domain with


others.
This parameter is only used when ordering
multiple domains over multiple calls to
sw_register. Also, it is only used if the user
does not wish to associate the new
registrations with an existing domain/profile in
OpenSRS. The first sw_register call to

529

Parameter name Obligation

Definition/Value
OpenSRS should have link_domains set to 1.
The return to this call contains an OpenSRS
order ID. This value is used as the
master_order_id in the subsequent calls to
sw_register for the remainder of the domain
list.

0Do not link domains

1Link domains. If set to 1, the


reg_domain field should not be
specified.

Note: Only the first call to sw_register


should contain the attribute link_domains.
master_order_id

Required for
domain
registrations if
link_domains
=1

The order ID returned by the first


sw_register call for a group of domains that
are to be linked (via the link_domains
parameter).

nameserver_list

Required for .EU A list of nameserver pairs, each of which


transfers
contain a nameserver's name and sort order.
(Minimum two required). For allowed values,
see the Nameserver_list table below.
If dns_template is specified, the nameservers
are automatically set to the nameservers for
the DNS service:

ns1.systemdns.com

ns2.systemdns.com

ns3.systemdns.com

Important: For .EU transfers, if nameservers


are not provided, the domain name will be
stripped of its existing nameservers and will
not have any nameservers.
owner_confirm_
address

period

Required for
.DE, .BE, .EU,
and .IT
transfers

The email address to which to send messages


regarding a .BE, .DE, .EU or .IT transfer.

Required for
new domain
registrations
only

The length of the registration period. Allowed


values are 1 10, depending on the TLD, that
is, not all registries allow for a 1-year
registration. The default is 2, which is valid for
all TLDs.

Note: The email address provided is used for


the current transfer only, and not for future
messages.

530

Parameter name Obligation


premium_price_
to_verify

Definition/Value

Optional - used Submits the premium domain price and verifies


only if
that it is the same as the list price. If the
reg_type =
submitted price does not match the Tucows list
premium
price, the command will fail.
Allowed value is the price for the premium
domain, in the format nnn.nn.

reg_domain

Optional

An existing, active domain name in OpenSRS


that is owned by the registrant. Providing this
parameter links the newly registered or
transferred domain to the profile of the
existing domain.

reg_username

Required for
domain
registrations

The username of the registrant.

Required for
domain
registrations

The registrant's password.

Required for
domain
registrations

The type of registration being requested:

reg_password

reg_type

tld_data

Required for
.AERO, .AR,
.ASIA, .AU,
.BR, .CL,
.COOP, .DE,
.DK, .FI,
.FR, .HK,
.HU, .IT, .JOBS,
.LV, .MX,
.MY, .NO,
.NU, .NYC, .PM,
.PRO, .PT,
.RE, .RO,

You can use any of the following alphanumeric


characters: A-Z, a-z, 0-9.
You can use any of the following alphanumeric
characters and symbols: A-Z, a-z, 0-9, []()!
@\$^,.~|=-+_{}#"

landrushSubmit a request for a


domain during its landrush period

newA new registration

premiumRegister a Premium domain


name

transferTransfer a domain into


OpenSRS

sunriseSubmit a request for a


domain during its sunrise period

whois_privacyEnable WHOIS
Privacy for an existing domain.
DEPRECATED.

An associative array that contains additional


information required by the registry, such as
the residency of the registrant. If you submit
a request that contains this array, you must
also include data = tld_data.
Allowed values are:

au_registrant_infoEligibility
requirements for.AU registrants.

ced_infoCharter Eligibility
Declaration (CED) information for
.ASIA domains.

ipr_dataSponsored Community

531

Parameter name Obligation

Definition/Value

.RU, .SE,
.SG, .TF,
.US. .WF, .YT,
and .ZA
domains.

information associated with .XXX


domains.

Optional for
.XXX domains.

it_registrant_infoRegional
presence requirements for .IT
domains.

nexusAmerican presence
requirements for .US domains.

professional_dataThe professional
designation information that is
associated with the .PRO domain.

registrant_extra_infoRegional
presence requirements for various
ccTLDs such as .FR and .NYC, or
industry requirements for .JOBS
domains or .AERO domains.

For information on the allowed values for each


of these, see tld_data.
trademark_smd

Required for
Sunrise orders
of the new
gTLDs

The Signed Mark Data (SMD) that is issued by


the Trademark Clearinghouse (TMCH) when
the corresponding trademark is registered
with TMCH, and which serves as proof of
trademark rights.
When submitting sunrise orders for the new
gTLDs, you must also submit the following
parameters and values: reg_type = sunrise
and handle = save.

Nameserver pair
Each element of the nameserver_list array contains the following pair,
expressed as an associative array:
Parameter
name

Obligation

Definition/Value

name

Required

The fully qualified domain of the nameserver.

sortorder

Required

The sort order of the nameserver.


sortorder values must start at 1 and should not
contain any gaps in sequence.

532

.BE registrations and transfers


Specific parameters and required values for .BE
.BE registrations require just two contact types: owner and tech. Admin and
billing contacts are not required for .BE registrations and are ignored if
submitted. The owner and tech contact sets require the standard fields and
values, plus specific values for the lang field.
Note: During a .BE transfer, contact changes are only accepted for owner
name and organization. Changes to contact fields other than owner name
and organization must be submitted after the transfer is completed.

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

owner_confirm_address

Required

The email address to which to send


messages regarding a .BE transfer. The
email address provided is used for the
current transfer only, and not for future
messages.

Owner and Tech


Parameters within the owner and tech associative arrays are described
below.
Parameter
name

Obligation

Definition/Value

lang

Required

The preferred language for use in the registration


agreement and for dispute resolution:

enEnglish

frFrench

nlDutch

533

.CA registrations
Specific parameters and required values for .CA
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

legal_type

Required

Domain name owner's legal classification:

ABOAboriginal

ASSAssociation

CCOCanadian Corporation

CCTCanadian Citizen

EDUEducational Institution

GOVGovernment

HOPHospital

INBIndian Band

LAMLibrary, Archive, or Museum

LGRLegal Representative

MAJHer Majesty the Queen

OMKProtected by Trademarks Act

PLTPolitical Party

PRTPartnership

RESPermanent Resident

TDMTrademark Owner

TRDTrade Union

TRSTrust

Deprecated
The following parameters have been deprecated. If these parameters are
used in your current integration, the command will continue to work;
however, the values will be ignored.
Parameter
name

Obligation

Definition/Value

ca_link_domain

Deprecated

If rant_no = a valid CIRA registrant number,


any information in ca_link_domain is ignored.
If rant_no = 0 and ca_link_domain=1, the
.CA domain from the reg_domain field is used
to obtain the CIRA Registrant number to link
the new domain to the existing CIRA

534

Parameter
name

Obligation

Definition/Value
Registrant profile.
Allowed values are:

cwa

Deprecated

0Don't use the .CA domain from


reg_domain to link to CIRA profile.

1Use the .CA domain from


reg_domain field to obtain CIRA
Registrant number to link domain.

Indicates whether contact information can be


changed without approval from CIRA.
Note: This parameter only works when
creating a CIRA Registrant profile.

0Contact information cannot be


changed without approval from CIRA.
The letter that CIRA sends to the
registrant upon successful registration
does not mention the CWA setting.

1Contact information can be


changed without approval from CIRA.
The letter that CIRA sends to the
registrant upon successful registration
asks for confirmation of this setting.

domain_description Deprecated

Description of the domain.

isa_trademark

A flag indicating whether the domain name is


a trademark.

rant_agrees

Deprecated

Deprecated

0No

1Yes

Indicates whether the registrant has read and


agrees with the CIRA Registrant Agreement.
The CIRA Registrant Agreement can be found
at https://rr-n1tor.opensrs.net/cira_agreement.cgi.
This parameter only works when creating a
CIRA Registrant profile.
Note: Each registrant only needs to agree to
the CIRA terms and conditions once.

0Registrant does not confirm


agreement with CIRA's terms and
conditions at the time the order is
placed. In this case, they will receive
an email asking for confirmation, and
the domain registration is not
processed until agreement is

535

Parameter
name

Obligation

Definition/Value
confirmed.

1Registrant agrees with the CIRA


terms and conditions, and the
registration is processed immediately;
the confirmation email is not sent.

Note: If rant_no = a valid CIRA registrant


number or ca_link_domain = 1, rant_agrees
is ignored.
rant_no

Deprecated

Used if you want to base the new domain's


contact information on an existing CIRA
Registrant profile. Valid values are 0 or a
valid CIRA Registrant number.

0No existing CIRA registrant


number or don't know CIRA Registrant
number.

.EU registrations and transfers


.EU registrations require just two contact types: owner and tech. The admin
and billing contacts are not required for .EU registrations and are ignored if
submitted. The owner and tech contact sets require the standard fields and
values, plus specific values for the fields country and lang.
As of December 10, 2009, .EU supports IDNs. The IDN name must be
submitted in ACE (Punycode) encoding, and all characters in the name before
it is converted to Punycode must conform to .EU requirements. For more
information on .EU IDNs, see http://www.eurid.eu/en/eu-domainnames/idns-eu.
Tip: Individual .EU domain registrants can keep their name private in the
WHOIS record by leaving the owner org_name field blank.
For .EU transfers, you must specify the domain's nameservers. If no
nameservers are provided, the domain name will be stripped of its existing
nameservers and not have any nameservers.
Important: If org_name is not applicable, leave the org_name field blank,
that is, do not enter na or none; otherwise the trade or transfer will fail.

Attributes
Parameters within the attributes associative array are described below.
536

Parameter name

Obligation

Definition/Value

owner_confirm_address

Required for
.EU transfers

The email address to which to send


messages regarding a .EU transfer. The
email address provided is used for the
current transfer only, and not for future
messages.

Owner and Tech


Parameters within the owner and tech associative arrays are described
below.
Parameter
name

Obligation

Definition/Value

country

Required for .EU


registrations

To be eligible to register a .EU domain, you


must have residency in one of the
countries/regions designated by EURid, the .EU
registry.
GBUnited Kingdom ATAustria
(GB)
AXAland Islands

BEBelgium

CYCyprus

CZCzech Republic

DEGermany

DKDenmark

EEEstonia

ESSpain

FIFinland

FRFrance

GIGibraltar

GFFrench Guyana

GPGuadeloupe

GRGreece

HUHungary

IEIreland

ITItaly

LTLithuania

LULuxembourg

LVLatvia

MQMartinique

MTMalta (including
Gozo and Comino)

NLNetherlands

PLPoland

PTPortugal

REReunion

SESweden

SISlovenia

SKSlovakia

lang

Required for .EU


registrations

The preferred language for use in the


registration agreement and for dispute
resolution.

537

Parameter
name

Obligation

Definition/Value
csCzech

daDanish

deGerman

elGreek

enEnglish

esSpanish

etEstonian

fiFinnish

frFrench

huHungarian

itItalian

ltLithuanian

lvLatvian

mtMaltese

nlDutch

plPoland

ptPortuguese

skSlovak

slSlovenian

svSwedish

.IT transfers
Specific parameters and required values for .IT transfers
Parameters within the attributes associative array are described below.
Parameter
name

Obligation Definition/Value
Used to change contact information during a transfer
or after transfer completion.

change_contact Optional

0Do not change contact set

1Apply new contact set when transfer


completes

Important: If change_contact = 1, then you


must also include a tld_data associative array.
owner_confirm
_address

Required

The email address to which to send messages


regarding a .IT transfer.
Note: The email address provided is used for the
current transfer only, and not for future messages.

.MOBI registrations
.MOBI applications use the sw_register command with the standard
parameters. Specific parameters and required values are described below.
Domain names can be registered for one to ten year terms.

538

Nameservers
You must submit the correct nameservers with your application. If you are
unsure which nameservers to submit with your application, submit the
OpenSRS nameservers ns1.systemdns.com and ns2.systemdns.com.

Specific parameters and required values for .MOBI


applications
Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligati
on

Definition/Value

period

Required

The registration term (if application results in successful


registration); may be 1 to 10 years.

reg_type

Required

The type of registration. Allowed value is new.

.NAME registrations
Specific parameters and required values for .NAME
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

tld_data

Optional for .NAME (if email


bundle)

An associative array containing TLDspecific data.

forwarding-emailFor .NAME
domains

539

Trust Service orders


Specific parameters and required values for Trust Service
orders
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

additional_
domains

Required for SAN


certificates

Some Trust Service products (referred to as


SAN certificates) allow you to specify a list of
additional domains or other entities (other
than the primary domain) that will be
secured by a single SSL certificate. This
means that, depending on the product, you
may be able to specify multiple top-level
domains, subdomains, IP addresses, internal
server names, and more. The total number
that you can protect with a single certificate
varies by product.
Note: The additional domains are priced as
packages, so if the certificate can secure four
additional domains, but you specify only two,
you will still be charged the full package
price. In most cases, you can add more
domains to a package for an additional
charge. For more information on pricing, see
http://www.opensrs.com/site/services/trust/
pricing.
The number of additional domains can be
added to each product is as follows:

Quick SSL Premium4 (subdomains


only)

TrueBusiness ID4 to 24

TrueBusiness ID EV4 to 24

Secure Site EV1 to 24

Secure Site Pro EV1 to 24

Secure Site Pro1 to 24

Secure Site1 to 24

SGC Super Certs1 to 4

SSL WebServer EV1 to 4

SSL WebServer Certificates1 to 4

The following products may allow you to


enter intranet and local names as well as
domain and subdomain names: QuickSSL
Premium (subdomains only), Secure Site,

540

Parameter
name

Obligation

Definition/Value
Secure Site Pro, SSL Web Server, SGC
SuperCerts, True BusinessID.

approver_email

Required for
domain vetted
certificates.

The email of one of the individuals who can


approve the Trust Service order. The Trust
Service provider sends the approver email to
the address that you specify.

base_order_id

Optional

Create a new order based on the specified


previous order. When base_order_id is
submitted, reg_type must equal new. All
other fields are optional, unless you want to
apply new values to those fields.
Note: The original order must have the same
product_type as the new order.

contact_set

Required

The SSL Certificate contact information.


Most products require: admin, billing and
tech contacts.
All organization vetted certificates require an
organization contact.
For admin, tech, and billing contacts for
thawte, Symantec, and all EV certificates,
title is required.
For SiteLock and TRUSTe certificates, the
admin contact email address is used when
creating a Domain Admin account (if
username and password are specified). If you
resend the Domain Admin login information
(through the Control Panel), this is the
address to which the Domain Admin login
credentials are sent.
For more information, see Contact Set.

csr

Required for all


products except
SiteLock,
TRUSTe, and
GeoTrust Web
Site Anti-Malware
Scan

The certificate signing request for the


required certificate. The Trust Service
provider uses this information to generate
the certificate.
Important: For Trustwave only, you need to
remove the word NEW from the BEGIN and
END statements of the CSR before you
submit the order.
Note: All certificates require 2048 bit CSRs;
however, Symantec will accept 1024 bit CSRs
for certificates with expiry dates prior to
December 31, 2013, except for EV certs,
which require 2048, regardless of the term.

541

Parameter
name

Obligation

Definition/Value

domain

Required for
The domain or hostname for which the Trust
orders for domain Service is ordered.
vetted certificates
and for SiteLock
and TRUSTe
services; not
required when
requesting a
SiteLock upgrade

end_user_auth_
info

Optional used
only for SiteLock
and TRUSTe

Specify the username and password that


the end user will use to log in to the Domain
Admin interface where they can manage their
account. The login credentials will be sent to
the specified email_address. If you resend
the Domain Admin login information (through
the Control Panel), this is the address to
which the Domain Admin login credentials
are sent.
Please note the following conditions:

If you specify username and


password and the user already
exists, the command will fail.

If you specify username but not


password, and the user does not
already exist, the user credentials
cannot be created and the command
will fail.

If you specify username but not


password, and the user already
exists, the service will be associated
with the existing end user profile.

If you want to associate the Trust Service


product with an existing account, you only
need to include the username value.
For more information see the End user auth
info table below.
handle

Required

Instructions for the processing of the order.

savePend the order for the RSP's


later approval.

processProcess the order


immediately.

inventory_item_id Optional for


The certificate product ID number that was
renewals; may be used in the TPP system.
used for

542

Parameter
name

order_id

period

Obligation

Definition/Value

certificates that
were migrated
from TPP.

This value may be used in place of order_id


or product_id.

Required for
renewals and for
SiteLock
upgrades if
product_id is
not submitted.

The order ID number of the Trust Service


product to be renewed or upgraded.

Note: Do not include this parameter for new


orders.

This value is not required for certificates that


were migrated from TPP if
inventory_item_id is submitted.
Note: Do not include this parameter for new
orders.

Required for new The number of years of the registration


registrations only period. Allowed values are 1 4, depending
on the Trust Service that is ordered.

comodo_ev1 to 2

comodo_instantssl1 to 4

comodo_premiumssl1 to 4

comodo_premiumssl_wildcard1 to 4

comodo_ssl1 to 4

comodo_wildcard1 to 4

malwarescan1

quickssl1 to 4

quickssl_premium1 to 4

securesite1 to 4

securesite_ft1

securesite_ev1 to 2

securesite_ev_ft1

securesite_pro1 to 4

securesite_pro_ft1

securesite_pro_ev1 to 2

securesite_pro_ev_ft1

sgcsuper_certs1 to 4

sitelock_basic1

sitelock_premium1

sitelock_enterprise1

ssl1231 to 4

sslwebserver1 to 4

sslwebserver_ev1 to 2

543

Parameter
name

product_id

product_type

Obligation

Definition/Value

sslwebserver_wildcard1 to 2

truebizid1 to 4

truebizid_ev1 to 2

truebizid_ev_ft1

truebizid_wildcard1 to 4

truste_hpp1 to 3

truste_hpp_ft1 to 3

truste_tps1 to 3

truste_tps_ft1 to 3

trustwave_dv1 to 3

trustwave_ev1 to 2

trustwave_premiumssl1 to 3

trustwave_premiumssl_wildcard1 to
3

Required for
renewals and for
SiteLock
upgrades if
order_id is not
submitted.

The ID number of the Trust Service product


to be renewed or upgraded.

Required

The product type from the SSL Certificate


inventory.

This value is not required for certificates that


were migrated from TPP if
inventory_item_id is submitted.
Note: Do not include this parameter for new
orders.

Allowed values are:

comodo_ev

comodo_instantssl

comodo_premiumssl

comodo_premiumssl_wildcard

comodo_ssl

comodo_wildcard

malwarescan

quickssl

quickssl_premium

securesite

securesite_ft (30 day free trial)

securesite_pro

securesite_pro_ft (30 day free trial)

securesite_ev

544

Parameter
name

reg_type

Obligation

Required

Definition/Value

securesite_ev_ft (30 day free trial)

securesite_pro_ev

securesite_pro_ev_ft (30 day free


trial)

sgcsuper_certs

sitelock_basic

sitelock_premium

sitelock_enterprise

ssl123

sslwebserver

sslwebserver_ev

sslwebserver_wildcard

truebizid

truebizid_wildcard

truebizid_ev

truebizid_ev_ft (30 day free trial)

truste_hpp (Hosted Privacy Policy)

truste_hpp _ft (30 day free trial)

truste_tps (TRUSTE Privacy Policy


with seal)

truste_tps_ft (30 day free trial)

trustwave_dv

trustwave_ev

trustwave_premiumssl

trustwave_premiumssl_wildcard

The type of registration being requested:

newSubmit a new or Trust Service


order.

renewRenew a Trust Service


offering.

upgradeUpgrade a SiteLock Basic


or Premium SSL certificate to a higher
level certificate. You do not need to
specify the domain or the period.
When you upgrade, the product_type
changes, you are charged the price
for a one year term at the new level,
and the new expiry date is one year
from the date of the upgrade.
Note: This feature is currently

545

Parameter
name

Obligation

Definition/Value
available only for SiteLock certificates.

search_in_seal

Optional

Specifies whether to enable the Symantec


Seal-in-Search, which displays the Symantec
seal next to the link for your web site in
online search results.
Allowed values are:

0Do not enable the Symantec Sealin-Search.

1Enable the Symantec Seal-inSearch.

Important: If you submit this parameter,


you must also submit the trust_seal
parameter and set the value to 1.
server_count

Required when The number of servers on which the Trust


product_type = Service product will be installed.
securesite*,
ssl123,
sgcsuper_certs,
sslwebserver,
sslwebserver_
wildcard,
sslwebserver_
ev

server_type

Optional

The type of server software used to generate


the CSR.
Allowed values are:
Symantec, thawte, and
GeoTrust

Comodo

apache2

apachessl

apacheapachessl

citrix

apacheopenssl

domino

apacheraven

ensim

apachessl

hsphere

apachessleay

iis4

c2net

iis6

cobaltseries

iis7

cobaltraq3

iplanet

cobaltraq2

javawebserver

546

Parameter
name

Obligation

Definition/Value
Symantec, thawte, and
GeoTrust

Comodo

cpanel

netscape

domino

ibmhttp

dominogo4626

novell

dominogo4625

oracle

ensim

other

hsphere

plesk

iis

redhat

iis4

sap

iis5

tomcat

iplanet

webstar

ipswitch

whmcpanel

netscape

ibmhttp

other

plesk

tomcat

weblogic

website

webstar

webstar4

zeusv3

Note: Trustwave does not support server


types.
special_instructio
ns

Optional

Any special instructions regarding the Trust


Service purchase.

trust_seal

Optional

Specifies whether to enable the Symantec


Trust Seal on your website. Allowed values
are:

0Do not enable the Symantec Trust


Seal.

1Enable the Symantec Trust Seal.

547

End_user_auth_info
Parameters within the end_user_auth_info associative array are described
below.
Parameter
name

Obligation

Definition/Value

email_address

Optional - used only


for SiteLock and
TRUSTe to send
Domain Admin
credentials

Specify the email address to which you


want to send the login credentials
(username and password) for Domain
Admin.

password

Optional - used only


for SiteLock and
TRUSTe to create
Domain Admin
credentials

The password must be at least eight


characters.

username

Optional - used only


for SiteLock and
TRUSTe to create
Domain Admin
credentials

The username must be at least six


characters.

Note: If you want to associate the Trust


Service product with an existing account,
only username is required.

Response parameters for sw_register (domain or


trust_service)
The Reseller Agent (RSA) can respond with a 250 response_code, which
indicates that the action was submitted for processing in an asynchronous
registry. When the registry's reply is received by OpenSRS, it is processed.
Performing a set cookie or get userinfo command indicates if there is an
action currently waiting on a domain.

Standard parameters
action = reply
object = domain or trust_service
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

548

Domain order attributes


If the request is successful, the attributes associative array may include the
following:
Parameter name Obligation

Definition/Value

admin_email

Optional

Returns the admin email contact from


the order.

async_reason

Returned for
Indicates the reason that the request
asynchronous requests was asynchronous. Allowed values
are:

generalOrder was
submitted to an asynchronous
registry.

has_claimRegistrant action
required before order can
complete.

cancelled_orders

Optional

A list of pending orders for this


domain that are cancelled by the
successful registration of the domain.

error

Returned when an
order fails.

A text description of the errors that


occurred in a failed transaction.

forced_pending

Returned if the order


has been forced to
pending queue.

Orders that cannot be processed


(insufficient funds, domain already
taken, and so on) are forced to the
pending queue.

id

Returned if
is_success = true

The ID of the order, which can be


used in RWI queries.

queue_request_id

Returned if the order


has been queued.

The ID of the request as it appears in


the queue.

registration_code

Returned if
is_success = true

The registration code returned by the


registry.

registration_text

Returned if is_success The registration text returned by the


= true
registry.

transfer_id

Returned if
reg_type=transfer

whois_privacy_state

Returned if is_success Returns the state of WHOIS Privacy.


= true
Allowed values are enabled,
disabled, enabling (in process), or
disabling (in process).

ID number of the transfer.

549

Trust Service order attributes


Parameters within the attributes associative array for Trust Service orders
are described below.
Parameter name Obligation

Definition/Value

domain

Returned for domain The domain with which the Trust Service
vetted certificates
is associated.

order_id

Always returned

The ID number of the Trust Service order.

state

Always returned

The state of the order. Allowed values


are:

approver-confirmedOwner
has confirmed the domain vetted
certificate.

awaiting-approvalOrder
processed successfully; waiting
for supplier approval.

cancelledPending order was


cancelled.

completedOrder is complete.

declinedOrder cancelled after it


was processed or declined by the
supplier.

in-progressOrder is in
progress.

pendingOrder saved as
pending.

Domain registration examples


For domain = .COM, .NET, .ORG, .INFO, .BIZ, .NAME, .ME,
and .MOBI
Example 1
About this example:

This is a new domain name registration.


This registration creates a new user profile.
No custom tech contact is set.
Custom nameservers are set.
WHOIS Privacy feature enabled at time of registration.
Parked Pages service activated (for qualifying TLDs).
User is requesting the domain to lock once it is registered.
550

Two pending orders are cancelled by the successful registration of this


domain

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.10.19</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew"/>
<item key="link_domains">0</item>
<item key="reg_domain"/>
<item key="f_lock_domain">1</item>
<item key="f_whois_privacy">1</item>
<item key="f_parkp">Y</item>
<item key="domain">example.com</item>
<item key="affiliate_id"/>
<item key="period">1</item>
<item key="reg_type">new</item>
<item key="comments">Sample comment</item>
<item key="reg_username">daniel</item>
<item key="custom_tech_contact">0</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="nameserver_list">

551

<dt_array>
<item key="0">
<dt_assoc>
<item key="sortorder">1</item>
<item key="name">ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="sortorder">2</item>
<item key="name">ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="reg_password">daniel</item>
<item key="encoding_type"/>
<item key="custom_nameservers">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>

552

<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">
Domain registration successfully completed. WHOIS
Privacy successfully enabled. Domain successfully locked.
</item>
<item key="attributes">
<dt_assoc>
<item key="admin_email">jsmith@example.com</item>
<item key="whois_privacy_state">enabled</item>
<item key="registration_text">Domain registration
successfully completed. WHOIS Privacy successfully enabled. Domain
successfully locked.</item>
<item key="registration_code">200</item>
<item key="id">3735281</item>
<item key="cancelled_orders">
<dt_array>
<item key="0">3764860</item>
<item key="1">3764861</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
About this example:

This is a new domain name registration.


This registration is based on another domain (example.com).
No custom tech contact is set.
DNS template is applied.
553

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.10.19</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew"/>
<item key="link_domains">0</item>
<item key="dns_template">newdnstemplate</item>
<item key="custom_tech_contact">0</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="reg_domain">example.com</item>
<item key="f_lock_domain">0</item>
<item key="domain">example.net</item>
<item key="affiliate_id"/>
<item key="period">10</item>
<item key="reg_type">new</item>
<item key="reg_username">daniel</item>
<item key="reg_password">daniel</item>
<item key="custom_nameservers">0</item>
<item key="encoding_type"/>
</dt_assoc>
</item>

554

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Domain registration successfully
completed.</item>
<item key="attributes">
<dt_assoc>
<item key="registration_code">435</item>
<item key="id">3735283</item>
<item key="forced_pending">3735283</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

555

Example 3
About this example:

This is a new domain name registration.


No custom tech contact is set.
DNS is enabled but no records are defined.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.10.19</item>
<item key="attributes">
<dt_assoc>
<item key="dns_template">*blank*</item>
<item key="auto_renew"/>
<item key="link_domains">0</item>
<item key="reg_domain"/>
<item key="f_lock_domain">1</item>
<item key="f_whois_privacy">1</item>
<item key="f_parkp">Y</item>
<item key="domain">example.com</item>
<item key="affiliate_id"/>
<item key="period">1</item>
<item key="reg_type">new</item>
<item key="reg_username">daniel</item>
<item key="custom_tech_contact">0</item>
<item key="contact_set">

556

... see "Contact Set"


</item>
<item key="reg_password">daniel</item>
<item key="encoding_type"/>
<item key="custom_nameservers">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="response_text">Domain registration successfully completed
Domain successfully locked.
Whois Privacy successfully enabled.</item>
<item key="action">REPLY</item>
<item key="attributes">
<dt_assoc>
<item key="admin_email">email@example.com</item>
<item key="registration_text">Domain registration successfully
completed
Domain successfully locked.
Whois Privacy successfully enabled.</item>
<item key="registration_code">200</item>

557

<item key="id">177411</item>
</dt_assoc>
</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .AERO


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">sw_register</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="handle">process</item>
<item key="reg_username">aaaa</item>
<item key="reg_password">aaaa</item>
<item key="auto_renew">0</item>
<item key="link_domains">0</item>
<item key="f_whois_privacy">1</item>
<item key="f_lock_domain">1</item>
<item key="custom_tech_contact">1</item>
<item key="contact_set">

558

... see "Contact Set"


</item>
<item key="domain">example.aero</item>
<item key="affiliate_id"/>
<item key="period">1</item>
<item key="reg_type">new</item>
<item key="bulk_order">0</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="sortorder">1</item>
<item key="name">ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="sortorder">2</item>
<item key="name">ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="encoding_type"/>
<item key="action">register</item>
<item key="custom_nameservers">1</item>
<item key="tld_data">
<dt_assoc>
<item key="registrant_extra_info">
<dt_assoc>
<item key="aero_ens_password">EnsPa55w0rd</item>
<item key="aero_ens_id">EnsId</item>
</dt_assoc>
</item>
</dt_assoc>

559

</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_code">250</item>
<item key="is_success">1</item>
<item key="response_text">Domain registration successfully
submitted</item>
<item key="rr_id">13689</item>
<item key="transaction_id">2012-05-16 09:10:36 1250 101</item>
<item key="domain_id">707819</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Domain registration successfully
submitted</item>
<item key="admin_email">adler@example.com</item>
<item key="registration_code">300</item>
<item key="waiting_request">sw_register</item>

560

<item key="waiting_requests_no">1</item>
<item key="id">477659</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

561

For domain = .ASIA


About this example:

This is a new domain name registration


The required ASIA-specific data is contained in the ced_info
associative array.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='custom_tech_contact'>0</item>
<item key='auto_renew'>0</item>
<item key='reg_type'>new</item>
<item key='reg_username'>sanford</item>
<item key='reg_password'>mypass</item>
<item key='domain'>example.asia</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>

562

<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='tld_data'>
<dt_assoc>
<item key='ced_info'>
<dt_assoc>
<item key='locality_country'>JP</item>
<item key='legal_entity_type'>naturalPerson</item>
<item key='id_type'>passport</item>
<item key='id_number'>12345</item>
<item key='contact_type'>admin</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='custom_nameservers'>0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>

563

<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>


<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='registration_code'>200</item>
<item key='id'>96852687</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .AU


Request
Note: .AU registrations require two contact types: owner and tech.
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>

564

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='reg_type'>new</item>
<item key='domain'>example.com.au</item>
<item key='period'>2</item>
<item key='link_domains'>0</item>
<item key='f_lock_domain'>1</item>
<item key='auto_renew'>0</item>
<item key='reg_domain'/>
<item key='reg_username'>user123</item>
<item key='reg_password'>changeit</item>
<item key='tld_data'>
<dt_assoc>
<item key='au_registrant_info'>
<dt_assoc>
<item key='registrant_name'>Registered Company
Name Ltd</item>
<item key='registrant_id_type'>ABN</item>
<item key='policy_reason'>1</item>
<item key='registrant_id'>99 999 999 999</item>
<item key='eligibility_type'>Registered

Business</item>
CTO</item>

<item key='eligibility_name'>Don Marshall


<item key='eligibility_id_type'>ACN</item>
<item key='eligibility_id'>99999999</item>
</dt_assoc>
</item>
</dt_assoc>

565

</item>
<item key='custom_tech_contact'>1</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='custom_nameservers'>1</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>

566

<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="response_text">OK</item>
<item key="action">REPLY</item>
<item key="attributes">
<dt_assoc>
<item key="admin_email">admin@example.com</item>
<item key="registration_text">Domain registration successfully
completed Domain successfully locked.</item>
<item key="registration_code">200</item>
<item key="id">417011</item>
</dt_assoc>
</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .CA


About this example:

This is a new domain name registration.


Neither custom tech nor custom nameservers are supplied.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>

567

<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="custom_tech_contact">0</item>
<item key="auto_renew">0</item>
<item key="reg_type">new</item>
<item key="reg_username">test</item>
<item key="domain">example.ca</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="domain_description">this is a domain
description</item>
<item key="link_domains">0</item>
<item key="period">1</item>
<item key="reg_password">passwd</item>
<item key="legal_type">CCT</item>
<item key="reg_domain"/>
<item key="custom_nameservers">0</item>
</dt_assoc>
</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="sortorder">1</item>
<item key="name">ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="sortorder">2</item>

568

<item key="name">ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>250</item>
<item key='response_text'>Domain registration successfully
submitted</item>
<item key='is_success'>1</item>
<item key='parameters'>
<dt_array>
<item key='0'>
<dt_assoc>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='attributes'>

569

<dt_assoc>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='rr_id'>839480</item>
<item key='domain_id'>14532389</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully submitted</item>
<item key='admin_email'>fraser@example.ca</item>
<item key='registration_code'>300</item>
<item key='waiting_requests_no'>1</item>
<item key='id'>56726064</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

or domain = .COM.BR

Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>

570

<item key="object">DOMAIN</item>
<item key="action">SW_REGISTER</item>
<item key="attributes">
<dt_assoc>
<item key="tld_data">
<dt_assoc>
<item key="br_register_number">114.113.111-11</item>
</dt_assoc>
</item>
<item key="reg_type">new</item>
<item key='handle'>process</item>
<item key="domain">mybraziliandomain.com.br</item>
<item key="period">1</item>
<item key='reg_domain'/>
<item key='reg_username'>username</item>
<item key='reg_password'>changeit123</item>
<item key="custom_tech_contact">1</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="custom_nameservers">1</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns1.livednsservice.com</item>
<item key="sortorder">1</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns2.livednsservice.com</item>
<item key="sortorder">2</item>
</dt_assoc>
</item>

571

<item key="2">
<dt_assoc>
<item key="name">ns3.livednsservice.com</item>
<item key="sortorder">3</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_code">250</item>
<item key="is_success">1</item>
<item key="rr_id">6466</item>
<item key="response_text">Domain registration successfully
submitted</item>
<item key="transaction_id">2011-04-14 18:12:39 25830 101</item>
<item key="domain_id">256808</item>

572

<item key="attributes">
<dt_assoc>
<item key="registration_text">Domain registration
successfully submitted</item>
<item key="admin_email">ajobim12345@somedomain.com.br</item>
<item key="registration_code">300</item>
<item key="waiting_requests_no">1</item>
<item key="waiting_request">sw_register</item>
<item key="id">296660</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .DE


Note: Submit .DE zone contact information as contact type billing.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='f_lock_domain'>0</item>

573

<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='affiliate_id'>affiliatetest1</item>
<item key='reg_type'>new</item>
<item key='reg_username'>andrew</item>
<item key='domain'>example.de</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='sortorder'>3</item>
<item key='name'>ns3.systemdnssystemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>

574

<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>individual</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>test</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Domain registration successfully
completed</item>

575

<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='admin_email'>robson@example.com</item>
<item key='registration_code'>200</item>
<item key='id'>607737</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .DK


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='affiliate_id'>affiliatetest1</item>
<item key='reg_type'>new</item>
<item key='reg_username'>test</item>

576

<item key='domain'>example.dk</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_vat_id'>123456789</item>
<item key='registrant_type'>organization</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>test</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>

577

<item key='custom_nameservers'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>250</item>
<item key='is_success'>1</item>
<item key='response_text'>Domain registration successfully
submitted</item>
<item key='rr_id'>29910</item>
<item key='domain_id'>753996</item>
<item key='transaction_id'>2013-10-01 12:00:49 1402 101</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully submitted</item>
<item key='admin_email'>robson@example.com</item>
<item key='registration_code'>300</item>
<item key='waiting_request'>sw_register</item>
<item key='waiting_requests_no'>1</item>

578

<item key='id'>607640</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .EU


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip"/>
<item key="attributes">
<dt_assoc>
<item key="domain">example.eu</item>
<item key="period">1</item>
<item key="reg_username">test</item>
<item key="reg_password">test</item>
<item key="custom_nameservers">0</item>
<item key="handle">process</item>
<item key="reg_domain"/>
<item key="reg_type">new</item>
<item key="contact_set">
... see "Contact Set"

579

</item>
<item key="custom_tech_contact">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Domain registration successfully
completed</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Domain registration
successfully completed</item>
<item key="registration_code">200</item>
<item key="id">16629</item>
<item key="admin_email">jsmith@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

580

</body>
</OPS_envelope>

For domain = .FR


Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_type'>new</item>
<item key='reg_username'>Andre</item>
<item key='domain'>example.fr</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>

581

<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='date_of_birth'>1989-03-03</item>
<item key='place_of_birth'>Paris</item>
<item key='country_of_birth'>FR</item>
<item key='postal_code_of_birth'>75008</item>
<item key='registrant_type'>individual</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>changeit</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

582

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='admin_email'>andre@example.com</item>
<item key='registration_code'>200</item>
<item key='id'>457700</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .HU


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>

583

<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='f_lock_domain'>1</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_type'>new</item>
<item key='reg_username'>zoltan</item>
<item key='domain'>example.hu</item>
<item key='contact_set'>
<dt_assoc>
<item key='admin'>
<dt_assoc>
<item key='first_name'>Daniel</item>
<item key='last_name'>Nagy</item>
<item key='address1'>Bem rakpart 49</item>
<item key='address2'/>
<item key='address3'/>
<item key='city'>Budapest</item>
<item key='state'/>
<item key='postal_code'>H-1037</item>
<item key='country'>HU</item>
<item key='org_name'>Varga Szoftver</item>
<item key='phone'>+1.3615550123</item>
<item key='fax'>+1.3615553653</item>
<item key='email'>dnagy@example.com</item>

584

</dt_assoc>
</item>
<item key='owner'>
<dt_assoc>
<item key='first_name'>Zoltan</item>
<item key='last_name'>Varga</item>
<item key='org_name'>Varga Szoftver</item>
<item key='address1'>Bem rakpart 49</item>
<item key='address2'/>
<item key='address3'/>
<item key='city'>Budapest</item>
<item key='state'/>
<item key='postal_code'>H-1037</item>
<item key='country'>HU</item>
<item key='fax'>+1.3615553651</item>
<item key='phone'>+1.3615550124</item>
<item key='email'>zoltan@example.com</item>
</dt_assoc>
</item>
<item key='tech'>
<dt_assoc>
<item key='first_name'>Paul</item>
<item key='last_name'>Farkas</item>
<item key='org_name'>Varga Szoftver</item>
<item key='address1'>Bem rakpart 49</item>
<item key='address2'/>
<item key='address3'/>
<item key='city'>Budapest</item>
<item key='state'/>
<item key='postal_code'>H-1037</item>
<item key='country'>HU</item>
<item key='fax'>+1.3615553652</item>
<item key='phone'>+1.3615550125</item>
<item key='email'>pfarkas@example.com</item>
</dt_assoc>

585

</item>
</dt_assoc>
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='sortorder'>3</item>
<item key='name'>ns3.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_vat_id'>12345678</item>
<item key='registrant_type'>organization</item>
</dt_assoc>
</item>

586

</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>changeit</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>250</item>
<item key='is_success'>1</item>
<item key='response_text'>Domain registration successfully
submitted</item>
<item key='domain_id'>709245</item>
<item key='transaction_id'>2012-06-19 13:49:57 1277 101</item>
<item key='attributes'>
<dt_assoc>

587

<item key='registration_text'>Domain registration


successfully submitted</item>
<item key='admin_email'>admin@example.com</item>
<item key='registration_code'>300</item>
<item key='waiting_request'>sw_register</item>
<item key='waiting_requests_no'>1</item>
<item key='id'>480990</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .INFO


About this example:

This is a new domain name registration.


It is based on another domain (example-nsi.com).
There is a custom tech contact.
There are no custom nameservers (notice the presence of the empty
nameserver_list array, which is permitted).

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.10.19</item>

588

<item key="attributes">
<dt_assoc>
<item key="auto_renew"/>
<item key="link_domains">0</item>
<item key="custom_tech_contact">1</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="reg_domain">example-nsi.com</item>
<item key="f_lock_domain">0</item>
<item key="domain">example.info</item>
<item key="affiliate_id"/>
<item key="period">2</item>
<item key="reg_type">new</item>
<item key="reg_username">daniel</item>
<item key="nameserver_list">
<dt_array/>
</item>
<item key="reg_password">daniel</item>
<item key="encoding_type"/>
<item key="custom_nameservers">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

589

<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='registration_code'>200</item>
<item key='id'>23994</item>
<item key='admin_email'>admin@example.info</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .IT


Example 1
This example registers a domain to a person (entity_code=1). In this case,
the admin contact does not need to be defined as it must be the same as the
owner; if the admin contact is specified, it is ignored. Similarly, org_name is
not required in this instance, and if specified, is ignored.

Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>

590

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="reg_username">aaaa</item>
<item key="tld_data">
<dt_assoc>
<item key="it_registrant_info">
<dt_assoc>
<item key="nationality_code">IT</item>
<item key="reg_code">SGLMRA80A01H501E</item>
<item key="entity_type">1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="custom_tech_contact">1</item>
<item key="reg_password">aaaa</item>
<item key="period">1</item>
<item key="f_whois_privacy">0</item>
<item key="link_domains">0</item>
<item key="custom_nameservers">1</item>
<item key="f_lock_domain">0</item>
<item key="domain">example031.it</item>
<item key="reg_type">new</item>
<item key="reg_domain"></item>
<item key="contact_set">
<dt_assoc>
<item key="owner">

591

<dt_assoc>
<item key="first_name">Mario</item>
<item key="last_name">Segale</item>
<item key="org_name">Mario Segale</item>
<item key="address1">Via del Campidoglio, 1</item>
<item key="city">Rome</item>
<item key="state">RM</item>
<item key="country">IT</item>
<item key="postal_code">00123</item>
<item key="phone">+39.0612345678</item>
<item key="email">mario@mail.it</item>
</dt_assoc>
</item>
<item key="tech">
<dt_assoc>
<item key="first_name">Frank</item>
<item key="last_name">Mosser</item>
<item key="org_name">Tech Orgname</item>
<item key="address1">Piazza dei Giudici 1</item>
<item key="city">Firenze</item>
<item key="state">FI</item>
<item key="country">IT</item>
<item key="postal_code">50123</item>
<item key="phone">+39.0551234567</item>
<item key="email">qafive@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns1.systemdns.com</item>
<item key="sortorder">1</item>

592

</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns2.systemdns.com</item>
<item key="sortorder">2</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="name">ns3.systemdns.com</item>
<item key="sortorder">3</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>

593

<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Domain registration successfully
completed</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Domain registration successfully
completed</item>
<item key="admin_email">mario@mail.it</item>
<item key="registration_code">200</item>
<item key="id">214946</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>`
</OPS_envelope>

Example 2
This example registers a domain to an Italian company (entity_type = 2).
In this case, the admin contact is required.

Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>

594

<item key="attributes">
<dt_assoc>
<item key="reg_username">aaaa</item>
<item key="tld_data">
<dt_assoc>
<item key="it_registrant_info">
<dt_assoc>
<item key="nationality_code">IT</item>
<item key="reg_code">06612345675</item>
<item key="entity_type">2</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="reg_password">aaaa</item>
<item key="period">1</item>
<item key="f_whois_privacy">0</item>
<item key="link_domains">0</item>
<item key="custom_nameservers">1</item>
<item key="f_lock_domain">0</item>
<item key="domain">example032.it</item>
<item key="reg_type">new</item>
<item key="reg_domain"></item>
<item key="custom_tech_contact">1</item>
<item key="contact_set">
<dt_assoc>
<item key="admin">
<dt_assoc>
<item key="first_name">Mario</item>
<item key="last_name">Segale</item>
<item key="org_name">Mario Segale</item>
<item key="address1">Via del Campidoglio, 1</item>
<item key="city">Rome</item>
<item key="state">RM</item>
<item key="country">IT</item>

595

<item key="postal_code">00123</item>
<item key="phone">+39.0612345678</item>
<item key="email">mario@mail.it</item>
</dt_assoc>
</item>
<item key="owner">
<dt_assoc>
<item key="first_name">Franco</item>
<item key="last_name">Pendenza</item>
<item key="org_name">Aumento Inc</item>
<item key="address1">Via del Inclinazione, 1</item>
<item key="city">Pisa</item>
<item key="state">PI</item>
<item key="country">IT</item>
<item key="postal_code">52123</item>
<item key="phone">+39.0501234567</item>
<item key="email">tilt@mail.it</item>
<item key="fax">+39.0501234568</item>
</dt_assoc>
</item>
<item key="tech">
<dt_assoc>
<item key="first_name">Frank</item>
<item key="last_name">Mosser</item>
<item key="org_name">Tech Orgname</item>
<item key="address1">Piazza dei Giudici 1</item>
<item key="city">Firenze</item>
<item key="state">FI</item>
<item key="country">IT</item>
<item key="postal_code">50123</item>
<item key="phone">+39.0551234567</item>
<item key="email">qafive@example.com</item>
</dt_assoc>
</item>
</dt_assoc>

596

</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns1.systemdns.com</item>
<item key="sortorder">1</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns2.systemdns.com</item>
<item key="sortorder">2</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="name">ns3.systemdns.com</item>
<item key="sortorder">3</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>

597

<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Domain registration successfully
completed</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Domain registration successfully
completed</item>
<item key="admin_email">mario@mail.it</item>
<item key="registration_code">200</item>
<item key="id">214947</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

598

For domain = .JOBS


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">sw_register</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="handle">process</item>
<item key="reg_username">Daniel</item>
<item key="reg_password">changeit</item>
<item key="auto_renew">0</item>
<item key="link_domains">0</item>
<item key="f_whois_privacy">0</item>
<item key="f_lock_domain">0</item>
<item key="custom_tech_contact">0</item>
<item key="contact_set">
<dt_assoc>
<item key="owner">
<dt_assoc>
<item key="first_name">Owen</item>
<item key="last_name">Ottway</item>
<item key="address1">123 Oak St.</item>
<item key="state">CA</item>
<item key="city">Santa Clara</item>
<item key="postal_code">90210</item>

599

<item key="country">US</item>
<item key="phone">+1.4165551212</item>
<item key="fax">+1.4165551234</item>
<item key="email">owen@example.com</item>
<item key="org_name">Example Inc.</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="domain">example.jobs</item>
<item key="affiliate_id"/>
<item key="period">1</item>
<item key="reg_type">new</item>
<item key="bulk_order">0</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="sortorder">1</item>
<item key="name">ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="sortorder">2</item>
<item key="name">ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="encoding_type"/>
<item key="action">register</item>
<item key="custom_nameservers">1</item>
<item key="tld_data">
<dt_assoc>

600

<item key="registrant_extra_info">
<dt_assoc>
<item key="jobs_admin_type">Yes</item>
<item key="jobs_industry_type">Supply Chain
Management</item>
<item key="jobs_title">HR Generalist</item>
<item key="jobs_association_member">Yes</item>
<item
key="jobs_website">http://www.example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_code">250</item>
<item key="is_success">1</item>
<item key="response_text">Domain registration successfully

601

submitted</item>
<item key="rr_id">13688</item>
<item key="transaction_id">2012-05-16 09:04:19 1249 101</item>
<item key="domain_id">707818</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Domain registration successfully
submitted</item>
<item key="admin_email">a@b.com</item>
<item key="registration_code">300</item>
<item key="waiting_request">sw_register</item>
<item key="waiting_requests_no">1</item>
<item key="id">477658</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .NAME


The registrant is requesting a forwarding email address with their domain.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>

602

<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.10.19</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew"/>
<item key="link_domains">0</item>
<item key="custom_tech_contact">0</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="reg_domain">example-nsi.com</item>
<item key="f_lock_domain">0</item>
<item key="domain">jane.doe.name</item>
<item key="affiliate_id"/>
<item key="period">10</item>
<item key="reg_type">new</item>
<item key="reg_username">example</item>
<item key="nameserver_list">
<dt_array/>
</item>
<item key="tld_data">
<dt_assoc>
<item
key="forwarding_email">johndoe@netscape.net</item>
</dt_assoc>
</item>
<item key="reg_password">example</item>
<item key="encoding_type"/>
<item key="custom_nameservers">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

603

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='registration_code'>200</item>
<item key='id'>23995</item>
<item key='admin_email'>mail@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .PM, .RE, .TF, .WF, or .YT


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd"><OPS_envelope>

604

<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='f_lock_domain'>1</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_type'>new</item>
<item key='reg_username'>lafleur</item>
<item key='domain'>example.pm</item>
<item key='contact_set'>
<dt_assoc>
<item key='admin'>
<dt_assoc>
<item key='first_name'>Marie</item>
<item key='last_name'>LaFleur</item>
<item key='org_name'>French Impressions</item>
<item key='address1'>13 Rue Daze</item>
<item key='address2'/>
<item key='address3'/>
<item key='city'>Paris</item>
<item key='state'/>
<item key='postal_code'>75002</item>
<item key='country'>FR</item>
<item key='fax'>+1.3365550125</item>
<item key='phone'>+1.3365551213</item>
<item key='email'>marie@example.com</item>
</dt_assoc>

605

</item>
<item key='owner'>
<dt_assoc>
<item key='first_name'>Henri</item>
<item key='last_name'>LaFleur</item>
<item key='org_name'>French Impressions</item>
<item key='address1'>13 Rue Daze</item>
<item key='address2'/>
<item key='address3'/>
<item key='city'>Paris</item>
<item key='state'/>
<item key='postal_code'>75002</item>
<item key='country'>FR</item>
<item key='phone'>+1.3365551212</item>
<item key='fax'>+1.3365550124</item>
<item key='email'>lafleur@example.com</item>
</dt_assoc>
</item>
<item key='tech'>
<dt_assoc>
<item key='first_name'>Pierre</item>
<item key='last_name'>LaFleur</item>
<item key='org_name'>French Impressions</item>
<item key='address1'>13 Rue Daze</item>
<item key='address2'/>
<item key='address3'/>
<item key='city'>Paris</item>
<item key='state'/>
<item key='postal_code'>75002</item>
<item key='country'>FR</item>
<item key='phone'>+1.3365551214</item>
<item key='fax'>+1.3365550125</item>
<item key='email'>pierre@example.com</item>
</dt_assoc>
</item>

606

</dt_assoc>
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='sortorder'>3</item>
<item key='name'>ns3.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registration_number'/>
<item key='registrant_vat_id'>1X345678901</item>
<item key='registrant_type'>organization</item>
</dt_assoc>
</item>
</dt_assoc>

607

</item>
<item key='period'>1</item>
<item key='reg_password'>changeit</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='admin_email'>admin@example.com</item>
<item key='registration_code'>200</item>

608

<item key='id'>481007</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .PRO


Request
<?xml version='1.0' encoding='UTF-8'?> <OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='f_lock_domain'>1</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_type'>new</item>
<item key='reg_username'>robson</item>
<item key='domain'>dentalpro13.pro</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>

609

<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='sortorder'>3</item>
<item key='name'>ns3.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
*<item key='professional_data'>
<dt_assoc>
<item
key='authority_website'>http://www.cda-adc.ca</item>
<item key='license_number'>123456789</item>
<item key='authority'>Canadian Dental

Association</item>

<item key='profession'>Dentist</item>
</dt_assoc>*
</item>
</dt_assoc>
</item>
<item key='period'>1</item>

610

<item key='reg_password'>aaaa</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='action'>REPLY</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='admin_email'>qafive@example.com</item>
<item key='registration_code'>200</item>
<item key='id'>454197</item>
</dt_assoc>

611

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .US


About this example:

This is a new domain name registration


This creates a new user profile
There is no custom tech contact
Custom nameservers are set
The additional US-specific data is contained in the 'tld_data' subassociative array. 'nexus' itself is also an associative array with three
items.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='custom_tech_contact'>0</item>
<item key='auto_renew'>0</item>
<item key='reg_type'>new</item>
<item key='reg_username'>aaaa</item>
<item key='domain'>example.us</item>

612

<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='nexus'>
<dt_assoc>
<item key='category'>C11</item>
<item key='app_purpose'>P3</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>aaaa</item>
<item key='reg_domain'>corelogic0.info</item>
<item key='custom_nameservers'>0</item>
</dt_assoc>
</item>
</dt_assoc>

613

</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='admin_email'>mail@example.us</item>
<item key='registration_code'>200</item>
<item key='id'>56726889</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

614

For domain = .XXX


Example 1
This example registers a domain for a registrant who is already a verified
member of the XXX Sponsored Community. The registrant would like all
communications to be sent to an alternate contact.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='reg_type'>new</item>
<item key='f_lock_domain'>1</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_username'>aaaa</item>
<item key='domain'>example.xxx</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>

615

<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='ipr_data'>
<dt_assoc>
<item key='icm_membership_id'>123456</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>aaaa</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

616

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>0</item>
<item key='response_text'>Domain registration successfully
completed. Domain successfully locked.</item>
<item key='attributes'>
<dt_assoc>
<item key='admin_email'>qafive@example.com</item>
<item key='id'>457626</item>
<item key='registration_code'>200</item>
<item key='registration_text'>Domain registration
successfully completed. Domain successfully locked.</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

617

Example 2
This example registers a domain to a registrant who wants to register the
domain name, but does not want it to resolve. This registrant is not currently
a member of the Sponsored Community.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='reg_type'>new</item>
<item key='f_lock_domain'>1</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_username'>aaaa</item>
<item key='domain'>example.xxx</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>

618

</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='ipr_data'>
<dt_assoc>
<item key='ipr_non_resolver'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>aaaa</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>

619

<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>0</item>
<item key='response_text'>Domain registration successfully
completed. Domain successfully locked.</item>
<item key='attributes'>
<dt_assoc>
<item key='admin_email'>qafive@example.com</item>
<item key='id'>256841</item>
<item key='registration_code'>200</item>
<item key='registration_text'>Domain registration
successfully completed. Domain successfully locked.</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = new gTLD during Sunrise period


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>

620

</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='f_lock_domain'>1</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_type'>sunrise</item>
<item key='handle'>save</item>
<item key='reg_username'>riggs</item>
<item key='domain'>example.guru</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>

621

</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='trademark_smd'> Trademark SMD:Marks:

TEST

smdID: 00000096381377086406165-1
U-labels: sunrise-test
notBefore: 2013-08-21 14:00:06
notAfter: 2015-07-01 00:00:00
-----BEGIN ENCODED SMD----PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJ
rIHht
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8
0Yjk4
YzMzOC03ZjAxLTQyYWMtYjQyMS00MTQ5YWVkN2JhYjIiPgogIDxzbWQ6aWQ+MDAwMDAwOTYz
YzMzOC03ZjAxLTQyYWMtYjQyMS00MTQ5YWVkN2JhYjIiPgogIDxzbWQ6aWQ+ODEz
NzcwODY0MDYxNjUtMTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iMSI
+CiAg
ICA8c21kOm9yZz5EZWxvaXR0ZTwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+YmV0bWNoc21k
ICA8c21kOm9yZz5EZWxvaXR0ZTwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+QGRl
bG9pdHRlLmJlPC9zbWQ6ZW1haWw+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJl
bG9pdHRlLmJlPC9zbWQ6ZW1haWw+Zm9y
ZT4yMDEzLTA4LTIxVDEyOjAwOjA2LjE2NVo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RB
ZT4yMDEzLTA4LTIxVDEyOjAwOjA2LjE2NVo8L3NtZDpub3RCZWZvcmU+ZnRl
cj4yMDE1LTA2LTMwVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJ
rIHht
bG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms
6dHJh
ZGVtYXJrPgogICAgICA8bWFyazppZD4wMDA1MjUxMzc2NDA0OTY4MTM3NjQwNDk2OC0xPC9
tYXJr
OmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UVUNPV1M8L21hcms6bWFya05hbWU+CiAgICAg
OmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UVUNPV1M8L21hcms6bWFya05hbWU+IDxt
YXJrOmhvbGRlciBlbnRpdGxlbWVudD0ib3duZXIiPgogICAgICAgIDxtYXJrOm9yZz5UVUN
PV1Mg
KERFTEFXQVJFKSBJTkMuPC9tYXJrOm9yZz4KICAgICAgICA8bWFyazphZGRyPgogICAgICA
gICAg
PG1hcms6c3RyZWV0PjEyMDkgT1JBTkdFIFNUUkVFVCBDT1JQT1JBVElPTiBUUlVTVCBDRU5
URVI8

622

L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5XSUxNSU5HVE9OPC9tYXJrOmN
pdHk+
CiAgICAgICAgICA8bWFyazpzcD5ERUxBV0FSRTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJ
rOnBj
PjE5ODAxPC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAg
PjE5ODAxPC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+ICAg
PC9tYXJrOmFkZHI+CiAgICAgIDwvbWFyazpob2xkZXI+CiAgICAgIDxtYXJrOmNvbnRhY3Qg
PC9tYXJrOmFkZHI+CiAgICAgIDwvbWFyazpob2xkZXI+dHlw
ZT0iYWdlbnQiPgogICAgICAgIDxtYXJrOm5hbWU+QWxleGFuZGVyIFNjaHdlcnRuZXI8L21h
ZT0iYWdlbnQiPgogICAgICAgIDxtYXJrOm5hbWU+cms6
bmFtZT4KICAgICAgICA8bWFyazpvcmc+RVBBRyBEb21haW5zZXJ2aWNlcyBHbWJIPC9tYXJr
bmFtZT4KICAgICAgICA8bWFyazpvcmc+Om9y
Zz4KICAgICAgICA8bWFyazphZGRyPgogICAgICAgICAgPG1hcms6c3RyZWV0PlJoZWluYWx
sZWUg
MzwvbWFyazpzdHJlZXQ+CiAgICAgICAgICA8bWFyazpjaXR5PkJvbm48L21hcms6Y2l0eT4K
MzwvbWFyazpzdHJlZXQ+ICAg
ICAgICAgIDxtYXJrOnNwPk5SVzwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjUzMTc
zPC9t
YXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+REU8L21hcms6Y2M+CiAgICAgICAgPC9tYXJr
YXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+REU8L21hcms6Y2M+OmFk
ZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzQ5LjIyODMyOTY4NDA8L21hcms6dm9pY2U+CiAg
ZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzQ5LjIyODMyOTY4NDA8L21hcms6dm9pY2U+ICAg
ICAgPG1hcms6ZW1haWw+cmVnaXN0cnktcmVsYXRpb25zQGVwYWcuZGU8L21hcms6ZW1haWw
+CiAg
ICAgIDwvbWFyazpjb250YWN0PgogICAgICA8bWFyazpqdXJpc2RpY3Rpb24+VVM8L21hcms6
ICAgIDwvbWFyazpjb250YWN0PgogICAgICA8bWFyazpqdXJpc2RpY3Rpb24+anVy
aXNkaWN0aW9uPgogICAgICA8bWFyazpjbGFzcz40MjwvbWFyazpjbGFzcz4KICAgICAgPG1
hcms6
bGFiZWw+dHVjb3dzPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpnb29kc0FuZFNlcnZpY2Vz
bGFiZWw+PklD
IDA0Mi4gVVMgMTAwIDEwMS4gRyAmYW1wOyBTOiBjb21wdXRlciBzb2Z0d2FyZSBpbmZvcm1
hdGlv
biBzZXJ2aWNlcywgbmFtZWx5LCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgY29tcHV0ZXIgc29
mdHdh
cmUgcmVsYXRlZCB0byBhIGdsb2JhbCBjb21wdXRlciBuZXR3b3JrLCBvZmZlcmVkIHZpYSB
hIGds
b2JhbCBjb21wdXRlciBuZXR3b3JrLiBGSVJTVCBVU0U6IDE5OTQwODAwLiBGSVJTVCBVU0U
gSU4g
Q09NTUVSQ0U6IDE5OTQwODAwPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJr

623

Q09NTUVSQ0U6IDE5OTQwODAwPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+OnJl
Z051bT4yMjQ3MTk2PC9tYXJrOnJlZ051bT4KICAgICAgPG1hcms6cmVnRGF0ZT4xOTk5LTA
1LTI0
VDIyOjAwOjAwLjAwMFo8L21hcms6cmVnRGF0ZT4KICAgIDwvbWFyazp0cmFkZW1hcms+CiAg
VDIyOjAwOjAwLjAwMFo8L21hcms6cmVnRGF0ZT4KICAgIDwvbWFyazp0cmFkZW1hcms+PC9t
YXJrOm1hcms+CjxkczpTaWduYXR1cmUgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIw
YXJrOm1hcms+MDAv
MDkveG1sZHNpZyMiIElkPSJfYTQwNWQ3OTAtMzJmYS00YjJiLTg2OTAtZTkyYmMzNjdiMDA
0Ij48
ZHM6U2lnbmVkSW5mbz48ZHM6Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh
0dHA6
Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjxkczpTaWduYXR1cmVNZXR
ob2Qg
QWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNyc2E
tc2hh
MjU2Ii8+PGRzOlJlZmVyZW5jZSBVUkk9IiNfNGI5OGMzMzgtN2YwMS00MmFjLWI0MjEtNDE0
MjU2Ii8+OWFl
ZDdiYWIyIj48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDo
vL3d3
dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiLz48ZHM6VHJ
hbnNm
b3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4
jIi8+
PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d
3Lncz
Lm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+Qk5Eb0IyS0VC
Lm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+UC9D
UGZHYXpGZTZFZkptNmllSUF1VnhYM2NMMTBmdVhBOD08L2RzOkRpZ2VzdFZhbHVlPjwvZHM
6UmVm
ZXJlbmNlPjxkczpSZWZlcmVuY2UgVVJJPSIjXzFkOWQwMjNlLTNmYjUtNDAxMi1iYjExLTd
iYmNl
ZjAxZTdjZCI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6
ZjAxZTdjZCI+PGRzOlRyYW5zZm9ybXM+Ly93
d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jtcz48ZHM
6RGln
ZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmM
jc2hh
MjU2Ii8+PGRzOkRpZ2VzdFZhbHVlPmx2Q2dCdFBkUlAydURZR05lQ0hqMXhaSmJhUlVwOW04
MjU2Ii8+em5K
S2hNOUtKakE9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48L2RzOlNpZ25lZEl
uZm8+

624

PGRzOlNpZ25hdHVyZVZhbHVlIElkPSJfNjJmNzA4Y2UtMmM5YS00ZjMwLTk4NTgtMDc0OTM
1ZmE1
YmE5Ij5pTDNpUmdCaVRNUTFmajNZT2F3VFZJQ3RpZmJETE9tL0x1NjF6UE9iOU5HYTZRT3N
ISTFZ
dnB6SDVYREJ6N1dRcVZmZDJ5V0VPdWFRClBOUjZjQUhHT3h0c0M2QytVRy94UmFoM2JnUUw
0Tmwv
cXI2SVBOd3dQdmNtVFlYYTBIUjV6MkRXNVJUbHZUY2dIQjA5Q1Z4eng5SkMKMFRnVjhpVE9
2bmpB
eFZ6OTF6dlJ5dUE0UFhvdi8waDBKcjg2a1F5WXhwanZJTXp4Y1pJb1ZhcVdZZWNrcGpUZDk
2Znhn
TGhBQ0ZhUAo5YkVQMkZKTDl4QnJ3SnU4Mjdsd1dkRlJGWmJhL2ZKSVFROVAyN0k4aWVUR29
FUzA4
NTFmSWNNUHRmcjhmQkZvRHNOV25QQkdZSkY2CnlOUC80NEozTXBmU3pKcDBvUXNEbnM0L2l
TY2U1
S2xsR0crdzNRPT08L2RzOlNpZ25hdHVyZVZhbHVlPjxkczpLZXlJbmZvIElkPSJfMWQ5ZDA
yM2Ut
M2ZiNS00MDEyLWJiMTEtN2JiY2VmMDFlN2NkIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0
M2ZiNS00MDEyLWJiMTEtN2JiY2VmMDFlN2NkIj48ZHM6WDUwOURhdGE+aWZp
Y2F0ZT5NSUlGTlRDQ0JCMmdBd0lCQWdJaEFKTkNNcWhOanozY1hWSlBqN3l2Y1p2cm8xRkt
RUitk
VEM2dFhhemVtNWcvTUEwR0NTcUdTSWIzCkRRRUJDd1VBTUhZeEN6QUpCZ05WQkFZVEFsVlR
NVHd3
T2dZRFZRUUtFek5KYm5SbGNtNWxkQ0JEYjNKd2IzSmhkR2x2YmlCbWIzSWcKUVhOemFXZHV
aV1Fn
VG1GdFpYTWdZVzVrSUU1MWJXSmxjbk14S1RBbkJnTlZCQU1USUVsRFFVNU9JRlJ5WVdSbGJ
XRnlh
eUJEYkdWaApjbWx1WjJodmRYTmxJRU5CTUI0WERURXpNRGN5TkRBd01EQXdNRm9YRFRFNU1
EY3lN
ekl6TlRrMU9Wb3dnYUF4Q3pBSkJnTlZCQVlUCkFrSkZNUkV3RHdZRFZRUUlFd2hDY25WemM
yVnNj
ekVSTUE4R0ExVUVCeE1JVFdGamFHVnNaVzR4RVRBUEJnTlZCQW9UQ0VSbGJHOXAKZEhSbE1
USXdN
QVlEVlFRREV5bEpRMEZPVGlCVVRVTklJRUYxZEdodmNtbDZaV1FnVkhKaFpHVnRZWEpySUZ
aaGJH
bGtZWFJ2Y2pFawpNQ0lHQ1NxR1NJYjNEUUVKQVJZVlltVjBiV05vYzIxa1FHUmxiRzlwZEh
SbExt
SmxNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DCkFROEFNSUlCQ2dLQ0FRRUF5VSs0a3d
xaHlE
QU13YlhINnhyZ3JKK0NzTzVPN2JMZGtEMk1vTmFKajFLUlcxY2ZTUVVNUUM0ZHpJd1QKM0d
nZksw
M1lPSk9wTTFUSjQvM2xZMWFTcmFMSnRtRy9LYlVrZDFub0RNWmlja3FqQWtISDhtTGliYlF
1Zjl2

625

dFpWV0ZOUW5td0h4VwoyWWFxRlVzUUFGQVNjRjNURmE0dG1rZDFZbU1Zb2IzYUdUaFZUMkl
maktt
OXpUNkhNT1JqNCtYd0gvamRkOGxKeHIwSmJCc0dCSzloClBab3o1NXdvVWJNTFhLcWVvVFl
OTE5V
R0VNRlpYWktKSllIQzdFcFl4d3hKaDNtN2NWK2x0UVZzWG5NMlZndVZWak5EUjVYNEY2NCs
KcG54
ZGp2SzFPUEVxWDBRWVJhMzYrYW9QTlQ5cGdtM3RJVE5PSUQ4ZnFIeFh5TGRsbTRnTzZ3SUR
BUUFC
bzRJQmdUQ0NBWDB3REFZRApWUjBUQVFIL0JBSXdBREFkQmdOVkhRNEVGZ1FVc21rQjl0SDI
5cURR
N204TUdyWDhxdXdJVFp3d2djQUdBMVVkSXdTQnVEQ0J0WUFVClhNRHhsaXpLVEZzcDhVQjA
weHMy
UGtmVWJnU2hlcVI0TUhZeEN6QUpCZ05WQkFZVEFsVlRNVHd3T2dZRFZRUUtFek5KYm5SbGN
tNWwK
ZENCRGIzSndiM0poZEdsdmJpQm1iM0lnUVhOemFXZHVaV1FnVG1GdFpYTWdZVzVrSUU1MWJ
XSmxj
bk14S1RBbkJnTlZCQU1USUVsRApRVTVPSUZSeVlXUmxiV0Z5YXlCRGJHVmhjbWx1WjJodmR
YTmxJ
RU5CZ2lFQWswSXlxRTJQUGR4ZFVrK1B2Szl4bSt1alVVcEJINTFNCkxxMWRyTjZibUQ0d0R
nWURW
UjBQQVFIL0JBUURBZ2VBTUM0R0ExVWRId1FuTUNVd0k2QWhvQitHSFdoMGRIQTZMeTlqY21
3dWFX
TmgKYm00dWIzSm5MM1J0WTJndVkzSnNNRXNHQTFVZElBUkVNRUl3RUFZT0t3WUJCQUdDeVJ
zQkJZ
TTdDQW93TGdZSUt3WUJCUVVIQWdFdwpJakFnQmdnckJnRUZCUWNDQVJZVWFIUjBjSE02THk
5allT
NXBZMkZ1Ymk1dmNtY3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQTdKCmhXZHZpdUtkeXN
ZM2pl
T3pic1gyRFRtN1RxdmN0Y0V0am1hTy80VW1OMDlDc01USUUzcGptNUtxdzQ5cmxoR0VLM2V
uRGFU
S1hWRXUKMG5iYkRxZUJENjA2WithbFlNNjN3dzRRbjRUYVNiTmNlaDZubGhDYzcrWEI5VGR
LUHJw
SFVwUmhsSDdOM1dXWUsvUGQyMEVmUVR5bwo4UStIMVppbXV3VGdTU2dzN2JvVUlDSWFadFJ
YTG5J
YXZoL2ZNaWYySkpPbDZpUXhsNEp6d2ErUHQwdkd2Q1IrYUx1RVNnWkZuMDR2CmpGVWFUbHF
3YVhv
YUVkOUs2SmxQa2NGTHFIcmN4MlpKSzE5eHBjWTBSR3FreXloc3A1S0RsS0I5RGZraWxhK3l
GcGRQ
R2JjN05rNTgKUkxGSHYvaUlqZTZiZUxwY1FZcS9mQnMzSGRaT2dTQXBiVkE9PC9kczpYNTA
5Q2Vy
dGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9z
dGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+bWQ6
c2lnbmVkTWFyaz4=

626

-----END ENCODED SMD----</item>


</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>aaaa</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Order created</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="admin_email">qafive@example.com</item>

627

<item key="id">422013</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = new gTLD during Claims period


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='f_lock_domain'>1</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_type'>new</item>
<item key='reg_username'>riggs</item>
<item key='domain'>example.guru</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='f_whois_privacy'>0</item>

628

<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</item>
<item key='period'>1</item>
<item key='reg_password'>aaaa</item>
<item key='custom_nameservers'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>

629

<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>260</item>
<item key='is_success'>1</item>
<item key='response_text'>Registration is pending registrant
review before completing due to claim/trademark.</item>
<item key='transaction_id'>2014-03-06 16:30:17 1701 101</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Registration is pending
registrant review before completing due to claim/trademark.</item>
<item key='admin_email'>qafive@example.com</item>
<item key='registration_code'>300</item>
<item key='id'>654276</item>
<item key='async_reason'>has_claim</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Trust Service Examples


Note: Title is required in the 'contact set' associative array, for Symantec,
thawte, TrueBusiness ID with EV and Comodo EV certificates.

Example 1
This example is an order for a Symantec SecureSite certificate with seal-insearch and trust seal.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>

630

<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>sw_register</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='trust_seal'>1</item>
<item key='reg_type'>NEW</item>
<item key='seal_in_search'>1</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='special_instructions'>Test ABC</item>
<item key='handle'>process</item>
<item key='csr'>-----BEGIN CERTIFICATE REQUEST----MIIC4TCCAckCAQAwgZsxKTAnBgNVBAMTIHNlY3VyZXNpdGUudGVzdDEyODU4NzYw
MzY2MDgub3JnMQswCQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rv
cm9udG8xDzANBgNVBAoTBm5ld29yZzEPMA0GA1UECxMGUUFEZXB0MSAwHgYJKoZI
hvcNAQkBFhFxYWZpdmVAdHVjb3dzLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAJ0FDLurKaddUzayM5FgICBhy8DkOaBuYzCiHSFw6xRUf9CjAHpC
/MiUM5TnegMiU02COAPmfeHZAERv21CoB/HPDcshewHJywzs8nwcbGncz37eFhNG
FQNIif5ExoGAcLS9+d1EAmR1CupTBCCq86lGBa/RdwgUNlvLF5IgZZeKphd/FKaY
B2KZmRBxM51WvV6AYmRKb6IsuUZCfHO2FCelThDE0EF99GbfSapVj7woSIu0/PTJ
cEX4sHURq6pY3ELfNG0BOzrTsT3Af8T3N5xwD0FMatkDrCPCgVx7sRZ05UqenxBO
VWBJQcr5QRZSykxBosGjbqO3QSyGsElIKgkCAwEAAaAAMA0GCSqGSIb3DQEBBAUA
A4IBAQCEUGNk45qCJiR4Yuce4relbP22EwK7pyX0+0VZ+F3eUxhpZ6S5WN1Juuru
8w48RchQBjGK1jjUfXJIqn/DgX+yAfMj4aW/ohBmovN2ViuNILvNaj0volwoqyMl
NrTmBze69qHMfnMGUUUehMr/Nq4QdQTqxy7EYQkNOqx21gfZcUi6zWCeFTRkasD+
SYAKsOUIKdrt/Jq5lWFXxhkJHuyA+q1yr/w6zh18JmFAT4y/0q/odFGyIr9yKhQ9
usW1sQ8CT3e3AnU4jq7sBrYFxN0f+92W8gX7WADortA7+6PcSFPrZEoQlr5Brki7

631

GSwIuTTSlKFRyZ53DbEGjp2ELnnl -----END CERTIFICATE REQUEST----- </item>


<item key='period'>1</item>
<item key='server_type'>apachessl</item>
<item key='server_count'>1</item>
<item key='product_type'>securesite</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.com</item>
<item key='order_id'>1860</item>
<item key='state'>awaiting-approval</item>
</dt_assoc>
</item>

632

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
This example is for a domain vetted certificate, which requires approval.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>sw_register</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='approver_email'>qafive@example.com</item>
<item key='reg_type'>NEW</item>
<item key='contact_set'>
... see "Contact Set"
</item>
</dt_assoc>
</item>
<item key='special_instructions'>Test ABC</item>
<item key='handle'>process</item>
<item key='csr'>-----BEGIN CERTIFICATE REQUEST----MIIC2TCCAcECAQAwgZMxIDAeBgNVBAMTF3NzbDEyMy5xYXJlZ3Jlc3Npb24ub3Jn
MQswCQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xDzAN

633

BgNVBAoTBlR1Y293czEQMA4GA1UECxMHUUEgRGVwdDEgMB4GCSqGSIb3DQEJARYR
cWFmaXZlQHR1Y293cy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQDpKz48gJG4ImyJi76kH3AdDZoGNZCC8xgWBUDk4yNXPqe3NxJvZooZIoctP2o8
CX6+xoK8p6jMb9iIz7ZVC9LuoUmoYZZWdoatMUwaz3xIa4Fq7HeLtCE3misKMcZq
+QomhLFv2yMSgyzWWitHdW5oVDuT83Xs8FTZG33rI8gut1J9+5fhJV4WKuncfLwM
xMrj+5iWm+KwoE86dTarGAPwYhC2FepcblszVbz87Dp1clTJLaN4potMES83RHo1
teHHmJAilNzy2PfRoylbzlQ38x1n10wbhqjMcoDYk6CSB40PlduqbsMjpkOClwu4
H92c2Hmo3bqRGWM2K5SXkj29AgMBAAGgADANBgkqhkiG9w0BAQQFAAOCAQEAKUh6
WH4WtC/LtlJhj+p5i3sLEG/L//8DQh30eOxwMxrSGGZUGTfLBT4RaeDA5JEIF5pK
v4MxvDw1+NExMQW3h/9eVWXpGGjvC2EoLgya3ri3OJlQNOyqSzOvNunk0EPaWoO+
v9o2yKdH88e7NQZp8Pw5jhE9RV9u3+mNw2sztqpzcXYDXW3kKI2UiIP3eur2/iiH
nSAIRl5NfUPgAzCem/zpM1lc3s+EVKysn2wF4bwOkNyYPo4DmgHCb7ggSQyhh5vN
UAoDkyqu2ZScDZTyDG7YOdobMqwbsCT5er5Bq+NWOZyUE+3zO/1VQpznJehaGLrQ
N7UAJliUAO+SFFGdxQ== -----END CERTIFICATE REQUEST-----</item>
<item key='period'>1</item>
<item key='server_type'>apachessl</item>
<item key='server_count'>1</item>
<item key='product_type'>ssl123</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>

634

<item key='object'>TRUST_SERVICE</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.com</item>
<item key='order_id'>577</item>
<item key='state'>awaiting-approval</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 3
This example shows a request that failed because the required title field was
missing from the contact_set.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>sw_register</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>

635

<item key='trust_seal'>1</item>
<item key='reg_type'>NEW</item>
<item key='seal_in_search'>1</item>
<item key='contact_set'>
<dt_assoc>
<item key="admin">
<dt_assoc>
<item key="first_name">Adler</item>
<item key="last_name">Adams</item>
<item key="phone">+1.4165550123x1812</item>
<item key="fax">+1.4165550125</item>
<item key="email">adams@example.com</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak Street</item>
<item key="address2">Suite 100</item>
<item key="address3">Admin</item>
<item key="city">Santa Clara</item>
<item key="state">CA</item>
<item key="country">US</item>
<item key="postal_code">90210</item>
</dt_assoc>
</item>
<item key="billing">
<dt_assoc>
<item key="first_name">Bill</item>
<item key="last_name">Burton</item>
<item key="phone">+1.4165550123x1248</item>
<item key="fax">+1.4165550136</item>
<item key="email">burton@example.com</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak Street</item>
<item key="address2">Suite 200</item>
<item key="address3">Billing</item>
<item key="city">Santa Clara</item>
<item key="state">CA</item>

636

<item key="country">US</item>
<item key="postal_code">90210</item>
</dt_assoc>
</item>
<item key="tech">
<dt_assoc>
<item key="first_name">Tim</item>
<item key="last_name">Tucker</item>
<item key="phone">+1.4165550123x1243</item>
<item key="fax">+1.4165550125</item>
<item key="email">tucker@example.com</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak Street</item>
<item key="address2">Suite 100</item>
<item key="address3">Tech</item>
<item key="city">Santa Clara</item>
<item key="state">CA</item>
<item key="country">US</item>
<item key="postal_code">90210</item>
</dt_assoc>
</item>
<item key="organization">
<dt_assoc>
<item key="first_name">Jim</item>
<item key="last_name">Johnson</item>
<item key="phone">+1.4165550123x1224</item>
<item key="fax">+1.4165550126</item>
<item key="email">jjohnson@example.com</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak Street</item>
<item key="address2">Suite 100</item>
<item key="address3">Tech</item>
<item key="city">Santa Clara</item>
<item key="state">CA</item>
<item key="country">US</item>

637

<item key="postal_code">90210</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='special_instructions'>Test ABC</item>
<item key='handle'>process</item>
<item key='csr'>-----BEGIN CERTIFICATE REQUEST----MIIC4TCCAckCAQAwgZsxKTAnBgNVBAMTIHNlY3VyZXNpdGUudGVzdDEyODU4NzYw
MzY2MDgub3JnMQswCQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rv
cm9udG8xDzANBgNVBAoTBm5ld29yZzEPMA0GA1UECxMGUUFEZXB0MSAwHgYJKoZI
hvcNAQkBFhFxYWZpdmVAdHVjb3dzLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAJ0FDLurKaddUzayM5FgICBhy8DkOaBuYzCiHSFw6xRUf9CjAHpC
/MiUM5TnegMiU02COAPmfeHZAERv21CoB/HPDcshewHJywzs8nwcbGncz37eFhNG
FQNIif5ExoGAcLS9+d1EAmR1CupTBCCq86lGBa/RdwgUNlvLF5IgZZeKphd/FKaY
B2KZmRBxM51WvV6AYmRKb6IsuUZCfHO2FCelThDE0EF99GbfSapVj7woSIu0/PTJ
cEX4sHURq6pY3ELfNG0BOzrTsT3Af8T3N5xwD0FMatkDrCPCgVx7sRZ05UqenxBO
VWBJQcr5QRZSykxBosGjbqO3QSyGsElIKgkCAwEAAaAAMA0GCSqGSIb3DQEBBAUA
A4IBAQCEUGNk45qCJiR4Yuce4relbP22EwK7pyX0+0VZ+F3eUxhpZ6S5WN1Juuru
8w48RchQBjGK1jjUfXJIqn/DgX+yAfMj4aW/ohBmovN2ViuNILvNaj0volwoqyMl
NrTmBze69qHMfnMGUUUehMr/Nq4QdQTqxy7EYQkNOqx21gfZcUi6zWCeFTRkasD+
SYAKsOUIKdrt/Jq5lWFXxhkJHuyA+q1yr/w6zh18JmFAT4y/0q/odFGyIr9yKhQ9
usW1sQ8CT3e3AnU4jq7sBrYFxN0f+92W8gX7WADortA7+6PcSFPrZEoQlr5Brki7
GSwIuTTSlKFRyZ53DbEGjp2ELnnl -----END CERTIFICATE REQUEST----- </item>
<item key='period'>1</item>
<item key='server_type'>apachessl</item>
<item key='server_count'>1</item>
<item key='product_type'>securesite</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

638

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">TRUST_SERVICE</item>
<item key="response_text">Supplier validation error</item>
<item key="error_details">
<dt_array>
<item key="0">
<dt_assoc>
<item key="error_detail">Title for admin contact object is
missing</item>
<item key="field_name">admin-title</item>
<item key="error_code">3010</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="response_code">3000</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.org</item>
<item key="order_id">12345</item>
<item key="state">pending</item>
</dt_assoc>
</item>
<item key="is_success">0</item>

639

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 4
This example shows an order for a TRUSTe Privacy Service certificate.

Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">TRUST_SERVICE</item>
<item key="action">SW_REGISTER</item>
<item key="attributes">
<dt_assoc>
<item key="product_type">truste_tps</item>
<item key="special_instructions">none</item>
<item key="domain">example.com</item>
<item key="handle">process</item>
<item key="period">1</item>
<item key="reg_type">NEW</item>
<item key="end_user_auth_info">
<dt_assoc>
<item key="username">rsanford</item>
<item key="password">mypa55w0rd</item>
<item key="email_address">rsanford@example.com</item>
</dt_assoc>

640

</item>
<item key="contact_set">
<dt_assoc>
<item key="admin">
<dt_assoc>
<item key="country">US</item>
<item key="address3"/>
<item key="org_name">Example Inc.</item>
<item key="phone">+1.4165550123x1812</item>
<item key="last_name">Adams</item>
<item key="address2">Suite 100</item>
<item key="state">CA</item>
<item key="email">adams@example.com</item>
<item key="city">Santa Clara</item>
<item key="postal_code">90210</item>
<item key="fax">+1.4165550125</item>
<item key="address1">32 Oak Street</item>
<item key="first_name">Adler</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>

641

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER:REPLY</item>
<item key="object">TRUST_SERVICE</item>
<item key="response_text">Command completed successfully.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="order_id">6792</item>
<item key="state">awaiting-approval</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 5
This example shows a renewal order for a QuickSSL certificate.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>

642

<item key='protocol'>XCP</item>
<item key='action'>sw_register</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='reg_type'>renew</item>
<item key='handle'>process</item>
<item key='product_id'>372</item>
<item key='domain'>www.example.com</item>
<item key='period'>1</item>
<item key='product_type'>quickssl</item>
<item key='server_type'>apacheopenssl</item>
<item key='approver_email'>admin@example.com</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='csr'>
-----BEGIN CERTIFICATE REQUEST----MIICwTCCAakCAQAwfDELMAkGA1UEBhMCQ0ExEDAOBgNVBAgMB09udGFyaW8xEDAO
BgNVBAcMB1Rvcm9udG8xEzARBgNVBAoMClR1Y293cyBJbmMxDjAMBgNVBAsMBVNh
bGVzMSQwIgYDVQQDDBt3d3cub3BlbnNyc2VtYWlsc2VydmljZS5jb20wggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCa8HMJsATmwVoqE4sKNFrxA9FLb9rP
F6E/VgL/zYRjmxJgy7ap7Rh6fXLHHNal/pD/TT0FDe11vcocR/A32Ypbyx9CPvvV
040Ik4k+9XCs7jZm1+vKe9RK/MVQcIVaHCL7apbb0TPNGLRfhav5m/pQ7tBz+uXb
fMSchwQ0CjT10gSoNxmC0lFSfR9iCTwxETxeJTKD3xAghSmDFB252EFo9lVWp72u
G/ofSyH0QA0fREmMeYvxE3L6+CjnAn91QxT4/Oq9b353GMXOHyEdM7Zn2Ei9aGzt
bb7iFpVAEPH96a5fVruDI881KmUzncjhIPhiPATGJxThN/Cv2nWlSfrzAgMBAAGg
ADANBgkqhkiG9w0BAQUFAAOCAQEAajJJ5SGFyTO/tnqcAEpcBs+e3Q61zokmRXPb
Zo/LbuseQYXBcgLvEMQwTlzZBbP4JHHOfKXq2iHyMyaj/OX2MilCspjY+Ds6MJsb
kF9tD/R885OS3KP+/umBOz1Q97qx16oKOiuz+KZEh90k141PI2tLbaQlWt9cHtTm
IHVg0319JCKbjieq4AqdaHzQO7NLJYXBzU/uAYe0kggGRV4OtYuFLuKZb46SuFAW
pzY42a72PJ2a/IzF/azGRRD1JU98DKGY1RnzK2ZXuRG3v7G6j2CZLBGLEKG18lSY
qD9+gEzYoTKe4fTNK8yGQ8E2jsW2bE3SG4oq5ghqHZ5vUNzEjw==
-----END CERTIFICATE REQUEST----</item>

643

<item key='special_instructions'></item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER:REPLY</item>
<item key="object">TRUST_SERVICE</item>
<item key="response_text">Command completed successfully.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="order_id">8321</item>
<item key="state">awaiting-approval</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

644

Example 6
This example shows an order to upgrade a SiteLock SSL certificate to
SiteLock Premium.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='reg_type'>upgrade</item>
<item key='product_type'>sitelock_premium</item>
<item key='period'>1</item>
<item key='product_id'>47811</item>
<item key='handle'>process</item>
<item key='special_instructions'>none</item>
<item key='contact_set'>
...see "Contact Set"
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

645

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">TRUST_SERVICE</item>
<item key="response_text">Command completed successfully.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="order_id">5597</item>
<item key="state">awaiting-approval</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 7
This example shows an order for a GeoTrust Web Site Anti-Malware Scan
certificate.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>

646

<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.com</item>
<item key='product_type'>malwarescan</item>
<item key='reg_type'>new</item>
<item key='period'>1</item>
<item key='handle'>process</item>
<item key='contact_set'>
... see "Contact Set"
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>

647

<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">TRUST_SERVICE</item>
<item key="response_text">Command completed successfully.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="order_id">6854</item>
<item key="state">awaiting-approval</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 8
This example shows an order for a 30 day free trial of a Symantec SecureSite
certificate.

Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>

648

<item key="action">sw_register</item>
<item key="object">trust_service</item>
<item key="attributes">
<dt_assoc>
<item key="special_instructions">none</item>
<item key="csr">
-----BEGIN CERTIFICATE REQUEST----MIIC1zCCAb8CAQAwgZExHjAcBgNVBAMTFTEzMjA3MDU2NzN0ZXN0aW5nLmNvbTEL
MAkGA1UEBhMCQ0ExEDAOBgNVBAgTB09udGFyaW8xEDAOBgNVBAcTB1Rvcm9udG8x
DzANBgNVBAoTBlR1Y293czELMAkGA1UECxMCUUExIDAeBgkqhkiG9w0BCQEWEXFh
Zml2ZUB0dWNvd3MuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
vfz5BS7X70AFyqvk05RSe5dsxB8e0aTVkj8YixqPULcMxcNSos/hF9CkWKyYD2iP
g8O511Gzw3VA+TWDp+Een1HCyW1uRnnQ/Yepq0J0H4a0kPXh5Mb01WxGVwD5zorm
1QM0gqIW8KTPgUCfi0P+CQkw5TZ2yqJWjcyNwakv/seg2opqUra06jkcdCDliGkW
RJfGgJPM1B2fonduruveWDvIiga3+sbfAoBKajX71NgHZtQXZgHZLU2obPU1lvms
ZUZGavARcUVt043sJvgZG9xMX8hf0LoT4BLrJ1TK7JWf5Be5ZAkq0Y42Lf1V198/
JKNeMJHPeTvpxkrT0W/R4wIDAQABoAAwDQYJKoZIhvcNAQEEBQADggEBAIqzgz3z
5JzscIq6XszzrJw79ampGPSz7JE35pjoPAjk7vsjbxnRTAVfLHeSMyjXTFBZB60h
lyFO0Ft4KQ8Fj7eKtCoMR2mvhx1UtaoRqJ9y9RJmTJfHmdfHrNa4hLIQqDreE5Tj
U4ngidNTTc91qaRrPhAC471BAn7/Ob+ltleIiUuk/ySkh29lR5qQqSTX0FXjsVrN
G9gIHn4KAra3W+SgWGJHpVQrCWqqyPDQ7/dj6x1pEli8izkZv33Xw6386nFhSkB0
EH2LCtmzTJNgUicXzbRu4/UXgMJgaFU77fCzCtOBwMTz+ALWIo0NTPwNp5JE/dw0
/GOjMZgid2nuuMY=
-----END CERTIFICATE REQUEST----</item>
<item key="reg_type">new</item>
<item key="period">1</item>
<item key="product_type">securesite_ft</item>
<item key="server_type">apachessl</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key="handle">process</item>
<item key="server_count">1</item>
<item key="approver_email">admin@example.org</item>

649

</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">TRUST_SERVICE</item>
<item key="response_text">Command completed successfully.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="order_id">7737</item>
<item key="state">awaiting-approval</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

650

Example 9
This example shows a new order for a QuickSSL certificate based on an
existing order.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>sw_register</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='reg_type'>NEW</item>
<item key='csr'>-----BEGIN CERTIFICATE REQUEST----MIIC2zCCAcMCAQAwgZUxIzAhBgNVBAMTGnJlbmV3dGVzdC5xYXJlZ3Jlc3Npb24u
b3JnMQswCQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8x
DzANBgNVBAoTBm5ld29yZzEPMA0GA1UECxMGUUFEZXB0MSAwHgYJKoZIhvcNAQkB
FhFxYWZpdmVAdHVjb3dzLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBAKEUMvmJTbZlIM7aBU3vPYJTsJqPFo45fzzgcrrCUMzsnYV8l/9PRELAfvGK
eFMI27uGUbeXO3EoklMXd1YZwJickfEBG3dSmR8hGBRHrzhKazqos0UmgS4xIyPl
5Rs/WzRRCdhnV7yqSYmC4SLui/8WTEaYsWy5xgbwI7q4ojZurJ65kjeL3e2q7ftr
R/YLvP9Fx6mMTECBFbQxlrlXUQCn/goCfI98zFDQJ/cuPuYuU6Ret4IFU4T8Jn87
jiDa17hqgo/D2rEUfPe1xuk8LgyCcKT0Nemg1uNLihBwwt+nzo7LfyM16BdEFVkG
DOVsasYYFRKQDH7dGTUeZ2hhd5MCAwEAAaAAMA0GCSqGSIb3DQEBBAUAA4IBAQCY
+zsCNQ+vtEocKDg+8eAA4hKUhOTbuT2TsfxtQflmihKa0WB5IvKjgVb3MENWwwAi
3+XpYEBlsaI2NYpLjgRGvoQMUiAXC3JeoxxXXfcdmEpLevD0VZfGtm04RRlFPwEx
jZESqMjBGROUsjnC3pOjUcb9Y6vFeRWtatCmdbDMKnumrKB1G1G6uA01yQR1vsx0
fjK8bhWxwbCoXCQ8LnlQwb9wQECXJ+vguFdB0u97+XHKZXhxpij12frnYPRyJfec
hA6ODlhvJv2k2P19ZjGthGrfW5z7F/mev59a5LX6n4TO1Wp4FZFw4pOJr79umR/K
L/tZauY8EjcOfSHZ76vn -----END CERTIFICATE REQUEST-----</item>
<item key='base_order_id'>8245</item>
<item key='handle'>process</item>
<item key='product_type'>quickssl</item>
<item key='contact_set'>
<dt_assoc>

651

<item key='admin'>
<dt_assoc>
<item key='first_name'>Adler</item>
<item key='last_name'>Adams</item>
<item key='title'>Admin</item>
<item key='org_name'>Example Inc.</item>
<item key='address1'>32 Oak Street</item>
<item key='address2'>Suite 100</item>
<item key='address3'/>
<item key='city'>Santa Clara</item>
<item key='state'>CA</item>
<item key='country'>US</item>
<item key='postal_code'>90210</item>
<item key='fax'>+1.4165350155</item>
<item key='phone'>+1.4165550123x1812</item>
<item key='email'>adams@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>

652

<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.com</item>
<item key='order_id'>8279</item>
<item key='state'>awaiting-approval</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 10
This example shows a renewal order for a QuickSSL certificate that was
submitted by using the order ID.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>sw_register</item>

653

<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='reg_type'>RENEW</item>
<item key='csr'>-----BEGIN CERTIFICATE REQUEST----MIIC2zCCAcMCAQAwgZUxIzAhBgNVBAMTGnJlbmV3dGVzdC5xYXJlZ3Jlc3Npb24u
b3JnMQswCQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8x
DzANBgNVBAoTBm5ld29yZzEPMA0GA1UECxMGUUFEZXB0MSAwHgYJKoZIhvcNAQkB
FhFxYWZpdmVAdHVjb3dzLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBAKEUMvmJTbZlIM7aBU3vPYJTsJqPFo45fzzgcrrCUMzsnYV8l/9PRELAfvGK
eFMI27uGUbeXO3EoklMXd1YZwJickfEBG3dSmR8hGBRHrzhKazqos0UmgS4xIyPl
5Rs/WzRRCdhnV7yqSYmC4SLui/8WTEaYsWy5xgbwI7q4ojZurJ65kjeL3e2q7ftr
R/YLvP9Fx6mMTECBFbQxlrlXUQCn/goCfI98zFDQJ/cuPuYuU6Ret4IFU4T8Jn87
jiDa17hqgo/D2rEUfPe1xuk8LgyCcKT0Nemg1uNLihBwwt+nzo7LfyM16BdEFVkG
DOVsasYYFRKQDH7dGTUeZ2hhd5MCAwEAAaAAMA0GCSqGSIb3DQEBBAUAA4IBAQCY
+zsCNQ+vtEocKDg+8eAA4hKUhOTbuT2TsfxtQflmihKa0WB5IvKjgVb3MENWwwAi
3+XpYEBlsaI2NYpLjgRGvoQMUiAXC3JeoxxXXfcdmEpLevD0VZfGtm04RRlFPwEx
jZESqMjBGROUsjnC3pOjUcb9Y6vFeRWtatCmdbDMKnumrKB1G1G6uA01yQR1vsx0
fjK8bhWxwbCoXCQ8LnlQwb9wQECXJ+vguFdB0u97+XHKZXhxpij12frnYPRyJfec
hA6ODlhvJv2k2P19ZjGthGrfW5z7F/mev59a5LX6n4TO1Wp4FZFw4pOJr79umR/K
L/tZauY8EjcOfSHZ76vn -----END CERTIFICATE REQUEST-----</item>
<item key='handle'>process</item>
<item key='product_type'>quickssl</item>
<item key='order_id'>8274</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>

654

<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='response_text'>Command completed successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.com</item>
<item key='order_id'>8278</item>
<item key='state'>awaiting-approval</item>
</dt_assoc>
</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 11
This example shows a renewal order for a QuickSSL certificate that was
submitted by using the product ID.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>sw_register</item>
<item key='object'>trust_service</item>
<item key='attributes'>

655

<dt_assoc>
<item key='inventory_item_id'>8887502</item>
<item key='reg_type'>RENEW</item>
<item key='csr'>-----BEGIN CERTIFICATE REQUEST----MIIC1zCCAb8CAQAwgZExHzAdBgNVBAMTFnJhcGlkLnFhcmVncmVzc2lvbi5vcmcxCzAJBgN
VBAYTAkNBMQswCQYDVQQIEwJPTjEQMA4GA1UEBxMHVG9yb250bzEPMA0G
A1UEChMGbmV3b3JnMQ8wDQYDVQQLEwZRQURlcHQxIDAeBgkqhkiG9w0BCQEWEXFhZml2ZUB
0dWNvd3MuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
3FI2z0xXFk5/0iy3Sw6JiXuN1LJmL61NdvuXH+6WLdWDxsheSzmGLtnELmKuKZAVgby1+13
KuvuxOtutM/EfrnWagrn2cOpR7WDkogRFlYQ14jx8CadjCIviyIsdL+SC
ix9HeFYLT/kMcB/i7oWUlroyvOZ6aHFnThvZxl7Yk9su3UNfn9ZL/bj7GjmxMn8lBH9AJvm
EvM8Qa9vLUT4AQR+p7TrdcTeXyBJSt4q1rqKXhq4Q4ChG6rielRu3VN2g
x60cCWOl/b04w/psWCBmgUvzFzwmgIfP0a7H+sxsAOFTyCwKBfOBALtKsQWkW4DCM4KpZLQ
20W+IfPXvvrJSUwIDAQABoAAwDQYJKoZIhvcNAQEEBQADggEBAGTZD3sk
qLoNK2tx+ciIUBvBXrVNzUm5PSc7LQLfDqKms0zcvQM1nE8Yz+LkbjFZyWIc2njrt8H7AGi
s/sdeKKK9Vi1VU9cOwp+QOgtuLxa/97rBudrLdoUiWYWj2MiR2T9aSf0k
vxSRdio3UrJNrygkf1z2I5sEn5HjbiavaSAE/c7yo9EtsTSfp2P/siT2D6a3FOrAwPPyw0R
N01YslYBgzV+RsTRPdewpIPe85RnCET76R+/cGMsvoe3ayl/lzZS5irkL
ilRltNDFa5NHlxtgJuyvrOtfyqVuro+2nznZYkxZsJun/D+CzA6oamgF/q13Mk60d8dsqH1
Ya/8rX0g= -----END CERTIFICATE REQUEST-----</item>
<item key='handle'>process</item>
<item key='product_type'>quickssl</item>
<item key='contact_set'>
<dt_assoc>
<item key='admin'>
<dt_assoc>
<item key='first_name'>Adler</item>
<item key='last_name'>Adams</item>
<item key='title'>Administrator</item>
<item key='org_name'>Example Co.</item>
<item key='address1'>32 Oak Street</item>
<item key='address2'>Suite 100</item>
<item key='address3'/>
<item key='city'>Santa Clara</item>
<item key='state'>CA</item>
<item key='country'>US</item>
<item key='postal_code'>90210</item>
<item key='fax'>+1.4165550125</item>
<item key='phone'>+1.4165550123x1812</item>
<item key='email'>adams@example.com</item>
</dt_assoc>

656

</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>certtest.example.org</item>
<item key='order_id'>8310</item>
<item key='state'>awaiting-approval</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

657

</body>
</OPS_envelope>

Example 12
This example shows a registration for an SSL WebServer with EV SAN
certificate.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>sw_register</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='reg_type'>NEW</item>
<item key='additional_domains'>
<dt_array>
<item key='0'>additional1.example.org</item>
<item key='1'>example.net</item>
<item key='2'>example2.org</item>
</dt_array>
</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='special_instructions'>Test ABC</item>
<item key='handle'>process</item>
<item key='csr'>-----BEGIN CERTIFICATE REQUEST----MIIC2jCCAcICAQAwgZQxIjAgBgNVBAMTGXNzbHdlYmV2MTM0NzQ3NjI5Mzg1My5v

658

cmcxCzAJBgNVBAYTAkNBMQswCQYDVQQIEwJPTjEQMA4GA1UEBxMHVG9yb250bzEP
MA0GA1UEChMGbmV3b3JnMQ8wDQYDVQQLEwZRQURlcHQxIDAeBgkqhkiG9w0BCQEW
EXFhZml2ZUB0dWNvd3MuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEApc+zO2kbORX06H6jLjmoesh/VQOVcZpGUNy5ZbGILDj/wWiPxurylaYh1aAo
aeq2f/UAzb+2YtgEBmQoTNteVz02VlUeIYpzkr2Tr9lGiJfTuVsQgsyMWofadW7r
w8U9SM6BKOmqCWkvGyTWBFDugJQGJmy4mOfcau0YKolGc1YzYDfSPTqkfwqh9Rl3
ZLWLQv3kmF0cDPHSyFxEjilCeqkZ5gF8tkhpcPEKDw1y7f3a3Bjw7sDyrMmD7bBI
H9JYqi6sEGbMFutKUvjWdcgQvQ42qOOO+w+HkAJ6bQxMIHr5cnj3vJ+peIfTjAQl
+T+WcRcv15Utw72emN7YNTmtkwIDAQABoAAwDQYJKoZIhvcNAQEEBQADggEBAJVl
wme99Uo/z8LdOaJsKKPww2etWmBP9SXzW7edClkd2sXoRPKYjj60DDwODvJhZGR4
9u4dnz6HqfpFi4ldvX9Uz9zUYUSkKPNN2Q5gelLwbG5MjBNG+lxsfuAtvak9yxxt
g24agYFlBlAoLOqCkLVCULCQIdZ6WOH4DLOaCgEeP3thh5ig+pn0lyXB3U3ACHxN
NIpYjwMNogyXNcEefHAjTZQIm+fcHKfEbvSTrlzXMY6/MSK0nsWCHN4CD2bmwXeq
J5JmIEZ+Q0mZGefhNUvn3bxiNYlpVU5KiFFX1L42Ed0I16cmQt8k7yC+WtghCT0d
KNDYOT15336r+A1KCfc= -----END CERTIFICATE REQUEST----- </item>
<item key='period'>1</item>
<item key='server_type'>apachessl</item>
<item key='server_count'>1</item>
<item key='product_type'>sslwebserver_ev</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='object'>TRUST_SERVICE</item>
<item key='response_text'>Command completed successfully.</item>
<item key='is_success'>1</item>
<item key='action'>REPLY</item>

659

<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.org</item>
<item key='order_id'>8506</item>
<item key='state'>awaiting-approval</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Domain Transfer Examples


Request
The period, if present, must be 1 year.
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.10.19</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew"/>
<item key="link_domains">0</item>
<item key="f_parkp">Y</item>

660

<item key="custom_tech_contact">0</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="reg_domain">example-nsi.com</item>
<item key="domain">transfer-example-nsi.com</item>
<item key="period">1</item>
<item key="reg_type">transfer</item>
<item key="reg_username">example</item>
<item key="reg_password">example</item>
<item key="encoding_type"/>
<item key="custom_transfer_nameservers">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
This response shows the result of a successful response to a transfer order.
The transfer is not complete at this point rather, it has only been started. If
the domain's current whois information is accurate, then the current domain
owner receives an email from OpenSRS requesting that they approve or
reject the transfer request.
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>

661

<item key="object">DOMAIN</item>
<item key="response_code">200</item>
<item key="response_text">Transfer request has been
successfully sent</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Transfer request has
been successfully sent</item>
<item key="registration_code">200</item>
<item key="id">3735288</item>
<item key="transfer_id">1234</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .AU


Request
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>

662

<item key='reg_type'>transfer</item>
<item key='handle'>process</item>
<item key='domain'>mytransferdomain.au</item>
<item key='f_lock_domain'>1</item>
<item key='auto_renew'>0</item>
<item key='reg_domain'>existingdomain.com</item>
<item key='reg_username'>username</item>
<item key='reg_password'>password</item>
<item key='custom_tech_contact'>1</item>
<item key='contact_set'>
<dt_assoc>
<item key='owner'>
<dt_assoc>
<item key='first_name'>Chris</item>
<item key='last_name'>Christopherson</item>
<item key='phone'>+1.4165550123</item>
<item key='fax'></item>
<item
key='email'>chris@christopherson.com</item>
<item key='org_name'>Christopherson Kitchens
(Australia) Pty Limited</item>
<item key='address1'>4 York Street</item>
<item key='address2'></item>
<item key='address3'></item>
<item key='city'>Sydney</item>
<item key='state'>NSW</item>
<item key='country'>AU</item>
<item key='postal_code'>2022</item>
</dt_assoc>
</item>
<item key='tech'>
<dt_assoc>
<item key='first_name'>Johnny</item>
<item key='last_name'>Jameson</item>
<item key='phone'>+1.4165550123</item>
<item key='fax'></item>

663

<item
key='email'>johnny@techfixers.com</item>
<item key='org_name'>Tech Fixers Inc.</item>
<item key='address1'>66 Mowat Avenue</item>
<item key='address2'></item>
<item key='address3'></item>
<item key='city'>Sydney</item>
<item key='state'>NSW</item>
<item key='country'>AU</item>
<item key='postal_code'>2023</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='custom_transfer_nameservers'>0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_code">200</item>

664

<item key="is_success">1</item>
<item key="response_text">Transfer request has been successfully
sent. Admin contact email: chris@christopherson.com</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Transfer request has been
successfully sent. Admin contact email: chris@christopherson.com</item>
<item key="transfer_id">5851957</item>
<item key="admin_email">chris@christopherson.com</item>
<item key="registration_code">200</item>
<item key="id">101184590</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .CA


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew">0</item>
<item key="f_parkp">N</item>

665

<item key="domain">example.ca</item>
<item key="reg_type">transfer</item>
<item key="reg_domain"/>
<item key="reg_username">srs_registrant_username</item>
<item key="reg_password">srs_registrant_password</item>
<item key="encoding_type"/>
<item key="custom_transfer_nameservers">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Registration successful</item>
<item key="attributes">
<dt_assoc>
<item key="admin_email">admin@email.com</item>
<item key="id">85550904</item>
</dt_assoc>
</item>

666

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .DE


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='custom_tech_contact'>1</item>
<item key='affiliate_id'>AffiliateTransferTest</item>
<item key='reg_type'>transfer</item>
<item key='reg_username'>riggs</item>
<item key='domain'>example.de</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='handle'>process</item>
<item key='link_domains'>0</item>
<item key='period'>1</item>
<item key='reg_password'>test</item>
<item key='bulk_order'>0</item>

667

<item key='reg_domain'/>
<item key='custom_nameservers'>0</item>
</dt_assoc>
</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.domaindirect.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.domaindirect.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>

668

<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="response_text">Transfer request has been
successfully sent. Admin contact email: robson@example.com</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Transfer request has
been successfully sent. Admin contact email: robson@example.com</item>
<item key="admin_email">robson@example.com</item>
<item key="registration_code">200</item>
<item key="id">101550</item>
<item key="transfer_id">1234</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .EU or .BE


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>

669

<item key="attributes">
<dt_assoc>
<item key="affiliate_id"/>
<item key="reg_type">transfer</item>
<item key="period">1</item>
<item key="reg_username">unittest</item>
<item key="auto_renew"/>
<item key="domain">example.eu</item>
<item key="reg_password">password</item>
<item key="custom_tech_contact">0</item>
<item
key="owner_confirm_address">owner@example.eu</item>
<item key="link_domains">0</item>
<item key="custom_transfer_nameservers">1</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns1.systemdns.com</item>
<item key="sortorder">1</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns2.systemdns.com</item>
<item key="sortorder">2</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="contact_set">
... see "Contact Set"
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

670

</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">
Transfer request has been successfully sent.
Admin contact email: admin@example.eu
</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">
Transfer request has been successfully sent.
Admin contact email: admin@example.eu
</item>
<item key="registration_code">200</item>
<item key="id">3751913</item>
<item key="transfer_id">1234</item>
<item key="admin_email">admin@example.eum</item>
</dt_assoc>
</item>
</dt_assoc>

671

</data_block>
</body>
</OPS_envelope>

For domain = .IT


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="action">SW_REGISTER</item>
<item key="attributes">
<dt_assoc>
<item key="reg_username">aaaa</item>
<item key="reg_domain"></item>
<item key="reg_type">transfer</item>
<item key="change_contact">1</item>
<item key="tld_data">
<dt_assoc>
<item key="it_registrant_info">
<dt_assoc>
<item key="nationality_code">IT</item>
<item key="reg_code">SGLMRA80A01H501E</item>
<item key="entity_type">1</item>
</dt_assoc>
</item>
</dt_assoc>

672

</item>
<item key="reg_password">aaaa</item>
<item key="domain">example037.it</item>
<item
key="owner_confirm_address">transferapprover@example.com</item>
<item key="contact_set">
<dt_assoc>
<item key="owner">
<dt_assoc>
<item key="first_name">Mario</item>
<item key="last_name">Segale</item>
<item key="org_name">Mario Segale</item>
<item key="address1">Via del Campidoglio, 20</item>
<item key="city">Rome</item>
<item key="state">RM</item>
<item key="country">IT</item>
<item key="postal_code">00123</item>
<item key="phone">+39.0612345678</item>
<item key="email">mario@mail.it</item>
</dt_assoc>
</item>
<item key="tech">
<dt_assoc>
<item key="first_name">Frank</item>
<item key="last_name">Mosser</item>
<item key="org_name">Tech Orgname</item>
<item key="address1">Piazza dei Giudici 20</item>
<item key="city">Firenze</item>
<item key="state">FI</item>
<item key="country">IT</item>
<item key="postal_code">50123</item>
<item key="phone">+39.0551234567</item>
<item key="email">qafive@example.com</item>
</dt_assoc>
</item>
</dt_assoc>

673

</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Transfer request has been successfully
sent. Admin contact email: transferapprover@example.com</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="transfer_id">41334</item>
<item key="registration_text">Transfer request has been
successfully sent. Admin contact email:
transferapprover@example.com</item>
<item key="admin_email">transferapprover@example.com</item>
<item key="registration_code">200</item>
<item key="id">214998</item>
</dt_assoc>
</item>

674

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Examples for WHOIS Privacy


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="reg_type">whois_privacy</item>
<item key="reg_password">aaaa</item>
<item key="domain">example.com</item>
<item key="reg_username">aaaa</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>

675

<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>


<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="is_success">1</item>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="id">7235</item>
<item key="admin_email">admin@example.com</item>
</dt_assoc>
</item>
<item key="response_text">WHOIS Privacy order [#7298] is in
progress</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

676

update_all_info
Description
Action & object
action = update_all_info
object = domain

Usage
Submits a domain-information update for .DK TLDs to the OpenSRS system.
Each contact object is submitted as a whole to OpenSRS, and changes are
parsed against the existing information.
Note: This command does not support .BE.
Important: This command will overwrite the existing nameserver entries. If
a nameserver has two IPs, one for IPv4 and one for IPv6, and you specify
only one of these in the request, the other one will be removed from the
registry.

Request parameters for update_all_info


Standard parameters
action = update_all_info
object = domain
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

contact_set

Required

Contains contact information for each contact


type: owner, admin, billing, and tech.

domain

Required if
cookie is not
submitted

The domain to be updated.

nameserver_list

Required

List of nameservers used by the domain. Values


include fqdn, ipaddress, and ipv6 keys.
For more information, see the Nameserver_List
table below.

677

678

Nameserver_List
Parameters within the nameserver_list associative array are described below.
Parameter
name

Obligation

Definition/Value

fqdn

Required

The FQDN of a nameserver that holds the DNS


information for the domain being checked, for
example, 'ns1.some-domain-ved.ch'

ipaddress

Required if
ipv6 is not
submitted

The IPv4 address of a nameserver that holds the


DNS information for the domain being checked.

Required if
ipaddress is
not submitted

The IPv6 address of a nameserver that holds the


DNS information for the domain being checked.

ipv6

You can specify ipaddress or ipv6, or both.

You can specify ipaddress or ipv6, or both.

Response parameters for update_all_info


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Examples for update_all_info


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>

679

<item key="action">UPDATE_ALL_INFO</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.dk</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="fqdn">ns1.systemdns.dk</item>
<item key="ipaddress">216.40.33.21</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="fqdn">ns2.systemdns.dk</item>
<item key="ipaddress">216.40.33.22</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="contact_set">
... see "Contact Set"
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
If successful
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>

680

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Update request submitted
successfully.</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
<OPS_envelope>

If unsuccessful
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">0</item>
<item key="response_text">A request is currently waiting on
this domain.</item>
<item key="response_code">437</item>
</dt_assoc>
</data_block>
</body>
<OPS_envelope>

681

update_contacts
Description
Action & object
action = update_contacts
object = domain

Usage
Submits a domain-contact information update to the OpenSRS system. Each
contact object is submitted as a whole to OpenSRS, and changes are parsed
against the existing information.
Note: This command cannot be used for .DK TLDs.
Important: For .UK domains, if you use this command to submit a change to
the Organization field, it is recognized by OpenSRS, but not by the registry.
To change the .UK Organization information, you must contact the Nominet
Registry.

For .ES domains, if you use this command to submit any changes to the
owner contact information, the changes are recognized by OpenSRS, but not
by the registry. To change the .ES Owner contact information, you must
contact the Esnic Registry.
For .IT domains, the owner contact requires three additional parameters:
entity_type, nationality_code, and reg_code. For more information about
contact_set values, see .IT contact requirements.

Request parameters for update_contacts


Standard parameters
action = update_contacts
object = domain
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

affect_domains

Optional

Flag indicating the domains to which to apply the


change.

0Change applies only to the specified

682

Parameter
name

Obligation

Definition/Value
domain. This is the default.

1Change applies to all domains linked to


this profile.

contact_set

Required

Contains new contact information for each


specified contact type. For more information, see
Contact Set.

domain

Required if
cookie is not
submitted

The domain to be updated.

report_email

Optional

The End User's email address to which notification


of success or failure is sent. The notification email
is sent on behalf of the Reseller.
Note: This parameter can only be specified if
affect_domains is set to '1'

types

Required

The contact types whose information is changing.


Allowed values are; owner, admin, billing, and
tech.

Response parameters for update_contacts


Standard parameters
action = reply
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name

Obligation

Definition/Value

details

Returned if
is_success = true

A description of the success or failure


of each affected domain.
The key is the name of the domain.
When you specify a contact_info
modification, you can specify that you
want the action to apply to all
domains.

683

Parameter name

Obligation

Definition/Value
Because the modification may succeed
or fail on a case-by-case basis, you
get a response code for each domain
that is affected.
The key that is used to access this
domain success information is the
name of the domain itself, for
example, 'mydomain.com' or
'mydomain.co.uk'.
Each key contains a hash (described
below) that provides details on the
action performed on that domain.

encoding_type

Optional

The encoding type for this domain. For


a list of languages and codes, see
Appendix C: Encoding Types for
IDNs.

response_code

Returned if
is_success = true

The response code associated with the


modification on this domain.

response_text

Returned if
is_success = true

The response text associated with the


modification on this domain

waiting_requests_no

Returned if
is_success = true

The number of registry requests in the


waiting state.

Examples for update_contacts


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">UPDATE_CONTACTS</item>
<item key="object">DOMAIN</item>
<item key="attributes">

684

<dt_assoc>
<item key="domain">example.com</item>
<item key="types">
<dt_array>
<item key="0">admin</item>
<item key="1">billing</item>
</dt_array>
</item>
<item key="contact_set">
... see "Contact Set"
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object"></item>
<item key="is_success">1</item>
<item key="response_text">Command completed
successfully.</item>
<item key="response_code">200</item>
<item key="waiting_requests_no">0</item>

685

<item key="attributes">
<dt_assoc>
<item key="details">
<dt_assoc>
<item key="example.com">
<dt_assoc>
<item key="response_text">Command completed

successfully</item>

<item key="response_code">200</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
<OPS_envelope>

686

update_order
Description
Action & object
action = update_order
object = trust_service

Usage
Submits a Trust Service order update to the OpenSRS system.
When updating existing trust service orders, the general rules are:

Include the parameters and values that you want to change.


To remove a remove a value, submit the parameter with an empty
value..
Omit any parameters that you do not want to change.

Note: This command can only be used on pending orders.


Important: If you are using this command to add or change the additional
domains for a SAN certificate order, you must specify all of the domains that
will be secured by the certificate. The additional_domains list specified in
this command overwrites the additional_domains list in the original order.

Request parameters for update_order


Standard parameters
action = update_order
object = trust_service
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

additional_
domains

Optional. May be
used for SAN
certificates.

The list of additional domains or other


entities (other than the primary domain)
that will be secured by the SSL certificate.
This list overwrites the previous list in the
order, so be sure to specify all of the
domains that you want to secure with this
certificate. For more information, see

687

Sub-Reseller Commands
Parameter
name

Obligation

Definition/Value
Request parameters for sw_register
(trust_service)

approver_email

Optional

The email of one of the individuals who can


approve the Trust Service order. The Trust
Service provider sends the approver email
to the address that you specify.

contact_set

Optional

The SSL Certificate contact information.


Most products require: admin, billing and
tech contacts.
For admin, tech, and billing contacts for
thawte, Symantec, and all EV certificates,
title is required.
For Symantec certificates, organization,
address, city, state/province, postal
code, and country are required for admin
and tech contacts.
All organization vetted certificates require
an organization contact.

csr

Optional

The certificate signing request for the


required certificate. The Trust Service
provider uses this information to generate
the certificate.
Note: All certificates require 2048 bit
CSRs; however, Symantec will accept 1024
bit CSRs for certificates with expiry dates
prior to December 31, 2013, except for EV
certs, which require 2048, regardless of the
term.

end_user_auth_
info

Optional - used only Specify the username and password


for SiteLock and
that the end user will use to log in to the
TRUSTe
Domain Admin interface where they can
manage their account. The login
credentials will be sent to the specified
email_address. If you resend the
Domain Admin login information (through
the Control Panel), this is the address to
which the Domain Admin login credentials
are sent.
Please note the following conditions:

If you specify username and


password and the user already
exists, the command will fail.

If you specify username but not

688

Sub-Reseller Commands
Parameter
name

Obligation

Definition/Value
password, and the user does not
already exist, the user credentials
cannot be created and the
command will fail.

If you specify username but not


password, and the user already
exists, the service will be
associated with the existing end
user profile.

If you want to associate the Trust Service


product with an existing account, you only
need to include the username value.
For more information see the End user
auth info table below.
order_id

Required

The ID of the Trust Service order.

period

Optional

The number of years of the registration


period. Allowed values are 1 4,
depending on the Trust Service that is
ordered.

comodo_ev1 to 2

comodo_instantssl1 to 4

comodo_premiumssl1 to 4

comodo_premiumssl_wildcard1 to
4

comodo_ssl1 to 4

comodo_wildcard1 to 4

malwarescan1

quickssl1 to 4

quickssl_premium1 to 4

sgcsuper_certs1 to 4

sitelock_basic1

sitelock_premium1

sitelock_enterprise1

ssl1231 to 4

sslwebserver1 to 4

sslwebserver_wildcard1 to 2

sslwebserver_ev1 to 2

securesite1 to 4

securesite_ev1 to 2

securesite_pro1 to 4

689

Sub-Reseller Commands
Parameter
name

product_type

Obligation

Optional

Definition/Value

securesite_pro_ev1 to 2

truebizid1 to 4

truebizid_wildcard1 to 4

truebizid_ev1 to 2

truste_hpp1 to 3

truste_tps1 to 3

trustwave_dv 1 to 3

trustwave_ev 1 to 2

trustwave_premiumssl 1 to 3

trustwave_premiumssl_wildcard 1
to 3

The product type from the SSL Certificate


inventory. The product types are detailed
in the allowed values section for this key.
Allowed values are:

comodo_ev

comodo_instantssl

comodo_premiumssl

comodo_premiumssl_wildcard

comodo_ssl

comodo_wildcard

malwarescan

quickssl

quickssl_premium

securesite

securesite_pro

securesite_ev

securesite_pro_ev

sgcsuper_certs

sitelock_basic

sitelock_premium

sitelock_enterprise

ssl123

sslwebserver

sslwebserver_wildcard

sslwebserver_ev

truebizid

truebizid_wildcard

690

Sub-Reseller Commands
Parameter
name

reg_type

Obligation

Optional

Definition/Value

truebizid_ev

truste_hpp (Hosted Privacy Policy)

truste_tps (TRUSTE Privacy Policy


with seal)

trustwave_dv

trustwave_ev

trustwave_premiumssl

trustwave_premiumssl_wildcard

The type of registration being requested:

newSubmit a new or Trust


Service order.

renewRenew a Trust Service


offering.

upgradeUpgrade a SiteLock
Basic or Premium SSL certificate to
a higher level certificate.
When you upgrade, the
product_type changes, you are
charged the price for a one year
term at the new level, and the new
expiry date is one year from the
date of the upgrade.
Note: This feature is currently
available only for SiteLock
certificates.

server_count

Required when
The number of servers on which the Trust
product_type =
Service product will be installed.
securesite*,
ssl123,
sgcsuper_certs,
sslwebserver,
sslwebserver_
wildcard,
sslwebserver_ev,
comodo_
premiumssl_
wildcard,
comodo_wildcard

server_type

Optional

The type of server software used to


generate the CSR.
Allowed values are:

691

Sub-Reseller Commands
Parameter
name

Obligation

Definition/Value
Symantec, thawte, and Comodo
GeoTrust

apache2

apachessl

apacheapaches
sl

citrix

apacheopenssl

domino

ensim

apacheraven
apachessl

hsphere

iis4

apachessleay
c2net

iis6

iis7

cobaltseries
cobaltraq3

iplanet

javawebserver

cobaltraq2
cpanel

netscape
ibmhttp

domino

novell

dominogo4626

oracle

dominogo4625

other

ensim

plesk

hsphere

redhat

iis

sap

iis4

tomcat

iis5

webstar

iplanet

whmcpanel

ipswitch

netscape
ibmhttp

other

plesk

tomcat

weblogic

website

webstar

webstar4

zeusv3

Note: Trustwave does not support server


types.

692

Sub-Reseller Commands
Parameter
name

Obligation

special_instructions Optional

Definition/Value
Any special instructions regarding the Trust
Service purchase.

693

Sub-Reseller Commands

End_user_auth_info
Parameters within the end_user_auth_info associative array are described
below.
Parameter Obligation
name

Definition/Value

email_address Optional - used only for


SiteLock and TRUSTe to
send Domain Admin
credentials

Specify the email address to which you


want to send the login credentials
(username and password) for Domain
Admin.
Note: If you want to associate the Trust
Service product with an existing account,
only username is required.

password

Optional - used only for


SiteLock and TRUSTe to
create Domain Admin
credentials

The password must be at least eight


characters.

username

Optional - used only for


SiteLock and TRUSTe to
create Domain Admin
credentials

The username must be at least six


characters.

Response parameters for update_order


Standard parameters
action = reply
object = trust_service
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name Obligation

Definition/Value

domain

The domain with which the Trust Service


order is associated.

Returned if
is_success =
true

694

Sub-Reseller Commands
Parameter name Obligation

Definition/Value

order_id

Returned if
is_success =
true

The ID number of the Trust Service order.

state

Returned if
is_success =
true

The state of the order. Allowed values are

approver-confirmedOwner has
confirmed the domain vetted
certificate.

awaiting-approvalOrder
processed successfully; waiting for
supplier approval.

cancelledPending order was


cancelled.

completedOrder is complete.

declinedOrder cancelled after it


was processed or declined by the
supplier.

in-progressOrder is in progress.

pendingOrder saved as pending.

Examples for update_order


Example 1
This example changes the information associated with an order, but does not
change it's processing state.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>update_order</item>
<item key='object'>trust_service</item>

695

Sub-Reseller Commands
<item key='attributes'>
<dt_assoc>
<item key='server_type'>apachessl</item>
<item key='special_instructions'></item>
<item key='approver_email'>admin@example.com</item>
<item key='csr'>-----BEGIN CERTIFICATE REQUEST----MIIC3DCCAcQCAQAwgZYxJTAjBgNVBAMTHHVwZGF0ZW9yZGVyLnFhcmVncmVzc2lv
bi5vcmcxCzAJBgNVBAYTAkNBMQswCQYDVQQIEwJPTjEQMA4GA1UEBxMHVG9yb250
bzENMAsGA1UEChMEVGVzdDEQMA4GA1UECxMHUUEgRGVwdDEgMB4GCSqGSIb3DQEJ
ARYRcWFmaXZlQHR1Y293cy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDkMouJLDenKrVS9FdcmdY3BHrJ9iS5o8TbNSAKf2loYF1afa6tJyxO6bCj
Mk6WegE+Yugb42ONAgz0zhJq5bNTuWb9FvBZLEuN/jUBR/iVdTlf//W/BPoE2CmK
lbgskzFooQ7v3SSAoYl3TjwfN8iPWwni/yLDMJYJekxcZtsro7vugtl2HZDRhxLy
B0WB0y8Kx3lh1c7xC9CbXfqjJf+j1sKiGEh+cy1H71VdcakleoG+Tll8qvtWreEf
pZYczmeyn1pPZfbDzVw9AR9x1Yohrwaah1KNZoMIp0taVTkMe/NNEdMP2Rm7Y8ak
Eof49VBrRfDGkW135EYYJCHxBvXJAgMBAAGgADANBgkqhkiG9w0BAQQFAAOCAQEA
nQHOcqylM/b7NUqFuoWRG9R1GP6/gjixHqyyV4fe2c66HlBHcKR1Tm88cpT8mfu2
oE2Hw55DVUtkrBfNdVZqVXEK8yfiuF2EKuVk+34anCwwIQOg4o6Oy3xBU1oIKpqX
1x0Z7HZJ097DK6uwUqFsviEWyxrNCfJ3DYU5TfrZtnzIdOB6ztI3wBv1IYZyYzk/
zU65N4MDv64yUazmqjZKgxvl4THhWeFVPPy+4dk8k8dkuPkcqhdxeJVwntG7tQIw
utv8IShy2ckHVC0URV1RHbr660ygD/fAE3hGjzPbdgwu1DLlC5ANlpSfgeJc3feK
sqC2b/EfPHfdbtu6+eJgGw== -----END CERTIFICATE REQUEST-----</item>
<item key='server_count'>2</item>
<item key='period'>2</item>
<item key='order_id'>2326</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>

696

Sub-Reseller Commands
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>updateorder.example.com</item>
<item key='order_id'>2326</item>
<item key='state'>pending</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
This example creates login credentials for Domain Admin and changes the
processing instruction for the order from save to process.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

697

Sub-Reseller Commands
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>update_order</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='handle'>process</item>
<item key='order_id'>7419</item>
<item key='product_type'>sitelock_premium</item>
<item key='end_user_auth_info'>
<dt_assoc>
<item key='email_address'>qafive@example.com</item>
<item key='username'>customer111</item>
<item key='password'>changeit</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>

698

Sub-Reseller Commands
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.ca</item>
<item key='order_id'>7419</item>
<item key='state'>awaiting-approval</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 3
This example updates the list of domains that are secured by the Trust
Service product.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>update_order</item>
<item key='object'>trust_service</item>

699

Sub-Reseller Commands
<item key='attributes'>
<dt_assoc>
<item key='additional_domains'>
<dt_array>
<item key='0'>upadditional1.example.org</item>
<item key='1'>upadditional2.example.org</item>
<item key='2'>upadditional3.example.org</item>
<item key='3'>upadditional4.example.org</item>
<item key='4'>upadditional5.example.org</item>
</dt_array>
</item>
<item key='handle'>save</item>
<item key='order_id'>186332</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='response_text'>Command completed successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>

700

Sub-Reseller Commands
<dt_assoc>
<item key='domain'>example.org</item>
<item key='order_id'>186332</item>
<item key='state'>pending</item>
</dt_assoc>
</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

701

Sub-Reseller Commands

update_product
Description
Action & object
action = update_product
object = trust_service

Usage
Updates the Trust Service product and enables or disables the Symantec
Trust Seal and/or the Symantec Search-in-Seal.
Note: In order to enable the Symantec Search-in-Seal, Trust Seal must be
enabled.

Request parameters for update_product


Standard parameters
action = update_product
object = trust_service
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

contact_email

Optional

The email address for the new Trust Service


contact.

let_expire

Optional

Specifies whether renewal reminder email


messages will be sent for the Trust Service
product. This parameter may be used for any
active Trust Service product.
Allowed values are:

0Send renewal reminder emails when the


certificate is approaching its expiry date.
This is the default.

1Do not send any renewal reminder


emails.

product_id

Required

The ID number for the Trust Service.

seal_in_search

Optional

Specifies whether to enable the Symantec Seal-

702

Sub-Reseller Commands
Parameter
name

Obligation

Definition/Value
in-Search which displays the Symantec seal next
to the link for your web site in online search
results. Allowed values are:

0Do not enable the Symantec Seal-inSearch.

1Enable the Symantec Seal-in-Search

Important: If you submit this parameter, you


must also submit the trust_seal parameter with
the value equal to 1.
trust_seal

Optional

Specifies whether to enable the Symantec Trust


Seal on your website. Allowed values are:

0Do not enable the Symantec Trust


Seal.

1Enable the Symantec Trust Seal.

Response parameters for update_product


Standard parameters
action = reply
object = trust_service
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

contact_email

Optional

The email address for the new Trust Service


contact.

let_expire

Optional

Indicates whether renewal reminder email


messages will be sent for the Trust Service
product.
Allowed values are:

0Send renewal reminder emails when

703

Sub-Reseller Commands
Parameter
name

Obligation

Definition/Value
the certificate is approaching its expiry
date. This is the default.

1Do not send any renewal reminder


emails.

product_id

Returned if
The ID number for the Trust Service.
is_success =
true

seal_in_search

Optional

trust_seal

Optional

The status of the Symantec Seal-in-Search.


Allowed values are:

0Not enabled.

1Enabled.

The status of the Symantec Trust Seal. Allowed


values are:

0Not enabled.

1Enabled.

Examples for update_product


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>update_product</item>
<item key='object'>trust_service</item>
<item key='attributes'>
<dt_assoc>
<item key='trust_seal'>1</item>
<item key='contact_email'>newqafive@example.com</item>

704

Sub-Reseller Commands
<item key='seal_in_search'>1</item>
<item key='let_expire'>1</item>
<item key='product_id'>279</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>TRUST_SERVICE</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='trust_seal'>1</item>
<item key='product_id'>279</item>
<item key='contact_email'>newqafive@example.com</item>
<item key='let_expire'>1</item>
<item key='seal_in_search'>1</item>
</dt_assoc>
</item>

705

Sub-Reseller Commands
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

706

Sub-Reseller Commands
The Sub-Reseller API commands allow you to create and operate your own
network of domain name Resellers. Sub-Resellers operate very much like any
other OpenSRS Reseller; however, you are considered to be the parent
Reseller for your Sub-Resellers. You set the pricing plans for them, and you
earn commissions on the domains that they sell.
This section contains the following commands:

create subresellerCreates a new Sub-Reseller account.


modify subresellerModifies a Sub-Reseller account.
get subresellerReturns information about a Sub-Reseller account.
pay subresellerTransfers funds from the Reseller account into a SubReseller account.

707

Acting on behalf of Sub-Resellers


You can execute any of the API commands on behalf of one of your SubResellers simply by adding the parameter as_subreseller to the request.

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

as_subreseller

Optional

The username of the Sub-Reseller on whose behalf


you are submitting the command.

Example
Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='as_subreseller'>subrsp</item>
<item key='domain'>belongstosubreseller.com</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>0</item>
<item key='reg_type'>new</item>
<item key='reg_username'>jefferson</item>

708

<item key='contact_set'>
... see "Contact Set"
</item>
<item key='link_domains'>1</item>
<item key='period'>1</item>
<item key='reg_password'>password</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'></item>
<item key='custom_nameservers'>0</item>
</dt_assoc>
</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

709

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='admin_email'>aaron@example.com</item>
<item key='registration_code'>200</item>
<item key='id'>281405</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

710

create subreseller
Description
Action & object
action = create
object = subreseller

Usage
Creates a new Sub-Reseller account.

Request parameters for create subreseller


Standard parameters
action = create
object = subreseller
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

ccp_enabled

Required

Indicates whether credit card payments are


allowed for the Sub-Reseller.

contact_set

Required

NNo

YYes

Sub-Resellers contact information.


The admin contact for a Sub-Reseller is the
Emergency Contact, which is not the same as
a domain admin contact. The following
values are required for the Sub-Reseller
admin contact: first_name, last_name,
org_name, phone, and email.
For tech contact, you can include any of the
fields explained in the contact_set section;
however, you must include first_name,
last_name, org_name, address1, city,
phone, and email. If country is Canada or
U.S, you must also include the state and
postal code parameters.

711

Parameter name

Obligation

Definition/Value

low_balance_email

Required

The email address to which notices are sent


when the Sub-Reseller's account balance falls
to a predefined level.

nameservers

Optional

List of default nameservers for the SubReseller.

password

Required

Password for the new Sub-Reseller account.

payment_email

Optional

The email address to which payment notices


are sent.

pricing_plan

Required

The pricing plan assigned to the SubReseller.

status

Required

Set the status of the account.


Allowed values are active, onhold, locked,
canceled, and paid_only.

system_status_email

Required

The email address that will receive system


status messages.

url

Optional

The web address of the account.

username

Required

Username for the new Sub-Reseller.

Response parameters for create subreseller


Standard parameters
action = reply
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

reseller_id

Returned if is_success
=1

The ID of the newly created SubReseller.

712

Examples for create subreseller


Request
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>CREATE</item>
<item key='object'>SUBRESELLER</item>
<item key='attributes'>
<dt_assoc>
<item key='url'>testurl.com</item>
<item key='nameservers'>
<dt_assoc>
<item key='fqdn1'>ns1.systemdns.com</item>
<item key='fqdn2'>ns2.systemdns.com</item>
</dt_assoc>
</item>
<item key='payment_email'>tstewart@example.com</item>
<item key='pricing_plan'>gold</item>
<item key='status'>active</item>
<item key='username'>sub1240929148892</item>
<item key='contact_set'>
<dt_assoc>
<item key="admin">
<dt_assoc>
<item
key="email">EmergencyContact@example.com</item>
<item key="phone">+1.4165551123x333</item>

713

<item key="phone2"></item>
<item key="first_name">John</item>
<item key="last_name">Doe</item>
</dt_assoc>
</item>
<item key="tech">
<dt_assoc>
<item key="org_name">Sub Reseller Company
Inc.</item>
<item key="first_name">John</item>
<item key="last_name">Doe</item>
<item key="title">CEO</item>
<item key="phone">+1.4165551122x333</item>
<item key="fax"></item>
<item key="email">jdoe@example.com</item>
<item key="address1">55 Reseller Ave</item>
<item key="address2">Suite 99</item>
<item key="address3"></item>
<item key="city">New York</item>
<item key="state">NY</item>
<item key="postal_code">70218</item>
<item key="country">US</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='ccp_enabled'>n</item>
<item key='low_balance_email'>mbrown@example.com</item>
<item key='password'>changeit</item>
<item key='system_status_email'>rory@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

714

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>SUBRESELLER</item>
<item key='response_text'>Sub-Reseller sub1240929148892
successfully created</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='attributes'>
<dt_assoc>
<item key='reseller_id'>9782</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

715

modify subreseller
Description
Action & object
action = modify
object = subreseller

Usage
Modify a Sub-Reseller account.

Request parameters for modify subreseller


Standard parameters
action = modify
object = subreseller
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

allowed_tld_list

Optional

List of TLDs that the Sub-Reseller is allowed


to sell.

ccp_enabled

Required

Indicates whether credit card payments are


allowed for the Sub-Reseller.

contact_set

Required

NNo

YYes

Sub-Resellers contact information.


The admin contact for a Sub-Reseller is the
Emergency Contact, which is not the same
as a domain admin contact. The following
values are required for the Sub-Reseller
admin contact: first_name, last_name,
org_name, phone, and email.
For tech contact, you can include any of the
fields explained in the contact_set section;
however, you must include first_name,
last_name, org_name, address1, city,
phone, and email. If country is Canada or
U.S, you must also include the state and
postal code parameters.

716

Parameter name

Obligation

Definition/Value

low_balance_email

Required

The email address to which notices are sent


when the Sub-Reseller's account balance
falls to a predefined level.

nameservers

Optional

List of default nameservers for the SubReseller.

password

Required

Password for the Sub-Reseller account.

payment_email

Optional

The email address to which payment notices


are sent.

pricing_plan

Required

The pricing plan assigned to the SubReseller.

status

Required

Set the status of the account.


Allowed values are active, onhold, locked,
canceled, and paid_only.

storefront_rwi

Optional

Determines whether the Sub-Reseller sees


the Storefront link in the RWI (and hence
whether the Sub-Reseller can configure a
Storefront).

NDo not display the Storefront


link; this is the default.

YDisplay the Storefront link

system_status_email

Required

The email address that will receive system


status messages.

url

Optional

The web address of the account.

username

Required

Username for the new Sub-Reseller.

Response parameters for modify subreseller


Standard parameters
action = reply
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

717

Examples for modify subreseller


Request
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>MODIFY</item>
<item key='object'>SUBRESELLER</item>
<item key='attributes'>
<dt_assoc>
<item key='url'>testurlupdate.com</item>
<item key='nameservers'>
<dt_assoc>
<item key='fqdn1'>ns1.systemdns.com</item>
<item key='fqdn2'>ns2.systemdns.com</item>
</dt_assoc>
</item>
<item key='payment_email'>jdoe@example.com</item>
<item key='pricing_plan'>silver</item>
<item key='status'>cancelled</item>
<item key='username'>sub1240929148892</item>
<item key='contact_set'>
<dt_assoc>
<item key="admin">
<dt_assoc>
<item
key="email">EmergencyContact@example.com</item>
<item key="phone">+1.4165551123x333</item>

718

<item key="phone2"></item>
<item key="first_name">John</item>
<item key="last_name">Doe</item>
</dt_assoc>
</item>
<item key="tech">
<dt_assoc>
<item key="org_name">Sub Reseller Company
Inc.</item>
<item key="first_name">John</item>
<item key="last_name">Doe</item>
<item key="title">CEO</item>
<item key="phone">+1.4165551122x333</item>
<item key="fax"></item>
<item key="email">jdoe@example.com</item>
<item key="address1">55 Reseller Ave</item>
<item key="address2">Suite 99</item>
<item key="address3"></item>
<item key="city">New York</item>
<item key="state">NY</item>
<item key="postal_code">70218</item>
<item key="country">US</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='storefront_rwi'>Y</item>
<item key='ccp_enabled'>Y</item>
<item key='low_balance_email'>wilkison@example.com</item>
<item key='password'>test123</item>
<item key='system_status_email'>robson@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

719

</OPS_envelope>

720

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='object'>SUBRESELLER</item>
<item key='response_text'>Reseller sub1240929148892
successfully modified</item>
<item key='action'>REPLY</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

721

get subreseller
Description
Action & object
action = get
object = subreseller

Usage
Returns information about a Sub-Reseller account.

Request parameters for get subreseller


Standard parameters
action = get
object = subreseller
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

username

Required

Username of the Sub-Reseller.

Response parameters for get subreseller


Standard parameters
action = reply
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

722

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name

Obligation

Definition/Value

allowed_tld_list

Returned if
List of TLDs that the Sub-Reseller is allowed
is_success = to sell.
true

ccp_enabled

Returned if
Indicates whether credit card payments are
is_success = allowed for the Sub-Reseller.
true
NNo

cert_permission

Returned if
Indicates whether the Sub-Reseller is
is_success = allowed to sell SSL Certificates.
true
0No

contact_set

YYes

1Yes

Returned if
Sub-Resellers contact information.
is_success = The admin contact for a Sub-Reseller is the
true
Emergency Contact, which is not the same
as a domain admin contact. The following
values are required for the Sub-Reseller
admin contact: first_name, last_name,
org_name, phone, and email.
The tech contact, can include any of the
fields explained in the contact_set section;
however, it must include first_name,
last_name, org_name, address1, city,
phone, and email. If country is Canada or
U.S, it also includes the state and postal
code parameters.

low_balance_email

Returned if
The email address to which notices are sent
is_success = when the Sub-Reseller's account balance
true
falls to a predefined level.

nameservers

Optional

List of default nameservers for the SubReseller.

payment_email

Optional

The email address to which payment notices


are sent.

pricing_plan

Returned if
The pricing plan assigned to the Subis_success = Reseller.
true

reseller_id

Returned if
The ID of the Reseller who created and
is_success = manages the Sub-Reseller.
true

723

Parameter name

Obligation

Definition/Value

status

Returned if
Set the status of the account.
is_success = Allowed values are active, onhold, locked,
true
canceled, and paid_only.

storefront_rwi

Optional

Indicates whether the Storefront link


displays in the RWI for this Sub-Reseller
(and hence whether the Sub-Reseller can
configure a Storefront).

NDo not display the Storefront link

YDisplay the Storefront link

system_status_email

Returned if
The email address that will receive system
is_success = status messages.
true

url

Optional

username

Returned if
Username for the new Sub-Reseller.
is_success =
true

The web address of the account.

Examples for get subreseller


Request
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>GET</item>
<item key='object'>SUBRESELLER</item>
<item key='attributes'>
<dt_assoc>
<item key='username'>sub1240929148892</item>
</dt_assoc>

724

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>SUBRESELLER</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Query Successful</item>
<item key='pricing_plan_id'>84</item>
<item key='pricing_plan'>silver</item>
<item key='attributes'>
<dt_assoc>
<item key='system_status_email'>robson@example.com</item>
<item key='low_balance_email'>wilkison@example.com</item>
<item key='status'>cancelled</item>
<item key='cert_permission'>0</item>
<item key='nameservers'>
<dt_assoc>
<item key='fqdn4'/>
<item key='fqdn2'>ns2.systemdns.com</item>
<item key='fqdn5'/>

725

<item key='fqdn1'>ns1.systemdns.com</item>
<item key='fqdn6'/>
<item key='fqdn3'/>
</dt_assoc>
</item>
<item key='payment_email'>jdoe@example.com</item>
<item key='username'>sub1240929148892</item>
<item key='allowed_tld_list'>
<dt_array>
<item key='0'>.cc</item>
<item key='1'>.com.vc</item>
<item key='2'>.net</item>
<item key='3'>.com</item>
<item key='4'>.nl</item>
<item key='5'>.mobi</item>
<item key='6'>.fr</item>
<item key='7'>.tv</item>
<item key='8'>.ltd.uk</item>
<item key='9'>.co.uk</item>
<item key='10'>.me.uk</item>
<item key='11'>.vc</item>
<item key='12'>.at</item>
<item key='13'>.info</item>
<item key='14'>.it</item>
<item key='15'>.ch</item>
<item key='16'>.net.uk</item>
<item key='17'>.mx</item>
<item key='18'>.us</item>
<item key='19'>.es</item>
<item key='20'>.org.vc</item>
<item key='21'>.asia</item>
<item key='22'>.org</item>
<item key='23'>.be</item>
<item key='24'>.tel</item>
<item key='25'>.eu</item>

726

<item key='26'>.net.vc</item>
<item key='27'>.plc.uk</item>
<item key='28'>.biz</item>
<item key='29'>.ca</item>
<item key='30'>.name</item>
<item key='31'>.de</item>
<item key='32'>.dk</item>
<item key='33'>.org.uk</item>
<item key='34'>.li</item>
<item key='35'>.me</item>
</dt_array>
</item>
<item key='wsb_permission'>0</item>
<item key='contact_set'>
<dt_assoc>
<item key='admin'>
<dt_assoc>
<item key='email'>jdoe@example.com</item>
<item key='org_name'/>
<item key='phone'>+1.4165551234</item>
<item key='phone2'>+1.4165551123</item>
<item key='first_name'>John</item>
<item key='last_name'>Doe</item>
</dt_assoc>
</item>
<item key='tech'>
<dt_assoc>
<item key='org_name'>Sub Reseller Company
Inc.</item>
<item key='first_name'>John</item>
<item key='last_name'>Doe</item>
<item key='title'>CEO</item>
<item key='phone'>+1.4165551122 x333</item>
<item key='fax'>+1.4165551221</item>
<item key='email'>jdoe@example.com</item>
<item key='address1'>55 Reseller Ave</item>

727

<item key='address2'>Suite 99</item>


<item key='address3'></item>
<item key='city'>New York</item>
<item key='state'>NY</item>
<item key='country'>US</item>
<item key='postal_code'> 70218</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='storefront_rwi'>Y</item>
<item key='ccp_enabled'>Y</item>
<item key='reseller_id'>9782</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

728

pay subreseller
Description
Action & object
action = pay
object = subreseller

Usage
Transfers funds from the Reseller account into a Sub-Reseller account.

Request parameters for pay subreseller


Standard parameters
action = pay
object = subreseller
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

amount

Required

The amount that you want to transfer to the SubReseller account; this value must be a positive
number.

username

Required

The username of the Sub-Reseller that is receiving


the funds.

Response parameters for pay subreseller


Standard parameters
action = reply
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

729

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name

Obligation

Definition/Value

id

Returned if
is_success =
true

The ID number of the transaction.

Examples for pay subreseller


Request
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>PAY</item>
<item key='object'>SUBRESELLER</item>
<item key='attributes'>
<dt_assoc>
<item key='amount'>1.00</item>
<item key='username'>subactive</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

730

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>SUBRESELLER</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Funds Transferred</item>
<item key='attributes'>
<dt_assoc>
<item key='id'>6715</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

731

Personal Names Service


The OpenSRS Personal Names Service enables you to offer your customers
web and email addresses based on our extensive portfolio of surnames.
These names cannot be found anywhere else, and represent an estimated
60% of the last names of our North American Resellers' customers. This
service allows your customers to have a website address and an email
address based on their last name without actually owning the name, for
example, adam.robinson.net. In addition, email addresses are available on a
second-level basis (adam@robinson.net).
Note: Because the names are owned by OpenSRS, outbound transfers to
other registrars are not possible.

This section contains the following commands:

name_suggest (surname)Checks whether a specified Personal


Names domain (firstname lastname) is available for registration.
su_registerSubmits a new registration order for an available Personal
Names domain.
query (surname)Queries the properties of the domain.
update surnameChanges properties of the Personal Names domain,
for example, changes the forwarding email address or changes from a
forwarding only account to an OpenSRS webmail address.
delete (surname)Deletes the Personal Names domain.

732

name_suggest (surname)
Description
Action & object
action = name_suggest
object = surname

Usage
Checks whether a specified Personal Name, (firstname lastname) is available
for registration in various gTLDs and ccTLDs, suggests other similar domain
names, and checks whether they are available.
Important: This command has been deprecated. To check whether a
specified Personal Names domain, is available for registration, use the
name_suggest (domain) command and specify personal_names.

Request parameters for name_suggest (surname)


Standard parameters
action = name_suggest
object = surname
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

searchstring

Required

The name whose availability you want to check, for


example, 'john smith'. Be sure to include both the
first and the last name. If the first name is not
specified, results are returned for the last name only,
along with a message stating that a first name is
required.
Note: The first level domain (for example, .COM) is
not required.

733

Response parameters for name_suggest


(surname)
Standard parameters
action = reply
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

suggestion

Returned if
The results returned.
is_success = For more information, see the Suggestion table
true
below.

Suggestion
Parameters within the suggestion associative array are described below.
Parameter
name

Obligation

Definition/Value

count

Always
returned

The number of results returned.

items

Always
returned

List of domain names and their statuses.


For more information, see the Items table
below.

Items
Parameters within the items associative array are described below.

734

Parameter
name

Obligation

Definition/Value

domain

Always
returned

Returned domain name.

status

Always
returned

Indicates whether the returned domain name is


available and can be registered. Allowed value is
available.

Examples for name_suggest (surname)


Request
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">name_suggest</item>
<item key="object">surname</item>
<item key="attributes">
<dt_assoc>
<item key="searchstring">steven smith</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>

735

<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">SURNAME</item>
<item key="response_text">Command completed
successfully</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="suggestion">
<dt_assoc>
<item key="count">11</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item
key="domain">steven.smith.net</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item
key="domain">steven.smithemail.com</item>
<item key="status">available</item>

736

</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item
key="domain">steven.smithhome.com</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="3">
<dt_assoc>
<item
key="domain">steven.smithmail.com</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="4">
<dt_assoc>
<item
key="domain">steven.smithnet.net</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="5">
<dt_assoc>
<item
key="domain">steven.smithnet.org</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="6">
<dt_assoc>
<item
key="domain">steven.smithpage.net</item>
<item key="status">available</item>
</dt_assoc>
</item>

737

<item key="7">
<dt_assoc>
<item
key="domain">steven.smithpost.com</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="8">
<dt_assoc>
<item
key="domain">steven.smithweb.org</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="9">
<dt_assoc>
<item
key="domain">steven.thesmith.org</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="10">
<dt_assoc>
<item
key="domain">steven.nesmith.com</item>
<item key="status">available</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

738

</OPS_envelope>

739

su_register
Description
Action & object
action = su_register
object = surname

Usage
Submits a new registration order for an available Personal Names domain.

Request parameters for su_register


Standard parameters
action = su_register
object = surname
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation Definition/Value

dnsRecords

Optional

A DNS record associated with the domain along with


its value.
Note: You can only specify one DNS record: either A
or CNAME.
For more information, see the DNS Records table
below.

domain

Required

The domain name to register.

mailbox

Required

An array that defines the type of account to create.


For more information, see the Mailbox table below.

740

DNS Records
Parameters within the dnsRecords associative array are described below.
Parameter
name

Obligation Definition/Value

content

Optional

The IP address or fully qualified domain name.


Note: When specifying the domain name for CNAME
records, put a dot after the TLD.

name

Optional

The unqualified name of the DNS record.


Specify @ to indicate the actual zone rather than
another record in the zone.

type

Optional

The type of DNS record. Allowed values are A or


CNAME.

Mailbox
Parameters within the mailbox associative array are described below.
Parameter
name

Obligation Definition/Value

forward_email

Optional

The address to which email is forwarded.


The type of mailbox account. Allowed values are:

mailbox_type

password

Required

Required

MAILBOX create a regular email account.

WEBMAIL_ONLY create a Webmail only


account (no IMAP/POP/SMTP).

FORWARD_ONLY THIS VALUE HAS BEEN


DEPRECATED. If you submit this value, the
command will fail.

The registrant's initial email password.

Response parameters for su_register


Uses standard response message (see "Response messages").

741

Examples for su_register


Request
Register a domain with a regular mailbox
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SU_REGISTER</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="password">changeit</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

742

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>SURNAME</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Command completed successfully</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Request
Register a domain with a regular mailbox and email forwarding
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SU_REGISTER</item>

743

<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="password">changeit</item>
<item key="forward_email">steve@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>SURNAME</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Command completed successfully</item>
</dt_assoc>

744

</data_block>
</body>
</OPS_envelope>

Request
Register a domain with webmail only
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SU_REGISTER</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">WEBMAIL_ONLY</item>
<item key="password">changeit</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
<OPS_envelope>

745

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>SURNAME</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Command completed successfully</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Request
Register a domain with webmail only and email forwarding
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SU_REGISTER</item>

746

<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">WEBMAIL_ONLY</item>
<item key="password">changeit</item>
<item key="forward_email">steve@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
<OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>SURNAME</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Command completed successfully</item>
</dt_assoc>

747

</data_block>
</body>
</OPS_envelope>

748

Request
Register a domain with email forwarding and set the A record
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SU_REGISTER</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="password">changeit</item>
<item key="forward_email">steve@example.com</item>
</dt_assoc>
</item>
<item key="dnsRecords">
<dt_array>
<item key="0">
<dt_assoc>
<item key="type">A</item>
<item key="name">@</item>
<item key="content">127.0.0.2</item>
</dt_assoc>
</item>
</dt_array>

749

</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
<OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>SURNAME</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Command completed successfully</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Request
Register a domain with a regular mailbox and set the Cname record
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>

750

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SU_REGISTER</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="password">changeit</item>
</dt_assoc>
</item>
<item key="dnsRecords">
<dt_array>
<item key="0">
<dt_assoc>
<item key="type">CNAME</item>
<item key="name">@</item>
<item key="content">steven.smith.net.</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Note: The dot after .net is required for CNAME records.

751

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>SURNAME</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Command completed successfully</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

752

query (surname)
Description
Action & object
action = query
object = surname

Usage
Queries the properties of the domain.

Request parameters for query (surname)


Standard parameters
action = query
object = surname
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The Personal Names domain to be queried.

query_dns

Optional

Requests information about the DNS settings.

query_email

Optional

0Do not return DNS information; this is


the default.

1Return all DNS records for the zone.

Requests information about the associated email


account.

0Do not return email account


information; this is the default.

1Return information about the email

account.

753

Response parameters for query (surname)


Standard parameters
action = reply
object = surname
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

created_on

Returned if
Date the domain was created.
is_success =
true

domain

Returned if
The Personal Names domain to which the returned
is_success = values apply.
true

mailbox

Optional

Information about the mailbox.


For more information, see the Mailbox table
below.

state

Optional

Current status of the Personal Names domain.


Available value is active.

zone

Optional

Information about the DNS records.


For more information, see the Zone table below.

Mailbox
Parameters within the mailbox associative array are described below.
Parameter
name

Obligation

Definition/Value

forward_email

Optional

The address to which email is forwarded.

mailbox_type

Optional

The type of mailbox: MAILBOX or


WEBMAIL_ONLY.

754

Records
Parameters within the records associative array are described below.
Parameter
name

Obligation

Definition/Value

content

Optional

The IP address or fully qualified domain name.

name

Optional

The unqualified domain name or @ symbol.

type

Optional

The type of DNS record. Allowed values are A and


CNAME.

Zone
Parameters within the zone associative array are described below.
Parameter
name

Obligation

Definition/Value

records

Optional

A list of the DNS records associated with the


domain, along with their values.

zone_id

Optional

Internal identifier for the DNS zone.

Examples for query (surname)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">QUERY</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>

755

<item key="domain">steven.smith.net</item>
<item key="query_email">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">SURNAME</item>
<item key="is_success">1</item>
<item key="response_text">Command completed successfully</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="state">active</item>
<item key="created_on">2008-01-03T14:25:45.000-05:00</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="response_text">OK</item>
<item key="is_success">1</item>
</dt_assoc>

756

</item>
<item key="zone">
<dt_assoc>
<item key="state">active</item>
<item key="response_text">OK</item>
<item key="is_success">1</item>
<item key="zone_id">3186929</item>
<item key="name">steven.smith.net</item>
<item key="records">
<dt_array>
<item key="0">
<dt_assoc>
<item key="content">steven.smith.net</item>
<item key="type">CNAME</item>
<item key="name">www</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

757

update (surname)
Description
Action & object
action = update
object = surname

Usage
Changes properties of the domain. You can use this command to change the
DNS records, enable or disable email forwarding, or to change the service
type, for example, to switch from Webmail (no IMAP/POP/SMTP) to a regular
mailbox.

Request parameters for update surname


Standard parameters
action = update
object = surname
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

dnsRecords

Optional

A DNS record associated with the domain along


with its value.
Note: You can only specify one DNS record: either
A or CNAME.
For more information, see the DNS Records table
below.

domain

Required

The domain to be updated.

mailbox

Optional

An array that defines the type of account.


For more information, see the Mailbox table
below.

758

DnsRecords
Parameters within the dnsRecords associative array are described below.
Parameter
name

Obligation

Definition/Value

content

Optional

The IP address or the fully qualified domain name.

name

Optional

The new name for the DNS record


Specify @ to indicate the actual zone rather than
another record in the zone.

type

Optional

Type of DNS record. Allowed values are A or


CNAME.

Warning: If you update dnsRecords, you must supply a full list of records.
Any committed records will be deleted.

Mailbox
Parameters within the mailbox associative array are described below.
Parameter name

Obligation

Definition/Value

disable_forward_
email

Optional

Disable email forwarding.


Allowed value is 1.
Note: To enable forwarding, use the
forward_email parameter.

forward_email

Optional

The address to which email is forwarded.

mailbox_type

Optional

Change the type of mailbox account. Allowed


values are:

password

Optional

MAILBOXChange to regular email


account.

WEBMAIL_ONLYChange to
Webmail only account (no
IMAP/POP/SMTP).

FORWARD_ONLYTHIS VALUE
HAS BEEN DEPRECATED.

The registrant's new email password.

759

Response parameters for update surname


Standard parameters
action = reply
object = surname
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Examples for update surname


Request
Change a regular mailbox account to a webmail only account and
enable email forwarding
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">UPDATE</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox type">WEBMAIL_ONLY</item>
<item key="forward_email">steve@example.com</item>
</dt_assoc>
</item>

760

</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">SURNAME</item>
<item key="is_success">1</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
<OPS_envelope>

761

Request
Change a webmail only account to a regular mailbox, change the
password, and set the A record
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">UPDATE</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="password">changeit</item>
</dt_assoc>
</item>
<item key="dnsRecords">
<dt_array>
<item key="0">
<dt_assoc>
<item key="type">A</item>
<item key="name">@</item>
<item key="content">127.0.0.2</item>
</dt_assoc>
</item>
</dt_array>
</item>

762

</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">SURNAME</item>
<item key="is_success">1</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
<OPS_envelope>

763

Request
Change a webmail only account to a regular mailbox and disable
email forwarding
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">UPDATE</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="disable_forward_email">1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

764

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">SURNAME</item>
<item key="is_success">1</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
<OPS_envelope>

765

delete (surname)
Description
Action & object
action = delete
object = surname

Usage
Deletes the Personal Names domain. This call can delete only one domain at
a time.

Request parameters for delete (surname)


Standard parameters
action = delete
object = surname
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Required

Personal Names domain to be deleted.

Response parameters for delete (surname)


Standard parameters
action = reply
object = surname
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

766

Examples for delete (surname)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">DELETE</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>

767

<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">SURNAME</item>
<item key="is_success">1</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

768

Transfer Commands
This section contains the following commands:

pending owner approval.

cancel_transferCancels transfers that are

check_transferChecks to see if the specified


domain can be transferred in to OpenSRS, or from one OpenSRS Reseller
to another.

get_transfers_awayLists domains that have


been transferred away.

get_transfers_inLsts domains that have been


transferred in.

process_transferCreates a new order with


the same data as a cancelled order.

rsp2rsp_push_transferTransfer a domain
from one Reseller to another Reseller.

send_password (transfer)Resends an email


to the admin contact for a transfer that is in 'pending owner approval'
state,

trade_domainTransfers ownership of a .BE


domain.

769

cancel_transfer
Description
Action & object
action = cancel_transfer
object = transfer

Usage
Cancels transfers that are pending owner approval.

Request parameters for cancel_transfer


Standard parameters
action = cancel_transfer
object = transfer
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Optional - either order-id or


domain must be specified.

The domain to be cancelled.

order_id

Optional - either order-id or


domain must be specified.

The ID of the order to be


cancelled.

reseller

Required

Reseller username.

Response parameters for cancel_transfer


Standard parameters
action = reply
object = transfer
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

770

Examples for cancel_transfer


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">cancel_transfer</item>
<item key="object">transfer</item>
<item key="attributes">
<dt_assoc>
<item key="reseller">purple</item>
<item key="order_id">3533098</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
If successful
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

771

<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">TRANSFER</item>
<item key="response_text">Transfer with order id: 3533098
has been cancelled.</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If unsuccessful
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">TRANSFER</item>
<item key="response_text">Command Failed: Transfer State
Prohibits Cancellation</item>
<item key="is_success">0</item>
<item key="response_code">400</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

772

check_transfer
Description
Action & object
action = check_transfer
object = domain

Usage
Checks to see if the specified domain can be transferred in to OpenSRS, or
from one OpenSRS Reseller to another. This call can also be used to check
the status of the last transfer request on a given domain name.
When you use the check_transfer action prior to initiating a transfer, the
transferable response parameter is most relevant, and if transferable = 0,
the reason field is also important.
When you use the check_transfer action to determine the progress of a
transfer, the status parameter is most important. If the response indicates
that the transfer is in progress and the status is pending_registry, the
transfer will be scheduled to complete within 5 minutes of the query; running
the query expedites the process and causes the transfer to complete within 5
minutes.

Request parameters for check_transfer


Standard parameters
action = check_transfer
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

check_status

Optional

Flag to request the status of a transfer


request. If the transfer state is returned as
pending_registry and the Registry shows
OpenSRS as the Registrar of record,
OpenSRS schedules the completion of gTLD
transfers.
Allowed values are 0 or 1.

domain

Required

The fully qualified domain name in the

773

Parameter name

Obligation

Definition/Value
transfer order.

get_request_address

Optional

Flag to request the registrant's contact email


address. This is useful if you want to make
sure that your client can receive mail at that
address to acknowledge the transfer.
Allowed values are 0 or 1.

Response parameters for check_transfer


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

noservice

Returned if
is_success = true

Indication of supplier availability:

0Supplier is available

1Supplier is unavailable.

Note: When noservice is 1 then


transferable is set to 0 and is_success is
set to 1.
reason

Returned if
Reason for transfer status.
is_success = true
and transferrable =
0

request_address

Optional

status

Returned if
Status of the latest transfer on the
is_success = true. If domain initiated by the Reseller.
no transfer is
Note: Resellers can only request status

Valid email address of registrant, which


can be used to make sure that they can
receive mail at that address to
acknowledge the transfer.

774

Parameter
name

Obligation

Definition/Value

underway, this value is for transfers that they initiated (any


retrieved from the
checks for transfers initiated by other
previous transfer
Resellers returns 'undef').
order.
pending_ownerAwaiting
approval by domain's admin
contact (every transfer begins with
this status). If approval is not
given within five days, the transfer
is cancelled by OpenSRS.

pending_adminWaiting for
approval by OpenSRS support
staff.

pending_registryAwaiting
registry approval (the transfer
completes after 7 days unless it is
declined by the current registrar).
If the Registry shows OpenSRS as
the Registrar of record, OpenSRS
schedules the completion of gTLD
transfers. The transfer will be
scheduled to complete within 5
minutes of the query.

completedThe transfer
completed successfully.

cancelledThe Reseller or
OpenSRS stopped the transfer.

undefNo transfer exists for this

domain.
timestamp

Returned if
The date and time of the most recent
is_success = true. If update to the state of the transfer (which
no transfer is currently could be placement of an order, an owner
underway, timestamp request, an owner confirmation, a
is retrieved from the registry request, or
previous transfer
completion/cancellation of an order).
order.
Date format is DD MMM YYYY 00:00:00
GMT

transferrable

Included only when a Whether the domain can be transferred.


transfer request has
0Cannot be transferred
not been submitted for
1Can be transferred
the specified domain

type

Returned if
Type of transfer initiated:
is_success = true
reg2regTransfer from one
and transferrable =
registrar to another.
1
rsp2rspTransfer between two
Resellers of the same registrar.

775

Parameter
name

Obligation

Definition/Value

unixtime

Returned if
Conversion of timestamp, in seconds
is_success = true. If since Epoch (1 Jan 1970 00:00:00 GMT).
no transfer is currently
underway, unixtime is
retrieved from the
previous transfer
order.

Examples for check_transfer


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">CHECK_TRANSFER</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="check_status">1</item>
<item key="get_request_address">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

776

Response 1
This response indicates that the transfer is awaiting approval by domain's admin
contact .

<?xml version='1.0' encoding='UTF-8' standalone='no' ?>


<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Query successful</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="status">pending_owner</item>
<item key="transferrable">0</item>
<item key="reason">Transfer in progress</item>
<item key="request_address"/>
<item key="unixtime">1115213766</item>
<item key="timestamp">Wed May

4 09:36:06 2005</item>

</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

777

Response 2
This response indicates that the transfer was successful. The status shows
pending_registry because a cronjob needs to run to complete the transfer
process; however, running the check transfer command causes the transfer
to complete within 5 minutes.
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query successful. Transfer scheduled in 5
minutes.</item>
<item key="attributes">
<dt_assoc>
<item key="transferrable">0</item>
<item key="noservice">0</item>
<item key="timestamp">Thu Jun 14 11:05:34 2012</item>
<item key="status">pending_registry</item>
<item key="reason">Transfer in progress</item>
<item key="unixtime">1339686334</item>
<item key="request_address">requester@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

778

Response 3
This response indicates that the transfer request completed and the domain
is now with OpenSRS.
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Query successful</item>
<item key="action">REPLY</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="transferrable">0</item>
<item
key="reason_code">domain_already_belongs_to_current_reseller</item>
<item key="noservice">0</item>
<item key="timestamp">Mon Jun 18 15:15:25 2012</item>
<item key="status">completed</item>
<item key="reason">Domain already exists in RESELLER_NAME's
account</item>
<item key="unixtime">1340046925</item>
<item key="request_address">requester@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

779

get_transfers_away
Description
Action & object
action = get_transfers_away
object = domain

Usage
Lists domains that have been transferred away. This command applies to all
domains in a Reseller's profile.
All attributes are optional, but can be used to narrow the search criteria. If
no attributes are specified, all domains that were ever transferred-away from
your profile are returned.

Request parameters for get_transfers_away


Standard parameters
action = get_transfers_away
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Optional

Submit the domain name attribute only if you


want to check if a particular domain has been
transferred away.

gaining_registrar

Optional

Search for transfers-away according to


gaining registrar. String and wildcards (*)
accepted.

limit

Optional

The maximum number of domains to return


per page, up to 40.

owner_confirm_from

Optional

Search for transferred-away domains


according to the date from when the owner
confirmed or denied the transfer. Can be
used with the owner_confirm_to attribute
to specify a range within which to search.
The year specified cannot exceed 2030.
Use the format YYYY-MM-DD.

780

Parameter name

Obligation

Definition/Value

owner_confirm_to

Optional

Search for transferred-away domains


according to the date prior to when the
owner confirmed or denied the transfer. Can
be used with the owner_confirm_from
attribute to specify a range within which to
search. The year specified cannot exceed
2030.
Use the format YYYY-MM-DD.

owner_request_from

Optional

Search for transferred domains according to


the date when the email was been sent to
the request_address. Can be used with the
owner_request_to attribute to specify a
range within which to search. If not used
with owner_request_to, all domains from
the owner_request_from date onward are
returned. The year specified cannot exceed
2030; otherwise an error is returned.
Use the format YYYY-MM-DD.

owner_request_to

Optional

Search for transferred domains according to


the date prior to when the email was sent to
the request_address. Can be used with the
owner_request_from attribute to specify a
range within which to search. If not used
with owner_request_from, all domains
ever transferred away from the
owner_request_to date and earlier are
returned. The year specified cannot exceed
2030; otherwise an error is returned.
Use the format YYYY-MM-DD.

page

Optional

Determines which page to retrieve, using the


page number. The page index starts at 0
(zero).

req_from

Optional

Search for transferred domains according to


the date when the transfer notification was
sent. Can be used with the req_to attribute
to specify a range within which to search. If
not used with req_to, all domains from the
req_from date onward are returned. The
year specified cannot exceed 2030;
otherwise an error is returned.
Use the format YYYY-MM-DD.

req_to

Optional

Search for transferred domains according to


the date up until the transfer notification was
sent. Can be used with the req_from
attribute to specify a range within which to
search. If not used with req_from, all
domains prior to the req_to date onward are

781

Parameter name

Obligation

Definition/Value
returned. The year specified cannot exceed
2030; otherwise an error is returned.
Use the format YYYY-MM-DD.

request_address

Optional

The admin email address at the time of


notification. Wildcards (*) accepted.

status

Optional

Search for transferred domains by status.


Allowed values are pending_admin,
pending_owner, pending_registry,
completed, or cancelled.

Response parameters for get_transfers_away


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

page

Returned if specified in the The number of the page retrieved.


request and is_success =
true

page_size

Returned if specified in the


request and is_success =
true

The maximum number of domains


returned per page.

total

Returned if is_success =
true

The number of transferred-away


domains.

transfers

Returned if a transferredaway domain exists and


meets the specified search
criteria and is_success =
true

Contains arrays that list details about


each transfer-away.
For more information, see the
Transfers table below.

782

Transfers
Parameters within the transfers associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Returned if a
transferred-away
domain exists and
meets the specified
search criteria.

The domain that was


transferred-away.

gaining_registrar

Always returned for


transferred away
domains.

The registrar that gained the


transferred-away domain.

owner_choice

Always returned for


transferred away
domains.

Indicates the owner's response


to the transfer-away request.

IIgnored

YApproved

NDeclined

owner_confirm_date

Always returned for


transferred away
domains.

Date when the owner


responded to the transfer
request.

owner_confirm_date_epoch

Always returned for


transferred away
domains.

Date when the owner


responded to the transfer
request, in UNIX time.

owner_request_date

Always returned for


transferred away
domains.

Date when transfer request


was sent to the owner.

owner_request_date_epoch

Always returned for


transferred away
domains.

Date when transfer request


was sent to the owner, in UNIX
time.

registry_request_date

Always returned for


transferred away
domains.

The date when the transfer


request was sent to the
registry

registry_request_date_epoch

Always returned for


transferred away
domains.

The date when the transfer


request was sent to the
registry, in UNIX time.

request_address

Always returned for


transferred away
domains.

The admin contact email


address, at the time of
transfer notification

request_date

Always returned for


transferred away
domains.

The date when the transfer


request was sent.

783

Parameter name

Obligation

Definition/Value

request_date_epoch

Always returned for


transferred away
domains.

The date when the transfer


request was sent, in UNIX
time.

status

Always returned for


transferred away
domains.

The status of the transfer:


Allowed values are

pending_admin

pending_owner

pending_registry

completed

cancelled.

Examples for get_transfers_away


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET_TRANSFERS_AWAY</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="status">completed</item>
<item key="request_address">girl@example.com</item>
<item key="gaining_registrar">Tucows Inc.</item>
<item key="limit">40</item>
<item key="page">1</item>
</dt_assoc>

784

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="page">1</item>
<item key="page_size">2</item>
<item key="total">1</item>
<item key="transfers">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">example.com</item>
<item key="status">completed</item>
<item key="gaining_registrar">Tucows
Inc.</item>
<item key="owner_choice">Y</item>

785

<item
key="owner_confirm_ip">10.0.12.165</item>
<item key="owner_request_date">20-JUL-

2006 16:14:41</item>

<item
key="owner_request_date_epoch">1153426481</item>
<item key="owner_confirm_date">20-JUL-

2006 16:18:08</item>

<item
key="owner_confirm_date_epoch">1153426688</item>
<item
key="request_address">girl@example.com</item>
<item key="request_date">20-JUL-2006

16:14:36</item>

<item
key="request_date_epoch">1153426476</item>
<item key="registry_request_date">20-JUL-

2006 16:18:09</item>

<item
key="registry_request_date_epoch">1153426689</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

786

get_transfers_in
Description
Action & object
action = get_transfers_in
object = domain

Usage
Lists domains that have been transferred in. This command applies to all
domains in a Reseller's profile.
All attributes are optional, but can be used to narrow the search criteria. If
no attributes are specified, all domains that were ever transferred into your
profile are returned.

Request parameters for get_transfers_in


Standard parameters
action = get_transfers_in
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

completed_from

Optional

Specify the start date for the search. Only


domains transferred on or after the specified
date are returned.
Use the format YYYY-MM-DD.

completed_to

Optional

Specify the end date for the search. Only


domains transferred on or before the
specified date are returned.
Use the format YYYY-MM-DD.

domain

Optional

Submit the domain name attribute only if


you want to check if a particular domain has
been transferred in.

limit

Optional

The maximum number of domains to return


per page, up to 40.

losing_registrar

Optional

Search for transfers-in according to losing

787

Parameter name

Obligation

Definition/Value
registrar. String and wildcards (*) accepted.

order_id

Optional

ID number of the order.

order_from

Optional

Specify a starting date, in the format YYYYMM-DD from which to return orders. Can be
used with the order_to parameter to specify
a range within which to search. If not used
with order_to, all orders from the
order_from date onward are returned.

order_to

Optional

Specify an end date, in the format YYYYMM-DD, before which to return orders. Can
be used with the attribute order_from
parameter to specify a range within which to
search. If not used with order_from, all
orders from the order_to date and earlier
are returned.

owner_confirm_from

Optional

Search for transferred-in domains according


to the date from when the owner confirmed
or denied the transfer. Can be used with the
owner_confirm_to attribute to specify a
range within which to search.
Use the format YYYY-MM-DD.
Note: The year specified cannot exceed
2030.

owner_confirm_ip

Optional

The IP address from which the owner


confirmed or denied the transfer-in request.

owner_confirm_to

Optional

Search for transferred-in domains according


to the date prior to when the owner
confirmed or denied the transfer. Can be
used with the owner_confirm_from
attribute to specify a range within which to
search.
Use the format YYYY-MM-DD.
Note: The year specified cannot exceed
2030.

owner_request_from

Optional

Search for transferred domains according to


the date when the email was been sent to
the request_address. Can be used with
the owner_request_to attribute to specify
a range within which to search. If not used
with owner_request_to, all domains from
the owner_request_from date onward are
returned. The year specified cannot exceed
2030; otherwise an error is returned.
Use the format YYYY-MM-DD.

788

Parameter name

Obligation

Definition/Value

owner_request_to

Optional

Search for transferred domains according to


the date prior to which the email was been
sent to the request_address. Can be used
with the owner_request_from attribute to
specify a range within which to search. If not
used with owner_request_from, all
domains ever transferred in prior to the
owner_request_to date are returned.
Use the format YYYY-MM-DD.
Note: The year specified cannot exceed
2030; otherwise an error is returned.

page

Optional

Determines which page to retrieve, using the


page number. The page index starts at 0
(zero).

request_address

Optional

The admin email address at the time of


notification. Wildcards (*) accepted.

status

Optional

Search for transferred domains by status.


Allowed values are pending_admin,
pending_owner, pending_registry,
completed, or cancelled.

transfer_id

Optional

ID number of the transfer.

Response parameters for get_transfers_in


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

page

Returned if specified in the


request and is_success = true

The number of the page


retrieved.

page_size

Returned if specified in the

The maximum number of

789

Parameter
name

Obligation

Definition/Value

request and is_success = true

domains returned per page.

total

Returned if is_success = true

The number of transferred-in


domains.

transfers

Returned if a transferred-in
domain exists and meets the
specified search criteria and
is_success = true

Contains arrays that list details


about each transfer-in.
For more information, see the
Transfers table below.

Transfers
Parameters within the transfers associative array are described below.
Parameter name

Obligation

Definition/Value

affiliate_id

Returned if specified in
the transfer order.

The unique identifier of an RSP's


affiliate, which allows the RSP to
track orders
coming through different
affiliates.

completed_date

Always returned in the


case of a transferred-in
domain.

Date when the transfer was


completed.

completed_date_epoch Always returned in the


case of a transferred-in
domain.

Date when the transfer was


completed, in UNIX time.

domain

Returned if a transferred- The domain that was transferred


in domain exists and
in.
meets the specified
search criteria.

gaining_registrar

Always returned in the


case of a transferred-in
domain.

The registrar that gained the


transferred-in domain.

losing_registrar

Always returned in the


case of a transferred-in
domain.

The registrar that lost the


transferred-in domain.

order_date

Always returned in the


case of a transferred-in
domain.

Date the order was created.

order_date_epoch

Always returned in the


case of a transferred-in
domain.

Date the order was created, in


UNIX time.

790

Parameter name

Obligation

Definition/Value

owner_choice

Always returned in the


case of a transferred-in
domain.

Indicates the owner's response to


the transfer-in request.

owner_confirm_date

IIgnored

YApproved

NDeclined

Always returned in the


case of a transferred-in
domain.

Date when the owner responded


to the transfer request.

owner_confirm_date_ep Always returned in the


och
case of a transferred-in
domain.

Date when the owner responded


to the transfer request, in UNIX
time.

owner_confirm_ip

Always returned in the


case of a transferred-in
domain.

The IP address from which the


owner responded to the transfer
request.

owner_request_date

Always returned in the


case of a transferred-in
domain.

Date when transfer request was


sent to the owner.

owner_request_date_e Always returned in the


poch
case of a transferred-in
domain.

Date when transfer request was


sent to the owner, in UNIX time.

registry_request_date

Always returned in the


case of a transferred-in
domain.

The date when the transfer


request was sent to the registry.

registry_request_date_e Always returned in the


poch
case of a transferred-in
domain.

The date when the transfer


request was sent to the registry,
in UNIX time.

request_address

Always returned in the


case of a transferred-in
domain.

The admin contact email address,


at the time of transfer
notification.

request_date

Always returned in the


case of a transferred-in
domain.

The date when the transfer


request was sent.

request_date_epoch

Always returned in the


case of a transferred-in
domain.

The date when the transfer


request was sent, in UNIX time.

status

Always returned in the


case of a transferred-in
domain.

The status of the transfer:


pending_owner,
pending_registry, completed,
or cancelled.
Note: pending_admin has
been deprecated.

791

Parameter name

Obligation

Definition/Value

transfer_id

Always returned.

ID number of the transfer.

Examples for get_transfers_in


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET_TRANSFERS_IN</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip"/>
<item key="attributes">
<dt_assoc>
<item key="owner_request_to">2006-10-06</item>
<item key="page">1</item>
<item key="status">cancelled</item>
<item key="transfer_id">1234</item>
<item key="request_address">agnes@example.com</item>
<item key="losing_registrar">Tucows</item>
<item key="completed_to">2006-10-06</item>
<item key="domain">example.cc</item>
<item key="order_from">2006-10-04</item>
<item key="order_to">2008-10-06</item>
<item key="order_id">987625</item>
<item key="completed_from">2006-10-04</item>
<item key="limit">20</item>

792

<item key="owner_confirm_to">2006-10-06</item>
<item key="owner_request_from">2006-10-04</item>
<item key="owner_confirm_from">2006-10-04</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="page_size">20</item>
<item key="page">1</item>
<item key="total">1</item>
<item key="transfers">
<dt_array>
<item key="0">
<dt_assoc>

793

<item key="owner_request_date">06-OCT-

2006 14:23:54</item>

<item key="status">cancelled</item>
<item
key='affiliate_id'>NUAffiliate123</item>
<item key="registry_request_date"/>
<item key="owner_confirm_date"/>
<item key="registry_request_date_epoch"/>
<item key="owner_confirm_ip"/>
<item key="completed_date">06-OCT-2006
14:59:01</item>
<item
key="order_date_epoch">1159729141</item>
<item key="owner_confirm_date_epoch"/>
<item
key="request_address">agnes@example.com</item>
<item key="losing_registrar">Tucows</item>
<item key="domain">kaka.cc</item>
<item key="order_date">06-OCT-2006

14:23:52</item>

<item
key="completed_date_epoch">1160159032</item>
<item
key="owner_request_date_epoch">1160159034</item>
<item key="transfer_id">1234</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

794

process_transfer
Description
Action & object
action = process_transfer
object = transfer

Usage
Creates a new order with the same data as a cancelled order; the existing
cancelled order is not modified. This command is only available for failed
transfers with the status of 'cancelled'.

Request parameters for process_transfer


Standard parameters
action = process_transfer
object = transfer
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

order_id

Required

The ID of the order to be resubmitted.

reseller

Required

Reseller username.

Response parameters for process_transfer


Standard parameters
action = reply
object = transfer
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

795

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name Obligation

Definition/Value

order_id

ID of the newly created order.

Returned if is_success =
true

Examples for process_transfer


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">PROCESS_TRANSFER</item>
<item key="object">TRANSFER</item>
<item key="attributes">
<dt_assoc>
<item key="reseller">test_rsp</item>
<item key="order_id">111111</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

796

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">TRANSFER</item>
<item key="is_success">1</item>
<item key="response_text">Transfer request has been
successfully sent. Admin contact email: admin@example.com'</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="order_id">1111111</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

797

rsp2rsp_push_transfer
Description
Action & object
action = rsp2rsp_push_transfer
object = domain

Usage
Transfer a domain from one Reseller to another Reseller. The domain is not
renewed when it is transferred and so no charges are incurred.
Important: Before you can push a domain to another Reseller account, that
Reseller has to add you to their allow list by entering your username on the
Push Domain Settings page of the RWI. For more information, see the
Reseller's Guide to Domain Name Registration and Management guide.

Request parameters for rsp2rsp_push_transfer


Standard parameters
action = rsp2rsp_push_transfer
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain that you want to push to another


Reseller

grsp

Required

The name of the gaining Reseller.

password

Optional

Registrant password. If specified, this value will be


used for the new registration; otherwise the original
password will be used.

username

Optional

Registrant username. If specified, this value will be


used for the new registration; otherwise the original
username will be used.

798

Response parameters for rsp2rsp_push_transfer


Standard parameters
action = reply
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for rsp2rsp_push_transfer


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">RSP2RSP_PUSH_TRANSFER</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="grsp"/>
<item key="username">robson</item>
<item key="password">abc123</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

799

Response
If successful
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object"></item>
<item key="is_success">1</item>
<item key="response_text">'Domain successfully
transferred'</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If unsuccessful
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>

800

<item key="object"></item>
<item key="is_success">0</item>
<item key="response_text">'grsp must be another
reseller'</item>
<item key="response_code">465</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

801

send_password (transfer)
Description
Action & object
action = send_password
object = transfer

Usage
Resends an email message for a transfer that is in 'pending owner approval'
state, to the admin contact listed for the domain at the time that the transfer
request was submitted. If a transfer is currently in progress, but in a
different state, an error is returned.
Note: This does not handle bulk transfers as such if the password is
requested for a domain that is part of a bulk-transfer order, the password
returned in the email is only usable for the single domain.

Request parameters for send_password (transfer)


Standard Parameters
action = send_password
object = transfer
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain_name

Required

The domain name for which the password is to


be initiated.

Response parameters for send_password


(transfer)
Standard parameters
action = reply
object = transfer

802

is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for send_password (transfer)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">send_password</item>
<item key="object">transfer</item>
<item key="attributes">
<dt_assoc>
<item key="domain_name">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

803

<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">transfer</item>
<item key="response_text">Message sent.</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

804

trade_domain
Description
Action & object
action = trade_domain
object = domain

Usage
Transfers ownership of a domain name from one registrant to another. This
command may be used for the following domains: .CL, .COM.AR, .DK, FI,
.FR, .HK, .HU, .MY, .NO, .NU, .PM, .RE, .RO, .RU, .SE, .SG, .TF, .WF, and .YT.

Request parameters for trade_domain


Standard parameters
action = trade_domain
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

address1

Required for all The street address of the new owner.


except .BE.

city

Required for all The new owners city.


except .BE.

country

Required for all The new owners country.


except .BE.

domain

Required

The domain that is being traded.

domain_auth_info

Required for
.BE

The domain's Authcode. To request an


Authcode you can use the send_authcode
command; the Authcode is sent to the
domain's admin contact.

email

Required

The new owners email address.

first_name

Required

The first name of the new owner.

last_name

Required

The last name of the new owner

805

Parameter name Obligation

Definition/Value

org_name

Required

The name of the new owners organization.

phone

Required for all The new owners phone number.


except .BE.

postal_code

Required for all The new owners postal code.


except .BE.

state

Required for all The new owners state.


except .BE.

tld_data

Required for all An associative array containing the


except .BE.
registrant_extra_info associative array
which submits additional parameters that are
required by various domain registries.
For more information, see the TLD Data
section.

Response parameters for trade_domain


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

806

Examples for trade_domain


Example 1
Transfers ownership of a .BE domain.

Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">TRADE_DOMAIN</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="first_name">Simon</item>
<item key="last_name">Dubois</item>
<item key="domain">js4.be</item>
<item key="email">dubois@example.be</item>
<item key="org_name">Example Co.</item>
<item keyi="domain_auth_info">ewgnRwnH</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>

807

<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">


<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Command completed successfully
OK</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="registry_response_code">1000</item>
<item key="response_text">Trade for js4.be has been
successfully issued.</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Transfers ownership of a .DK domain

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'> <OPS_envelope>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>

808

<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>TRADE_DOMAIN</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='org_name'>Example Co.</item>
<item key='domain'>example.dk</item>
<item key='first_name'>Daniel</item>
<item key='last_name'>Jensen</item>
<item key='address1'>Gammel Kongevej 1</item>
<item key='city'>Copenhagen V</item>
<item key='state'/>
<item key='country'>DK</item>
<item key='postal_code'>1610</item>
<item key='phone'>+1.33257400</item>
<item key='email'>djensen@example.dk</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>individual</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>

809

<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'> <OPS_envelope>


<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_text'>Trade for example.dk has been
successfully issued.</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 3
Transfers ownership of a .FR domain.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>TRADE_DOMAIN</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>

810

<dt_assoc>
<item key='domain'>example.fr</item>
<item key='first_name'>Henri</item>
<item key='last_name'>LeFluer</item>
<item key='address1'>13 Rue Daze</item>
<item key='city'>Paris</item>
<item key='state'/>
<item key='country'>FR</item>
<item key='postal_code'>75002</item>
<item key='org_name'>French Impressions</item>
<item key='phone'>+1.3365551212</item>
<item key='email'>lefluer@example.com</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='date_of_birth'>1979-03-03</item>
<item key='place_of_birth'>Paris</item>
<item key='country_of_birth'>FR</item>
<item key='postal_code_of_birth'>75008</item>
<item key='registrant_type'>individual</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>

811

<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Trade for example.fr has been
successfully issued.</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 4
Transfers ownership of a .COM.AR domain

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>TRADE_DOMAIN</item>
<item key='object'>DOMAIN</item>

812

<item key='attributes'>
<dt_assoc>
<item key='first_name'>Daniela</item>
<item key='last_name'>Sosa</item>
<item key='address1'>Piedras No 623</item>
<item key='city'>San Sebastian</item>
<item key='state'/>
<item key='postal_code'>B1000TBU</item>
<item key='country'>AR</item>
<item key='org_name'>Sosa Informatica S.A.</item>
<item key='domain'>example.com.ar</item>
<item key='phone'>+1.4165350123</item>
<item key='email'>sosa@example.com</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='tax_number'>27-10563145-8</item>
<item key='id_card_number'>10563145</item>
<item key='registrant_type'>individual</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>

813

<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Trade for example.com.ar has been
successfully issued.</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

814

Bulk Changes Commands


This section contains the following commands:

once.

bulk_transferTransfers several domains at

submit (bulk_change)Changes information


associated with a large set of domains.

submit_bulk_changeEnable or disable
WHOIS Privacy for multiple domains.

815

bulk_transfer
Description
Action & object
action = bulk_transfer
object = domain

Usage
Submits a request to transfer several domains at once. The list is grouped by
the admin contact email address and only one email message (containing a
list of the domains) is sent to each admin contact.
Note: Bulk transfers only work for .COM and .NET domains.

Request parameters for bulk_transfer (domains)


Standard parameters
action = bulk_transfer
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

affiliate_id

Optional

The associated affiliate ID.

custom_tech_contact Required

Indicates whether to use registrant's or


Reseller's tech contact.

0Use the Reseller's tech contact


data; the tech contact data provided
with the request is ignored

1Use the registrant's tech contact


data

domain_list

Required

A list of fully qualified domain names

handle

Optional

Instructions for handling the order. If this


parameter is not specified, the default
parameter is taken from the RWI settings.

saveSave the order to be


processed at a later time.

processProcess order

816

Parameter name

Obligation

Definition/Value
immediately.

reg_domain

Required if
The registrant's domain name
link_domains =
1. If so, the
registered
domain is linked
to the profile
indicated by
reg_username
and
reg_password.
Otherwise, the
reg_username
and
reg_password
fields are used to
create a new
profile.

reg_password

Required

The registrant's password.


You can use any of the following
alphanumeric characters and symbols: A-Z,
a-z, 0-9, []()!@\$^,.~|=-+_{}#"

reg_username

Required

The registrant's user name.


You can use any of the following
alphanumeric characters: A-Z, a-z, 0-9.

Response parameters for bulk_transfer (domains)


Standard parameters
action = reply
object = bulk_change
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

817

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name

Obligation

Definition/Value

bulk_transfer_id

Returned if
A system-generated order ID.
is_success =
true

successful_domains

Returned if
List of domains for which transfers were
is_success = successfully initiated. Each item in the list is
true
represented as a hash, which contains a pair
consisting of the domain name and order_id
for the domain transfer.
For more information, see the
Successful_Domains table below.

Successful_Domains
Parameters within the successful_domains associative array are described
below.
Parameter name

Obligation

Definition/Value

domain

Always
returned

The fully qualified domain name for a specific


transfer.

order_id

Always
returned

The order ID for a specific domain transfer.

Examples for bulk_transfer (domains)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>

818

<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">bulk_transfer</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain_list">
<dt_array>
<item key="0">aug26-1.com</item>
<item key="1">aug26-2.com</item>
<item key="2">aug26-3.com</item>
<item key="3">aug26-4.com</item>
<item key="4">aug26-5.com</item>
</dt_array>
</item>
<item key="reg_password">secret</item>
<item key="custom_tech_contact">0</item>
<item key="reg_domain">example.com</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="reg_username">jdoe</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>

819

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Batch transfer successfully
submitted. Please review our orders in 15 minutes to verify that they
were successfully processed.</item>
<item key="attributes">
<dt_assoc>
<item key="bulk_transfer_id">74488</item>
<item key="successful_domains">
<dt_array>
<item key="0">
<dt_assoc>
<item key="order_id">3507635</item>
<item key="domain">aug26-4.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="order_id">3507632</item>
<item key="domain">aug26-1.com</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="order_id">3507634</item>
<item key="domain">aug26-3.com</item>
</dt_assoc>
</item>
<item key="3">
<dt_assoc>
<item key="order_id">3507636</item>

820

<item key="domain">aug26-5.com</item>
</dt_assoc>
</item>
<item key="4">
<dt_assoc>
<item key="order_id">3507633</item>
<item key="domain">aug26-2.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

821

submit (bulk_change)
Description
Action & object
action = submit
object = bulk_change

Usage
Submits a request to change information associated with a large set of
domains. Can also be used to check the availability of a list of domains,
renew multiple domains, or to push multiple domains to another Reseller
account.
You can submit the following bulk change requests with this API call: check
availability, domain lock/unlock, renewals, nameserver modification, contact
changes, enable/disable Parked Pages, enable WHOIS Privacy, and push
domains to another Reseller account. The following restrictions apply to the
submit bulk_change API:
Up to 10,000 domains can be affected in a single request.
When submitting a large number of domains for a bulk change, there
may be a delay of several minutes between when the request is
submitted and when the request is visible in the RWI.
If the Reseller has not signed the end user access contract, owner and
admin contacts sets are not updated as part of bulk change request.
Up to 13 nameservers can be specified in the assign list when updating
nameservers.
Before you can push domains to another Reseller account, you must
add that Reseller to your allow list through the RWI. Duplicate entries
are eliminated from the change_items list.
add_ns adds the nameserver to the current list while assign_ns
replaces the current list with whatever nameservers are listed in the
bulk change request.
Note: This command must be submitted to batch.opensrs.net; submissions
to the live production pool (rr-n1-tor.opensrs.net) will fail.

822

Request parameters for submit (bulk_change)


Standard parameters
action = submit
object = bulk_change
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

apply_to_all_
reseller_items

Conditional, can only


be used if
change_items is not
used.

Applies the bulk change to all


domains in the Reseller's account.

apply_to_locked_
domains

Optional

0Do not apply the change


to all domains; instead, apply
to the domains specified in
the change_items parameter

1Apply to all domains in the


Reseller's account. If this flag
is set to 1, do not specify the
change_items parameter.

Applies the bulk change to locked as


well as unlocked domains.
Note: this parameter cannot be used
for bulk renewals.

change_items

change_type

0Do not apply to locked


domains; this is the default

1Apply to locked domains

Conditional, can only


be used if
apply_to_all_
reseller_items is not
used or equals 0.

List of domains to which to apply the


bulk change. Maximum is 10,000
domains

Required

The type of bulk change to perform.

Note: If
apply_to_all_reseller_items =1,
do not include this parameter.
Allowed values are:

availability_checkCheck
the registry, Premium
Domains, and Personal Names
for the availability of a list of
domains and email a CSV file
containing the results to the
specified email address. The
file indicates whether each

823

Parameter name

Obligation

Definition/Value
name is available, and for
Premium Names, it also
specified the price of the
domain name.
Note: when this value is
specified, contact_email is
required.

dns_zoneAdd, remove or
reset the DNS service for
multiple domains.
Changes can be applied to all
specified domains, to only
domains with DNS service
nameservers, or to domains
that are not using DNS
service nameservers. You can
also change your
nameservers to use the DNS
service nameservers.
If a DNS template is not
specified, a blank zone is
applied.

dns_zone_recordAdd,
modify, or remove DNS
records (A, CNAME, etc) from
zones for multiple domains.

domain_contactsChange
contact information for
multiple domains

domain_forwardingAdd
or remove the domain
forwarding service for
multiple domains.

domain_lockLock or
unlock multiple domains

domain_nameservers
Add, remove, or assign
nameservers

domain_parked_pages
Enable or disable Parked
Pages for multiple domains

domain_renewRenew
multiple domains in one
request

push_domainsMove or
'push' domains from one
Reseller account to another.

824

Parameter name

Obligation

Definition/Value
Note: Before you can push
domains to another Reseller,
you need to add that Reseller
to your allow list in OpenSRS.

storefront_managedMove
domains from OpenSRS to
Storefront or from Storefront
to OpenSRS.
Important: When you move

domains from Storefront to


OpenSRS, any services that
were enabled in Storefront
(for example, domain
forwarding or email
forwarding) will be lost.

contact_email

Optional

whois_privacyEnable or
disable WHOIS Privacy

Email address to which send results.


Note: If change_type =
availability_check, this value is
required.

For change_type = dns_zone


Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

apply_to_domains

Required

The type of domains to which you want


to add, remove or reset the DNS
service.
Allowed values are:

dns_action

Required

using_dns_nameservers

not_using_dns_nameservers

all_selected_domains

The type of operation to perform.


Allowed values are add, remove,or
reset.

dns_template

Optional

The template name. Only applies when


dns_action = add or reset.

825

Parameter name

Obligation

Definition/Value

only_if

Optional

Defines conditions that must be met in


order to process the command.
Only applies when the dns_action is
reset or remove. The only allowed
value is dns_template.

force_dns_nameservers

Optional

Determines whether to change the


nameservers on the domain to
ns1.systemdns.com,
ns2.systemdns.com,
ns3.systemdns.com

0Do not change the


nameservers

1Change the nameservers

For change_type = dns_zone_record


Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

dns_action

Required

The type of operation to perform.


Allowed values are add, remove or modify.

dns_record_type

Required

The type of DNS record that you want to edit.


Allowed values are A, AAAA, CNAME, MX,
SRV, and TXT.

dns_record_data

Required only if
dns_action =
add or modify.

The fields that apply to the specified


dns_record_type.
dns_record_type Allowed values
A

ip_address, subdomain

AAAA

ipv6_address,
subdomain

CNAME

hostname, subdomain

MX

priority, hostname,
subdomain

SRV

priority, weight,
subdomain, hostname,
port

TXT

subdomain, text

826

Parameter
name

Obligation

Definition/Value
For an explanation of each of these record
types and allowed values, see Request
parameters for set_dns_zone.

only_if

Optional. Can
only be used if
dns_action =
modify or
remove.

Defines conditions that must be met in order


to process the command. For example, you
could set the condition to update records
only if the ip_address is 222.222.222.222.

For change_type = domain_contacts


Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

contacts

Required

List of 1 4 contact sets. Each set must be a hash


reference with two keys.
Values include the type and set keys

set

Required

Array of contact details.

type

Required

Type of contact.
Allowed values are billing and tech.

For change_type = domain_forwarding


Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

change_items

Required

The list of domains to which domain forwarding is


either added or removed.

op_type

Required

The type of operation to perform.


Allowed values are add or remove.

827

For change_type = domain_lock


(Available for .COM, .NET, .ORG, .INFO, .BIZ, .NAME, .ME, .MOBI, .ASIA, .CC,
.CO, .TV, and .US.)

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

op_type

Required

The type of operation to perform.


Allowed values are lock or unlock.

For change_type = domain_nameservers


(Available for .COM, .NET, .ORG, .INFO, .BIZ, .NAME, .MOBI, .ASIA, .AT,
.BE, .CA, .CC, .CH, .CN, .CO, .DE, .DK, .ES, .EU, .FR, .IT, .ME, .MX, .NL,
.TV, .UK, and .US)

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

add_ns

Conditional, can only be


used if op_type =
add_remove

Nameserver(s) to add to the current list


of nameservers.

assign_ns

Conditional, can only be


used if op_type =
assign

List of new nameservers. Current


nameservers are replaced with
nameservers in the assign_ns list.

op_type

Required

The type of operation to perform.


Allowed values are add_remove or
assign.

remove_ns

Conditional, can only be


used if op_type =
add_remove

Nameservers to remove from the current


list of nameservers.

828

For change_type = domain_parked_pages


(Available for .COM, .NET, .ORG, .INFO, .BIZ, .MOBI, .NAME, .ASIA, .BE, .BZ,
.CA, .CC, .CO, .EU, .IN, .ME, .NL, .TV, .UK, .US, .WS and .XXX)

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

op_type

Required

The type of operation to perform.


Allowed values are enable or disable.

For change_type = domain_renew


(Available for .COM, .NET, .ORG, .INFO, .BIZ, .NAME, .MOBI, .ASIA, .AT,
.BE, .CA, .CC, .DH, .CN, .CO, .DE, .DK, .ES, .EU, .FR, .IT, .ME, .MX, .NL,
.TV, .UK, and .US)
Note: You must specify at least one of these parameters: let_expire,
auto_renew, or period.

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

affiliate_id

Optional

The unique identifier of your Reseller affiliate

auto_renew

Optional

Changes the setting of the auto renew flag for the


domain. If not specified, the current setting applies.

let_expire

period

Optional

Optional

0Disable auto-renew

1Enable auto-renew

Changes the status of the let expire flag. If not


specified, the current setting applies.

0Do not expire the domain silently

1Expire the domain silently

The renewal term. Valid values are 0 to 10,


depending on terms allowed for the TLD. If not
specified, domain is not renewed.

829

For change_type = push_domains


Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

change_items

Required

The list of domains to push to another


Reseller account.

gaining_reseller_username

Required

The name of the Reseller that will be


receiving the pushed domains.

contact_email

Optional

The email address to send the results


of the request.

For change_type = storefront_managed


Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

op_type

Required

The type of operation to perform.


Allowed values are

move_to_storefrontMove all of the


specified domains from OpenSRS to
Storefront

move_to_opensrsMove all of the


specified domains from Storefront to
OpenSRS

For change_type = whois_privacy


(Available for .COM, .NET, .ORG, .INFO, .BIZ, .NAME, .MOBI, .CC, .CO, .ME,
and .TV)

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

op_type

Required

The type of operation to perform.


Allowed values are enable or disable.

830

831

Response parameters for submit (bulk_change)


Standard parameters
action = reply
object = bulk_change
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name

Obligation

Definition/Value

bulk_change_req_id

Returned if
is_success =
true

An ID generated by the system.

Examples for submit (bulk_change)


Request
For bulk availability check
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>submit</item>
<item key='object'>bulk_change</item>
<item key='attributes'>

832

<dt_assoc>
<item key='change_type'>availability_check</item>
<item key='change_items'>
<dt_array>
<item key='0'>bulkrenewtest3.com</item>
<item key='1'>bulkrenewtest4.com</item>
</dt_array>
</item>
<item key='contact_email'>jdoe@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For bulk add dns zone


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">BULK_CHANGE</item>
<item key="action">SUBMIT</item>
<item key="attributes">
<dt_assoc>
<item key="change_type">dns_zone</item>
<item key="force_dns_nameservers">1</item>
<item key="apply_to_domains">not_using_dns_nameservers</item>
<item key="dns_template">template_3</item>
<item key="dns_action">add</item>

833

<item key="change_items">
<dt_array>
<item key="0">dnstestingthing1.com</item>
<item key="1">dnstestingthing2.com</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For bulk add dns zone record


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">BULK_CHANGE</item>
<item key="action">SUBMIT</item>
<item key="attributes">
<dt_assoc>
<item key="dns_record_type">cname</item>
<item key="change_type">dns_zone_record</item>
<item key="dns_action">add</item>
<item key="change_items">
<dt_array>
<item key="0">dnstestingthing1.com</item>
<item key="1">dnstestingthing2.com</item>
</dt_array>

834

</item>
<item key="dns_record_data">
<dt_assoc>
<item key="subdomain">www</item>
<item key="hostname">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For bulk reset dns zone


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">BULK_CHANGE</item>
<item key="action">SUBMIT</item>
<item key="attributes">
<dt_assoc>
<item key="change_type">dns_zone</item>
<item key="force_dns_nameservers">1</item>
<item key="apply_to_domains">using_dns_ameservers</item>
<item key="dns_template">template_2</item>
<item key="dns_action">reset</item>
<item key="change_items">
<dt_array>

835

<item key="0">dnstestingthing1.com</item>
<item key="1">dnstestingthing2.com</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For bulk modify dns zone record


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">BULK_CHANGE</item>
<item key="action">SUBMIT</item>
<item key="attributes">
<dt_assoc>
<item key="dns_record_type">cname</item>
<item key="change_type">dns_zone_record</item>
<item key="dns_action">modify</item>
<item key="change_items">
<dt_array>
<item key="0">dnstestingthing1.com</item>
<item key="1">dnstestingthing2.com</item>
</dt_array>
</item>
<item key="dns_record_data">

836

<dt_assoc>
<item key="hostname">mydomain.com</item>
</dt_assoc>
</item>
<item key="only_if">
<dt_assoc>
<item key="subdomain">www</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For bulk remove dns zone


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">BULK_CHANGE</item>
<item key="action">SUBMIT</item>
<item key="attributes">
<dt_assoc>
<item key="change_type">dns_zone</item>
<item key="force_dns_nameservers">1</item>
<item key="apply_to_domains">not_using_dns_nameservers</item>
<item key="dns_action">remove</item>
<item key="change_items">

837

<dt_array>
<item key="0">dnstestingthing1.com</item>
<item key="1">dnstestingthing2.com</item>
</dt_array>
</item>
<item key="only_if">
<dt_assoc>
<item key="dns_template">my_name</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For bulk remove dns zone record


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">BULK_CHANGE</item>
<item key="action">SUBMIT</item>
<item key="attributes">
<dt_assoc>
<item key="dns_record_type">cname</item>
<item key="change_type">dns_zone_record</item>
<item key="dns_action">remove</item>
<item key="change_items">

838

<dt_array>
<item key="0">dnstestingthing1.com</item>
<item key="1">dnstestingthing2.com</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For bulk domain forwarding


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">BULK_CHANGE</item>
<item key="action">SUBMIT</item>
<item key="attributes">
<dt_assoc>
<item key="change_type">domain_forwarding</item>
<item key="op_type">add</item>
<item key="change_items">
<dt_array>
<item key="0">examplething1.com</item>
<item key="1">examplething2.com</item>
</dt_array>
</item>
</dt_assoc>

839

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For bulk domain locking


<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">submit</item>
<item key="object">bulk_change</item>
<item key="attributes">
<dt_assoc>
<item key="change_type">domain_lock</item>
<item key="change_items">
<dt_array>
<item key="0">example.com</item>
<item key="1">example.info</item>
</dt_array>
</item>
<item key="op_type">lock</item>
<item key="contact_email">jdoe@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

840

For bulk nameserver change


<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">submit</item>
<item key="object">bulk_change</item>
<item key="attributes">
<dt_assoc>
<item key="change_type">domain_nameservers</item>
<item key="change_items">
<dt_array>
<item key="0">example.com</item>
<item key="1">example.info</item>
</dt_array>
</item>
<item key="assign_ns">
<dt_array>
<item key="0">ns1.domain.com</item>
<item key="1">ns2.domain.com</item>
<item key="2">ns3.domain.com</item>
</dt_array>
</item>
<item key="op_type">assign</item>
<item key="apply_to_locked_domains">1</item>
<item key="contact_email">jdoe@example.com</item>
</dt_assoc>
</item>
</dt_assoc>

841

</data_block>
</body>
</OPS_envelope>

For bulk domain contact change


<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">submit</item>
<item key="object">bulk_change</item>
<item key="attributes">
<dt_assoc>
<item key="change_type">domain_contacts</item>
<item key="apply_to_locked_domains">0</item>
<item key="change_items">
<dt_array>
<item key="0">example.com</item>
<item key="1">example.info</item>
</dt_array>
</item>
<item key="contacts">
<dt_array>
<item key="0">
<dt_assoc>
<item key="type">billing</item>
<item key="set">
<dt_assoc>
<item key="first_name">John</item>
<item key="last_name">Doe</item>

842

<item key="address3"/>
<item key="fax"/>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="type">tech</item>
<item key="set">
<dt_assoc>
<item key="first_name">Mark</item>
<item key="last_name">Doe</item>
<item key="address1">123 Main
St.</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For bulk parked pages


<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>

843

<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>submit</item>
<item key='object'>bulk_change</item>
<item key='attributes'>
<dt_assoc>
<item key='change_items'>
<dt_array>
<item key='0'>example.com</item>
<item key='1'>example.info</item>
</dt_array>
</item>
<item key='contact_email'>jdoe@example.com</item>
<item key='change_type'>domain_parked_pages</item>
<item key='op_type'>enable</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For bulk domain renewal


<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>submit</item>
<item key='object'>bulk_change</item>

844

<item key='attributes'>
<dt_assoc>
<item key='change_type'>domain_renew</item>
<item key='change_items'>
<dt_array>
<item key='0'>example1.com</item>
<item key='1'>example2.com</item>
</dt_array>
</item>
<item key='affiliate_id'>myaffiliate</item>
<item key='let_expire'>0</item>
<item key='period'>2</item>
<item key='auto_renew'>0</item>
<item key='contact_email'>jdoe@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For bulk WHOIS Privacy


<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>submit</item>
<item key='object'>bulk_change</item>
<item key='attributes'>
<dt_assoc>

845

<item key='change_items'>
<dt_array>
<item key='0'>example.com</item>
<item key='1'>example.info</item>
</dt_array>
</item>
<item key='contact_email'>jdoe@example.com</item>
<item key='change_type'>whois_privacy</item>
<item key='op_type'>enable</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For bulk push domain transfers to another Reseller


<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>submit</item>
<item key='object'>bulk_change</item>
<item key='attributes'>
<dt_assoc>
<item key='change_type'>push_domains</item>
<item key='change_items'>
<dt_array>
<item key='0'>bulkrenewtest3.com</item>
<item key='1'>bulkrenewtest4.com</item>

846

</dt_array>
</item>
<item key='gaining_reseller_username'>orange</item>
<item key='contact_email'>jdoe@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For bulk move domains


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">submit</item>
<item key="object">bulk_change</item>
<item key="attributes">
<dt_assoc>
<item key="change_type">storefront_managed</item>
<item key="op_type">move_to_storefront</item>
<item key="contact_email">jdoe@example.com</item>
<item key="change_items">
<dt_array>
<item key="0">comcompliance2.com</item>
<item key="1">comcompliance3.com</item>
</dt_array>
</item>
</dt_assoc>

847

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">bulk_change</item>
<item key="response_text">Command successfully submitted
for processing</item>
<item key="is_success">1</item>
<item key="bulk_change_req_id">168</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

848

submit_bulk_change (WHOIS Privacy)


Description
Action & object
action = submit_bulk_change
object = bulk_change

Usage
This command allows you to enable or disable WHOIS Privacy for multiple
domains. WHOIS Privacy can be enabled or disabled for .COM, .NET, .ORG,
.INFO, .BIZ, .ME, .MOBI, .NAME, .CC, .CO, and .TV TLDs.

Request parameters for submit_bulk_change


Standard parameters
action = submit_bulk_change
object = bulk_change
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

apply_to_locked_
domains

Optional

Specifies whether to apply WHOIS Privacy


to locked domains.

0 Do not apply WHOIS Privacy to


locked domains. This is the default.

1Apply WHOIS Privacy to locked


domains.

change_items

Required

List of domains for which you want to


purchase WHOIS Privacy.

change_type

Required

Identifies WHOIS Privacy as the type of


service to implement in bulk.
Allowed values are:

whois_privacy

whois_privacy_purchase - DEPRECATED.
If this value is part of your current
integration, it continues to work; however,
we recommend that you use
whois_privacy instead

849

Parameter name

Obligation

Definition/Value

contact_email

Optional

The email address to which your request


results are sent. If blank, you do not
receive a results report or any other
notification regarding the bulk WHOIS
Privacy purchase.

op_type

Required

The type of operation to perform.


Allowed values are enable or disable.

Response parameters for submit_bulk_change


Standard parameters
action = reply
object = bulk_change
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for submit_bulk_change


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">submit_bulk_change</item>
<item key="object">bulk_change</item>
<item key="attributes">
<dt_assoc>
<item key="apply_to_locked_domains">1</item>

850

<item key="contact_email">jdoe@example.com</item>
<item key="change_type">whois_privacy</item>
<item key="op_type">enable</item>
<item key="change_items">
<dt_array>
<item key="0">example1.com</item>
<item key="1">example2.com</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">BULK_CHANGE</item>
<item key="response_text">Command successfully submitted
for processing</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

851

Nameserver Commands
This section contains the following commands:
advanced_update_nameserverAdds or
removes nameservers for a domain.

create (nameserver)Creates a nameserver in


the same domain space as the cookie's domain.

delete (nameserver)Deletes a nameserver.

get (nameserver)queries nameservers that


exist in the current user profile.

modify (nameserver)Modifies a nameserver.

registry_add_nsAdds a nameserver to one or


all registries to which a Reseller has access.

registry_check_nameserverVerifies whether a
nameserver exists at a particular registry.

852

advanced_update_nameservers
Description
Action & object
action = advanced_update_nameservers
object = domain

Usage
Adds nameservers to a domain, or adds or removes nameservers for a
domain that already has nameservers assigned to it. This command does not
create a nameserver; the nameserver must already exist (see "create
(nameserver).
This command is not supported for .DK. Use the update_all_info command to
change the nameservers for .DK domains.
Note: When you use this command to add or change nameservers for .IT
domains, even though the response says the command was successful, the
new nameservers are not activated immediately. The registry runs a series of
tests against the nameservers before activating them. During the time that
the tests are being run, any query about the domain, such as get
nameservers or get domain all_info, will return the old nameservers. If the
nameservers do not pass the registry tests within 30 days, the registry
ignores the request. If you issue another advanced_update_nameservers
command before the registry has completed their tests, the new command is
assumed to refer to the old, currently active nameservers.

Request parameters for


advanced_update_nameservers
Standard parameters
action = advanced_update_nameservers
object = domain
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

853

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

add_ns

Optional

List of nameservers to add. This array cannot be


submitted in the same command with the assign_ns
parameter, but can be submitted with remove_ns.

assign_ns

Optional

List of nameservers to assign. This array cannot be


submitted in the same command with the add_ns or
remove_ns parameters.

domain

Required if
The relevant domain.
cookie is not
submitted

op_type

Required

The type of operation to perform on the object.


Use assign when submitted with the assign_ns
array.
Use add_remove when submitted with the add_ns
or remove_ns arrays.

remove_ns

Optional

List of nameservers to remove. This array cannot be


submitted in the same command with the assign_ns
parameter, but can be submitted with add_ns.

Response parameters for


advanced_update_nameservers
Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

854

Examples for advanced_update_nameservers


Request
Assign nameserver
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">advanced_update_nameservers</item>
<item key="object">domain</item>
<item key="cookie">781236777:3352</item>
<item key="attributes">
<dt_assoc>
<item key="assign_ns">
<dt_array>
<item key="0">ns1.example.com</item>
<item key="1">ns2.example.com</item>
<item key="2">ns3.example.com</item>
<item key="3">ns4.example.com</item>
</dt_array>
</item>
<item key="op_type">assign</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

855

Add or remove nameserver


<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">advanced_update_nameservers</item>
<item key="object">domain</item>
<item key="cookie">781236777:3352</item>
<item key="attributes">
<dt_assoc>
<item key="op_type">add_remove</item>
<item key="remove_ns">
<dt_array>
<item key="0">ns1.example.com</item>
<item key="1">ns2.example.com</item>
</dt_array>
</item>
<item key="add_ns">
<dt_array>
<item key="0">ns4.example.com</item>
<item key="1">ns3.example.com</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

856

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">domain</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command completed
successfully</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

857

create (nameserver)
Description
Action & object
action = create
object = nameserver

Usage
Creates a nameserver in the same domain space as the cookie's domain.
Note: This action is not the same as modify domain nameserver_list add,
which actually assigns a nameserver created with create nameserver to
serve the cookie's domain.

Request parameters for create (nameserver)


Standard parameters
action = create
object = nameserver
registrant_ip = valid IP address of the registrant (optional)
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

add_to_all_registry

Adds the newly created nameserver to other


registries so that the nameserver can be used
on other TLDs.

Optional

Specify OpenSRS supported TLDs where the


Registry supports nameservers as a separate
object.
domain

Required if
cookie is not
submitted

The relevant domain.

ipaddress

Required if
ipv6 is not
submitted

The IPv4 address of the nameserver.


You can specify ipaddress or ipv6, or both.
Note: This parameter is always required for
.DE, even if ipv6 is submitted.

858

Parameter name Obligation

Definition/Value

ipv6

Required if
The IPv6 address of the nameserver.
ipaddress is You can specify ipaddress or ipv6, or both.
not submitted
Note: This parameter is not supported for .CN.

name

Required

Fully qualified domain name of the


nameserver.

Response parameters for create (nameserver)


Standard parameters
action = reply
object = nameserver
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for create (nameserver)


Example 1
This example creates an IPv4 nameserver without adding to any foreign
registries.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">create</item>
<item key="object">nameserver</item>
<item key="cookie">366828736:3210384</item>

859

<item key="attributes">
<dt_assoc>
<item key="name">ns1.example.com</item>
<item key="ipaddress">212.112.123.11</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">nameserver</item>
<item key="response_text">Nameserver Created</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
This example creates an IPv4 nameserver and adds it to any foreign
registries.

860

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_array>
<item key="0">
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">create</item>
<item key="object">nameserver</item>
<item key="attributes">
<dt_assoc>
<item key="add_to_all_registry">
<dt_array>
<item key="0">.info</item>
<item key="1">.name</item>
<item key="2">.org</item>
<item key="3">.biz</item>
<item key="4">.de</item>
<item key="5">.cc</item>
<item key="6">.us</item>
</dt_array>
</item>
<item key="ipaddress">207.136.65.24</item>
<item key="name">ns6.example.com</item>
</dt_assoc>
</item>
<item key="cookie">591236085:3210384</item>
<item key="registrant_ip">111.222.333.444</item>
</dt_assoc>

861

</item>
</dt_array>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_array>
<item key="0">
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">nameserver</item>
<item key="add_to_all_registry">
<dt_assoc>
<item key=".biz">
<dt_assoc>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command
successful</item>
</dt_assoc>
</item>
<item key=".cc">
<dt_assoc>
<item key="is_success">1</item>
<item key="response_code">200</item>

862

successful</item>

<item key="response_text">Command
</dt_assoc>
</item>
<item key=".info">
<dt_assoc>
<item key="is_success">1</item>
<item key="response_code">200</item>

successful</item>

<item key="response_text">Command
</dt_assoc>
</item>
<item key=".name">
<dt_assoc>
<item key="is_success">1</item>
<item key="response_code">200</item>

successful</item>

<item key="response_text">Command
</dt_assoc>
</item>
<item key=".org">
<dt_assoc>
<item key="is_success">1</item>
<item key="response_code">200</item>

successful</item>

<item key="response_text">Command
</dt_assoc>
</item>
<item key=".us">
<dt_assoc>
<item key="is_success">1</item>
<item key="response_code">200</item>

successful</item>

<item key="response_text">Command
</dt_assoc>
</item>
</dt_assoc>

863

</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Nameserver Created</item>
</dt_assoc>
</item>
</dt_array>
</data_block>
</body>
</OPS_envelope>

Example 3
This example submits the create nameserver command without end-user
credentials and creates an IPv4 nameserver without adding it to any foreign
registries.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">create</item>
<item key="object">nameserver</item>
<item key="attributes">
<dt_assoc>
<item key="ipaddress">212.112.123.11</item>
<item key="name">ns5.example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

864

</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">NAMESERVER</item>
<item key="is_success">1</item>
<item key="response_text">Nameserver Created</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 4
This example creates an IPv6 nameserver without adding to any foreign
registries.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

865

<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">create</item>
<item key="object">nameserver</item>
<item key="cookie">366828736:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="name">ns1.example.com</item>
<item key="ipv6">2a00:1450:4008:c00:0:0:0:1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">nameserver</item>
<item key="response_text">Nameserver Created</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>

866

</data_block>
</body>
</OPS_envelope>

867

delete (nameserver)
Description
Action & object
action = delete
object = nameserver

Usage
Deletes a nameserver, provided it is not currently serving a domain.
Note: If the registry in which the nameserver object resides is serving a
domain outside of OpenSRS, delete nameserver returns an error and the
nameserver is not deleted.

Request parameters for delete (nameserver)


Standard parameters
action = delete
object = nameserver
registrant_ip = valid IP address of the registrant (optional)
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required if
cookie is not
submitted

The relevant domain.

ipaddress

Required if
ipv6 is not
submitted

The IPv4 address of the nameserver.

ipv6

You can specify ipaddress or ipv6, or both.


Note: This parameter is always required for .DE,
even if ipv6 is submitted.

Required if
The IPv6 address of the nameserver.
ipaddress is You can specify ipaddress or ipv6, or both.
not submitted
Note: This parameter is not supported for .CN.

868

Parameter
name

Obligation

Definition/Value

name

Required

Fully qualified race-encoded domain name of the


nameserver.

Response parameters for delete (nameserver)


Standard parameters
action = reply
object = nameserver
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Examples for delete (nameserver)


Example 1
This example deletes an IPv4 nameserver.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">delete</item>
<item key="object">nameserver</item>
<item key="registrant_ip">216.40.46.115</item>
<item key="cookie">435686610:3185178</item>
<item key="attributes">
<dt_assoc>

869

<item key="ipaddress">24.22.112.11</item>
<item key="name">ns1.example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">nameserver</item>
<item key="response_text">Nameserver deleted</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
This example deletes an IPv6 nameserver.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>

870

<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>


<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">delete</item>
<item key="object">nameserver</item>
<item key="registrant_ip">216.40.46.115</item>
<item key="cookie">435686610:3185178</item>
<item key="attributes">
<dt_assoc>
<item key="ipv6">2a00:1450:4008:c00:0:0:0:1</item>
<item key="name">ns3.example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>

871

<item key="action">reply</item>
<item key="object">nameserver</item>
<item key="response_text">Nameserver deleted</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

872

get (nameserver)
Description
Action & object
action = get
object = nameserver

Usage
Queries nameservers that exist in the current user profile (current cookie).
These nameservers may or may not be currently assigned to a domain.
To see a list of nameservers serving the cookie's domain, use the command
get domain nameservers.

Request parameters for get (nameserver)


Standard parameters
action = get
object = nameserver
registrant_ip = valid IP address of the registrant
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

domain

Required if cookie is
not submitted

The relevant domain.

name

Required

Specify all.

Response parameters for get (nameserver)


Standard parameters
action = reply
object = nameserver
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request

873

response_text = message describing the outcome of the request


attributes

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

nameserver_list

Returned if
A list (array) of nameservers, each of which can
is_success = contain any of the attributes listed in the
true
Nameserver_List table below.

Nameserver_List
Parameters within the nameserver_list associative array are described below.
Parameter
name

Obligation

Definition/Value

can_delete

Always
returned

A flag indicating whether the nameserver is currently


serving a domain in OpenSRS. To delete a
nameserver with can_delete set to zero, it must
first be un-assigned from the domain it serves.
Note: If the registry in which the nameserver object
resides is serving a domain outside of OpenSRS, a
delete_nameserver action returns an error, and the
nameserver is not deleted.

0Nameserver can be deleted.

1Nameserver cannot be deleted.

ipaddress

Returned if the The IPv4 address of the nameserver.


nameserver
Note: This parameter is always required for .DE,
has an Ipv4
even if ipv6 is submitted.
address

ipv6

Returned if the The IPv6 address of the nameserver.


nameserver
Note: This parameter is not supported for .CN.
has an Ipv6
address

name

Always
returned

The fully qualified domain name of the nameserver.

874

Deprecated
Parameter
name

Obligation

Definition/Value

encoding_type

Deprecated

The encoding type of the nameserver.

Examples for get (nameserver)


Example 1
This example returns information about an IPv4 nameserver.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">nameserver</item>
<item key="cookie">121321321:12341242424</item>
<item key="registrant_ip">111.121.121.121</item>
<item key="attributes">
<dt_assoc>
<item key="name">all</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

875

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">nameserver</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns1.systemdns.com</item>
<item key="can_delete">1</item>
<item
key="ipaddress">191.11.121.111</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns2.systemdns.com</item>
<item key="can_delete">0</item>
<item
key="ipaddress">11.111.121.111</item>
</dt_assoc>
</item>

876

</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
This example returns information about an IPv6 nameserver.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">nameserver</item>
<item key="cookie">121321321:12341242424</item>
<item key="registrant_ip">111.121.121.121</item>
<item key="attributes">
<dt_assoc>
<item key="name">all</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

877

</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">nameserver</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns3.systemdns.com</item>
<item key="can_delete">1</item>
<item
key="ipv6">2a00:1450:4008:c00:0:0:0:1</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns4.systemdns.com</item>
<item key="can_delete">0</item>
<item
key="ipv6">2001:0db8:85a3:0000:0000:8a2e:0370:7334</item>

878

</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

879

modify (nameserver)
Description
Action & object
action = modify
object = nameserver

Usage
Modifies a nameserver. This command is not supported for .TEL domains.
Important: This command will overwrite the existing nameserver entries. If
a nameserver has two IPs, one for IPv4 and one for IPv6, and you specify
only one of these in the request, the other one will be removed from the
registry.

Request parameters for modify (nameserver)


Standard parameters
action = modify
object = nameserver
registrant_ip = valid IP address of the registrant (optional)
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required if cookie is not The relevant domain.


submitted

ipaddress

Required if ipv6 is not


submitted

The IPv4 address of the nameserver.


You can specify ipaddress or ipv6, or
both.
Note: This parameter is always required
for .DE, even if ipv6 is submitted.

ipv6

Required if ipaddress is The IPv6 address of the nameserver.


not submitted
You can specify ipaddress or ipv6, or
both.
Note: This parameter is not supported

880

Parameter
name

Obligation

Definition/Value
for .CN.

name

Required

Fully qualified domain name of the


nameserver. The name key must always
be present, and must be race-encoded.

new_name

Optional. This field is


only required if you are
changing the name.

The new, fully qualified domain name for


the nameserver

Deprecated
Parameter name

Obligation

Definition/Value

new_encoding_type

Deprecated

The new encoding type of the nameserver.

Response parameters for modify (nameserver)


Standard parameters
action = reply
object = nameserver
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Examples for modify (nameserver)


Example 1
This example changes the name of an IPv4 nameserver.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>

881

<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">nameserver</item>
<item key="cookie">892036263:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="name">ns1.example.com</item>
<item key="new_name">ns.boo.example.com</item>
<item key="ipaddress">212.112.123.11</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">nameserver</item>
<item key="response_text">Command successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>

882

</OPS_envelope>

Example 2
This example changes the name of an IPv6 nameserver.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">nameserver</item>
<item key="cookie">892036263:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="name">ns1.example.com</item>
<item key="new_name">ns.test.example.com</item>
<item key="ipv6">2a00:1450:4008:c00:0:0:0:1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>

883

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">nameserver</item>
<item key="response_text">Command successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

884

registry_add_ns
Description
Action & object
action = registry_add_ns
object = nameserver

Usage
Adds a nameserver to one or all registries to which a Reseller has access.
This command does not create a nameserver; a nameserver must already be
created (see "create (nameserver)").

Request parameters for registry_add_ns


Standard parameters
action = registry_add_ns
object = nameserver
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

all

Required

Specifies whether to add the nameserver to all


registries or to only COM and NET:

0Add to the registry specified in the tld


parameter

1Add to all registries enabled for your


account

fqdn

Required

The nameserver to be added, which must be a fully


qualified domain name.

tld

Required

The registry to which you want to add the


nameservers.
Allowed values: any tld available through OpenSRS,
for example, .com.
Note: If the all value = 1, the tld value is ignored;
however, it must be present and the value must be a
valid tld; otherwise, the command will fail.

885

Response parameters for registry_add_ns


Standard parameters
action = reply
object = nameserver
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request
attributes

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

registry_name

Returned if
Registry Names:
is_success = true

NSI

DENIC

NeuLevel

TV

NSI .cc

CIRA

ISOC/PIR

UK

VC

dotName

NeuStar

Afilias

Note: Only the registries to which the


Reseller is subscribed are returned.

The following success/failure messages may be returned:

'Successfully added.'
'Couldn't add nameserver: Registry doesn't support nameserver as a
separate object.'
'Couldn't add nameserver: Our system is experiencing technical
difficulties; please try again later. If problem persists, please contact
886

support and state error message: REM server: -702, no RAs to service
the domain 'example.cc'.

Examples for registry_add_ns


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">registry_add_ns</item>
<item key="object">nameserver</item>
<item key="attributes">
<dt_assoc>
<item key="fqdn">n99.example.aero</item>
<item key="tld">.com</item>
<item key="all">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
For "all" = "1"
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>

887

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>reply</item>
<item key='object'>nameserver</item>
<item key='attributes'>
<dt_assoc>
<item key='DENIC'>Successfully added</item>
<item key='VC'>Couldn't add nameserver: Unexpected response
from registry: 705: No RAs to service your domain.
</item>
<item key='TV'>Couldn't add nameserver: Registry doesn't
support nameserver as a separate object.
</item>
<item key='Neulevel'>Successfully added</item>
<item key='CIRA'>Couldn't add nameserver: Registry doesn't
support nameserver as a separate object.
</item>
<item key='ISOC/PIR'>Successfully added</item>
<item key='GNR'>Successfully added</item>
<item key='UK'>Couldn't add nameserver: Registry doesn't
support nameserver as a separate object.
</item>
<item key='NSI_CC'>Successfully added</item>
<item key='Neustar'>Successfully added</item>
<item key='Afilias'>Successfully added</item>
</dt_assoc>
</item>
<item key='response_text'>Command verified</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
</dt_assoc>
</data_block>
</body>

888

</OPS_envelope>

For "all" = "0"


<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>reply</item>
<item key='object'>nameserver</item>
<item key='response_text'>Command verified</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

889

registry_check_nameserver
Description
Action & object
action = registry_check_nameserver
object = nameserver

Usage
Verifies whether a nameserver exists at a particular registry.
Note: This command is not required for registries that do not have a
nameserver object, that is, .CA, .UK, .DE, .FR, and CH.

Request parameters for


registry_check_nameserver
Standard parameters
action = registry_check_nameserver
object = nameserver
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

fqdn

Required

The Fully Qualified Domain Name of the nameserver


that you want to check.

tld

Required

The Top Level Domain of the nameserver that you


want to check. If no tld is supplied, the tld is
extracted from the nameserver.

890

Response parameters for


registry_check_nameserver
Standard parameters
action = reply
object = nameserver
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

status

Returned if
Indicates whether the nameserver exists at
is_success = true the registry.

Examples for registry_check_nameserver


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REGISTRY_CHECK_NAMESERVER</item>
<item key="object">NAMESERVER</item>
<item key="attributes">

891

<dt_assoc>
<item key="tld">.com</item>
<item key="fqdn">ns1.livedns.co.uk</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
Nameserver found
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_array>
<item key="0">
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">NAMESERVER</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
</dt_assoc>
</item>
</dt_array>
</data_block>
</body>
</OPS_envelope>

892

Nameserver not found


<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">NAMESERVER</item>
<item key="response_text">Command successful</item>
<item key="action">REPLY</item>
<item key="attributes">
<dt_assoc>
<item key="status">
<dt_assoc>
<item key="protocol">RAP</item>
<item key="_response_text">Authorization error</item>
<item key="_response_code">531</item>
<item key="attributes">
<dt_assoc>
<item key="trans_id">
<dt_assoc>
<item key="client_trid">216.40.33.601240404268810</item>
<item key="server_trid">4370771281240404268830</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="registry_response_code">2201</item>
<item key="is_success">0</item>
</dt_assoc>

893

</item>
</dt_assoc>
</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Nameserver not found (registered nameserver not required by


registry)
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_array>
<item key="0">
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">NAMESERVER</item>
<item key="is_success">0</item>
<item key="response_code">400</item>
<item key="response_text">Registry doesn't support
nameserver as a separate entity.</item>
</dt_assoc>
</item>
</dt_array>
</data_block>
</body>
</OPS_envelope>

894

DNS Zone Commands


This section contains the following commands:

create_dns_zoneEnables the DNS service for a domain.


delete_dns_zoneDeletes the DNS zones defined for the specified
domain.
force_dns_nameserversChanges the nameservers on your
domain to use the DNS nameservers.
get_dns_zoneAlows you to view the DNS records for a specified
domain.
reset_dns_zoneSets the DNS zone to the values in the specified
template.
set_dns_zoneSets the records for a domain's DNS zone.

895

create_dns_zone
Description
Action & object
action = create_dns_zone
object = domain

Usage
Enables the DNS service for a domain. If you have created a DNS template,
you can specify the template in the command to assign initial DNS records.
The template is then associated with the domain, so if you later issue the
reset_dns_zone command, the records are set back to what is defined in the
template.
If you specify *blank* instead of a DNS template when you issue this
command, you can submit the values for the DNS records in this command
or you can use the set_dns_zone command to define the DNS records.
For information on creating a DNS zone template, see Managing DNS Zone
Information in the Resellers Guide to Domain Name Registration and
Management.

Request parameters for create_dns_zone


Standard parameters
action = create_dns_zone
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain for which you want to define DNS


records.

dns_template

Optional

Specify the name of the DNS template that you want


to use to enable DNS and assign initial DNS records.
If you do not submit this parameter, DNS is enabled
but no records are defined. In this case, you can
submit the settings for the domain's DNS zone
records (A, AAAA, CNAME, SRV, and TXT).

896

Parameter
name

Obligation

Definition/Value

records

Required

A list of the record types defined for the domain;


each record includes the settings for that record.
Record types may be

A
AAAA
CNAME
MX
SRV
TXT

Records
Parameters within the records associative array are described below.
Parameter
name

Obligation

Definition/Value

Optional

Maps the domain name to the IP address.


The A record consists of the following:

ip_address
Internet Protocol Address. A numeric address
that computers recognize, for example,
123.45.54.123.

subdomainThe
third level of the domain name, such as www or
ftp.

AAAA

Optional

Maps the domain name to the IPv6 address.


The AAAA record consists of the following:

ipv6_address
The next generation Internet Protocol designed
as the successor to version 4. It is normally
written as eight groups of four hexadecimal
digits (i.e. 2003:0db8:
85a3:0000:0000:8a2e:
0370:7334

subdomainThe
third level of the domain name, such as www or
ftp.

CNAME

Optional

Canonical Name. CNAME records can be used when


you want a subdomain to point to another hostname.
Allows you to create an alias for your domain.
The CNAME record consists of the following:

hostnameThe

897

Parameter
name

Obligation

Definition/Value
FQDN of the domain that you want to access.

subdomainThe
third level of the domain name, such as www or
ftp.

MX

Optional

Mail Exchange. MX records determine how mail is


delivered to your domain. Ensures that email that is
sent to you is routed to the correct destination.
The MX record consists of the following:

priorityThe
priority of the target host, lower value means
more preferred.

subdomainThe
third level of the domain name, such as www or
ftp.

hostnameThe
FQDN of the domain that you want to access.

SRV

Optional

Service Record.
The SRV record consists of the following:

priorityThe
priority of the target host, lower value means
more preferred.

weightA relative
weight for records with the same priority.

subdomainThe
third level of the domain name, such as www or
ftp.

hostnameThe
FQDN of the domain that you want to access.

portThe TCP or
UDP port on which the service is to be found.

Response parameters for create_dns_zone


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

898

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

nameservers_ok

Returned if
Indicates whether the domain is set up to use the
is_success = OpenSRS nameservers.
true

0Nameservers
are not set to the DNS service nameservers

1Nameservers
are set to the DNS service nameservers

records

Returned if
A list of the record types defined for the domain;
is_success = each record includes the settings for that record.
true
Record types may be

AAAA

CNAME

MX

SRV

TXT
For more information, see the Records table
below.

Records
Parameters within the records associative array are described below.
Parameter
name

Obligation

Definition/Value

Optional

Maps the domain name to the IP address.


The A record consists of the following:

ip_address
Internet Protocol Address. A numeric address
that computers recognize, for example,
123.45.54.123.

subdomainThe
third level of the domain name, such as www or
ftp.

899

Parameter
name

Obligation

Definition/Value

AAAA

Optional

Maps the domain name to the IPv6 address.


The AAAA record consists of the following:

subdomainThe
third level of the domain name, such as www or
ftp.

ipv6_address
The next generation Internet Protocol designed
as the successor to version 4. It is normally
written as eight groups of four hexadecimal
digits (i.e. 2003:0db8:
85a3:0000:0000:8a2e:
0370:7334

CNAME

Optional

Canonical Name. CNAME records can be used when


you want a subdomain to point to another hostname.
Allows you to create an alias for your domain.
The CNAME record consists of the following:

hostnameThe
FQDN of the domain that you want to access.

subdomainThe
third level of the domain name, such as www or
ftp.

MX

Optional

Mail Exchange. MX records determine how mail is


delivered to your domain. Ensures that email that is
sent to you is routed to the correct destination.
The MX record consists of the following:

priorityThe
priority of the target host, lower value means
more preferred.

subdomainThe
third level of the domain name, such as www or
ftp.

hostnameThe
FQDN of the domain that you want to access.

900

Parameter
name

Obligation

Definition/Value

SRV

Optional

Service Record.
The SRV record consists of the following:

priorityThe
priority of the target host, lower value means
more preferred.

weightA relative
weight for records with the same priority.

subdomainThe
third level of the domain name, such as www or
ftp.

hostnameThe
FQDN of the domain that you want to access.

portThe TCP or
UDP port on which the service is to be found.

TXT

Optional

Text Record. Allows you to attach comments to a


hostname, for example, SPF data to validate that
email is being sent from the IP address of the
domain's mail server.
The TXT record consists of the following:

subdomainThe
third level of the domain name, such as www or
ftp.

textThe
comments that you want to include.

Examples for create_dns_zone


Request
If template is specified
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>

901

<item key="protocol">XCP</item>
<item key="action">create_dns_zone</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="dns_template">business_domains</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If template is not specified


<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">create_dns_zone</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

902

Response
If template is specified
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Command Successful</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="records">
<dt_assoc>
<item key="A">
<dt_array>
<item key="0">
<dt_assoc>
<item key="subdomain"></item>
<item key="ip_address">17.16.156.5</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="MX">
<dt_array>
<item key="0">

903

<dt_assoc>
<item key="priority">10</item>
<item key="subdomain">www</item>
<item key="hostname">example.org</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="priority">1</item>
<item key="subdomain"></item>
<item
key="hostname">mx.cust.aug18dnstest1.com.hostedemail.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="SRV">
<dt_array>
<item key="0">
<dt_assoc>
<item key="priority">1</item>
<item key="weight">3</item>
<item key="subdomain">w3</item>
<item key="hostname">yummynames.com</item>
<item key="port">81</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="nameservers_ok">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

904

</body>
</OPS_envelope>

If template is not specified


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Command Successful</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="records">
<dt_assoc>
</dt_assoc>
</item>
<item key="nameservers_ok">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

905

delete_dns_zone
Description
Action & object
action = delete_dns_zone
object = domain

Usage
Deletes the DNS zones defined for the specified domain.

Request parameters for delete_dns_zone


Standard parameters
action = delete_dns_zone
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

domain

The domain whose DNS you want to delete.

Required

Response parameters for delete_dns_zone


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

906

Examples for delete_dns_zone


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">delete_dns_zone</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>

907

<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Command Successful</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

908

force_dns_nameservers
Description
Action & object
action = force_dns_nameservers
object = domain

Usage
Changes the nameservers on your domain to use the DNS nameservers:
ns1.systemdns.com, ns2.systemdns.com, and ns3.systemdns.com.

Request parameters for force_dns_nameservers


Standard parameters
action = force_dns_nameservers
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain whose nameservers you want to change


to the DNS nameservers ns1.systemdns.com,
ns2.systemdns.com, and ns3.systemdns.com.

Response parameters for force_dns_nameservers


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

909

Examples for force_dns_nameservers


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="action">FORCE_DNS_NAMESERVERS</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>

910

<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="response_text">Command Successful</item>
<item key="action">REPLY</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

911

get_dns_zone
Description
Action & object
action = get_dns_zone
object = domain

Usage
View the DNS records for a specified domain.

Request parameters for get_dns_zone


Standard parameters
action = get_dns_zone
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

domain

The domain whose DNS you want to view.

Required

Response parameters for get_dns_zone


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

912

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

nameservers_ok

Returned if
Indicates whether the domain is set up to use the
is_success = OpenSRS nameservers.
true

0Nameservers
are not set to the DNS service nameservers

1Nameservers
are set to the DNS service nameservers

records

Returned if
A list of the record types defined for the domain;
is_success = each record includes the settings for that record.
true
Record types may be

AAAA

CNAME

MX

SRV

TXT
For more information, see the Records table
below.

Records
Parameters within the records associative array are described below.
Parameter
name

Obligation

Definition/Value

Optional

Maps the domain name to the IP address.


The A record consists of the following:

ip_address
Internet Protocol Address. A numeric address
that computers recognize, for example,
123.45.54.123.

subdomainThe
third level of the domain name, such as www or
ftp.

AAAA

Optional

Maps the domain name to the IPv6 address.


The AAAA record consists of the following:

913

Parameter
name

Obligation

Definition/Value

subdomainThe
third level of the domain name, such as www or
ftp.

ipv6_addressThe
next generation Internet Protocol designed as the
successor to version 4. It is normally written as
eight groups of four hexadecimal digits (i.e.
2003:0db8:
85a3:0000:0000:8a2e:
0370:7334

CNAME

Optional

Canonical Name. CNAME records can be used when


you want a subdomain to point to another hostname.
Allows you to create an alias for your domain.
The CNAME record consists of the following:

hostnameThe
FQDN of the domain that you want to access.

subdomainThe
third level of the domain name, such as www or
ftp.

MX

Optional

Mail Exchange. MX records determine how mail is


delivered to your domain. Ensures that email that is
sent to you is routed to the correct destination.
The MX record consists of the following:

priorityThe
priority of the target host, lower value means
more preferred.

subdomainThe
third level of the domain name, such as www or
ftp.

hostnameThe
FQDN of the domain that you want to access.

914

Parameter
name

Obligation

Definition/Value

SRV

Optional

Service Record.
The SRV record consists of the following:

priorityThe
priority of the target host, lower value means
more preferred.

weightA relative
weight for records with the same priority.

subdomainThe
third level of the domain name, such as www or
ftp.

hostnameThe
FQDN of the domain that you want to access.

portThe TCP or
UDP port on which the service is to be found.

TXT

Optional

Text Record. Allows you to attach comments to a


hostname, for example, SPF data to validate that
email is being sent from the IP address of the
domain's mail server.
The TXT record consists of the following:

subdomainThe
third level of the domain name, such as www or
ftp.

textThe
comments that you want to include.

Examples for get_dns_zone


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>

915

<item key="action">get_dns_zone</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="records">
<dt_assoc>
<item key="A">
<dt_array>
<item key="0">

916

<dt_assoc>
<item key="subdomain"></item>
<item key="ip_address">17.16.156.5</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="MX">
<dt_array>
<item key="0">
<dt_assoc>
<item key="priority">10</item>
<item key="subdomain">www</item>
<item key="hostname">example.org</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="priority">1</item>
<item key="subdomain"></item>
<item
key="hostname">mx.cust.aug17dnstest1.com.hostedemail.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="SRV">
<dt_array>
<item key="0">
<dt_assoc>
<item key="priority">1</item>
<item key="weight">3</item>
<item key="subdomain">w3</item>
<item key="hostname">yummynames.com</item>
<item key="port">81</item>
</dt_assoc>

917

</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="nameservers_ok">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

918

reset_dns_zone
Description
Action & object
action = reset_dns_zone
object = domain

Usage
Sets the DNS zone to the values in the specified template. If a template is
not specified in the command, the records are set to what was in the
template that was used to enable the DNS service.

Request parameters for reset_dns_zone


Standard parameters
action = reset_dns_zone
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

dns_template

Optional

The name of the DNS template that you want to


use

domain

Required

The domain whose DNS you want to reset.

Response parameters for reset_dns_zone


Standard parameters
action = reply
object =
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

919

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

nameservers_ok

Returned if
Indicates whether the domain is set up to use the
is_success = OpenSRS nameservers.
true

0Nameservers
are not set to the DNS service nameservers

1Nameservers
are set to the DNS service nameservers

records

Returned if
A list of the record types defined for the domain;
is_success = each record includes the settings for that record.
true
Record types may be

A
AAAA
CNAME
MX
SRV
TXT

Records
Parameters within the records associative array are described below.
Parameter
name

Obligation Definition/Value

Optional

Maps the domain name to the IP address.


The A record consists of the following:

ip_address
Internet Protocol Address. A numeric address that
computers recognize, for example,
123.45.54.123.

subdomainThe
third level of the domain name, such as www or
ftp.

AAAA

Optional

Maps the domain name to the IPv6 address.


The AAAA record consists of the following:

subdomainThe
third level of the domain name, such as www or
ftp.

ipv6_addressThe

920

Parameter
name

Obligation Definition/Value
next generation Internet Protocol designed as the
successor to version 4. It is normally written as
eight groups of four hexadecimal digits (i.e.
2003:0db8:
85a3:0000:0000:8a2e:
0370:7334

CNAME

Optional

Canonical Name. CNAME records can be used when


you want a subdomain to point to another hostname.
Allows you to create an alias for your domain.
The CNAME record consists of the following:

hostnameThe
FQDN of the domain that you want to access.

subdomainThe
third level of the domain name, such as www or
ftp.

MX

Optional

Mail Exchange. MX records determine how mail is


delivered to your domain. Ensures that email that is
sent to you is routed to the correct destination.
The MX record consists of the following:

priorityThe
priority of the target host, lower value means
more preferred.

subdomainThe
third level of the domain name, such as www or
ftp.

hostnameThe
FQDN of the domain that you want to access.

SRV

Optional

Service Record.
The SRV record consists of the following:

priorityThe
priority of the target host, lower value means
more preferred.

weightA relative
weight for records with the same priority.

subdomainThe
third level of the domain name, such as www or
ftp.

hostnameThe
FQDN of the domain that you want to access.

portThe TCP or
UDP port on which the service is to be found.

TXT

Optional

Text Record. Allows you to attach comments to a


hostname, for example, SPF data to validate that

921

Parameter
name

Obligation Definition/Value
email is being sent from the IP address of the
domain's mail server.
The TXT record consists of the following:

subdomainThe
third level of the domain name, such as www or
ftp.

that you want to include.

textThe comments

Examples for reset_dns_zone


Request
If template is specified
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reset_dns_zone</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="dns_template">business_domains</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

922

</OPS_envelope>

If template is not specified


<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reset_dns_zone</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
If template is specified
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>

923

<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="records">
<dt_assoc>
<item key="A">
<dt_array>
<item key="0">
<dt_assoc>
<item key="subdomain"></item>
<item key="ip_address">17.16.156.5</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="MX">
<dt_array>
<item key="0">
<dt_assoc>
<item key="priority">10</item>
<item key="subdomain">www</item>
<item key="hostname">example.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="priority">1</item>
<item key="subdomain"></item>
<item
key="hostname">mx.cust.aug18dnstest1.com.hostedemail.com</item>

924

</dt_assoc>
</item>
</dt_array>
</item>
<item key="SRV">
<dt_array>
<item key="0">
<dt_assoc>
<item key="priority">1</item>
<item key="weight">3</item>
<item key="subdomain">w3</item>
<item key="hostname">yummynames.com</item>
<item key="port">81</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="nameservers_ok">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If template is not specified


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>

925

<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="nameservers_ok">0</item>
<item key="records">
<dt_assoc>
<item key="A">
<dt_array>
<item key="0">
<dt_assoc>
<item key="subdomain"></item>
<item key="ip_address">17.16.156.5</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="MX">
<dt_array>
<item key="0">
<dt_assoc>
<item key="priority">10</item>
<item key="subdomain">www</item>
<item key="hostname">example.org</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="priority">1</item>
<item key="subdomain"></item>

926

<item
key="hostname">mx.cust.aug18dnstest1.com.hostedemail.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="SRV">
<dt_array>
<item key="0">
<dt_assoc>
<item key="priority">1</item>
<item key="weight">3</item>
<item key="subdomain">w3</item>
<item key="hostname">yummynames.com</item>
<item key="port">81</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

927

set_dns_zone
Description
Action & object
action = set_dns_zone
object = domain

Usage
Set the records for a domain's DNS zone.

Request parameters for set_dns_zone


Standard parameters
action = set_dns_zone
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain whose DNS you want to set.

records

Required

A list of the record types defined for the domain;


each record includes the settings for that record.
Record types may be

AAAA

CNAME

MX

SRV

TXT
For more information, see the Records table
below.

928

Records
Parameters within the records associative array are described below.
Parameter
name

Obligation

Definition/Value

Optional

Maps the domain name to the IP address.


The A record consists of the following:

ip_address
Internet Protocol Address. A numeric address
that computers recognize, for example,
123.45.54.123.

subdomain
The third level of the domain name, such as
www or ftp.

AAAA

Optional

Maps the domain name to the IPv6 address.


The AAAA record consists of the following:

ipv6_address
The next generation Internet Protocol
designed as the successor to version 4. It is
normally written as eight groups of four
hexadecimal digits (i.e. 2003:0db8:
85a3:0000:0000:8a2e:
0370:7334

subdomain
The third level of the domain name, such as
www or ftp.

CNAME

Optional

Canonical Name. CNAME records can be used


when you want a subdomain to point to another
hostname. Allows you to create an alias for your
domain.
The CNAME record consists of the following:

hostnameThe
FQDN of the domain that you want to access.

subdomain
The third level of the domain name, such as
www or ftp.

MX

Optional

Mail Exchange. MX records determine how mail is


delivered to your domain. Ensures that email that
is sent to you is routed to the correct destination.
The MX record consists of the following:

priorityThe
priority of the target host, lower value means
more preferred.

subdomain
The third level of the domain name, such as

929

Parameter
name

Obligation

Definition/Value
www or ftp.

hostnameThe
FQDN of the domain that you want to access.

nameservers_ok

Required

Indicates whether the domain is set up to use the


OpenSRS nameservers.

0Domain is
not set up to use the OpenSRS nameservers

1Domain is
set up to use the OpenSRS nameservers

records

Required

A list of the record types defined for the domain;


each record includes the settings for that record.
Record types may be

SRV

Optional

A
AAAA
CNAME
MX
SRV
TXT

Service Record.
The SRV record consists of the following:

priorityThe
priority of the target host, lower value means
more preferred.

weightA
relative weight for records with the same
priority.

subdomain
The third level of the domain name, such as
www or ftp.

hostnameThe
FQDN of the domain that you want to access.

portThe TCP
or UDP port on which the service is to be
found.

TXT

Optional

Text Record. Allows you to attach comments to a


hostname to validate that email is being sent
from the IP address of the domain's mail server.
The TXT record consists of the following:

subdomain
The third level of the domain name, such as
www or ftp.

textThe

930

Parameter
name

Obligation

Definition/Value
comments that you want to include.

931

Response parameters for set_dns_zone


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

nameservers_ok

Returned if
Indicates whether the domain is set up to use the
is_success = OpenSRS nameservers.
true

0Domain is
not set up to use the OpenSRS nameservers

1Domain is
set up to use the OpenSRS nameservers

records

Returned if
A list of the record types defined for the domain;
is_success = each record includes the settings for that record.
true
Record types may be

AAAA

CNAME

MX

SRV

TXT
For more information, see the Records table
below.

932

Records
Parameters within the records associative array are described below.
Parameter
name

Obligation

Definition/Value

Optional

Maps the domain name to the IP address.


The A record consists of the following:

ip_address
Internet Protocol Address. A numeric address
that computers recognize, for example,
123.45.54.123.

subdomainThe
third level of the domain name, such as www or
ftp.

AAAA

Optional

Maps the domain name to the IPv6 address.


The AAAA record consists of the following:

subdomainThe
third level of the domain name, such as www or
ftp.

ipv6_addressThe
next generation Internet Protocol designed as the
successor to version 4. It is normally written as
eight groups of four hexadecimal digits (i.e.
2003:0db8:
85a3:0000:0000:8a2e:
0370:7334

CNAME

Optional

Canonical Name. CNAME records can be used when


you want a subdomain to point to another hostname.
Allows you to create an alias for your domain.
The CNAME record consists of the following:

hostnameThe
FQDN of the domain that you want to access.

subdomainThe
third level of the domain name, such as www or
ftp.

MX

Optional

Mail Exchange. MX records determine how mail is


delivered to your domain. Ensures that email that is
sent to you is routed to the correct destination.
The MX record consists of the following:

priorityThe
priority of the target host, lower value means
more preferred.

subdomainThe
third level of the domain name, such as www or
ftp.

933

Parameter
name

Obligation

Definition/Value

hostnameThe
FQDN of the domain that you want to access.

SRV

Optional

Service Record.
The SRV record consists of the following:

priorityThe
priority of the target host, lower value means
more preferred.

weightA relative
weight for records with the same priority.

subdomainThe
third level of the domain name, such as www or
ftp.

hostnameThe
FQDN of the domain that you want to access.

portThe TCP or
UDP port on which the service is to be found.

TXT

Optional

Text Record. Allows you to attach comments to a


hostname to validate that email is being sent from
the IP address of the domain's mail server.
The TXT record consists of the following:

subdomainThe
third level of the domain name, such as www or
ftp.

textThe
comments that you want to include.

Examples for set_dns_zone


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>

934

<item key="protocol">XCP</item>
<item key="action">SET_DNS_ZONE</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="records">
<dt_assoc>
<item key="A">
<dt_array>
<item key="0">
<dt_assoc>
<item key="subdomain"></item>
<item
key="ip_address">123.123.123.2</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="subdomain">*</item>
<item
key="ip_address">123.123.123.3</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="subdomain">www</item>
<item
key="ip_address">123.123.123.4</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="CNAME">
<dt_array>
<item key="0">

935

<dt_assoc>
<item key="subdomain">portal</item>
<item
key="hostname">www.example.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="MX">
<dt_array>
<item key="0">
<dt_assoc>
<item key="subdomain"></item>
<item
key="hostname">mx.example.com.cust.test.hostedemail.com</item>
<item key="priority">10</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="TXT">
<dt_array>
<item key="0">
<dt_assoc>
<item key="subdomain">mail</item>
<item key="text">v=spf1
exists:example.com -all</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="AAAA">
<dt_array>
<item key="0">
<dt_assoc>
<item key="subdomain">itportal</item>

936

<item
key="ipv6_address">2001:00ab:0000:00a1:0001:000b:00cc:00de</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="SRV">
<dt_array>
<item key="0">
<dt_assoc>
<item key="subdomain">itcontrol</item>
<item
key="hostname">control.example.com</item>
<item key="port">443</item>
<item key="priority">10</item>
<item key="weight">1</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>

937

<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Command Successful</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="records">
<dt_assoc>
<item key="A">
<dt_array>
<item key="0">
<dt_assoc>
<item key="subdomain"></item>
<item key="ip_address">123.123.123.2</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="subdomain">*</item>
<item key="ip_address">123.123.123.3</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="subdomain">www</item>
<item key="ip_address">123.123.123.4</item>
</dt_assoc>
</item>
</dt_array>
</item>

938

<item key="MX">
<dt_array>
<item key="0">
<dt_assoc>
<item key="priority">10</item>
<item key="subdomain"></item>
<item
key="hostname">mx.example.com.cust.test.hostedemail.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="TXT">
<dt_array>
<item key="0">
<dt_assoc>
<item key="text">v=spf1 exists:example.com -all</item>
<item key="subdomain">mail</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="SRV">
<dt_array>
<item key="0">
<dt_assoc>
<item key="priority">10</item>
<item key="weight">1</item>
<item key="subdomain">itcontrol</item>
<item key="hostname">control.example.com</item>
<item key="port">443</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="CNAME">

939

<dt_array>
<item key="0">
<dt_assoc>
<item key="subdomain">portal</item>
<item key="hostname">www.example.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="AAAA">
<dt_array>
<item key="0">
<dt_assoc>
<item key="subdomain">itportal</item>
<item
key="ipv6_address">2001:00ab:0000:00a1:0001:000b:00cc:00de</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="nameservers_ok">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

940

Domain Forwarding Commands


This section contains the following commands:
create_domain_forwardingAllows you to
redirect visitors to another website.

delete_domain_forwardingDeletes domain
forwarding service.

get_domain_forwardingQueries the domain


forwarding settings for a specified domain.

set_domain_forwardingConfigures the
domain forwarding settings for a domain.

941

create_domain_forwarding
Description
Action & object
action = create_domain_forwarding
object = domain

Usage
Create domain forwarding service that is used to redirect visitors from one
web address to another. Once you create domain forwarding, you need to use
the set_domain_forwarding command to configure the settings.

Request parameters for


create_domain_forwarding
Standard parameters
action = create_domain_forwarding
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Optional

The domain for which you want to enable domain


forwarding.

Response parameters for


create_domain_forwarding
Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request

942

response_text = message describing the outcome of the request

Examples for create_domain_forwarding


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">create_domain_forwarding</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>

943

<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Command Successful</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

944

delete_domain_forwarding
Description
Action & object
action = delete_domain_forwarding
object = domain

Usage
Delete the domain forwarding service for the specified domain.

Request parameters for


delete_domain_forwarding
Standard parameters
action = delete_domain_forwarding
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Optional

The domain for which you want to delete domain


forwarding.

Response parameters for


delete_domain_forwarding
Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

945

Examples for delete_domain_forwarding


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">delete_domain_forwarding</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>

946

<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Command Successful</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

947

get_domain_forwarding
Description
Action & object
action = get_domain_forwarding
object = domain

Usage
Queries the domain forwarding settings for a specified domain.

Request parameters for get_domain_forwarding


Standard parameters
action = get_domain_forwarding
object = domain
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required if
cookie is not
submitted

The relevant domain.

Response parameters for get_domain_forwarding


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

948

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

forwarding

Returned if
A list of the subdomains that are forwarded; can
is_success = be empty.
true
For more information, see the Forwarding table
below.

Forwarding
Parameters within the forwarding associative array are described below.
Parameter
name

Obligation

Definition/Value

description

Optional

The description of the website; used by search


engines.

destination_url

Optional

The full address of the destination website, for


example, http://www.mycompany.com/
mybestpage.html, or the IP address, for
example, http://12.34.56.123

enabled

Optional

Indicates whether domain forwarding is in effect.

0Domain forwarding is off

1Domain forwarding is on

keywords

Optional

Descriptive words that a visitor might use when


searching for the website; used by search engines.

masked

Optional

Indicates whether the destination website address


appears in the browser address field.

subdomain

Always
returned

0The actual destination address displays.

1The destination address is masked and


the original domain address is displayed
instead.

The third level of the domain name, such as www


or ftp.
Note: Although this parameter is required, its
value can be null.

title

Optional

The text that appears in the browser title bar.

949

Examples for get_domain_forwarding


Example 1
Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="forwarding"/>
<item key="action">get_domain_forwarding</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

950

<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_text'>Command Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='attributes'>
<dt_assoc>
<item key='forwarding'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='keywords'/>
<item key='masked'>0</item>
<item key='subdomain'>mail</item>
<item
key='destination_url'>http://mail.example.org/webmail</item>
<item key='title'>Main Web Mail Access 1</item>
<item key='description'>Default Web Mail
Access</item>
<item key='enabled'>1</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='keywords'/>
<item key='masked'>1</item>
<item key='subdomain'>www</item>
<item
key='destination_url'>http://www.example.org</item>
<item key='title'>Main Web Access 1</item>
Forward</item>

<item key='description'>Default Site Access


<item key='enabled'>1</item>

951

</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Without end-user credentials

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get_domain_forwarding</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key='domain'>example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

952

</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_text'>Command Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='attributes'>
<dt_assoc>
<item key='forwarding'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='keywords'/>
<item key='masked'>1</item>
<item key='subdomain'>mail</item>
<item
key='destination_url'>http://mail.example.org/webmail</item>
<item key='title'>Main Web Mail Access 1</item>
Access</item>

<item key='description'>Default Web Mail


<item key='enabled'>1</item>
</dt_assoc>
</item>
<item key='1'>

953

<dt_assoc>
<item key='keywords'/>
<item key='masked'>1</item>
<item key='subdomain'>www</item>
<item
key='destination_url'>http://www.example.org</item>
<item key='title'>Main Web Access 1</item>
<item key='description'>Default Site Access
Forward</item>
<item key='enabled'>1</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

954

set_domain_forwarding
Description
Action & object
action = set_domain_forwarding
object = domain

Usage
Configures the domain forwarding settings for a domain.
Note: Domain forwarding must already have been created for the domain.
See create_domain_forwarding.

The way in which the domain forwarding behaves depends on the format of
the domain name to which it applies:

domain.comApplies to all requests for this domain, unless overridden


by a second domain forwarding record. For example, if a site visitor
looks for whatever.domain.com, domain forwarding is applied (unless a
specific record has been set up for whatever.domain.com, or
*.domain.com). In other words, if no other forwarding is set up,
domain.com acts as a catch-all.
*.domain.comApplies domain forwarding to all subdomains. It will
not handle domain.com, but it will handle anything.domain.com.
whatever.domain.comDomain forwarding is applied to this
subdomain only.

Request parameters for set_domain_forwarding


Standard parameters
action = update_domain_forwarding
object = domain
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required if
cookie is not
submitted

The relevant domain.

955

Parameter
name

Obligation

Definition/Value

forwarding

Optional

A list of the subdomains that you want forwarded


and their associated attributes.
For more information, see the Forwarding table
below.

Forwarding
Parameters within the forwarding associative array are described below.
Parameter
name

Obligation

Definition/Value

description

Optional

A short description of your website. The maximum


number of characters allowed is 255.
Note: This parameter only takes effect if masked =
1.

destination_url Optional

The full address of the destination website, for


example, http://www.mycompany.com/
mybestpage.html, or the IP address, for example,
http://12.34.56.123
The maximum number of characters allowed is 200.

enabled

keywords

Optional

Optional

Determines whether domain forwarding is in effect.

0Turn off domain forwarding

1Turn on domain forwarding

Descriptive words that a visitor might use when


searching for your website. Separate each word or
phrase with a comma.
The maximum number of characters allowed is 900.
Note: This parameter only takes effect if masked =
1.

masked

Optional

Determines the destination website address appears


in the browser address field.

0Display the actual destination address.

1Mask the destination address and display

the original domain address instead.


subdomain

Required

The third level of the domain name, such as www or


ftp. For example, if you specify www, visitors who
type example.com are redirected to
www.example.com.
The maximum number of characters allowed is 128.
Note: Although this parameter is required, its value
can be null.

956

Parameter
name

Obligation

Definition/Value

title

Optional

The text that you want to appear in the browser title


bar.
The maximum number of characters allowed is 255.
Note: This parameter only takes effect if masked =
1.

Response parameters for set_domain_forwarding


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Examples for set_domain_forwarding


Example 1
Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>set_domain_forwarding</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.com</item>

957

<item key='forwarding'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='masked'>1</item>
<item key='keywords'>Example2.com</item>
<item
key='destination_url'>http://www.example2.com</item>
<item key='enabled'>1</item>
<item key='description'>Example2.com</item>
<item key='subdomain'>mail</item>
<item key='title'>Example2.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>

958

<item key="response_text">Command Successful</item>


<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Without end-user credentials

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>set_domain_forwarding</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>mydomain.com</item>
<item key='forwarding'>
<dt_array>
<item key="0">
<dt_assoc>
checkout</item>

<item key="keywords">shopping cart


<item key="masked">1</item>
<item key="subdomain">cart</item>

<item
key="destination_url">http://payment.gateway.biz</item>

959

<item key="title">Shopping Cart Checkout

Gateway</item>

<item key="description">Access to user


shopping cart for checkout handling.</item>
<item key="enabled">1</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Command Successful</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

960

User Commands
This section contains the following commands:

account.

add (subuser)Creates a subuser for a user's


delete (subuser)Deletes a sub-user.
get (subuser)Queries a domain's sub-user

data.

get (userinfo)Retrieves a user's general

information.

modify (subuser)Modifies a domain's sub-

user data.

961

add (subuser)
Description
Action & object
action = add
object = subuser

Usage
Creates a subuser for a user's account. Only one subuser can exist per
account.

Request parameters for add (subuser)


Standard parameters
action = add
object = subuser
registrant_ip = valid IP address of the registrant (optional)
username = name of the user account
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required if
cookie is not
submitted

The relevant domain.

sub_password

Required

Password for the sub-user.

sub_permission

Required

The sub_permission value is a bit-mask that


indicates which portions of the domain information
are changeable by the sub-user. The bits are as
follows:

1Owner

2Admin

4Billing

8Tech

16Nameservers

962

Parameter
name

Obligation

Definition/Value

sub_username

Required

32Rsp_whois_info

Username for the sub-user.

Response parameters for add (subuser)


Standard parameters
action = reply
object = subuser
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for add (subuser)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">add</item>
<item key="object">subuser</item>
<item key="cookie">249880759:3210384</item>
<item key="username">aaaa</item>
<item key="attributes">
<dt_assoc>
<item key="sub_password">luda</item>
<item key="sub_permission">2</item>

963

<item key="sub_username">subludak</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">SUBUSER</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

964

delete (subuser)
Description
Action & object
action = delete
object = subuser

Usage
Deletes a subuser.

Request parameters for delete (subuser)


Standard parameters
action = delete
object = subuser
registrant_ip = valid IP address of the registrant (optional)
cookie = cookie created to access OpenSRS, see "set (cookie)"
username = name of the user account
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Required if
cookie is not
submitted

The relevant domain.

sub_id

Required

The ID of the sub-user to be deleted.

Response parameters for delete (subuser)


Standard parameters
action = reply
object = subuser
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request

965

response_text = message describing the outcome of the request

966

Examples for delete (subuser)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="attributes">
<dt_assoc>
<item key="sub_id">2532880</item>
</dt_assoc>
</item>
<item key="protocol">XCP</item>
<item key="action">delete</item>
<item key="object">subuser</item>
<item key="cookie">249880759:3210384</item>
<item key="username">aaaa</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>

967

<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">SUBUSER</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

968

get (subuser)
Description
Action & object
action = get
object = subuser

Usage
Queries a domain's sub-user data.

Request parameters for get (subuser)


Standard parameters
action = get
object = subuser
registrant_ip = valid IP address of the registrant (optional)
username = name of the user (parent) account
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Required if
cookie is not
submitted

The relevant domain.

Response parameters for get (subuser)


Standard parameters
action = reply
object = subuser
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request
attributes

969

Attributes
If the request is successful, the attributes associative array may include the
following. (If there is no sub-user on the domain, the attributes are empty.)
Parameter
name

Obligation

id

Returned if
The sub-user's ID.
is_success = true

permission

Returned if
The sub-user's permission level. The permission
is_success = true value is a bit mask indicating which parts of the
domain information the sub-user can change.

username

Definition/Value

1Owner

2Admin

4Billing

8Tech

16Nameservers

32Rsp_whois_info

Returned if
The sub-user's username.
is_success = true

Examples for get (subuser)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">subuser</item>
<item key="cookie">249880759:3210384</item>
<item key="username">aaaa</item>
</dt_assoc>

970

</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">SUBUSER</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="permission">2</item>
<item key="username">subludak</item>
<item key="id">2532880</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

971

get (userinfo)
Description
Action & object
action = get
object = userinfo

Usage
Retrieves a user's general information.

Request parameters for get (userinfo)


Standard parameters
action = get
object = user_info
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Required if
cookie is not
submitted

The relevant domain.

Response parameters for get (userinfo)


Standard parameters
action = reply
object = userinfo
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request
attributes

972

The Reseller Agent (RSA) could respond with a 250 response_code, which
indicates that the action was submitted for processing in an asynchronous
registry. OpenSRS processes the request when the registry's reply is
received.
Performing a set cookie or get userinfo command indicates if there is an
action currently waiting on a domain. This information can be used to alert
the user that there is a waiting request.

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name

Obligation

Definition/Value

capabilities

Returned if is_success An associative array containing


= true
parameters specific to the actioncookie combination.

dns_errors

Returned for .DE if


is_success = true

domain

Returned if is_success Fully qualified domain name. IDN


= true
names are returned in Punycode
for .COM/.NET and in RACE for .ORG.

domain_count

Returned if is_success Total number of domains in the


= true
current user profile. A domain count
> 1 indicates that the get domain
list action is possible.

encoding_type

Optional

expiredate

Returned if is_success Expiration date for the domain as


= true
specified in the 'domain' field.

f_owner

Returned if is_success A flag indicating whether the current


= true
user is the owner of the domain(s).

This contains the DNS errors if any,


in text format .DE only

Encoding type for the domain. For a


list of languages and codes, see
Appendix C: Encoding Types for
IDNs.

If set to 1 then the current user is


the owner of the domain, if set to 0,
then the user is a subuser of the
domain and may only be authorized
to do certain actions.

973

Parameter name

Obligation

Definition/Value

permission

Returned if is_success An associative array containing


= true
parameters specific to the actioncookie combination.

1Owner

2Admin

4Billing

8Tech

16Nameservers

32Rsp_whois_info

username

Returned if is_success The sub-user's username


= true

waiting_requests_no

Returned if is_success The number of registry requests in


= true
the waiting state.

Capabilities
Parameters within the capabilities associative array are described below.
Parameter name Obligation

Definition/Value

change_ips_tag

Indicates if option is available for end user to


change the Domain Tag; applicable to .UK
domains only.

domain_auth_info

Optional

Always
returned

1Option available for end user to


change Domain Tag

0Option not available for end user to


change Domain Tag

Secret pass phrase stored at the registry, which


is used to authorize transfers of domains.

1True

0False

The absence of a key also signifies false.


forwarding_email

Always
returned

Some TLDs offer an email forwarding service.


Often the end user must explicitly purchase this
service.

1True

0False

The absence of a key also signifies false.

974

Parameter name Obligation

Definition/Value

uk_whois_opt

Indicates if option is available for end user to


opt out of display of personal information in
WHOIS for .UK. The WHOIS opt-out is available
for .UK domains only, and only to individuals
(i.e. not corporations).

Optional

1End user is eligible to use the opt-out


feature for .UK WHOIS

0End user is not eligible to use the


opt-out feature for .UK WHOIS

Deprecated
Parameter name

Obligation

Definition/Value

waiting_request

Deprecated

Replaced by waiting_requests_no.

Examples for get (userinfo)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET</item>
<item key="object">USERINFO</item>
<item key="registrant_ip">216.40.46.115</item>
<item key="cookie">435686610:3185178</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

975

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">USERINFO</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="waiting_requests_no">8</item>
<item key="domain">example.org.uk</item>
<item key="encoding_type"/>
<item key="expiredate">2007-11-25 00:00:00</item>
<item key="permission"/>
<item key="domain_count">131</item>
<item key="f_owner">1</item>
<item key="username">aaaa</item>
<item key="capabilities">
<dt_assoc>
<item key="forwarding_email">0</item>
<item key="domain_auth_info">0</item>
<item key="uk_whois_opt">1</item>
<item key="change_ips_tag">1</item>
</dt_assoc>
</item>
</dt_assoc>

976

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

977

modify (subuser)
Description
Action & object
action = modify
object = subuser

Usage
Modifies a domain's sub-user data.

Request parameters for modify (subuser)


Standard parameters
action = modify
object = subuser
registrant_ip = valid IP address of the registrant (optional)
username = name of the user account
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required if
cookie is not
submitted

The relevant domain.

sub_id

Required

The sub-user's ID.

sub_password

Required

Password for the sub-user.

sub_permission

Required

The sub_permission value is a bit-mask that


indicates which portions of the domain information
are changeable by the sub-user. The bits are as
follows:

1Owner

2Admin

4Billing

8Tech

16Nameservers

978

Parameter
name

Obligation

Definition/Value

sub_username

Required

32Rsp_whois_info

Username for the sub-user.

Response parameters for modify (subuser)


Standard parameters
action = reply
object = subuser
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for modify (subuser)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">subuser</item>
<item key="cookie">249880759:3210384</item>
<item key="username">aaaa</item>
<item key="attributes">
<dt_assoc>
<item key="sub_password">luda</item>
<item key="sub_permission">4</item>

979

<item key="sub_id">2532880</item>
<item key="sub_username">subludak</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">SUBUSER</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

980

Authentication Commands
This section contains the following commands:
change (ownership)Changes the username
and password of the profile that owns the cookie's domain.

change (password)Changes the password of


the profile associated with the cookie.

send_authcodeSends the Authcode for an


EPP domain.

send_password (domain)Sends the domain


password to the domain's admin contact.

981

change (ownership)
Description
Action & object
action = change
object = ownership

Usage
Changes the username and password of the profile that owns the cookie's
domain.
Note: After issuing this command, in order to continue issuing further
commands for the domain, you must delete the current cookie and set
another.

Request parameters for change (ownership)


Standard parameters
action = change
object = ownership
cookie = cookie created to access OpenSRS, see "set (cookie)"
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required if
cookie is not
submitted

The relevant domain.

move_all

Optional

Indicates whether to move all the domains to the


new profile. If not submitted, only the domains
identified in the cookie are moved.

0Do not move all the domains to the new


profile

1Move all the domains to the new profile

982

Parameter
name

Obligation

Definition/Value

password

Required

The password of the registrant who is gaining


ownership.
You can use any of the following alphanumeric
characters and symbols: A-Z, a-z, 0-9, []()!@\
$^,.~|=-+_{}#"

reg_domain

Optional

If included, the user can change the domain from


one profile to another (already existing) profile. If
reg_domain is not included, the username and
password provided in the request are used to create
a new profile.

username

Required

The username of the registrant who is gaining


ownership.
You can use any of the following alphanumeric
characters: A-Z, a-z, 0-9.

Response parameters for change (ownership)


Standard parameters
action = reply
object = ownership
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for change (ownership)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>

983

<item key="protocol">XCP</item>
<item key="action">CHANGE</item>
<item key="object">OWNERSHIP</item>
<item key="cookie">992336212:3228913</item>
<item key="registrant_ip">10.0.10.138</item>
<item key="attributes">
<dt_assoc>
<item key="move_all">1</item>
<item key="password">newprofile</item>
<item key="username">newprofile</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">OWNERSHIP</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

984

change (password)
Description
Action & object
action = change
object = password

Usage
Changes the password of the profile associated with the cookie.
Note: After issuing this action, you should delete the current cookie and set
another in order to keep the profile information current.

Request parameters for change (password)


Standard parameters
action = change
object = password
cookie = cookie created to access OpenSRS, see "set (cookie)"
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Required if
cookie is not
submitted

The relevant domain.

reg_password

Required

The new password for the registrant.


You can use any of the following
alphanumeric characters and symbols: A-Z,
a-z, 0-9, []()!@\$^,.~|=-+_{}#"

Response parameters for change (password)


Standard parameters
action = reply
object = password

985

is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for change (password)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">change</item>
<item key="object">password</item>
<item key="cookie">201947893:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="reg_password">aaaa</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>

986

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">PASSWORD</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

987

send_authcode
Description
Action & object
action = send_authcode
object = domain

Usage
Sends the Authcode for an EPP domain to the admin contact. If the domain
for which the request is made does not use the EPP protocol, an error is
returned.
Note: A cookie does not need to be set to use this command.

Request parameters for send_authcode


Standard parameters
action = send_authcode
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain_name

Required

The EPP domain name for which the Authcode is


to be sent.

Response parameters for send_authcode


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

988

Examples for send_authcode


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">send_authcode</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain_name">example.info</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>

989

<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">domain</item>
<item key="response_text">Message sent</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

990

send_password (domain)
Description
Action & object
action = send_password
object = domain

Usage
Sends an email containing the domain password to the domain's admin
contact.

Request parameters for send_password (domain)


Standard parameters
action = send_password
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain_name

Required

The domain name for which the password is sent.

send_to

Required

An indication of the contact to which the password


is to be sent, either owner or admin (default)

sub_user

Required

An indication of whether the password is to be sent


to the sub-user of the domain. An error is returned
if this field is set to 1 but there is no sub-user
associated to the domain.

0Do not send to sub-user

1Send to sub-user

991

Response parameters for send_password


(domain)
Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for send_password (domain)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">send_password</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="sub_user">0</item>
<item key="send_to">owner</item>
<item key="domain_name">example.info</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

992

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">domain</item>
<item key="response_text">Message sent</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

993

Cookie/Session Commands
This section contains the following commands:

delete (cookie)Deletes a cookie.


quit (session)Cleanly terminates the

connection.
set (cookie)Creates a cookie.

update (cookie)Changes the domain


associated with the current cookie.

994

delete (cookie)
Description
Action & object
action = delete
object = cookie

Usage
Deletes a cookie.

Request parameters for delete (cookie)


Standard parameters
action = delete
object = cookie
cookie = The cookie to be deleted
registrant_ip = The IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

cookie

Required

The cookie to be deleted.


Note: The format of the cookie is subject to
change, and should be treated as a simple string.

domain

Required if
cookie is not
submitted as
credentials

The relevant domain.

Response parameters for delete (cookie)


Standard parameters
action = reply
object = cookie

995

is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for delete (cookie)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">delete</item>
<item key="object">cookie</item>
<item key="cookie">484465641:3210384:7453745</item>
<item key="attributes">
<dt_assoc>
<item key="cookie">484465641:3210384</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>

996

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">COOKIE</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

997

quit (session)
Description
Action & object
action = quit
object = session

Usage
Cleanly terminates the connection. This command is required only if your
connection method is CBC (crypt type can be Blowfish or DES).

Request parameters for quit (session)


Standard parameters
protocol= XCP
action = quit
object = session

Note: No cookie is required because the quit action is not authenticated.

Response parameters for quit (session)


Standard parameters
action = reply
object = session
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Examples for quit (session)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>

998

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">quit</item>
<item key="object">session</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">SESSION</item>
<item key="response_text">Closing connection</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

999

set (cookie)
Description
Action & object
action = set
object = cookie

Usage
Creates a cookie for use in commands where a cookie is required to access
OpenSRS.
The cookie lasts for one hour.

Request parameters for set (cookie)


Standard parameters
action = set
object = cookie
registrant_ip = The IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The relevant domain. (Multilingual domains must


be race-encoded.)

reg_password

Required

The registrant's password.


You can use any of the following alphanumeric
characters and symbols: A-Z, a-z, 0-9, []()!@\
$^,.~|=-+_{}#"

reg_username

Required

The registrant's username.


You can use any of the following alphanumeric
characters: A-Z, a-z, 0-9.

1000

Response parameters for set (cookie)


Standard parameters
action = reply
object = cookie
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request
attributes

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name

Obligation

Definition/Value

cookie

Returned if
The current user's cookie.
is_success = Note: The format of the cookie is subject to
true
change, and should be treated as a simple
string.

domain_count

Returned if
The number of domains in the registrant
is_success = profile.
true
Note: The domain_count for a sub-user is
always 0, because a sub-user cannot be
linked with more than one domain.

expiredate

Returned if
The expiry date of the domain, in the format
is_success = YYYY-MM-DD hh:mm:ss.
true

f_owner

Returned if
A flag indicating whether the current user is
is_success = the owner of the domain(s):
true
0User is not owner

1User is owner

last_access_time

Returned if
When the account was last accessed,
is_success = expressed in seconds since Epoch.
true

last_ip

Returned if
The last IP address used.
is_success =
true

permission

Returned if
An indication of the permission level of the
is_success = domain's sub-user. The permission value is a
true
bit mask that indicates which portions of the
domain information are changeable by the
sub-user.

1001

Parameter name

redirect_url

Obligation

Optional

Definition/Value

1Owner

2Admin

4Billing

8Tech

16Nameservers

32Rsp_whois_info

The URL for domains in the OpenSRS Parked


Pages Program. If you have questions about a
specific domain, email
tucowspark@tucows.com.
If the domain is a Storefront domain, the
value is the URL for the associated Storefront
Domain Manager.

waiting_requests_no

Returned if
The number of registry requests in the
is_success = waiting state.
true

Deprecated
Parameter name

Obligation

Definition/Value

waiting_request

Deprecated

Replaced by "waiting_requests_no"

Examples for set (cookie)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">set</item>
<item key="object">cookie</item>

1002

<item key="registrant_ip">216.40.46.115</item>
<item key="attributes">
<dt_assoc>
<item key="reg_username">robson</item>
<item key="reg_password">changeit</item>
<item key="domain">example.co.uk</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">cookie</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="waiting_requests_no">0</item>
<item key="permission"/>
<item key="cookie">920954818:3214550:7453745</item>
<item key="domain_count">131</item>
<item key="f_owner">1</item>

1003

<item key="last_access_time">1082751795</item>
<item key="encoding_type"/>
<item key="last_ip">10.0.11.215</item>
<item key="expiredate">2007-11-25 00:00:00</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1004

update (cookie)
Description
Action & object
action = update
object = cookie

Usage
Allows the client to change the domain associated with the current cookie.

Request parameters for update (cookie)


Standard parameters
action = update
object = cookie
registrant_ip = The IP address of the registrant (optional)
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Required if
cookie is not
submitted

The current domain for the cookie.

domain_new

Required

The new domain for the cookie.

reg_username

Required

The registrant's username.

reg_password

Required

The registrant's password.

Response parameters for update (cookie)


Standard parameters
action = reply
object = cookie
is_success = a Boolean is returned, indicating success or failure of the

request

1005

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request
attributes

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter name

Obligation

Definition/Value

cookie

Returned if
The current user's cookie.
is_success = Note: The format of the cookie is subject to
true
change, and should be treated as a simple
string.

domain_count

Returned if
The number of domains in this profile.
is_success = Note: The domain_count for a sub-user is
true
always 0, as a sub-user cannot be linked with
more than one domain.

expiredate

Returned if
The domain's expiry date in the format YYYYis_success = MM-DD hh:mm:ss.
true

f_owner

Returned if
A flag indicating whether the current user is
is_success = the owner of the domain(s):
true
0User is not owner

waiting_requests_no

1User is owner

Returned if
The number of registry requests in the
is_success = waiting state.
true

Deprecated
Parameter name

Obligation

Definition/Value

waiting_request

Deprecated

Replaced by "waiting_requests_no"

Examples for update (cookie)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>

1006

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">update</item>
<item key="object">cookie</item>
<item key="registrant_ip">10.0.11.121</item>
<item key="attributes">
<dt_assoc>
<item key="domain_new">example.me.uk</item>
<item key="reg_username">robson</item>
<item key="domain">example.co.uk</item>
<item key="reg_password"/>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">COOKIE</item>

1007

<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="waiting_requests_no">2</item>
<item key="f_owner">1</item>
<item key="cookie">880117898:3214551:7453745</item>
<item key="domain_count">172</item>
<item key="expiredate">2007-11-25 00:00:00</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1008

WHOIS Privacy Command


This section contains the following command:
change_wp_expiry_dateThis command has
been deprecated. To cancel the WHOIS Privacy service, use the modify
(domain) command with the whois_privacy_state parameter.

1009

change_wp_expiry_date
Description
Action & object
action = change_wp_expiry_date
object = domain

Usage
Changes the expiry date for the WHOIS Privacy service for a domain.
Important: This command has been deprecated.
WHOIS Privacy is now a free service and does not have an expiry date. If this
command is part of your current integration, it continues to work; however,
the resulting expiry date is ignored.

To disable the WHOIS Privacy service, use the modify (domain) command
with the whois_privacy_state parameter.

Request parameters for change_wp_expiry_date


Standard parameters
action = change_wp_expiry_date
object = domain
cookie = cookie created to access OpenSRS, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain for which to change WHOIS Privacy


expiry.

expiry_day

Required

Day of the month (0-31) when WHOIS Privacy


expires. Used with expiry_month and
expiry_year to indicate a future date. Date cannot
be after the domain's expiry date. To set WHOIS
Privacy to not expire, leave this parameter,
expiry_month, and expiry_year empty.

1010

Parameter
name

Obligation

Definition/Value

expiry_month

Required

Month when WHOIS Privacy expires (01-12). Used


with expiry_day and expiry_year to indicate a
future date. Date cannot be after the domain's
expiry date. To set WHOIS Privacy to not expire,
leave this parameter, expiry_day, and
expiry_year empty.

expiry_year

Required

Year when WHOIS Privacy expires, in the format


YYYY. Used with expiry_day and expiry_month to
indicate a future date. Date cannot be after the
domain's expiry date. To set WHOIS Privacy to not
expire, leave this parameter, expiry_day, and
expiry_month empty.

Response parameters for change_wp_expiry_date


Standard parameters
action = reply
object = domain
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request
attributes

Examples for change_wp_expiry_date


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">change_wp_expiry_date</item>

1011

<item key="object">domain</item>
<item key="cookie">199316337:3893</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="expiry_month">12</item>
<item key="expiry_day">05</item>
<item key="expiry_year">2009</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Expiry date successfully
updated</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1012

Publishing Service Commands


This section contains the following commands:

create_aliasCreates an alias for a mobile domain.


create publishingCreates a new goMobi domain.
delete_aliasDeletes a goMobi domain alias.
delete publishingDeletes a goMobi domain.
disable publishingDisables a goMobi domain.
enable publishingRe-enables a goMobi domain that has been
disabled, or set to let-expire.
get_alias_listReturns a list of the aliases associated with the
specified mobile domain.
get service infoGets information about the getMobi service.
generate redirection codeGenerate code that redirects visitors to
either the source domain or the mobile domain, depending on the
device theyre using.
get_control_panel_urlReturns the URL for the goMobi control panel
that you use to define the appearance of the mobile site.
let expire publishingSets a goMobi domain to expire at the end of the
billing period.
update publishingChanges the name of mobile domain, and,
optionally, changes the domain from which the mobile domain gets its
content.

1013

create_alias
Description
Action & object
action = create_alias
object = publishing

Usage
Creates an alias for a mobile domain. You can create up to five aliases per
subscription so that multiple hostnames can point to the same goMobi page;
however, each alias must be created separately.
Important: Ensure that the DNS for each of the alias hostnames points to
lb.goMobi.info.

Request parameters for create_alias


Standard parameters
action = create_alias
object = publishing
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The name of the mobile domain for which you


want to create aliases.

hostname

Required

The name of the alias.

service_type

Required

The type of Publishing service.


Allowed value is gomobi.

Response parameters for create_alias


Standard parameters
action = reply

1014

object = publishing
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Examples for create_alias


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">create_alias</item>
<item key="object">publishing</item>
<item key="attributes">
<dt_assoc>
<item key="service_type">gomobi</item>
<item key="domain">example.com</item>
<item key="hostname">example.net</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>

1015

<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">PUBLISHING</item>
<item key="response_text">Created alias &apos;example.net&apos;
for &apos;example.com&apos;.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1016

create (publishing)
Description
Action & object
action = create
object = publishing

Usage
Creates a new goMobi domain.

Request parameters for create (publishing)


Standard parameters
action = create
object = publishing
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Required

The name of the mobile domain that you want


to create.

end_user_auth_info

Optional

A list of the end user account information.


For more information, see the End user auth
info table below.

service_type

Required

The type of Publishing service.


Allowed value is gomobi.

source_domain

Optional

The name of the domain on which the new


mobile web page will be based.

End user auth info


Parameters within the end_user_auth_info associative array are described
below.
If you are adding the service to an existing account, you only need to specify
the username; if you are creating a new account, you must specify
username, email_address,and password.
1017

Note: If you do not specify a username and password, the service will work;
however, the domain owner will not be able to access the end user control
panel at domainadmin.com. In that case, you can either provision the
domain for your customer or you can provide your own end user interface.
Parameter
name

Obligation

Definition/Value

email_address

Required if
The domain owner's email address.
end_user_auth_info is
specified and this is a
new account

password

Required if
The password associated with the
end_user_auth_info is Publishing service. The password must be
specified and this is a
at least 8 characters long.
new account

username

Required if
The username associated with the
end_user_auth_info is Publishing service. The username must be
specified
at least 6 characters long.

Response parameters for create (publishing)


Standard parameters
action = reply
object = publishing
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Examples for create (publishing)


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>

1018

<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">CREATE</item>
<item key="object">PUBLISHING</item>
<item key="attributes">
<dt_assoc>
<item key="service_type">gomobi</item>
<item key="domain">example.net</item>
<item key="source_domain">example.com</item>
<item key="end_user_auth_info">
<dt_assoc>
<item key="email_address">danny@example.com</item>
<item key="password">BigPWTest</item>
<item key="username">danny1234</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>

1019

<item key="object">PUBLISHING</item>
<item key="response_text">Publishing service created</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1020

delete_alias
Description
Action & object
action = delete_alias
object = publishing

Usage
Deletes a goMobi domain alias.

Request parameters for delete_alias


Standard parameters
action = delete_alias
object = publishing
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation Definition/Value

domain

Required

The name of the mobile domain whose alias you


want to delete.

hostname

Required

The alias that you want to delete.

service_type

Required

The type of Publishing service.


Allowed value is gomobi.

Response parameters for delete_alias


Standard parameters
action = reply
object = publishing
is_success = a Boolean is returned, indicating success or failure of the

request

1021

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for delete alias


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">delete_alias</item>
<item key="object">publishing</item>
<item key="attributes">
<dt_assoc>
<item key="service_type">gomobi</item>
<item key="domain">example.com</item>
<item key="hostname">example.net</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>

1022

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">PUBLISHING</item>
<item key="response_text">Deleted alias
&apos;example.net&apos; for
&apos;example.com&apos;.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1023

delete (publishing)
Description
Action & object
action = delete
object = publishing

Usage
Deletes a goMobi domain.
Warning: This command deletes the account immediately.

Request parameters for delete (publishing)


Standard parameters
action = delete
object = publishing
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The name of the mobile domain that you want to


delete.

service_type

Required

The type of Publishing service.


Allowed value is gomobi.

Response parameters for delete (publishing)


Standard parameters
action = reply
object = publishing
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

1024

Examples for delete (publishing)


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">DELETE</item>
<item key="object">PUBLISHING</item>
<item key="attributes">
<dt_assoc>
<item key="service_type">gomobi</item>
<item key="domain">example.net</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>

1025

<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">PUBLISHING</item>
<item key="response_text">Deleted 'gomobi' service for
'example.net'.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1026

disable (publishing)
Description
Action & object
action = disable
object = publishing

Usage
Disables a goMobi domain. This command causes the mobile domain to be
inaccessible; however, you are still charged for the service, and you can reenable the domain by using the enable (publishing) command. If you want to
stop billing, you need to delete the account by using the delete (publishing)
command.

Request parameters for disable (publishing)


Standard parameters
action = disable
object = publishing
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The name of the mobile domain that you want to


disable.

service_type

Required

The type of Publishing service.


Allowed value is gomobi.

Response parameters for disable (publishing)


Standard parameters
action = reply
object = publishing

is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Examples for disable (publishing)


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">DISABLE</item>
<item key="object">PUBLISHING</item>
<item key="attributes">
<dt_assoc>
<item key="service_type">gomobi</item>
<item key="domain">example.net</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>

<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">PUBLISHING</item>
<item key="response_text">Disabled 'gomobi' service for
'example.net'.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

enable (publishing)
Description
Action & object
action = enable
object = publishing

Usage
Re-enables a goMobi domain that has been disabled or set to let-expire.

Request parameters for enable publishing


Standard parameters
action = enable
object = publishing
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The name of the mobile domain that you want to


enable.

service_type

Required

The type of Publishing service.


Allowed value is gomobi.

Response parameters for enable publishing


Standard parameters
action = reply
object = publishing
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

1030

Examples for enable publishing


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">ENABLE</item>
<item key="object">PUBLISHING</item>
<item key="attributes">
<dt_assoc>
<item key="service_type">gomobi</item>
<item key="domain">example.net</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>

1031

<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">PUBLISHING</item>
<item key="response_text">Enabled 'gomobi' service for
'example.net'.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1032

generate redirection code


Description
Action & object
action = generate_redirection_code
object = publishing

Usage
Generate code that redirects visitors to either the source domain or the
mobile domain, depending on the device theyre using.

Request parameters for


generate_redirection_code
Standard parameters
action = generate_redirection_code
object = publishing
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Required

The name of the mobile domain that you


want to let expire.

programming_language

Required

The programming language for the code.


Allowed values are:

service_type

Required

asp

htaccess

javascript

jsp

php

The type of Publishing service.


Allowed value is gomobi.

1033

Response parameters for


generate_redirection_code
Standard parameters
action = reply
object = publishing
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

redirection_code

Returned if
The code that you insert in your source website
is_success = that redirects visitors to the source or the mobile
true
site depending on the device they're using to
access it.

Examples for generate_redirection_code


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GENERATE_REDIRECTION_CODE</item>
<item key="object">PUBLISHING</item>
<item key="attributes">

1034

Sub-Reseller Commands
<dt_assoc>
<item key="programming_language">javascript</item>
<item key="service_type">gomobi</item>
<item key="domain">example.net</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">PUBLISHING</item>
<item key="response_text">Got GoMobi redirection code (javascript)
for 'example.net'</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="redirection_code"><script type="text/javascript"
src="http://detect.deviceatlas.com/redirect.js?
d=http://example.com&m=http://example.net"></script></item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

1035

Sub-Reseller Commands
</OPS_envelope>

1036

get_alias_list
Description
Action & object
action = get_alias_list
object = publishing

Usage
Returns a list of the aliases associated with the specified mobile domain.

Request parameters for get_alias_list


Standard parameters
action = get_alias_list
object = publishing
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Required

The name of the mobile domain.

service_type

Required

The type of Publishing service.


Allowed value is gomobi.

Response parameters for get_alias_list


Standard parameters
action = reply
object = publishing
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request
attributes

1037

Personal Names Service

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

aliases

Returned if
is_success = true

The list of the aliases associated with


the specified domain.

domain

Returned if
is_success = true

The name of the mobile domain.

Examples for get_alias_list


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get_alias_list</item>
<item key="object">publishing</item>
<item key="attributes">
<dt_assoc>
<item key="service_type">gomobi</item>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1038

Personal Names Service

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">PUBLISHING</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="response_text">Service information retrieved.</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="aliases">
<dt_array>
<item key="0">example.net</item>
<item key="1">example.org</item>
<item key="2">example.info</item>
<item key="3">example.biz</item>
<item key="4">example.us</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1039

Personal Names Service

get_control_panel_url
Description
Action & object
action = get_control_panel_url
object = publishing

Usage
Returns the URL for the goMobi control panel that you use to define the
appearance of the mobile site.
Important: This link is only available for 5 minutes.

Request parameters for get_control_panel_url


Standard parameters
action = get_control_panel_url
object = publishing
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The name of the mobile domain.

language

Optional

The language in which the goMobi Control Panel


is displayed. The URL that is returned will be for
the Control Panel in the specified language.
The default is English.
Allowed values are:

deGerman

enEnglish (US)

en-GBEnglish (UK)

esSpanish

frFrench

itItalian

jaJapanese

nlDutch

1040

Personal Names Service


Parameter
name

service_type

Obligation

Required

Definition/Value

ptPortuguese

ruRussian

slSlovenian

zh-CNChinese

The type of Publishing service.


Allowed value is gomobi.

Response parameters for get_control_panel_url


Standard parameters
action = reply
object = publishing
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request
attributes

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

control_panel_url

Returned if
The URL for the goMobi control panel that you
is_success = use to define the appearance of the mobile site.
true

Examples for get_control_panel_url


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>

1041

Personal Names Service


</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET_CONTROL_PANEL_URL</item>
<item key="object">PUBLISHING</item>
<item key="attributes">
<dt_assoc>
<item key="service_type">gomobi</item>
<item key="domain">example.net</item>
<item key="language">es</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">PUBLISHING</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="response_text">Got GoMobi control-panel URL for
'example.net'.</item>

1042

Personal Names Service


<item key="attributes">
<dt_assoc>
<item
key="control_panel_url">https://cpsandbox.instantmobilizer.com/69/examp
le.net/1290717040/G8%2BIDXjU0hyJ%2FnKMp7%2BJAwKX9T7mVg7Q%2BPcKA
%2FSDN1hAFHSk%2FvMLQyBhQyXwZWj66TWHJ0%2BWPppK
%0A70VKGNodLaiepIiIvQU9bpPu63O%2BsxmORtu4cQLzyKGQVYstjYhozrXhFJsGDK
%2B30zU%2FvZEmalC4%0AL4x5qm9aQ28i75gUEb4%3D%0A/en</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1043

get service info


Description
Action & object
action = get_service_info
object = publishing

Usage
Gets information about the goMobi service.

Request parameters for get_service_info


Standard parameters
action = get_service_info
object = publishing
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The name of the mobile domain.

service_type

Required

The type of Publishing service.


Allowed value is gomobi.

Response parameters for get_service_info


Standard parameters
action = reply
object = publishing
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request
attributes

1044

Transfer Commands

Attributes
If the request is successful, the attributes associative array may include the
following:
Parameter
name

Obligation

Definition/Value

aliases

Returned if
The list of aliases associated with the domain.
aliases exist
and
is_success =
true

billing_date

Returned if
The next billing date for the goMobi service.
is_success =
true

creation_date

Returned if
The date the goMobi service was purchased.
is_success =
true

domain

Returned if
The name of the mobile domain.
is_success =
true

gomobi

Returned if
Lists information about the goMobi service.
is_success = For more information, see the gomobi table below.
true

status

Returned if
The current status of the goMobi service.
is_success = Allowed values are:
true
activeThe service is active.

deletedThe service is no longer active and


cannot be re-enabled.

disabledThe mobile site is not accessible,


but the Reseller is still being billed.

insufficient fundsThe Reseller has


insufficient funds in their account to cover
the charges for the current billing period.

let expireThe service will expire at the


end of the current billing period.

processedThe order has been processed.

1045

Transfer Commands

gomobi
Parameters within the gomobi associative array are described below.
Parameter
name

Obligation

Definition/Value

source_domain

Always
returned

The name of the domain on which the mobile


domain is based.

Examples for get_service_info


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">GET_SERVICE_INFO</item>
<item key="object">PUBLISHING</item>
<item key="attributes">
<dt_assoc>
<item key="service_type">gomobi</item>
<item key="domain">example.net</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1046

Transfer Commands

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">PUBLISHING</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="response_text">Service information retrieved.</item>
<item key="attributes">
<dt_assoc>
<item key="service_type">gomobi</item>
<item key="gomobi">
<dt_assoc>
<item key="source_domain">example.com</item>
</dt_assoc>
</item>
<item key="domain">example.net</item>
<item key="creation_date">2010-11-26 12:33:03 UTC</item>
<item key="status">active</item>
<item key="aliases">
<dt_array>
<item key="0">example.net</item>
<item key="1">example.org</item>
<item key="2">example.info</item>
<item key="3">example.biz</item>
<item key="4">example.us</item>
</dt_array>

1047

Transfer Commands
</item>
<item key="billing_date">2010-12-26 12:33:03 UTC</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1048

let expire (publishing)


Description
Action & object
action = let_expire
object = publishing

Usage
Sets a goMobi domain to expire at the end of the billing period. Until that
time, you can re-enable the domain by using the enable (publishing)
command.

Request parameters for let expire (publishing)


Standard parameters
action = let_expire
object = publishing
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The name of the mobile domain that you want to


let expire.

service_type

Required

The type of Publishing service.


Allowed value is gomobi.

Response parameters for let expire (publishing)


Standard parameters
action = reply
object = publishing
is_success = a Boolean is returned, indicating success or failure of the

request
response_code = response code indicating outcome of the request

1049

response_text = message describing the outcome of the request

Examples for let expire (publishing)


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">LET_EXPIRE</item>
<item key="object">PUBLISHING</item>
<item key="attributes">
<dt_assoc>
<item key="service_type">gomobi</item>
<item key="domain">example.net</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>

1050

<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">PUBLISHING</item>
<item key="response_text">Let 'gomobi' service for 'example.net'
expire.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1051

update publishing
Description
Action & object
action = update
object = publishing

Usage
Changes the name of the mobile domain, and, optionally, changes the
domain from which the mobile domain gets its content.

Request parameters for update publishing


Standard parameters
action = update
object = publishing
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

domain

Required

The name of the mobile domain.

new_domain

Optional

The new name of the mobile domain.

service_type

Required

The type of Publishing service.


Allowed value is gomobi.

source_domain

Required

The name of the domain on which the mobile


domain content is based.

Response parameters for update publishing


Standard parameters
action = reply
object = publishing
is_success = a Boolean is returned, indicating success or failure of the

request

1052

response_code = response code indicating outcome of the request


response_text = message describing the outcome of the request

Examples for update publishing


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">PUBLISHING</item>
<item key="action">UPDATE</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.net</item>
<item key="service_type">gomobi</item>
<item key="source_domain">example303.com</item>
<item key="new_domain">example123.net</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>

1053

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">PUBLISHING</item>
<item key="response_text">Updated 'gomobi' service for
'example.net' with source-domain 'example303.com' and new domain
'example123.net'.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

1054

Appendix A: Special Considerations for


Asynchronous Registries
OpenSRS supports the registration of domains in asynchronous registries.
Asynchronous registries are those registries that do not provide a real time
response to a requested action.
The OpenSRS system shields the complexity of the asynchronous email
processing from you. However, you still need to be aware of it, because
operations (actions) on a registry that is asynchronous do not give you a
real-time success or failure response. Instead, you get a message that the
action has been sent, and is awaiting processing by the remote registry. At
some later point, you will see the actual results of your action (for example,
if you make modifications to a domain, you won't see them until some time
has elapsed).

1055

Appendix B: Customizing the Transfer


Approval URL
By default, a domain's admin contact is directed to the OpenSRS transfer
approval URL, but a reseller can choose to instead direct clients to their own
URL for approvals.
The scripts to parse the end-user replies back to OpenSRSmust pass
responses through https://rr-n1-tor.opensrs.net/transfers, and must include
several different actions (each of which require various fields). The required
actions and fields are listed in the following tables.

Regular transfers
Key

Value

action

Confirm

domain

<domain_name>

id

<transfer_request_id>

action

whois_transfer

domain

<domain_name>

unique_id

<transfer_request_id>

action

do_confirm

domain

<domain_name>

unique_id

<transfer_request_id>

phone

phone_number

action

cancel_transfer

domain

<domain_name>

unique_id

<transfer_request_id>

Page flow

Notes:

The Confirm page must contain the string value='whois_transfer'.


The Success page must contain the string 'Thank you for confirming'.
The Cancel page must contain the string 'has been cancelled'.
1056

Bulk transfers
Key

Value

action

confirm_bulk_transfer

bt

bulk_transfer_id

< bulk_transfer_id >

id

<transfer_request_id>

action

do_confirm_bulk_transfer

bulk_transfer_id

< bulk_transfer_id >

unique_id

<transfer_request_id>

phone

phone_number

action

cancel_bulk_transfer

domain

<domain_name>

unique_id

<transfer_request_id>

Page flow

Notes:

The Confirm page must contain the string 'Listed below are the
domains that will be transferred:' (List of domains located between
<menu> </menu>).
The Success page must contain the string 'Thank you for confirming
batch transfer'.
The Cancel page must contain the string 'has been cancelled'.

Transfers away
Key

Value

action

confirm_transfer_away

away

domain

<domain_name>

id

<transfer_request_id>

action

do_confirm_away

domain

<domain_name>

1057

unique_id

<transfer_request_id>

phone

phone_number

action

do_cancel_away

domain

<domain_name>

unique_id

<transfer_request_id>

Page flow
Notes:

The Confirm page must contain the string 'away from' (To include time
and registrar name, the page must also contain the string 'this request
was entered at <date> by <registrar>').
The Success page must contain the string 'Thank you. Your domain will
be transferred to'.
The Cancel page must contain the string 'Thank you. Your domain will
NOT be transferred to'.

1058

Appendix C: Encoding Types for IDNs


The three-character language codes listed in the following table are the
allowed values for the 'encoding_type' parameter, which is used to specify
the language to use for an IDN.
Language

Language code

Afrikaans

AFR

Albanian-ALB

ALB

Arabic

ARA

Aragonese

ARG

Armenian-ARM

ARM

ASCII

(blank, no language code)

Assamese

ASM

Asturian; Bable

AST

Avestan

AVE

Awadhi

AWA

Azerbaijani

AZE

Balinese

BAN

Baluchi

BAL

Basa

BAS

Bashkir

BAK

Basque-BAQ

BAQ

Belarusian

BEL

Bengali

BEN

Bhojpuri

BHO

Bosnian

BOS

Bulgarian

BUL

Burmese-BUR

BUR

Carib

CAR

Catalan

CAT

Chechen

CHE

1059

Language

Language code

Chinese-CHI

CHI

Chuvash

CHV

Coptic

COP

Corsican

COS

Croatian-SCR

SCR

Czech-CZE

CZE

Danish

DAN

Divehi

DIV

Dogri

DOI

Dutch-DUT; Flemish

DUT

English

ENG

Estonian

EST

Faroese

FAO

Fijian

FIJ

Finnish

FIN

French-FRE

FRE

Frisian

FRY

Gaelic; Scottish Gaelic

GLA

Georgian-GEO

GEO

German-GER

GER

Greek-GRE, Modern (1453-)

GRE

Gondi

GON

Gujarati

GUJ

Hebrew

HEB

Hindi

HIN

Hungarian

HUN

Icelandic-ICE

ICE

Indic (Other)

INC

1060

Language

Language code

Indonesian

IND

Ingush

INH

Irish

GLE

Italian

ITA

Japanese

JPN

Javanese

JAV

Kashmiri

KAS

Kazakh

KAZ

Khmer

KHM

Kirghiz

KIR

Korean

KOR

Kurdish

KUR

Lao

LAO

Latvian

LAV

Lithuanian

LIT

Luxembourgish; Letzeburgesch

LTZ

Macedonian-MAC

MAC

Malayalam

MAL

Malay-MAY

MAY

Maltese

MLT

Maori-MAO

MAO

Mixed (English) *

ENG

Moldavian

MOL

Mongolian

MON

Nepali

NEP

None specified

NO

Norwegian

NOR

Oriya

ORI

1061

Language

Language code

Ossetian; Ossetic

OSS

Panjabi

PAN

Persian-PER

PER

Polish

POL

Portuguese

POR

Pushto

PUS

Rajasthani

RAJ

Romanian-RUM

RUM

Russian

RUS

Samoan

SMO

Sanskrit

SAN

Sardinian

SRD

Serbian-SCC

SCC

Seychelles

SCR

Simplified Chinese

ZH-CN

Sindhi

SND

Sinhalese

SIN

Slovak-SLO

SLO

Slovenian

SLV

Somali

SOM

Spanish; Castilian

SPA

Swahili

SWA

Swedish

SWE

Syriac

SYR

Tajik

TGK

Tamil

TAM

Telugu

TEL

Thai

THA

1062

Language

Language code

Tibetan-TIB

TIB

Traditional Chinese

ZH-TW

Turkish

TUR

Ukrainian

UKR

Urdu

URD

Uzbek

UZB

Vietnamese

VIE

Welsh-WEL

WEL

Yiddish

YID

1063

Revisions and Updates


June 10, 2014

Added command uk_get_blocker_contact which checks whether the


specified domain name is registered as a third level .UK domain (for
example. .co.uk or .org.uk) with the same registrar and reseller, and if
so, returns the owner contact details.

May 15, 2014

Added .TRAVEL to list of domains that require registrant_extra_info.

May 13, 2014

Added .NYC to list of domains that require registrant_extra_info.

May 5, 2014

The .AU au_registrant_info section has been updated with changes


to the registrant requirements for .AU domains.

April 16, 2014

Added get_contract command, which retrieves the text of the


Reseller agreement known as Exhibit A.

The id_card_number and registrant_vat_id are now optional for


.CL registrations and trades.

April 15, 2014

Added two new lookup types to the name_suggest command:


premium_brokered_transferReturns domain names that may
be purchased from external suppliers that use a broker to complete
the purchase process.

premium_make_offer Returns domain names that may be


purchased from external suppliers where the buyer and seller
negotiate the purchase price.

March 11, 2014

Added has_claim parameter to lookup domain and name_suggest


commands. Indicates whether the domain name has a matching mark
registered at the Trademark Clearinghouse (TMCH).
Added async_reason parameter to sw_register and process_pending
commands. Indicates the reason that the request was asynchronous.

1064

February 27, 2014

Added policy_reason to the au_registrant_info array. The value


indicates the reason the registrant is entitled to the domain name.
Applies to sw_register, get (domain), and get_order_info.

January 30, 2014

The get_registrant_verification_status command has been changed


as follows:
suspend_date has been renamed verification_deadline.
days_to_suspend returns 0 if the domain is verified.
added email_bounced,which returns 1 if the email was triggered
because the WDRP or renewal notice bounced.

January 7, 2014

Added the following new commands for registrant verification:


get_registrant_verification_statusreturns the current state of the
registrant verification request.
send_registrant_verification_emailSends or resends the
verification email to the registrant.

December 3, 2013

When submitting sunrise orders for the new gTLDs, you must submit
the following parameters and values with the sw_register command:
trademark_smd, reg_type = sunrise, and handle = save.

November 21, 2013

Offer codes have been discontinued.

October 22, 2013

Added additional languages to the get_control_panel_url requests.

October 8, 2013

Added information about the tld_data requirements for .DE and .DK
domains.

June 20, 2013

Added contacts required for .PH to the Domain contacts table.


Added information about the tld_data requirements for .CL, .CO.ZA,
.COM.BR, .MX, .MY, and .RO.
IDNs are now allowed for .BE domain names.
In contact_set, if country = MX, you must use the 2 character code for
the state value.

1065

Revised the Ting offers, which are now:


$25 credit to the customer and 10% gross margin to the Reseller.
$25 credit to the customer and $25 bounty per new account to the
Reseller.

February 13. 2013

Added a table listing the contacts required for each gTLD and ccTLD.

December 13, 2012

Revised the Ting offers, which are now:


$25 credit to the customer and 25% revenue share to the reseller.
$25 credit to the customer and $50 bounty to the reseller.

November 27, 2012

The place_or_birth parameter is no longer required for .RU and


.COM.RU domains.

November 15, 2012

You can now generate coupon codes for Fotolia that are worth 10 free
Fotolia credits, and MightyCall codes that are worth 30 minutes of
MightyCall ClickConnect service.

November 1, 2012

The trade_domain command no longer applies to .EU domains. You


can now make changes to the registrant information either by using
the modify domain command or by specifying the new information
when you transfer the domain (using sw_register).
Auth codes are required for .EU transfers.

September 20, 2012

You can now secure more than one domain under a single SSL
certicate for these products:
GeoTrust QuickSSL Premium (subdomains only), TrueBusiness ID
EV, and TrueBusiness ID
SymantecSecure Site EV, Secure Site Pro EV, Secure Site Pro, and
Secure Site
ThawteSGC Super Certs, SSL Web Server EV, and SSL Web
Server Certificate
You can now use the update_product command to specify whether or
not renewal reminder emails are sent when a Trust Service product is
approaching its expiry date.
You can now use the update_order command to add or change the
additional domains in a Trust Service order.

1066

Added information about the get_products command, which returns a


list of the Trust Service products whose expiry dates are within a
specific date range.
Incremented version to 4.0.8.

August 14, 2012

Added language to the list of request parameters for


get_control_panel_url. When submitted, the URL that is returned is
for the control panel in the specified language.

July 12, 2012

The following TLDs can now be registered through OpenSRS: .AE,


.AF, .COM.AR, .AS, .CL, .CM, .COOP, .CA, .EC, .COM.EC, .FIN.EC,
.INFO.EC, .MED.EC, .NET.EC, .PRO.EC, .FI, .GL, .GY, .CO.GY,
.COM.GY, .NET.GY, .HK, .HM, .COM.HR, .HT, .HU, .CO.HU, .IS, .KG,
.LT, .LU, .LV, .COM.LV, .LY, .COM.LY, .MA, .CO.MA, .MD, .NO, .PM,
.PT, .COM.PT, .COM.RO, .RE, .RO, .RU, .COM.RU, .SE, .SG, .SI, .SR,
.TF, .TO, .VG, .WF, .YT. Added information about the tld_data
requirements for the domains that require additional information.
Incremented version to 4.0.7.

July 5, 2012

Added the following Ting offers:


$25 credit to the customer and 30% revenue share to the Reseller.
$25 credit to the customer and $75 bounty to the Reseller.
$50 credit to the customer and $50 bounty to the Reseller.

May 17, 2012

Added htaccess to the list of available languages for


generate_redirection_code.
Added the following new commands for Publishing:
create_aliasCreates one or more goMobi aliases.
delete_aliasDeletes a goMobi domain alias.
get_alias_listReturns a list of aliases for the specified domain.
The get_service_info command now returns a list of any defined
aliases.
Added information about the tld_data requirements for .AERO and
.JOBS domains.
Added information to sw_register, get domain, and modify domain
commands about requirements for .
Added the following new commands for Domains:
get_domain_affiliate_idRetrieves the affiliate id associated with a
domain.
set_domain_affiliate_idAssigns an affiliate id to a domain.

1067

The get_domain all_info command now returns affiate_id, if


applicable.
The get_transfers_in command now returns affiate_id if submitted in
the transfer order.
JOBS and .AERO domains.
Added information about the get_cert command, which returns the
certificate for the specified Trust Service product as well as associated
product information.
Incremented version to 4.0.6.

May 8, 2012

In the Offers Manager, you can now generate a Ting coupon code
worth $50 USD that your customers can use toward the purchase of a
Ting mobile device. You receive a share of the net revenue that is
generated by the fees that the customer pays during their first 24
months of service.

May 1, 2012

Removed Google AdWords and AdWords Express from the list of


available Offers as these codes are no longer available.
Incremented version to 4.0.5.

April 17, 2012

As of April 17, 2012, you can use the OpenSRS API to renew and
manage SSL certificates that were ordered through the TPP API. All
SSL orders that were placed through the TPP system will be migrated
to the OpenSRS API by April 20, after which all purchasing and
management of OpenSRS Trust products must be done through the
OpenSRS API or the OpenSRS Control Panel as the TPP API and the
RWI2 are decommissioned.
The get_product_info command now includes two additional request
parameters all_info and inventory_item_id - that facilitate searches
of products that were migrated from TPP. For products that were
migrated from TPP, the command result includes the following
parameters: tpp_order_id and inventory_item_id.
The sw_register command now includes the new parameter
base_order_id, which allows you to create a new order based on a
previous order.
The maximum registration period for Trust Service products is now
four years.
Incremented version to 4.0.4.

March 29, 2012

You can now generate Offer codes that your customers can use toward
payment processing services with Host Merchant Services (HMS). Each

1068

coupon is worth $75 USD and you benefit by earning a percent of the
net revenue that is generated by the customer's processing fees to
HMS.
Incremented version to 4.0.3.

March 15, 2012

When you register or change ownership of a .FR domain name, you


must provide information to satisfy the regional presence requirements
of the .FR registry. That information can now be submitted within the
tld_data array. The sw_register, trade_domain, and get_order_info
commands have been updated with the new values and examples.
The tld_data array is also used by the get (domain), get_order_info,
and modify (domain) commands to handle the additional information
that is required by the .ASIA, .AU, .IT. .PRO, .US, and .XXX registries.
The structure of these commands has been changed to make it
consistent with the way in which tld_data is handled by the
sw_register (domain) command.
Incremented version to 4.0.2.

December 8, 2011

Added information to sw_register, get domain, and modify domain


commands about additional parameters required for .PRO domains.
Incremented version to 3.9.6.

December 6, 2011

General Availability of .XXX domain names begins.

November 25, 2011

Added information to sw_register, get domain, and modify domain


commands about additional parameters for .XXX orders.

November 17, 2011

The name_suggest command now allows you to specify the minimum


and maximum prices of the Premium Names that you want it to return.

November 15, 2011

Free 30 day trials are available for the following Trust Service
products:
GeoTrustTrue BusinessID with EV
TRUSTeHosted Privacy Policy (HPP) and Privacy Policy with Seal
(TPS)
VeriSignSecureSite, Secure Site Pro, Secure Site with EV, and
Secure Site Pro with EV
Incremented version to 3.9.5.

1069

November 8, 2011

Added information to sw_register about .XXX Landrush applications.


The .XXX Landrush period begins November 8, 2011.

November 1, 2011

In addition to Google AdWords, you can now generate Offer codes for
Google AdWords Express.

October 20, 2011

Added the following Trust Service product: GeoTrust Web Site AntiMalware Scan.
You can now specify the email address to which the Domain Admin
credentials are sent for SiteLock and TRUSTe products.
Incremented version to 3.9.4.

October 13, 2011

You can now use the redeem domain command to redeem .COM, .NET,
.IT, and .NL domains that have expired but are within the redemption
grace period (previously this command could only be used for .CA)
The create, modify, delete and get nameserver commands now accept
IPv6 addresses.
Incremented version to 3.9.3.

October 6, 2011

Added the following Trust Service products:


Comodo SSL
Comodo SSL Wildcard
At any time during the current term, you can now upgrade SiteLock
SSL certificates to a higher level SiteLock certificate.
Incremented version to 3.9.2.

September 29, 2011


Added the following commands to support Google AdWords:
generate_codesGenerates a list of unique offer codes for Google
AdWords credits.
set_statusAllows you to change the status of an offer once you
issue it to a customer.
view_codesAllows you to view all of the codes that you
generated.
September 13, 2011
Added the following Trust Service products:
SiteLock Basic

1070

SiteLock Premium
SiteLock SMB Enterprise Secure
TRUSTe HPP (Hosted Privacy Policy)
TRUSTe TPS (TRUSTe Privacy Policy with seal)
Incremented version to 3.9.

September 7, 2011
Added information to sw_register and get_order_info sections about
the additional parameters required for .XXX Sunrise applications.
The .XXX Sunrise period begins September 7, 2011.

Incremented version to 3.8.2.

June 14, 2011


When using the trade_domain command to transfer ownership of .BE
domains only, you must supply the domain_auth_info parameter in
the request.

The minimum number of characters for .TEL domain names is now


two. Additionally, .TEL names can now contain only numbers.

Incremented version to 3.8.1.

May 11, 2011


Added information about commands that can be submitted without
end-user credentials.
April 1, 2011
Added examples to the process_pending command for Trust Service.
March 15, 2011
Added the following Trust Service products:
Comodo EV (Extended Validation) SSL
Comodo Instant SSL
Comodo Premium SSL
Comodo Premium SSL Wildcard
Trustwave DV (Domain Vetted) SSL Certificate
Trustwave Premium EV (Extended Validation) SSL
Trustwave Premium SSL
Trustwave Premium SSL Wildcard
Incremented version to 3.7.

1071

February 19, 2011


Cyrillic languages have been added to the list of available IDNs for
.ORG domains.
February 3, 2011
The .IT registry has moved to an industry standard platform, and as a
result, the following commands have been affected:

sw_registerThe .IT owner contact requires three additional


parameters: nationality_code, reg_code, and entity_type.
modifyThe .IT owner contact requires three additional
parameters: nationality_code, reg_code, and entity_type.
advanced_update_nameserversFor .IT domains, the registry
runs a series of tests against the nameservers before activating
them.
update_all_infoThis command can no longer be used for .IT
domains.
update_contactsThe .IT owner contact requires three additional
parameters: nationality_code, reg_code, and entity_type.
WHOIS Privacy is now supported for .CO domains.
Incremented version to 3.6.1.

December 9, 2010
Added a new parameter to the get domain command called
clean_ca_subset, which determines the type of contact_set values
that are returned for .CA domains when type = admin or tech.
November 30, 2010
Added the following new commands for Publishing Service:
create (publishing)Creates a new goMobi domain.
delete (publishing)Deletes a goMobi domain.
disable (publishing)Disables a goMobi domain.
enable (publishing)Re-enables a goMobi domain that has been
disabled or set to let-expire.
let expire (publishing)Sets a goMobi domain to expire at the
end of the billing period.
generate_redirection_codeGenerate code that redirects
visitors to either the source domain or the mobile domain,
depending on the device theyre using.
get_control_panel_urlReturns the URL for the goMobi control
panel that you use to define the appearance of the mobile site.
get_service_infoGets information about the goMobi service.

1072

update publishingChanges the name of the mobile domain, and,


optionally, changes the domain from which the mobile domain gets
its content.
The query_approver_list and parse_csr commands now require the
product_type parameter.

October 28, 2010


Added data = cira_registrant to the list of values for modify (domain).
Used to change the owner of a .CA domain.
October 12, 2010
CIRA has moved to an industry standard platform for .CA domain
registrations, and as a result, the following commands have been
deprecated:
cira_email_pwd
get_ca_blocker_list
cancel_active_process
send_cira_approval_email
If these commands are part of your current integration, they continue
to work; however, the results are ignored.

For modify (domain), the trademark parameter has been deprecated,


and the domain_auth_info parameter now supports .CA.
For sw_register (domain), the following parameters have been
deprecated: ca_link_domain, cwa, domain_description,
isa_trademark, rant_agrees, rant_no; however, lang_pref and
legal_type continue to be required for .CA registrations. The
f_lock_domain parameter now applies to .CA registrations.
For .CA WHOIS Privacy, a new parameter ca_whois_display_setting
has been added to get (domain) and modify (domain).
For .CA registrations (sw_register command), the lang_pref
parameter has been deprecated. For admin, owner, and tech contacts,
you can use the optional parameter lang to specify the language
(English or French) for that contact. The lang parameter is optional; if
not specified, English is used.
Incremented version to 3.5.1.

October 5, 2010
Added information to the sw_register and get_order_info commands
for Trust Services.
Added the following new commands for Trust Services:
cancel_orderCancels a Trust Service order.
get_product_infoQueries the properties of the specified Trust
Service product.
parse_csrParses the CSR and identifies its data elements.

1073

query_approver_listQueries the list of approvers for the Trust


Service that is associated with the specified domain.
request_on_demand_scanAsks VeriSign to rescan your
system.
resend_approver_emailResends the Approver email.
resend_cert_emailResends the certificate email address.
update_orderSubmits a Trust Service order update to the
OpenSRS system.
update_productUpdates the Verisign Trust Service product to
enable or disable the VeriSign Trust Seal and/or the VeriSign
Search-in-Seal.
Incremented version to 3.5.

September 23, 2010


Added information about .AU domains, which are now available as part
of the Tucows Domain Service.
July 20, 2010
.CO GA begins July 20, 2010.
Added parameter no_cache to lookup (domain) command and added
parameter no_cache_tlds to name_suggest (domain) command.
These parameters cause the command to query the applicable registry
rather than the OpenSRS cache.
June 18, 2010
Added information about submitting orders for .CO landrush and GA
preorders.
Added French to the list of available languages for name_suggest
command.
Incremented version to 3.4.2.
March 31, 2010
Added the following parameters to sw_register for .CO Sunrise
applications:
legal_typethe capacity of the .CO sunrise applicant.
sunrise_pvrcPre-Validation Registration Code that indicates that
the trademark is valid.
trademark_country2 character code of the country where the
trademark is registered.
trademark_namename under which the trademark is
registered.
trademark_numbertrademark registration or serial number.

Incremented version to 3.4.1.

1074

March 5, 2010
The name_suggest domain command has been enhanced to allow you
to:
Search for personal names.
Specify the language (English, German, Italian, and Spanish) in
which to return suggestions for other similar names
Specify the number of seconds that the command can run, and
return as many results as can be found in that time period.
Resubmit a previously run name_suggest command if the
command did not return complete results during the specified
max_wait_time.
Deprecated the name_suggest (surname) command.
There is a new command called create_reseller which creates a new
Reseller account; however, this command is disabled by default. To be
enabled for this command, contact reseller.support@tucows.com.
Incremented the version to 3.4.
January 23, 2010
As of January 23, 2010, .ORG supports IDNs for Simplified Chinese
and Traditional Chinese.
December 3, 2009
As of December 10, 2009, .EU supports IDNs
November 7, 2009
Internationalized Domain Name (IDN) are now supported for .NAME
domains.
November 3, 2009
Added the following parameters to sw_register:
cwaindicates where the Registrar can change the Organization or
Admin Contact information for the domain without submitting the
request to the registry (CIRA) for processing.
rant_agreesindicates whether the registrant has read and
agrees with the CIRA Registrant Agreement. If rant_agrees = 1,
registration is processed immediately, and the confirmation email is
not sent.
October 8, 2009
Added six new commands for enabling and configuring the DNS
service:
create_dns_zone enables the DNS service for a domain
delete_dns_zone deletes the DNS zones defined for the specified
domain

1075

force_dns_nameservers changes the nameservers on your


domain to use the DNS nameservers
get_dns_zone allows you to view the ENS records for a specified
domain
reset_dns_zone sets the DNS zone to the values in the specified
template
set_dns_zone sets the records for a domains DNS zone.
Added four new commands for domain forwarding:
create_domain_forwarding allows you to redirect visitors to
another website
delete_domain_forwarding deletes domain forwarding settings
get_domain_forwarding queries the domain forwarding settings
for a specified domain
set_domain_forwarding changes the domain forwarding settings
for a domain
Added a new parameter to the sw_register command called
dns_template, which allows you to specify the name of the DNS
template that you want to use to enable DNS and assign initial DNS
records

August 6, 2009
OpenSRS allows you to operate your own network of domain name
Resellers. Sub-Resellers operate very much like any other OpenSRS
Reseller; however, you are considered to be the parent Reseller for
your Sub-Resellers. You set the pricing plans for them, and you earn
commissions on the domains that they sell. See the Sub-Reseller
Commands section for the related API commands.
March 17, 2009
Added two new search parameters for the get_transfer_in command:
order_id and transfer_id. Also, transfer_id is now included in the
response.
For the sw_register command when reg_type=transfer, transfer_id is
now included in the response.
February 27, 2009
For Personal Names, the forward_only email account type has been
deprecated and replaced by the webmail_only account type (no
IMAP/POP/SMTP). This change affects the su_register surname and
update surname commands.
February 10, 2009
Added skip_registry_lookup parameter to name_suggest (domain)
API. This parameter specifies whether to query the applicable

1076

registries to find out if the lookup domain names are available for
registration.
Added transfer_away_in_progress attribute to response for get
domain API when type = status. This attribute indicates that the
domain is in the process of being transferred away.

January 29, 2009


Added a note to the sw_register section that, for .TEL, the
custom_nameservers value should be 0 and any nameservers
submitted for .TEL will be ignored.
January 20, 2009
Added rsp2rsp_push_transfer command, which transfers multiple
domains from one Reseller to another Reseller.
Added update_contacts command, which submits a domain-contact
information update to the OpenSRS system.
November 10, 2008
Added premium_price_to_verify parameter to the sw_register request
parameters. This parameter submits the premium domain price and
verifies that it is the same as the list price.
October 7, 2008
.UK registrations are now synchronous, which means that you can
register and make changes to .UK domain names in real time, and
you get an immediate response to your requests.
September 23, 2008
Added an example to the modify domain section for .CA when data =
contact_info, as this domain accepts some additional address
attributes (addr_office, addr_address_number, addr_street_name,
addr_street_cat, and addr_orientation).
July 28, 2008
Rebranded guide, replacing 'Tucows' with 'OpenSRS'.
July 17, 2008
Added information about .ME domains, which are available as part of
the Tucows Domain Service beginning on July 17, 2008.
July 8, 2008
The submit bulk_change command can now be used to submit the
following bulk change requests: check availability, domain lock/unlock,
renewals, nameserver modification, contact changes, enable/disable

1077

Parked Pages, enable WHOIS Privacy, and push domains to another


Reseller account.
June 10, 2008
When you register a .CA domain using the sw_register command, you
can use the ca_link_domain parameter to link to an existing CIRA
profile only if the associated domain is registered with Tucows.
March 17, 2008
Added information about .ASIA domains, which will be available as
part of the Tucows Domain Service beginning on March 26th, 2008.
February 19, 2008
Added API commands that support the Tucows Personal Names
Service. The service allows you to offer your customers web and email
addresses based on Tucows extensive portfolio of surnames, for
example, adam.robinson.net. The new commands include:
NAME_SUGGEST SURNAME, which checks whether a specified
Personal Names domain, (firstname lastname) is available for
registration.
SU_REGISTER SURNAME, which submits a new registration
order for an available Personal Names domain.
UPDATE SURNAME, which changes properties of the domain.
DELETE SURNAME, which deletes the Personal Names domain.
Incremented document version to 3.0.
January 31, 2008
Split the OpenSRS API Specification into two versions: one with
information about Perl API commands and the Reseller Client Library
(RCL), and one with information about XML API commands and XML
over HTTPS Post.
January 19, 2008
The sw_register command now returns a list of the pending orders
that are cancelled by the successful registration of the domain.
November 17, 2007
Added the GET_NOTES command, which retrieves the domain notes
that detail the history of the domain, for example, renewals and
transfers.
Added the GET_ORDERS_BY_DOMAIN command, which retrieves
information about orders placed for a specific domain.
Added new parameter 'transfer_notes' to GET_ORDER_INFO
command.

1078

Updated the LOOKUP_DOMAIN command. Removed the deprecated


'match' parameter from examples and added explanation of
'email_available' response parameter, which only applies to .NAME
TLDs.

August 31, 2007


Added XML and Perl examples for registering and transferring .DE
domains (SW_REGISTER command).
August 21, 2007
Deprecated the CHANGE_WP_EXPIRY_DATE command. WHOIS
Privacy is now a free service and does not have an expiry date. If this
command is part of your current integration, it will continue to work;
however, the resulting expiry date will be ignored.
When the 'data' parameter for MODIFY (DOMAIN) is set to
'whois_privacy_state', the 'state' parameter can be used to disable or
re-enable WHOIS Privacy but only if WHOIS Privacy was previously
implemented for the domain.
July 24, 2007
Added the GET_TRANSFERS_IN command, which returns a list of
domains that were transferred in to a Resellers' profile.
Added the GET_BALANCE command, which returns the account
balance and on hold balance.
Added 'limit' parameter to the GET_DOMAIN command.
June 19, 2007
You can now search for and purchase domain names from external
(non-Tucows) suppliers. Added premium to NAME_SUGGEST and
SW_REGISTER commands.
March 15, 2007
Reformatted guide.
January 4, 2007
Added redirect_url parameter to SET COOKIE command, which is a
parameter that is returned for domains registered by TUCOWSpark
Program.
October 31, 2006
Added NAME_SUGGEST command, which checks whether a specified
name, word, or phrase is available for registration in gTLDs and
ccTLDs, suggests other similar domain names for .COM, .NET, .ORG,
.INFO, and .BIZ domains, and checks whether they are available.

1079

September 19, 2006


Removed .MOBI Sunrise information from SW_Register command
section. .MOBI landrush registrations are offered from 26 September
2006 to 10 October 2006; General Availability begins on 11 October
2006.
Updated the GET_DOMAIN command when type =
whois_privacy_state to return the parameter expiry_date
displaying the expiry date for WHOIS Privacy.
Updated the GET_DOMAIN command when type = list to return
parameter wp_service indicating whether WHOIS Privacy is enabled,
and wp_expiredate displaying either the WHOIS Privacy expiry date
or 0 if WHOIS Privacy is not enabled.
August 22, 2006

Incremented document version to 2.9.6.


Added auth_info parameter to SW_Register.

July 13, 2006


Added the "GET_DOMAINS_CONTACTS" command, which allows you to
submit a list of domains and have the full contact information
returned.
Added the "TRADE_DOMAIN" command, which transfers ownership of
a .EU or .BE domain name from one registrant to another.
June 9, 2006
Added examples for .BE and .EU transfers, which use the
SW_REGISTER command.
May 23, 2006
Updated section on .BE and .EU registrations in the SW_Register
command to indicate that during a transfer, contact changes will only
be accepted for 'owner name' and 'organization'.
May 15, 2006

The sunrise period for the .MOBI TLD is open from 22 May 2006 to 29
May 2006 for members of specific mobile associations. Trademark
holders who are not members of the designated mobile associations
may submit sunrise applications from 12 June 2006 - 21 August 2006.
The SW Register command has been updated to support .MOBI
Sunrise applications.

May 2, 2006
The 'change_contact' parameter in the SW Register command can now
be used to change contact information for .UK/.US/.BIZ/.INFO/.ORG
domains during a transfer or after transfer completion.
1080

To remove the expiration date for WHOIS Privacy, submit the Change
WHOIS Privacy Expiry Date command leaving the day, month, and
year parameters blank.
Updated the Get Domain command when 'type' = 'status' to return
parameter 'parkp_status', indicating whether the domain is enabled
for Parked Pages service.
Individual .EU domain registrants can keep their name private in the
WHOIS record by leaving the 'owner' 'org_name' field blank when
submitting the SW Register command.
Added parameters 'registry_updatedate', 'registry_expiredate',
'registry_createdate', and 'registry_transferdate' to the Get Domain
command.

April 26, 2006


Updated the Get Domain command when 'type' = 'status' to return
parameter 'auctionescrow' = '1' when the domain is in auction escrow.
April 6, 2006
Removed .EU Sunrise information. OpenSRS closes for .EU Sunrise
applications at 6 p.m. EST, April 6, 2006.
March 28, 2006
Incremented document version to 2.9.5.
As of April 7, 2006, the .EU TLD is publicly available and the .EU
Sunrise period ends. Parameters supporting .EU Sunrise will be
removed from the SW Register command. Registration and
management of .EU domains is done in the same way as for gTLDs.
Parked Pages service includes .EU TLDs.
In order to allow Resellers time to sign up to offer .EU and begin
promoting this TLD to their customers, Tucows will accept registration
applications on April 1, 2006. Applications received between April 1
and April 6, 2006 will be queued, and submitted to the .EU Registry on
April 7, 2006.
Change of ownership and transfer functionality for .EU domains will be
available late May 2006.
On April 1, 2006, .BE will be handled in the same way as gTLDs and
will be removed from the "Update All Info" command.
February 9, 2006
Updated the "Modify Domain" command to include the value
"parkpage_state" for the "data" parameter. This variation of the
"Modify Domain" command allows you to enable or disable the Parked
Pages service for a specified domain.

1081

January 31, 2006


Updated the SW Register Domain command and the Renew
Domain command to enable the Parked Pages service for the
following TLDs: .COM, .NET, .ORG, .INFO, .BIZ, and .NAME.
Updated the Change WHOIS Privacy Expiry Date command to
indicate that in order to cancel WHOIS Privacy and stop billing
charges, you must expire the service, i.e., change its expiration date
to the following day or sometime in the upcoming month.
Deprecated the "Modify Domain" command where "type" =
"nameserver_list"; the "Advanced Update Nameservers" command
should be used instead. Other variations of the Modify Domain
command continue to work.
January 16, 2006
Updated the Get Domain command to include the value
"xpack_waiting_history" for the "type" parameter. When "type" =
"xpack_waiting_history", the state of completed/cancelled requests
for the CC TLDs AT, IT, BE, FR, NL, and CH is returned. Examples were
also added.
Updated Change Ownership command to clarify move_all parameter.
January 6, 2006
Updated the Get Domain command to provide examples of request and
response to identify WHOIS privacy record.
December 7, 2005
Updated the SW Register Domain command to support .EU TLD
Sunrise requests.
November 29, 2005
Incremented document version to 2.9.4.
Domain status to be checked at the Registry to ensure that a domain
transfer is not pending. This restriction prevents a transfer of domain
between Resellers when a transfer between Registrars is in progress.
Updated response example for Get Order Info command to reflect that
all notes are returned.
November 15, 2005
The Technical contact is no longer required or accepted for.uk
registrations. OpenSRS will continue to store technical contact
information for existing .uk registrations but technical information no
longer will be forwarded. The Technical contact fields have been
removed.
Clarified which TLDs are supported by the Bulk Change Request API.

1082

November 4, 2005
Revised tld_data description to indicate that it is only used for .NAME
and .US domains.
September 12, 2005
Incremented document version to 2.9.3.
Pending orders older than 30 days, and with 30 days of inactivity, will
be cancelled automatically.
The Renew Domain command now returns the admin_email
parameter, which contains the email address of the domains
administrative contact.
German IDNs for .INFO now supported.
July 23, 2005
Incremented document version to 2.9.2.
IDN conversion for .ORG, for nine languages is now supported. See
Encoding Types for IDNs for more information.
June 20, 2005
Incremented document version to 2.9.1.
Added the "Bulk Purchase WHOIS Privacy" command, which enables
the purchase of WHOIS Privacy for multiple domains.
May 12, 2005
Updated the "SW Register Domain" command to include the
"custom_transfer_nameservers" attribute, which allows you to specify
whether to use the nameservers provided in the request or keep the
domain's existing nameservers when transferring a domain.
May 5, 2005
All changes posted for this date have been promoted to the Horizon
environment, and will be promoted to live on May 12, 2005.
Incremented document version to 2.9.0.
Added new command "Advanced Update Nameservers" which allows
you to assign, add, or remove nameservers for a domain.
Added new command "CIRA Send Approval Email", which resends the
CIRA registration approval email message to the domain's contact.
Added new command "Cancel Pending or Declined order".
Updated the "Check Domain Transfer" command to include the
"check_status" attribute in the request. When "status" is submitted,
and the transfer state is returned as 'pending_registry' and the
Registry shows Tucows as the Registrar of record, OpenSRS will initiate
the completion of .UK transfers, or schedule the completion of gTLD
transfers.

1083

Updated the "Get Domains by Expire Date" command to return the


remainder field which indicates the number of expired domains not
listed in the response.
Added WHOIS Privacy feature, and as a result, the following additions
and updates have been made.
Updated "SW Register Domain" command to include
"f_whois_privacy" attribute, which allows you to order WHOIS Privacy
when registering a new domain.
Updated "SW Register Domain" command to include value
'whois_privacy' for "reg_type" attribute, which allows you to order
WHOIS Privacy for an existing domain.
Updated "Get Domain" command to include value
'whois_privacy_state' for "type" attribute, which returns the WHOIS
Privacy state for a domain (e.g. enabled, pending, or disabled for
WHOIS Privacy).
Updated "Modify Domain" command to include value
'whois_privacy_state' for "type" attribute, which allows you change
the state of WHOIS Privacy from enabled to disabled.
Added command "Change WHOIS Privacy Expiry Date", which allows
you to change the expiry date for WHOIS Privacy.

April 18, 2005


Revised description of the "status" parameter in the "Check Domain
Transfer" command. The "status" parameter is only returned if the
requested domain is not transferable.
Added section "Data Formats and Constraints for Contact Fields"
section, which describes the data requirements for contacts for EPP
Registries, .CA, .DE, .UK, and the default contact requirements.
Replaced example for .CA for SW_Register command.
April 7, 2005
Added "Get .CA Blocker List" command.
March 30, 2005
Added .IT, .AT, and .BE TLDs to the "Update All Info" command.
January 27, 2005
Added new command, "Cancel .CA Order". Use this command to
update the status of a .CA order with OpenSRS when it has already
been cancelled at CIRA.
Added new command, "Get Deleted Domains". Use this command to
get a list of domains deleted from your profile.
Added new command, "Get Transferred-Away Domains". Use this
command to get a list of domains transferred-away from your profile.

1084

Updated Renew Domain command to include "forced_pending"


attribute, which is returned when domain cannot be renewed due to
insufficient funds.

January 15, 2005


"Update All Info" command now supports submission of a domaininformation update for .CH, .FR, and .NL TLDs.
December 9, 2004
"Update All Info" command now supports submission of a domaininformation update for .CC and .TV TLDs.
Revised "Get Domain Price" and "Lookup Domain" commands to
indicate that premium .TV domains must be requested through www.tv
Added 'trademark' value to 'type' parameter in "Get Domain"
command.
October 5, 2004
Added "Update All Info" command.
Added parameter "domain" to the "Cancel Transfer" command, which
can be used instead of "order_id" to identify which transfer to cancel.
Added command "Get Expiring Domains" which is used to retrieve a
list of domains that will expire during a specified period.
September 16, 2004
Replaced examples for "Cancel Transfer" command; previous
examples were incorrect.
Added examples for "Modify Domain" when 'data' = 'descr'.
August 30, 2004
Added error "350 Number of commands per connection exceeded
limit" to list of errors in "Temporary Failures or Deferrals" section in
Appendix B.
Added error message and description of known issue where
registrations time-out. Error added to "Temporary Failures or
Deferrals" section in Appendix B.
Added "move_all" attribute to "Change Ownership" command.
August 18, 2004
Added command "Submit Bulk Change", which enables changing
information associated with a large set of domains. Bulk changes can
be used to change domain lock state, domain nameservers, and
domain contacts.

1085

July 20, 2004


Changed obligation of request attribute url to optional in
sw_register Domain command.
Added attribute "forced_pending" to the "SW Register Domain"
command. This attribute is returned if the order was forced to pending
status (e.g. due to insufficient funds, domain already taken, etc.).
June 22, 2004
Changed obligation of request attribute tld to required in Check
Nameserver command.
May 3, 2004
Replaced response attribute waiting_request with
waiting_requests_no. The waiting_request attribute has been
deprecated, but is still available for backward compatibility.
Added two values for data attribute in Modify Domain command,
both used with .UK domains:
data = change_ips_tag Changes a domain's Domain Tag for
transfers between registrars.
data = uk_whois_opt Allows individuals to specify that their
personal information not be returned with a WHOIS of their .UK
domain.
Added parameters get_request_address and request_address to
the Check Domain Transfer command.
Added new command Query Status of Queued Request. This
command returns the details of the original order and the date that the
order was queued.
Added new command Get Order Info. This command queries all the
information on an order ID, but does not return sensitive information
(i.e. username, password, and auth code).
Moved Customizing the Transfer Approval URL section to Appendix F.
April 14, 2004
Changed allowed values of encoding_type parameter to adhere to
VeriSign's new Punycode encoding format for the
registration/management of IDN's.
Deprecated encoding_type attribute for nameserver related
commands and all responses where it was previously returned.
February 18, 2004
Revised definition of encoding_type (occurs in several commands).

1086

January 14, 2004


Added new section CBC Authentication Commands and moved
Check Version, Authenticate User, and Quit Session commands
to this new section.
Added new command Check Nameserver which verifies if a
nameserver exists at a particular registry.
January 9, 2004
Added parameter order_id to Renew Domain response.
Added parameter add_to_all_registry to Create Nameserver
command.
January 6, 2004
Added section Registry Errors to Appendix B.
Changed document version number to '2.8.0' in order to be
consistently numbered with other OpenSRS products, namely the
Reseller Client Library.
Corrected response examples and description of f_auto_renew in
Process Pending Order command.
December 10, 2003
Revised descriptions of Process Transfer and Process Pending
Order.
Replaced XML request example for Modify Domain.
Replaced Perl and XML examples for all = '1' for Add Nameservers.
Corrected Allowed Values definitions for registry_name in Add
Nameservers command.
November 11, 2003
Made further corrections to the descriptions and allowed values of the
rant_no and ca_link_domain attributes in the sw_register
Domain command.
November 5, 2003
Made corrections to Process Pending Order command.
Made corrections to the descriptions and allowed values of the
rant_no and ca_link_domain attributes in the sw_register
Domain command.
October 29, 2003
Implemented document versioning system, whereby version number
changed to 2.1.9. This is the starting number for the new versioning
system and does not indicate any major changes to the documentation
or the product. Future version number changes will indicate a change.

1087

October 8, 2003
Added optional command=>cancel attribute to the Process Pending
Order command.
Added command Process Transfer which allows the client to
resubmit failed transfers.
Added command Cancel Transfer which allows the client to cancel
transfers that are pending owner approval.
September 15, 2003
Reorganized Get Domain section.
September 12, 2003
Reorganized Modify Domain section.
Removed Buy Web Cert command as it's no longer functional and
has been replaced with TPP Certs functionality.
September 10, 2003
Added several XML examples throughout document.
Changed 'Revoke Domain' to 'Refund Domain'.
August 28, 2003
Added Revoke Domain.
August 12, 2003
Corrected CIRA E-mail Password.
July 22, 2003
Added CIRA E-mail Password.
Updated 'timestamp' description for Check Domain Transfer.
Updated 'currentexpirationyear' description for Renew Domain.
July , 2003
Updated description of 'custom_nameservers' attribute for
SW_Register Domain

July 3, 2003
Removed 'bulk_order' from sw_register examples
Updated info re: the 'remainder' attribute for Get Domain
May 26, 2003
Added response value 'request_address' in Check Domain Transfer
Updated Modify Domain with information regarding the modification of
owner contacts for dot.de domains.

1088

Added hostname and port information in Appendix C Writing Your


Own Client.
Updated information for the following commands:
Add Nameserver NEW
Process Pending Order NEW

April 9, 2003
Updated information for the following commands:
Activate Domain - NEW
Belongs_to_RSP Domain - NEW

Get Domain
Get User Info

February 24, 2003


Updated information for response value 'timestamp' in the "Check
Domain Transfer" section.
December 16, 2002
Updated information in the 'Get Domain' section.
December 3, 2002
Updated information in send password > domain command
documentation.
October 29, 2002
ipaddress key in attributes hash ('Modify Nameserver' section) is no
longer marked as being optional.
New subsection has been added for data = rsp_whois_info ("Modify
Domain" section).
Type stated for price key has been changed to Float ('Get Domain
Price' section).
June 11, 2002
Protocol commands have been placed in alphabetical order
SW_Register has been completely rewritten and is in a new format.
XML & PERL examples have been added.
April 18, 2002
Added .US information to get_domain
Added .US information to modify_domain
Clarified domain locking information

1089

March 21, 2002


Added domain locking information to get_domain
Added domain locking information to modify_domain
February 13, 2002
Rewrite of the sw_register command. Added .us specific information.
Added pre_reg to attributes hash in SW register.
Added pre_reg to attributes hash in Domain_Lookup
January 28, 2002
Fixed error in documentation of Check Domain Transfer in section 8.6.
January 21, 2002
Added new attribute type handle to bulk_transfer
Added admin contact_set to sw_register
January 14, 2002
Added new attribute type email_bundle to sw_register
Added new attribute type forwarding_email to sw_register
September 13, 2001
Added new attribute type auto_renew_flag to GET_DOMAIN
August 17, 2001
Added .ca to the list of TLDs included in RENEW_DOMAIN
June 26, 2001
Added additional attribute "landrush" to SW_REGISTER_DOMAIN to
support the new .info TLD
Added additional attribute "ticket" to SW_REGISTER_DOMAIN to
support the new .biz TLD.
June 19, 2001
Added additional attributes "status", "timestamp" and "unixtime" to
response from DOMAIN:CHECK_TRANSFER (to support new Transfer
functionality)
Added note about "transferable", "reason" and "status" fields after
Response Message table in CHECK_TRANSFER
Added details about customizing the transfer approval URL
Updated the REGISTER_DOMAIN info to indicate that it has deprecated
and is now mapped to SW_REGISTER_DOMAIN
Added additional attribute "trademark_ascii" to
SW_REGISTER_DOMAIN to support the new .info gTLD

1090

Added additional attribute "trademark_regno" to


SW_REGISTER_DOMAIN to support new .info gTLD
Added additional attribute "registration_country" to
SW_REGISTER_DOMAIN to support new .info gTLD
Added additional attribute "registration_date" to
SW_REGISTER_DOMAIN to support new .info gTLD
Updated the section "Contact Information Fields" to reflect
requirements of the new .info gTLD

April 10, 2001


Switched RACE to UTF-8. The default encoding_type is "UTF-8".
January 25, 2001
Added new command DOMAIN:GET_PRICE to support .TV domains
Added additional attribute "price" to response from
DOMAIN:GET_PRICE (to support .TV domains)
Added additional attribute "price_status" to response from
DOMAIN:LOOKUP (to support .TV domains)
Added additional attributes "upg_to_subdomain", "reason", and
"status" to response from DOMAIN:LOOKUP to support .CA domains

1091

You might also like