HiPay Enterprise – Integration of alternative payment methods
If you want your customers to be redirected from your website directly to the alternative payment method page without going through the HiPay hosted payment page, you are in the right place.
Access a wide range of alternative payment methods (e.g.: PayPal, SOFORT, Mooney...) so that your customers can make purchases in their preferred currency with the payment method of their choice.
- 1. Display of the payment page
- 2. Pending payment management
- 3. Accepted payment confirmation management
Service endpoints
There are two endpoints (base URLs) to which you can make your API calls:
- Stage, if you are testing your integration, and Production, when you have finished testing and want your application to go live.
Request parameters
(For further details, please refer to the technical documentation.)
Full PHP example:
$data = array(
// Language setting
"language"=> "en_GB",
// Order information
"orderid"=> "HP".rand(microtime(0),100000),
"operation"=> "sale",
"eci"=> "7",
"description"=> "Description of the order",
"long_description"=> "Long description of the order",
"payment_product"=> "postfinance-card",
"currency"=> "CHF",
"amount"=> 100,
"shipping"=> 10,
"tax"=> 15,
"tax_rate"=> 15,
"custom_data"=>
'{
"shipping_method":"click and collect",
"first_order":"0",
"products_list": "First product, Second product",
"_reporting_data_1":"my custom data 1",
"_reporting_data_2":"my custom data 2",
"_reporting_data_3":"my custom data 3",
"_reporting_data_4":"my custom data 4",
"_reporting_data_5":"my custom data 5"
}',
// Customer information
"email"=> "jane.doe@test.com",
"gender"=> "M",
"firstname"=> "Jane",
"lastname"=> "Doe",
"birthdate"=> 19890525,
"phone"=> "01234567890",
"streetaddress"=> "Mingerstrasse 6",
"streetaddress2"=> "Bâtiment 1",
"city"=> "Berne",
"zipcode"=> "3014",
"country"=> "CH",
"shipto_firstname"=> "Jane",
"shipto_lastname"=> "Doe",
"shipto_streetaddress"=> "Mingerstrasse 6",
"shipto_streetaddress2"=> "Bâtiment 2",
"shipto_city"=> "Berne",
"shipto_zipcode"=> "3014",
"shipto_country"=> "CH",
"ipaddr"=> "127.0.0.1",
"cid"=> "123456",
"accept_url"=> "https://example.com/accept",
"decline_url"=> "https://example.com/decline",
"pending_url"=> "https://example.com/pending",
"exception_url"=> "https://example.com/exception",
"cancel_url"=> "https://example.com/cancel",
);
Response API JSON example:
{
"state":"forwarding",
"reason":"",
"forwardUrl":"https:\/\/stage-secure-gateway.hipay-tpp.com\/gateway\/forward\/537e9f1ccb6a50fcca830fc1343f3298",
"test":"true",
"mid":"00001234567",
"attemptId":"1",
"authorizationCode":"",
"transactionReference":"800004137998",
"dateCreated":"2019-08-29T15:24:27+0000",
"dateUpdated":"2019-08-29T17:24:28+0200",
"dateAuthorized":"",
"status":"142",
"message":"Authorization Requested",
"authorizedAmount":"0.00",
"capturedAmount":"0.00",
"refundedAmount":"0.00",
"creditedAmount":"0.00",
"decimals":"2",
"currency":"CHF",
"ipAddress":"0.0.0.0",
"ipCountry":"",
"deviceId":"",
"avsResult":"",
"cvcResult":"",
"eci":"7",
"paymentProduct":"postfinance-card",
"paymentMethod":"",
"threeDSecure":"",
"fraudScreening":
{
"scoring":"30",
"result":"ACCEPTED",
"review":""
},
"order":
{
"id":"HP1065",
"dateCreated":"2019-08-29T15:24:27+0000",
"attempts":"1",
"amount":"100.00",
"shipping":"10.00",
"tax":"15.00",
"decimals":"2",
"currency":"CHF",
"customerId":"123456",
"language":"en_EN",
"email":"jane.doe@test.com"
},
}
To consider a pending payment meaning the customer arrived on the payment page and is filling in the fields now, it is appropriate to rely on the server-to-server notification containing the following values:
status=142
message=Authorization+Requested
You can receive the server-to-server notification in:
- POST "application/x-www-form-urlencoded" format
- POST XML
POST pending server-to-server notification example:
state=forwarding
&test=true
&mid=00001234567
&attempt_id=1
&authorization_code=
&transaction_reference=800004137998
&date_created=2019-08-29T15%3A24%3A27%2B0000
&date_updated=2019-08-29T15%3A24%3A28%2B0000
&date_authorized=
&status=142
&message=Authorization+Requested
&authorized_amount=100.00
&captured_amount=0.00
&refunded_amount=0.00
&decimals=2
¤cy=CHF
&ip_address=0.0.0.0
&ip_country=
&device_id=
&custom_data%5Bfirst_order%5D=0
&custom_data%5Bproducts_list%5D=First+product%2C+Second+product
&custom_data%5B_reporting_data_1%5D=my+custom+data+1
&custom_data%5B_reporting_data_2%5D=my+custom+data+2
&custom_data%5B_reporting_data_3%5D=my+custom+data+3
&custom_data%5B_reporting_data_4%5D=my+custom+data+4
&custom_data%5B_reporting_data_5%5D=my+custom+data+5
&custom_data%5Bshipping_method%5D=click+and+collect
&avs_result=
&cvc_result=
&eci=7
&payment_product=postfinance-card
&payment_method=
&fraud_screening%5Bscoring%5D=30
&fraud_screening%5Bresult%5D=accepted
&fraud_screening%5Breview%5D=
&order%5Bid%5D=HP1065
&order%5Bdate_created%5D=2019-08-29T15%3A24%3A27%2B0000
&order%5Battempts%5D=1
&order%5Bamount%5D=100.00
&order%5Bshipping%5D=10.00
&order%5Btax%5D=15.00
&order%5Bdecimals%5D=2
&order%5Bcurrency%5D=CHF
&order%5Bcustomer_id%5D=123456
&order%5Blanguage%5D=en_EN
&order%5Bemail%5D=jane.doe%40test.com
To consider an accepted payment, it is appropriate to rely on the server-to-server notification containing the following values:
status=118
message=Captured
You can receive the server-to-server notification in:
- POST "application/x-www-form-urlencoded" format
- POST XML
POST accepted payment confirmation server-to-server notification example:
state=completed
&test=true
&mid=00001234567
&attempt_id=1
&authorization_code=TEST
&transaction_reference=800004137998
&date_created=2019-08-29T15%3A24%3A27%2B0000
&date_updated=2019-08-29T15%3A24%3A37%2B0000
&date_authorized=2019-08-29T15%3A24%3A36%2B0000
&status=118
&message=Captured
&authorized_amount=100.00
&captured_amount=100.00
&refunded_amount=0.00
&decimals=2
¤cy=CHF
&ip_address=0.0.0.0
&ip_country=
&device_id=
&custom_data%5Bfirst_order%5D=0
&custom_data%5Bproducts_list%5D=First+product%2C+Second+product
&custom_data%5B_reporting_data_1%5D=my+custom+data+1
&custom_data%5B_reporting_data_2%5D=my+custom+data+2
&custom_data%5B_reporting_data_3%5D=my+custom+data+3
&custom_data%5B_reporting_data_4%5D=my+custom+data+4
&custom_data%5B_reporting_data_5%5D=my+custom+data+5
&custom_data%5Bshipping_method%5D=click+and+collect
&avs_result=
&cvc_result=
&eci=7
&payment_product=postfinance-card
&payment_method=
&fraud_screening%5Bscoring%5D=0
&fraud_screening%5Bresult%5D=accepted
&fraud_screening%5Breview%5D=
&order%5Bid%5D=HP1065
&order%5Bdate_created%5D=2019-08-29T15%3A24%3A27%2B0000
&order%5Battempts%5D=1
&order%5Bamount%5D=100.00
&order%5Bshipping%5D=10.00
&order%5Btax%5D=15.00
&order%5Bdecimals%5D=2
&order%5Bcurrency%5D=CHF
&order%5Bcustomer_id%5D=123456
&order%5Blanguage%5D=en_EN
&order%5Bemail%5D=jane.doe%40test.com