Purchase


Definition

Purchase a domain name or Premium Domain in real time, or put in a real time order into the pre-registration queue for an EAP domain.

Usage

The Purchase command enables direct real-time purchase of a domain name or Premium Domain. The Purchase command bypasses the shopping cart and the queuing delay associated with it.

When you pass credit card information with this command, you must use the secure HTTPS protocol.

The Purchase command is typically used for a single-name purchase and returns an immediate success/failure response.

Most commonly, the Purchase command is used by resellers who maintain their own databases.

Availability

All resellers can sell domain names that are available at the Registry, but only our direct ETP resellers can sell Premium Domains.

Implementation on eNom.com

Log on to resellertest.enom.com with Login ID resellid, password resellpw.

https://resellertest.enom.com/cart/purchase.aspx?

The Purchase command is not implemented on www.enom.com. However, on the Review Your Order page, the Submit Order button calls InsertNewOrder , a similar command that initiates order creation. The difference is that InsertNewOrder acquires contents of the shopping cart and puts them in a queue for checkout; the Purchase command bypasses the shopping cart and the queue and submits an order in real time.

Constraints

The query must meet the following requirements:

  • The login ID and password must be valid.
  • To use our credit card processing, this must be a reseller account directly under eNom, and must have
  • signed a credit card agreement with us.
  • The domain name(s) to be purchased must be valid. (See requirements under the Check command.)
  • eNom must be licensed to sell the names you attempt to register (eNom is not licensed with the
  • Registries for all TLDs).
  • Name servers for .us names must be located in the United States.
  • .co.uk and .org.uk names must have at least two name servers.

Input parameters

Build the query string using this syntax:

https://resellertest.enom.com/interface.asp?
command=nameofcommand&uid=yourloginid&pw=yourpassword
&paramname=paramvalue&nextparamname=nextparamvalue

 

Parameter Status Description Max Size
UID Required Account login ID 20
PW Required Account password 20
SLD Required Second-level domain name (for example, enom in enom.com) 63
TLD Required Top-level domain name (extension) 15
IDNCode Optional for PUNY-encoded names that use characters other than the English alphabet, Arabic numbers, and hyphen International Domain Name code for each language used by a domain in the cart that has status Active. To retrieve the Active domains in the cart, use command GetCartContent . For a list of IDN TLDs, go to http://www.enom.com/domains/idn-domains 3
CustomerSuppliedPrice Optional. Required for purchasing a Premium Domain The exact price for this domain to acknowledge this domain comes at a price higher than most registrations. Use the PE_GetPremiumPricing command to retrieve the price. 8
PremiumDomain Optional. Required for purchasing a Premium Domain via NM_* commands PremiumDomain=Yes is required when purchasing a Premium Domain, to acknowledge this domain comes at a price higher than most registrations 3
RegPeriod Optional. Required for purchasing an EAP domain Which EAP Registration period you are attempting to purchase. Supported values are "pre-registration". 20
EapDay Optional. Required for purchasing an EAP domain Specify which EAP day you are intending to purchase. Supported values are between 1 and 7. 1
Signed_Mark_Data Optional. Required for purchasing domain with a trademark The contents of the SMD (Signed Mark Data) file that the TMCH (Trade Mark Clearing House) has provided you. 12000
UseDNS Either UseDNS or NSX is Required Specify UseDNS=default to use our name servers (most of the services that we provide require our name servers). See Note. 7
NSX Either UseDNS or NSX is Required Use this parameter to assign user-specified name servers. Permitted values are the use names of registered name servers, for example, NS1=ns1.name-services.com See Note. 60
UnLockRegistrar Optional; default value is 0 Set to 1 to unlock or 0 to lock the name. 1
RenewName Optional; default value is 0 Set to 1 to renew the name automatically before it expires. 1
DomainPassword Optional; default value is no password Set a password on the domain name. For Premium Domains, you cannot set a password in the Purchase command, but you can set a password once the domain name is in your account. 60
EmailNotify Optional; default is 0 Set to 1 to receive email notification of customer orders, set to 0 or don't use it otherwise. 1
NumYears Optional for non-premium domains; default is the number you set with UpdateCusPreferences For Premium Domains, we automatically set this value to 1. Number of years to register the name. For most registrations, permitted values are 1 to 10 but some TLDs vary from this range. For Premium Domains, we ignore this parameter if you supply it, and automatically set NumYears to 1 2
QueueOrder Optional If QueueOrder=1, register the domain at the Registry and return an order ID, then put this order in our order queue instead of processing in real time. This option reduces the risk of the order timing out when our system is under stress. This option is suitable for real-time TLDs like .com and .net but less relevant for manually processed TLDs like .de and .co.uk. The slight delay associated with this option makes it unsuitable if your processes immediately execute secondary calls like setting host records—they must be done after the order completes. 6
AllowQueuing Optional; default is 1 If the Registry would fail this order due to stresses it is experiencing, submit AllowQueuing=1 to queue and process this order when the Registry recovers. Submit AllowQueuing=0 to fail the order when the Registry is under stress. 1
IgnoreNSFail Optional; default is No Continue processing even if name servers cannot be applied. If IgnoreNSFail=Yes, this purchase request will succeed even if the Registry does not recognize the name servers listed in this query. If you use IgnoreNSFail=Yes and failures are returned, you should confirm the status of name servers with the Registry. 6
UseWireTransfer Optional overall, but Required if you want to defer payment for a Premium Domain If UseWireTransfer=Yes , process this Premium Domain order as a deferred payment order. Use this parameter if you want to use either of our pay-later options: wire transfer or account balance. If you pay by wire transfer, contact your sales representative for wire transfer instructions. If you pay using your account balance (but after submitting the order using the Purchase command), use the NM_ProcessOrder command. 3
UseCreditCard Optional If UseCreditCard=Yes, use our credit card processing services. This service is available only to resellers who have entered into a credit card processing agreement with us. When you pass credit card information with this command, you must use the secure HTTPS protocol. 3
ChargeAmount Required if using our credit card processing to purchase a non- premium domain name. This parameter is ignored for Premium Domains. Amount to charge per year for the registration (this value will be multiplied by NumYears to calculate the total charge to the credit card). Required format is DD.cc For Premium Domains, we ignore this parameter if you supply it, and charge the posted price. We cover your merchant services fees for Premium Domains so that the convenience charges do not reduce your commission. 5000.00
EndUserIP Required if using our credit card processing End user’s IP address. This is used in fraud checking, as part of our order processing service. Use format NNN.NNN.NNN.NNN. 15
CardType Required if using our credit card processing Type of credit card. Permitted values are Visa, Mastercard, AmEx, Discover 20
CCName Required if using our credit card processing Cardholder's name 60
CreditCardNumber Required if using our credit card processing Customer's credit card number 128
CreditCardExpMonth Required if using our credit card processing Credit card expiration month. Permitted format is MM 2
CreditCardExpYear Required if using our credit card processing Credit card expiration year. Permitted format is YYYY 4
CVV2 Required if using our credit card processing Credit card verification code 4
CCAddress Required if using our credit card processing Credit card billing address 60
CCCity Required if using our credit card processing Credit card billing city 60
CCStateProvince Required if using our credit card processing Credit card billing state or province 60
CCZip Required if using our credit card processing Credit card billing postal code 15
CCPhone Required if using our credit card processing Credit card billing phone number. Required format is +CountryCode.PhoneNumber, where CountryCode and PhoneNumber use only numeric characters and the + is URLencoded as a plus sign (%2B). 15
CCCountry Required our credit card processing Credit card billing country. The two-letter country code is a permitted format 60
ExtendedAttributes Required for some country code TLDs Data required by the Registry for some country codes. Use GetExtAttributes to determine whether this TLD requires extended attributes. varies
RegistrantFirstName Required if extended attributes are required OR if you supply one of the other core Registrant attributes (see Note) Registrant first name 60
RegistrantLastName Required if extended attributes are required OR if you supply one of the other core Registrant attributes (see Note) Registrant last name 60
RegistrantOrganizationName Optional Registrant organization 60
RegistrantJobTitle Required if param RegistrantOrganizationName is used Registrant job title 60
RegistrantAddress1 Required if extended attributes are required OR if you supply one of the other core Registrant attributes (see Note) Registrant Address 60
RegistrantAddress2 Optional Registrant additional address info 60
RegistrantCity Required if extended attributes are required OR if you supply one of the other core Registrant attributes (see Note) Registrant city 60
RegistrantStateProvinceChoice Optional Registrant state or province choice: S state P province 1
RegistrantStateProvince Required if extended attributes are required OR if you supply one of the other core Registrant attributes (see Note) Registrant state or province 60
RegistrantPostalCode Required for .org names or when you supply one of the other core Registrant attributes Registrant postal code 16
RegistrantCountry Required if extended attributes are required OR if you supply one of the other core Registrant attributes (see Note) Registrant country. The twocharacter country code is a permitted format 60
RegistrantEmailAddress Required if extended attributes are required OR if you supply one of the other core Registrant attributes (see Note) Registrant email address 128
RegistrantPhone Required if extended attributes are required OR if you supply one of the other core Registrant attributes (see Note) Registrant phone. Required format is +CountryCode.PhoneNumber, where CountryCode and PhoneNumber use only numeric characters and the + is URLencoded as a plus sign (%2B). 20
RegistrantFax Required if RegistrantOrganizationName is used Registrant fax number. Required format is +CountryCode. PhoneNumber, where CountryCode and PhoneNumber use only numeric characters and the + is URLencoded as a plus sign (%2B). 20
ContactTypeFirstName Optional ContactType first name. Replace ContactType in the parameter names with Tech, Admin or AuxBilling. Use these parameters if you want the Technical, Administrative, or Auxiliary Billing contact information to be different from the Billing contact. You can also supply or change contact information later using the Contacts API command. 60
ContactTypeLastName Required if you supply one of the other core attributes for this ContactType (see Note) ContactType last name 60
ContactTypeOrganizationName Optional ContactType organization 60
ContactTypeJobTitle Required if you supply one of the other core attributes for this ContactType (see Note) ContactType job title 60
ContactTypeAddress1 Required if you supply one of the other core attributes for this ContactType (see Note) ContactType address, line 1 60
ContactTypeAddress2 Optional ContactType additional address info 60
ContactTypeCity Required if you supply one of the other core attributes for this ontactType (see Note) ContactType city 60
ContactTypeStateProvinceChoice Optional ContactType state or province choice: S state P province 1
ContactTypeStateProvince Optional ContactType state or province 60
ContactTypePostalCode Optional; Required for .org names if you supply one of the other core attributes for this ContactType ContactType postal code 16
ContactTypeCountry Required if you supply one of the other core attributes for this ContactType (see Note) ContactType country, expressed as the two-character country code 60
ContactTypeEmailAddress Required if you supply one of the other core attributes for this ContactType (see Note) ContactType email address 128
ContactTypePhone Required if you supply one of the other core attributes for this ContactType (see Note) ContactType phone. Required format is +CountryCode. PhoneNumber, where CountryCode and PhoneNumber use only numeric characters and the + is URLencoded as a plus sign (%2B). 20
ContactTypeFax Optional ContactType fax number. Required format is +CountryCode.PhoneNumber, where CountryCode and PhoneNumber use only numeric characters and the + is URLencoded as a plus sign (%2B). 20
ResponseType Optional Format of response. Permitted values are Text (default), HTML, or XML. 4

 

Returned parameters and values

Parameter Description
OrderDelayed Returned if this order was queued due to stresses at the Registry
ContactTypeContact Returned if new contacts were created with this query string
OrderID Order number if successful. We recommend that you store this number for future use
TotalCharged Total points or $US charged for this order
FailedNameServers Not implemented
RegistrantPartyID Party ID number for registrant, for our database
RRPCode Success code. Response code 200 indicates successful processing in real time; response code 1300 indicates a successful queued order.
RRPText Text which accompanies and describes the RRPCode value.
RegistryExpDate Expiration date of this domain when response code is 200 and processing is in real time.
RegistryCreateDate Create date of this domain when response code is 200 and processing is in real time.
Command Name of command executed
ErrCount The number of errors if any occurred. If greater than 0 check the Err(1 to ErrCount) values.
ErrX Error messages explaining the failure. These can be presented as is back to the client.
Done True indicates this entire response has reached you successfully.

 

Notes

  • If using our credit card option ALL registrant and credit card information is required.
  • For most TLDs (those that don’t require extended attributes), Registrant contact information is optional: if not supplied, it is inherited from the Billing contact. However, if you supply any one of the core Registrant values, you must supply them all. The core Registrant values are:
    • RegistrantFirstName
    • RegistrantLastName
    • RegistrantAddress1
    • RegistrantCity
    • PostalCode (for .org names)
    • RegistrantCountry
    • RegistrantEmailAddress
    • RegistrantPhone
  • Additional parameters for contact information can be passed by replacing Registrant in the parameter names above with Tech, Admin or AuxBilling.
  • To set name servers to eNom’s, set the UseDNS=default param and don't pass NS(x) name servers. To set name servers to your name servers, set NSX=YourNameServerX and don't pass UseDNS=default. You can set up to 12 of your own name servers.
  • Some TLDs, including .de, require you to specify name servers. The Registry will automatically delete the domain name if no name servers are specified.
  • The default response format is plain text. To receive the response in HTML or XML format, send ResponseType=HTML or ResponseType=XML in your request.
  • We recommend that you store the OrderID value—at least the most recent one for each domain—from the return. Several other commands use this value as a required input parameter.
  • In the return, an RRPCode of 200 indicates a successful registration. Otherwise, check the return parameter ErrCount. If greater than 0 the transaction failed. The parameter Err(ErrCount) can be presented to the client. Otherwise process the returned parameters as defined above.
  • In the return, if the RRPCode value is 1300 and the IsRealTimeTLD value is false, then this is a nonreal-time TLD. For these names, use the GetOrderDetail command roughly every 24 hours to check the progress of the registration.

Example