The Nets payment gateway offers a facility for subscription payments/transactions, a so-called ticket transaction. In short, this means that the customer's credit card is authorised once, and the details for the credit card (the ticket) may then be used for more than one transaction on several occasions in the future, e.g. a monthly payment of $15 to cover your cell-phone bill. This allows the customer to continuously pay for goods or services without having to send his/her credit card details again and again.
The credit card details are stored on the Nets server in accordence with the requirements from the card schemes. Tickets for which the credit card has expired are also considered expired, and the customer has to make a new ticket with another card to re-establish his/her subscription payment.
Function call
Example
Below is an example of a payment authorized using ticket_auth.cgi.
Ticlet_auth.cgi can only be used for future MIT Transactions, see https://www.dibspayment.com/sca, e.g. for monthly subscription payments or un-scheduled card-on-file payments.
If a future payment involves the cardholder, then SCA is required and Flexwin / 3DSecure.cgi.
<form action="https://payment.architrade.com/cgi-ssl/ticket_auth.cgi" method="post"> <input type="hidden" name="merchant" value="123654789" /> <input type="hidden" name="ticket" value="270000543" /> <input type="hidden" name="amount" value="1000000" /> <input type="hidden" name="currency" value="208" /> <input type="hidden" name="orderid" value="A Ticket Draw" /> <input type="hidden" name="textreply" value="true" /> <input type="hidden" name="test" value="yes" /> <input type="hidden" name="calcfee" value="yes" /> <input type="hidden" name="md5key" value="264f0737cff3be64d3050a8141568266"> </form>
Essential input parameters
Parameter | |
---|---|
amount * |
The smallest unit of an amount in the selected currency, following ISO4217 (see the currency list here). Example: Smallest unit for EUR is "cent" thus setting 'amount="150"' leads to the amount being 1,50 EUR
Smallest unit for JPY is "yen" thus setting 'amount="150"' leads to the amount being 150 JPY A ticket (card) can be verified by sending amount = 0 (instead of amount = 1). This ensures that account verification is used to verify the card, instead of 1-unit-currency, which is non-compliant. When using amount = 0, a new return parameter is returned. This is called transtype=account_verification |
currency * |
Currency is defined using the ISO4217 standard (see the currency list here). Both numeric and upper case letter codes are accepted. Example: currency="SEK"
currency="752" |
md5key |
This variable enables a 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. |
merchant * |
Shop identification. The Merchant ID appears in the e-mail received from Nets during registration with Nets or on your contract. |
orderId * | The shop’s order number for this particular purchase. It can be seen later when a payment is captured, and will in some instances appear on the customer’s bank statement (both numerals and letters may be used). |
textreply * | Should be declared to receive the returned message in simple text format. |
ticket * | The unique Ticket ID. Has the same format as a transaction number. |
*: Always validated by Nets
Optional input parameters
Parameter | Description |
---|---|
account |
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. |
acquirerinfo |
The information added here will appear on the card holders bank statement for Handelsbanken transactions. (Cekab/Evry) |
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. NOTE: To use this parameter you need to contact Nets Support with the fees you have at your acquire, as they need to be entered in our system. |
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. |
delivery1..deliveryN |
Complex order information. If both simple and complex order information (ordertext) is declared, the simple order information is then ignored. This information is displayed in the Nets Admin interface. |
fullreply |
If this variable is set, all variables will be returned (as defined in the Nets admin). |
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 computer. 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. |
notifyurl |
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. |
ordline0-1.. ordlineN-M |
This parameter is part of complex order information. If both complex and simple order information [ordertext] is declared, the simple 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). |
priceinfo1..priceinfoN |
This parameter is part of complex order information. If both complex and simple order information is declared, the simple order information is ignored. This information is displayed in the Nets Administration interface. |
test |
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. |
returnActionCode |
If this value is set, i.e. returnActionCode=true, then the transactions actioncode will be returned in the response - see Return Parameters. Default is returnActionCode=false. See action codes for guidelines for required handling for re-attempting transactions, which has already been declined. |
uniqueoid |
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. Note: Order numbers can be composed of a maximum of 50 characters (Nets automatically removes surplus characters). |
Return parameters
Auth accepted
The return parameters from ticket_auth.cgi when the ticket authorisation was accepted are:
Parameter | Description |
---|---|
approvalcode |
Returnes the approvalcode from the acquire if available. |
actioncode |
Will only be returned if returnActionCode=true - see above. See action code for guidelines for required handling for re-attempting transactions, which has already been declined. NOTE: if there is NO actioncode for the payment, then -1 will be returned |
authkey |
The MD5 check sum for verification of the authenticity of the transaction. This is only returned if an MD5 key is created within the administration (under installation + MD5 keys). You may read more about MD5 key control. Note: When using a payment window and the calcfee function, amount+fee is used as a basis for calculations rather the amount only. |
cardtype |
Returns the type of payment the customer has used for a particular payment. |
fee |
When calcfee is used, the calculated fee is returned so it can be shown on the receipt. |
status |
ACCEPTED/DECLINED |
transact |
The unique Nets identification number for the transaction. The transact is a as minimum 6-digit integer, e.g. transact=123456. |
transtype |
transtype=account_verification is returned when amount = 0 is passed in the request. |
Return parameters
Auth declined
If the pre-authorisation was rejected, then the return values are:
Parameter | Description |
---|---|
reason |
Returns a reason for the rejection. See the reason list here |
status |
ACCEPTED/DECLINED |