Examples
Replace the values surrounded by '*' in the example below with your own values.
<FORM ACTION="https://payment.architrade.com/paymentweb/start.action" METHOD="POST" CHARSET="UTF-8"> <INPUT TYPE="hidden" NAME="accepturl" VALUE="https://www.yourdomain.com/acceptPage"> <INPUT TYPE="hidden" NAME="amount" VALUE="*amount*"> <INPUT TYPE="hidden" NAME="currency" VALUE="*currency*"> <INPUT TYPE="hidden" NAME="merchant" VALUE="*yourMerchantID*"> <INPUT TYPE="hidden" NAME="orderid" VALUE="*yourOrderID*"> <INPUT TYPE="hidden" NAME="billingAddress" VALUE="*billingAddress*"> <INPUT TYPE="hidden" NAME="billingAddress2" VALUE="*billingAddress2*"> <INPUT TYPE="hidden" NAME="billingFirstNAME" VALUE="*billingFirstNAME*"> <INPUT TYPE="hidden" NAME="billingLastNAME" VALUE="*billingLastNAME*"> <INPUT TYPE="hidden" NAME="billingPostalCode" VALUE="*billingPostalCode*"> <INPUT TYPE="hidden" NAME="cardholder_NAME" VALUE="*cardholderNAME*"> <INPUT TYPE="hidden" NAME="cardholder_address1" VALUE="*cardholderAddress1*"> <INPUT TYPE="hidden" NAME="cardholder_zipcode" VALUE="*cardholderZipcode*"> </FORM>
Parameters posted to the payment window are case sensitive, and you will have to use the charset UTF-8 when posting to FlexWin.
FlexWin will reply in UTF-8 to the accepturl and in ISO-8859-1 to the callbackurl.
FlexWin is "started" by sending an HTTP POST to the following URL:
The shop is allowed to send it's own parameters to FlexWin as long as the parameter names differ from the parameters listed below. If the shop's own parameters are sent, the following checkbox found in Nets Admin / "Integration" / "Return Values", has to be checked for the parameters to be returned to the "accepturl", "cancelurl" and "callbackurl";
Please note that special characters are not supported in the parameter names
Essential
Parameter | Type | Description |
---|---|---|
accepturl * | String - No max length |
The URL of the page to be displayed if the purchase is approved. You cannot use parameters in the URL. Example. ”?X=4&Y=2” The URLs have to be ”clean". Example: accepturl = "http://www.yourDomain.com/acceptedPayment?var1=YES&var2=JohnDoe"
If the payment is accepted, then the customer will be redirected to "http://www.yourDomain.com/acceptedPayment"
It is recommended (but not required) to use HTTPS. |
amount * | Long - 1 < amount < 1715000000 |
The smallest unit of an amount in the selected currency, following the ISO4217 standard (see the minor unit list here). Example: Smallest unit for EUR is "cent" thus setting 'amount="150"' becomes 1,50 EUR
Smallest unit for JPY is "yen" thus setting 'amount="150"' becomes 150 JPY |
callbackurl | String |
An optional (but recommended) ”server-to-server” call. Can be used for many purposes. The most important being that you will be able to register the order in your own system without depending on the customers browser hitting a specific page of the shop. Please refer to the return page documentation for further information. Note: If the shop uses cookies to keep track of the user, see the HTTP_COOKIE parameter. |
currency * | String - 3 chars |
Currency is defined using the ISO4217 standard (see the currency list here). Example: currency="752"
|
merchant * | Long | Shop identification. The Merchant ID appears in the e-mail received from Nets during registration with Nets or on your contract. |
orderid * | String - Max 50 characters. Reg-ex format ^[a-zA-Z0-9\._-|]+$ |
The shops order number for a particular purchase. This is the cross reference between the shop and Nets (both numerals and letters may be used). The actual length of the orderid shown on the bank settlement report may differ from acquirer to acquirer. |
billingAddress | String |
The customers billing street address. If the acquirer requires the address to be entered, then billingAddress is used to prepopulate the address field. If the acquirer returns a different address, billingAddress will be overwritten. |
billingAddress2 | String |
Customers billing street address (continued). |
billingFirstName | String |
Customers billing first name. |
billingLastName | String |
Customers billing last name. |
billingPostalCode | String |
Customers billing postal code |
billingPostalPlace | String |
Customers billing postal place (city, town, etc). |
cardholder_name | String |
Name of the cardholder Note: This is required by Wirecard Acquirer service |
cardholder_address1 | String | Cardholder address. Note: This is used for Address Verification System (AVS) |
cardholder_zipcode | String | Cardholder zipcode. Note: This is used for Address Verification System(AVS) |
String |
Customers E-mail address Note: This is required by Invoice payment and P24 Acquirer service |
|
md5key |
This variable enables an MD5 key control of the values received by Nets. This control confirms that the values sent to Nets has not been tampered with during the transfer. See how MD5 is calculated here Note: When using MD5, the order id must be unique. |
*: Always validated by Nets
Optional
Parameter | Type | Description |
---|---|---|
acquirerinfo |
String. Max 15 characters |
The information added here will be passed along as ticket information to Cekab/EVRY. It will appear on the card holders bank statement. |
account | String |
If multiple departments utilize the same Nets account, it may be practical to keep the transactions separate at Nets. An account name may be inserted in this field, to separate transactions at Nets. To get an account, please contact the Nets sales department. |
acquirerlang | String |
Can be used to specify the language in the acquirers site, e.g. an invoice or netbank window. Both lower and upper case short and long language codes are accepted, i.e. "en", "EN" and "en_GB" all result in English. Note: this parameter is only relevant if your acquirer supports the language localization feature. |
calcfee |
If this parameter is sent with the value "yes", the charge from the acquirer due to the transaction will automatically be calculated and affixed. Fee calculation method: Fee = Amount * Percent / (100-Percent) NOTE: To use this parameter you need to contact Nets Support with the fees you have at your acquirer, as they need to be entered into our system. More information about using calcfee with surcharge here link |
|
cancelurl | String | The URL of the page to be displayed if the purchase is cancelled. |
capturenow |
If this field exists, a capture request is automatically carried out after the authorization, following the normal capture process of the specific acquirer. If a transaction is marked as suspect, the automatic capture request is cancelled and you need to handle the capture. If used, the order id has to be unique at all times. |
|
decorator |
Specifies which of the pre-built decorators to use. Possible values are "default", "basal", "rich" and "responsive" ("Responsive" results in a new design created by Nets, which makes the payment window scale automatically to various devices and screen sizes. You must set icons to Large in your Nets Admin). |
|
delivery1..deliveryN | Complex order information. If both complex and simple order information [ordertext] is declared, the complex order information will be ignored. This information is displayed in the Nets Admin interface. Please note that no special characters are allowed in the parameter name.
<input type="hidden" name="delivery1.Email" value="my@email.com"/>
|
|
HTTP_COOKIE |
Cookies/sessions which are to be sent to the callbackurl and accepturl must be sent along if you are depending on cookies/sessions for keeping track of the user. Reserved words cannot be used as declared cgi-parameters (see list of reserved words). If the callback and accept page script depends on cookies or a session ID, these must also be sent along to FlexWin in the http_cookie parameter. The value of this variable must be of the form: name1=value1; name2=value2...
If you wish to transfer all declared cookies, the content of the HTTP_COOKIE variable can be used, containing all the cookies in the correct format. Below are a few examples of how to do this in ASP, PHP4 and JavaScript. <input type="hidden" name="HTTP_COOKIE" value="<%=Request.ServerVariables("HTTP_COOKIE") %>" /> <input type="hidden" name="HTTP_COOKIE" value="<?= getenv("HTTP_COOKIE");?>" /> <form onsubmit="( function(form){ el = form.elements['HTTP_COOKIE']; document.cookie ? el.value = document.cookie : el.value = ''; })(this)"> <input type="hidden" name="HTTP_COOKIE" value="" /> <!-- insert the rest of the inputs here --> </form> |
|
ip |
Nets retains the IP-address from which a card transaction is carried out. The IP-address is used for ’fraud control’, etc. Some implementations may send the IP-address of the shop to Nets rather than that of the customer's machine. In order to provide the same services to shops which utilize such a program for their Nets hookup, we offer the option of sending the “ip” parameter. |
|
lang | String |
This parameter determines the language in which the page will be displayed. The following values are accepted: da=Danish en=English de=German es=Spanish fi=Finnish fo=Faroese fr=French it=Italian nl=Dutch no=Norwegian pl=Polish (simplified) sv=Swedish kl=Greenlandic Default language is Danish. |
notifyurl |
String |
Some acquirers might take a period of time before the payment is accepted. This parameter can be used to specify a callback URL to get a response at a later time when the transaction is either accepted or declined. |
ordertext |
Simple order information sent to Nets in one text string. This information is displayed in the Nets administration interface. |
|
ordline0-0 ... ordlineN-M | This parameter is part of complex order information. If both complex and simple order information [ordertext] is declared, the complex order information will be ignored. This information is displayed in the Nets Administration interface. It is a requirement that the number of fields be identical in all lines of the order (e.g. if there are four fields in the first line, the remaining lines must also contain four fields). | |
paytype | String. max 30 characters |
Can be used to limit the accepted paytypes. If set, only the specified paytypes will be accepted, all other will be rejected with reason=10. Example: <input type="hidden" name="paytype" value="VISA,MC,AMEX,MTRO,ELEC" />
|
postype |
Used to register the transaction origin. Default value is "ssl" (internet). The following values are possible: ssl = internet transactions, magnetic = magnetic stripe read, and signature is available, magnosig = magnetic stripe read, and no signature is available, mail = mail order, manual = manually entered, phone = phone order, signature = card and signature available, manually entered. |
|
mitType |
String |
The "mitType" parameter is used to store the creditcard info for future payments. A future payment can only be initiated by the merchant (MIT - Merchant Initiated Transaction).. Possible values
(Note: the "preAuth" parameter will default to mitType=RECURRING). A transaction initiated with the mitType parameter, can be used for future transactions via ticket_auth.cgi or the NETS BULK solution. |
ticket |
number |
This parameter can used for processing future payments via the Flexwin Payment Window. The ticket ID refers to a previous stored card based on a initial payment procesed with the COF parameter. The Flexwin Payment window then display a masked creditcard and expiry date. The cardholder is required to enter CVC. This refers to scenario 3 (https://www.dibspayment.com/sca) |
preauth |
String. Only "true" is allowed |
When preauth=true is sent as part of the request to auth.cgi the Nets server identifies the authorisation as a ticket authorisation rather than a normal transaction. Please note that the pre-authorised transaction is NOT available among the transactions in the Nets Administration interface. For preauth to work, Nets has to be contacted for activation. When using MD5 the Authkey must be calculated from the string transact=12345678&preauth=true¤cy=123 NOTE: You cannot use "capturenow" along with "preauth". |
zero_auth |
String. Only "true" or "yes" is allowed |
zero_auth is used together with the preauth parameter. zero-preauth ensures that card registration is done via account verification instead of a 1-unit-currency request. Usage of preauth alone uses 1-unit-currency to register the card. This is not compliant. In order to be compliant towards card schemes merchant must add the zero_preauth parameter. |
priceinfo1.. priceinfoN |
This parameter is part of complex order information. If both complex and simple order information [ordertext] is declared, the complex order information will be ignored. This information is displayed in the Nets Administration interface. |
|
return_checksum | String. Only "yes" is allowed | This parameter will set if the unique card hash should be returned in the return parameter "checksum". |
test | String. Max 10 characters |
When this field is declared, the transaction is not dispatched to the card issuer, but is instead handled by the Nets test environment. When the shop goes live, the test system is normally disabled, and should the shop want to use the test mode at a later date the Nets support can be contacted for reactivation. |
ticketrule |
String. Max 20 characters |
When doing ticket registration, and you have predefined ticket rules (see configuration in Nets Admin / "Subscription" / "Rules") you can set the value of this parameter to be one of the defined rules. |
uniqueoid | String. Only "yes" is allowed |
If this parameter is present, the parameter orderid has to be unique compared to all other orderid's used by the merchant. If the orderid isn't unique, the call will be declined by a reason=7. |
voucher | String |
If set to "yes", it will be possible to chose "Voucher" as a payment type in FlexWin. Vouchers are created through the Nets Admin, and allows for vouchers of static amounts or percentages. Note that voucher are available only for DKK, SEK, NOK, EUR, GBP & USD. |
Complex order information
Complex order information is used for displaying purchase information in the DIBS administration. This makes identification of a purchase easier when handling transactions in the administration interface.
The different kinds of information that can be sent to DIBS are categorized as follows:
- "delivery" information
- "orderline" information
- "priceinfo" information (requires a minimum of 1 orderline)
When the information is sent, they will appear in the DIBS administration.
When sending the delivery parameter, the line number of the information has to be described. This is done by adding the line number after "delivery" as seen in the following example. To customize the lines shown in DIBS admin, you can add you own line descriptions after "deliveryN," where N is the line number.
<input type="hidden" name="delivery1.First name" value="John" /> <input type="hidden" name="delivery2.Last name" value="Doe" /> <input type="hidden" name="delivery3.Address" value="Imagin Street 48" /> <input type="hidden" name="delivery4.City" value="1234 Dream City" /> <input type="hidden" name="delivery5.Country" value="Fantasia" />
The example above will correspond to the following text in DIBS admin when the specifik transaction information is shown.
This parameter is only returned in the cancelurl and callbackurl.
Orderlines are interpreted as table, where all of the fields have to be defined. The table is defined by using the following anotatation.
ordline0-0 | ordline0-1 | ordline0-2 | ordline0-... |
---|---|---|---|
ordline1-0 | ordline1-1 | ordline1-2 | ordline1-... |
ordline2-0 | ordline2-1 | ordline2-2 | ordline2-... |
ordline...-0 | ordline...-1 | ordline...-2 | ordline...-... |
The first row is interpreted as the head of the table.
The following example defines a purchase list.
<input type="hidden" name="ordline0-0" value="Description" /> <input type="hidden" name="ordline0-1" value="Price" /> <input type="hidden" name="ordline1-0" value="Roller skates" /> <input type="hidden" name="ordline1-1" value="100,00" /> <input type="hidden" name="ordline2-0" value="Roller skate extra wheels" /> <input type="hidden" name="ordline2-1" value="10,50" /> <input type="hidden" name="ordline3-0" value="Backpack" /> <input type="hidden" name="ordline3-1" value="149,75" />
The example above will correspond to the following in DIBS admin when the specifik transaction information is shown.
The "Amount to be withdrawn from card" is not calculated from the orderlines!
This parameter is only returned in the cancelurl and callbackurl.
Priceinfo is only used when at least one orderline is defined. The priceinfo is interpreted as follows:
name | value | orderline0-0 | orderline0-N |
---|---|---|---|
priceinfo1.VATinfo | 25% | VATinfo | 25% |
priceinfo2.yourValue | someValue | yourValue | someValue |
priceinfo2. ... | ... | ... | ... |
The following example defines a purchase list and some priceinfo.
<input type="hidden" name="ordline0-0" value="Description" /> <input type="hidden" name="ordline0-1" value="pcs" /> <input type="hidden" name="ordline0-2" value="Price pr. pcs." /> <input type="hidden" name="ordline1-0" value="Roller skate extra wheels" /> <input type="hidden" name="ordline1-1" value="2" /> <input type="hidden" name="ordline1-2" value="100" /> <input type="hidden" name="priceinfo1.VATinfo" value="25%" /> <input type="hidden" name="priceinfo2.yourValue" value="someValue" />
The example above will correspond to the following in DIBS admin when the specific transaction information is shown.
The "Amount to be withdrawn from card" is not calculated from the priceinfo.