Post transaction information back to your server

There are 2 methods to post transaction information to a script on your server:

Real-time post:

Script notification:

Post triggered by the customer's web browser on 'accepted order confirmation screen': manually by customer, or automatically with 'silent post'

Post triggered automatically by our server after 3 minutes

Only accepted orders

Accepted orders, declined orders, refunds, chargebacks, etc...

Visible to customer during order process

Done by our server in the background

Use to display information to the customer

Use to update a database

Real-time post method

The location where the customer will be redirected to after a successful transaction is defined in the Order Page ID properties screen:

  1. Click on "Order Pages" in the top menu of the Merchant Menu.

  2. Click on the properties icon to set the page ID properties.

  3. Set the location in the 'PostURL' field.

The Postfields property

To send transaction information to your PostURL, simply add the fields to post in the 'Postfields' property in the following format:

cust_email,cust_phone,total_amount_us,item1_qty (do not use spaces!)

For a complete list of all supported variables click here. Because the transaction is completed you can also use total_amount and total_amount_us and order_num as postfields.

The customer will see a submit button in the order confirmation screen. The 'ContinueButtonLabel' property allows you to set the label on the submit button. And the 'ContinueButtonForcePress' property adds a warning when the customer forgets to click the submit button.

Silent Post: Replace our submit button with your own submit button and dynamic message

How does silent post work

If the Silent Post option is enabled, the postfields will be posted immediately after the transaction. The customer doesn't need to click on a button. The result of the post (the output of your script), will be included in the order confirmation screen.

To use 'Silent Post' you need to include <!--success--> in the response of your script. If this is not found in the response our server assumes that the post was not successful and displays an error message to the customer together with a retry button.

Because the post is done in the background by our server the PostURL is hidden for the customer. This allows you to add an IP check to your script and use the silent post function to start a secure process on your server.

An example

A company sells online tickets. They post their ticket ID in the user1 variable. The PostURL with Silent Post enabled is used to display the button to print the ticket in the receipt page.

Two scripts are involved:

The PostURL contains a link to script A. This script A receives user1 and order_num. Because silent post is used script A can have an IP check. Only posts from the MultiCards server are allowed. This ensures that only MultiCards marks an 'ID' (set in user1) to be paid. Script A needs to mark the ID as paid and adds the order number and a unique pincode.

Script A responds with the following (this will be included in the receipt page):

<form action="location_of_script_B">
<input type=hidden name=ticketid value="value_of_user1">
<input type=hidden name=pincode value="pincode_created_by_script_A">
<input type=submit name=submit value="Print ticket">
</form>

Script B is called by the customer and receives the user1 and pincode values. This script checks if script A has marked the ID as paid and if the pincode is valid. If not, the customer is trying to commit fraud.

Important

Do not make the output of your script too large. Since it will be included in the confirmation screen it can cause problems for customers who have a slow internet connection. The silent post function is only used to retrieve a dynamic message from your server, not to replace the normal submit button.


The server notifications method

Notifications are messages that can be sent to a script, which allows your server to be automatically notified when a new order is placed, or when the status of an order changes. To prevent unnecessary delays in the order system itself due to timeouts, the notifications are not sent in realtime, they are stored in our database and processed later. The delay should under normal circumstances not be more than 5 minutes.

Configuration

To use this feature, login to the merchant menu and click on 'Order Pages'. Then use the link 'server notifications'. The field 'ExtraFields' can be used to post the allowed and accepted order page variables (for example cust_phone, user1, total_amount, etc...).

Specification

A notification consists of a HTTP POST, containing the following fields:

Field:

Description:

order_num

Order number in 6.5 or 6.7 format

status

New order status, as follows:

  • accepted
  • creditrequested
  • credited
  • retrieval
  • chargeback
  • declined
  • suspended (a customer email copy bounced, and he/she has several days to correct this. If that doesn't happen the order is voided/credited, if it is corrected the order is accepted)
  • unknown (the order was batch processed (this might occur if the realtime system is unable to process the order), meaning that the status will be known after processing the batch (usually the next day). So once again, the status will be sent using a second notification containing declined/accepted)
  • voided
  • error

reason

Reason for status change (text, not strictly specified, for informative purposes only). Examples are:
New order created (with status of order, see B and C why this is necessary)
Order accepted (when an order was batch processed and accepted later)
Order rejected
Order voided
Order credited
Rebilling accepted
Rebilling failed

origin

Origin of order/change. Possible values are order, rebill or manual

trans_type

Transaction type. Possible values are debit, credit or other

pageid

PageID that generated the order/rebilling. This value corresponds to the ID of your order pages. By including this value, you can optionally use the same notification handler script on your server for all your order pages.

notifyid

Our internal unique id for this notification.

created

Date + time in YYYY-MM-DD HH:MM:SS format when notification was created

**

Variables used during the order process. For example: cust_email,cust_phone,total_amount_us,item1_qty. For a complete list of all variables used in an order page, click here. Because the transaction is completed you can also use total_amount and total_amount_us and order_num as postfields. MultiCards can configure the variables for you.

Response code
Your script should respond with a 200 OK HTTP Status code, letting our handler know that your script received the notification. Please do not post back a large amount of content.