1. Introduction

SwissBilling is a Swiss company (part of Cembra Money Bank) that was created in 2011. It focuses on delivering an easy to use online payment method that offers payment via invoice for Swiss online customers. This solution allows the customer to pay for a purchase in x days after receiving it. The merchant can modify the invoice before (cancellation) or after (refund) the shipment.

Before accepting a payment, Swissbilling uses creditworthiness checks based on validations against Swiss databases and SwissBilling customers' credit history. When approving an order, SwissBilling opens a credit note for these customers and decides on their eligibility and payment requests.

Pay by Invoice is the most preferred payment method by Swiss consumers.

2. Flow

A transaction via SwissBilling will have the following flow:
  1. The consumer fills his/her shopping basket on the merchant website, checks out, and selects SwissBilling as the payment method. This payment method selection page can be hosted by the merchant or by PostFinance.
  2. The consumer is redirected to SwissBilling, via an URL provided by SwissBilling, which includes a unique transaction reference and merchant identification.
  3. The consumer applies to pay via Pay by Invoice (payment after delivery). SwissBilling then checks the consumer’s creditworthiness.
  4. The consumer is redirected back to the merchant via PostFinance. The merchant then receives a transaction status simultaneously through PostFinance.

3. Integration

3.1 Configuration

To activate the payment method, the merchant will need to have an acquiring contract with SwissBilling.
Creating new SwissBilling transaction works in e-Commerce mode only. Please make sure to send requests (in POST mode) always to our UTF-8 URL version.
Once a sales agreement with a payment method is signed, the merchant needs to contact our Merchanthelp to configure and activate the payment method.
After the configuration and activation, it can be found in the Web-banking section of the "Payment methods" in your PostFinance account.

  • The procedure to set up an account is as follows:
  • The merchant signs a contract with SwissBilling.
  • The merchant or SwissBilling provides details to Merchanthelp.
  • PostFinance will take care of the SwissBilling activation for the merchant.

3.2 Payment method selection

Description
PM / BRAND: SwissBilling

3.3 Input parameters

Parameter Description
PSPID

Your affiliation name in our system
Length: 50
Mandatory

ORDERID Merchant Order reference
Length: 50
Mandatory
EMAIL Customer's email address
Length: 6
Mandatory
AMOUNT Transaction amount
Length: 6
Mandatory
CURRENCY Currency of the order (alway CHF with SwissBilling)
Length: ISO Alpha code
Mandatory
LANGUAGE Language of the customer
Length: 5
Optional
REF_CUSTOMERID Customer number
Length: 20
Optional
ECOM_BILLTO_COMPANY Customer company name
Length: 50
Optional
ECOM_BILLTO_POSTAL_NAME_PREFIX Customer's prefix
Length: 4
Optional
ECOM_BILLTO_POSTAL_NAME_LAST Customer's last name
Length: 35
Mandatory
ECOM_BILLTO_POSTAL_NAME_FIRST Customer's first name
Length: 35
Mandatory
ECOM_BILLTO_POSTAL_STREET_NUMBER Customer's street number
Length: 10
Mandatory
ECOM_BILLTO_POSTAL_STREET_LINE1 Customer's street (line 1)
Length: 35
Mandatory
ECOM_BILLTO_POSTAL_STREET_LINE2 Customer's street (line 2)
Length: 35
Optional
ECOM_BILLTO_POSTAL_POSTALCODE Customer's postal code
Length: 5
Mandatory
ECOM_BILLTO_POSTAL_CITY Customer's city
Length: 25
Mandatory
ECOM_BILLTO_POSTAL_COUNTRYCODE Customer's country code
Length: 2
Mandatory
ECOM_BILLTO_TELECOM_MOBILE_NUMBER Customer's mobile number
Length: 20
Optional
ECOM_BILLTO_TELECOM_PHONE_NUMBER Customer's phone number
Length: 20
Optional
ECOM_SHIPTO_COMPANY Customer delivery company name
Length: 50
Optional
ECOM_SHIPTO_POSTAL_NAME_PREFIX Customer's delivery prefix
Length: 4
Optional
ECOM_SHIPTO_POSTAL_NAME_FIRST Customer's delivery first Name
Length: 35
Mandatory
ECOM_SHIPTO_POSTAL_NAME_LAST Customer's delivery last Name
Length: 35
Mandatory
ECOM_SHIPTO_POSTAL_STREET_NUMBER Customer's delivery street number
Length: 10
Mandatory
ECOM_SHIPTO_POSTAL_STREET_LINE1 Customer's delivery street (line 1)
Length: 35
Mandatory
ECOM_SHIPTO_POSTAL_STREET_LINE2 Customer's delivery street (line 2)
Length: 35
Optional
ECOM_SHIPTO_POSTAL_POSTALCODE Customer's delivery postal code
Length: 5
Mandatory
ECOM_SHIPTO_POSTAL_CITY Customer's delivery city
Length: 25
Mandatory
ECOM_SHIPTO_POSTAL_COUNTRYCODE Customer's delivery country code
Length: 2
Mandatory
ECOM_SHIPTO_TELECOM_MOBILE_NUMBER Customer's delivery mobile number
Length: 20
Optional
ECOM_SHIPTO_TELECOM_PHONE_NUMBER Customer's delivery phone number
Length: 20
Optional
GENERIC_BL_DATA Merchant generic blacklist info
Length: 50
Optional
ITEMIDX Item identifier
Length: 15
Mandatory
ITEMNAMEX Item name
Length: 40
Mandatory
ITEMPRICEX Item unit price. ITEMPRICEX only accepts the input amount
Length: 10
Mandatory
ITEMVATCODEX ITEM VAT code
Length: 6
Mandatory
ITEMQUANTX Item quantity
Length: 4
Mandatory
ITEMCATEGORYX

Item category
Length: 50
Mandatory

ITEMCATEGORYX only accepts the following values:

  • ComputersAndSoftware
  • Electronics
  • Phones
  • Appliances
  • HomeAndGarden
  • Fashion
  • HealthAndBeauty
  • Jewellery
  • Sport
  • LeisureAndHobbies
  • CarsAndMotorbikes
  • Furniture
  • KidsAndBaby
  • VideoGamesAndConsoles
  • ToysAndGames
  • Pets
  • FoodAndDrink
  • GiftAndFlowers
  • Entertainment
  • Travel
  • AuctionsAndGroupBuying
  • ServicesForIndividuals
  • ServicesForProfessionals
With ITEMCATEGORYX , you (the merchant) first need(s) to define those categories (ITEMCATEGORY1=SPORT, ITEMCATEGORY2=FOOD, etc.) then use the parameter in the transaction, for example : “<input type="hidden" name="ITEMCATEGORY1" value="SPORT"/>” .
You have to use 1* ITEMCATEGORY per item, for example:
<input type="hidden" name="ITEMCATEGORY1" value="SPORT"/>
<input type="hidden" name="ITEMID1" value="2855"/>
<input type="hidden" name="ITEMNAME1" value="Adibok Supershoe"/>
<input type="hidden" name="ITEMPRICE1" value="3999"/>
<input type="hidden" name="ITEMQUANT1" value="1"/>
<input type="hidden" name="ITEMVATCODE1" value="20%"/>
<input type="hidden" name="TAXINCLUDED1" value="1"/>
TAXINCLUDEDX Always must be sent with TAXINCLUDEDX=1 (ITEMPRICEX is including VAT)
Length: 1
Mandatory

IMPORTANT REMARKS

  • SwissBilling can only be used with CHF and Swiss customers. An item price must also be higher than 0.00CHF.
  • The merchant can choose B2B or B2C solution at enrollment; for B2B, the company name parameters are mandatory.
  • Shipping and Billing addresses must be identical for SwissBilling to approve the order!

4. Transaction processing and maintenance operations

4.1 Performing maintenance operations

Maintenance operations (such as: data captures, cancellations, refunds, etc.) for SwissBilling can be operated via the standard manual functionalities offered in the Back Office or via DirectLink (Direct Maintenance).

4.1.1 Performing maintenance operations through the Back Office

Confirm authorised transactions

Go through the following steps if you want to process and confirm your transactions with the payment procedure "Data capture by the trader (manual or automatic)":

1. Select this option at "Configuration > Technical information > Global transaction parameters > Default data capture (payment) procedure".

2. Confirm the transaction manually when the status is “5 - Authorised”. An authorisation is only a reservation of the amount on your customer’s card/account (or a match against a blacklist). It does NOT implicate a payment.

a. Look up the transaction via "Operations > View transactions".

b. Click the "Confirm Payment (data capture): XXXXXXXX/X" button at the bottom of the order details tab.

  • The status changes to “91 - Payment processing".
  • Once we have received the confirmation of data capture from your acquirer, the status changes to “9 - Payment requested". This status means we have requested your acquirer to transfer the money that had been reserved to your bank account. As it is your acquirer that transfers the amount to your bank account, we are unable to say exactly when you will receive the payment.

Do you prefer automated operations?

Batch: Send the operation code SAS in field 10

DirectLink: Send operation=SAS

Delete and refund payments
Delete a payment
A payment deletion is the action of cancelling a payment request made to an acquirer. This is only possible for credit card payments. The deletion of a payment implies that the money normally is not withdrawn from the customer's bank account (neither debit nor credit performed on the customer's bank account).
Constraint: a payment may be deleted on the day of the data capture up until the cut-over time (as configured for your account). The cut-over time is when we send all payment requests to the acquirer. The cut-over time can vary depending on the acquirer, but is usually 16:00h or 24:00h CET. If the customer changes his mind after this deadline has expired, you will need to reimburse the money.

To delete a payment:
1. Look up the transaction via "Operations > View transactions".
2. Click the "Delete payment: XXXXXXXX/X" button at the bottom of the "Orders" tab.

Do you prefer automated operations?

Batch: Send the operation code DES in field 10

DirectLink: Send OPERATION=DES

Refund a payment
A refund implies that the money had initially been debited and was later credited back to the cardholder’s bank account. Both movements will appear on the cardholder’s statement.
Constraints:

  • The option needs to be activated for your account.
  • Your acquirer must allow refunds.
  • Refunds must be possible for the specific payment method. The availability of the refund option depends on your subscription.

If your acquirer doesn't allow automated refunds, refunds must be performed directly by your acquirer.
How to refund a payment?
1. Look up the transaction you want to refund via the "View transactions > Transaction details".

2. Click on the “Refund” button which is displayed at the bottom of the "Orders" tab. You can also log a reason for the refund.

Do you prefer automated operations?

Batch: Send the RFS operation code in field 10

DirectLink: Send OPERATION = RFS

Do you want to refund more than the paid amount?
For credit cards it's possible to make a refund for a higher amount than the originally paid amount. However, you need to bear the aforementioned constraints in mind, together with the possibility whether your credit card acquirer supports this "exceeding refund" possibility. Also, the Partial maintenance option needs to be activated on your account, so that you can change the original amount in the transaction overview. If you wish to make use of this functionality, you need to contact our MerchantHelp team.
Do you want to refund more than the paid amount?

For credit cards it's possible to make a refund for a higher amount than the originally paid amount. However, you need to bear the aforementioned constraints in mind, together with the possibility whether your credit card acquirer supports this "exceeding refund" possibility. Also, the Partial maintenance option needs to be activated on your account, so that you can change the original amount in the transaction overview. If you wish to make use of this functionality, you need to contact our MerchantHelp team.

Special operations on authorised transactions

Requesting an authorisation implies checking the validity of a card/account and the amount of money available on it. Each acquirer can then reserve the specific amount of money requested on the customer's card/account for a predefined period of time and for a specific merchant. Besides requesting an authorisation, our system also allows you to delete and renew authorisations and perform manual authorisations. The latter two operations are only possible for credit card payments.

Delete an authorisation

Whenever a transaction is authorised, it means the acquirer is reserving a specific sum on the customer’s card/account (or the request is matched against a blacklist), to be paid to you when the payment is requested. Although our platform allows you to delete an authorisation, not all acquirers support this type of
operation.
To delete an authorisation via our platform, look up the transaction via the “View transactions” selection screen and click on the “Cancel authorisation” button at the bottom of the order details page. We will simulate the authorisation deletion in any case, even if the acquirer doesn’t support this operation.

Do you prefer automated operations?

Batch: Send the operation code DES in field 10

DirectLink: Send OPERATION=DES

Renew an authorisation

An authorisation’s validity period depends on the acquirer. In transaction details, you will see the days remaining before the authorisation for each transaction expires. This number of days is given as an indication only. The exact authorisation period is specified in the contract with your acquirer.

If the authorisation has not been followed by a data capture (payment request) within the predefined timeframe, the authorisation will be displayed in red, meaning it has expired. The merchant's guarantee that the money is still available for him on the customer’s card/account no longer exists.

You could request the payment anyway (without a valid authorisation), but the payment may be refused (e.g. in the event of insufficient funds). Before requesting the payment, you could renew the authorisation in your back office. This means you are requesting the acquirer to reserve the money for you once again. However, it is possible that the cardholder has used his card in the meantime and that there are no longer sufficient funds for you to be paid.

To renew an authorisation, look up the transaction via the “View transactions” selection screen and click on the "Redo authorisation" button at the bottom of the order details page (if the button is not immediately available, click on the "Advanced" button first). If the original authorisation was obtained with the 3-D Secure protocol, the original 3-D Secure conditions may no longer apply to the renewed authorisation.

In accordance with the VISA International and MasterCard International Regulations, the customer has to identify himself for each authorisation in order to benefit from the 3-D Secure guarantee. The 3-D Secure conditional payment guarantee rules are exclusively managed between the merchant (you) and his acquirer. Please contact your acquirer for more information.

The availability of the “Redo authorisation” option depends on your subscription. The option needs to be activated by our Merchanthelp.

Do you prefer automated operations?

Batch: Send the operation code REN in field 10

DirectLink: Send operation=REN

Perform a manual authorisation

Sometimes the acquirer does not issue the authorisation automatically, e.g. when you have reached your permitted transaction limit. The acquirer will refuse the authorisation and return a message asking you to contact its merchant call centre. When you contact the acquirer and he decides to issue the authorisation, he may give you an authorisation code over the phone. You can enter the authorisation code the acquirer has given you (over the phone or via fax, etc.) in your back office. Look up the transaction via the “View transactions” selection screen. When you invoke the transaction details, you will see a “Manual Authorisation” button at the bottom of the page (if the button is not immediately available, click on the "Advanced" button first). Enter the authorisation code the acquirer has given you in the field next to the “Manual Authorisation” button and click the “Manual Authorisation” button.

As the merchant, you are fully responsible for the manual entry of the authorisation code, even if the transaction is in status 9 afterwards and no actual payment is performed. If you have a 3-D Secure contract with your acquirer, the 3-D Secure conditions which apply for a standard authorisation issued via the 3-D Secure protocol, may differ from those for a manual authorisation. In accordance with the VISA International and MasterCard International Regulations, the customer has to
identify himself for each authorisation in order to benefit from the 3-D Secure guarantee. The 3-D Secure
conditional payment guarantee rules are exclusively managed between the merchant (you) and his acquirer.
Please contact your acquirer for more information.

Partial and Multiple operations

Partial operations allow you to perform data captures, authorisation cancellations and refunds for a smaller amount than the original order. Multiple operations allow you to perform several data captures, authorisation cancellations and refunds on the same transaction (the multiple operations option is a separate option from
the partial operations option). The availability of the partial and multiple operations options depends on your subscription and whether your acquirer allows these operations. The options need to be activated by our Merchanthelp. When the partial operations option is enabled in your account, next to the maintenance
buttons at the bottom of the order details page, you will see entry fields where you can enter an amount. When the multiple operations option is enabled in your account, you will see a “Last one” check box next to the text fields where you can enter an amount.

Partial operations

To perform a partial data capture/refund/authorisation/deletion, you have to go to the detailed transaction page, where you will find the "Confirm Payment (data capture)"/refund/"Delete authorisation" button at the bottom of the page.

1. Fill in the partial amount in the field next to the respective button (by default, the full amount will be entered).

2.Click the respective button and confirm.

Do you prefer automated operations?

Data captures

Batch: Send the operation code SAS in field 10

DirectLink: Send OPERATION=SAS

Refunds

Batch: Send the operation code RFS in field 10

DirectLink: Send OPERATION=RFS

Authorisation deletion

Batch: Send the operation code DES in field 10

DirectLink: Send OPERATION=DES

Multiple operations

To perform multiple data captures/refunds or an authorisation deletion leaving the transaction open for further maintenance operations, you have to go to the detailed transaction page where you will find the "Confirm payment (data capture)"/refund/"Delete authorisation" button at the bottom of the page.
1. Fill in the partial amount in the field next to the respective button (by default, the full amount will be entered).
2. Tick the “Last one” tick box if this is the last operation you want to perform on this transaction OR disable the “Last one” tick box if you still wish to perform a subsequent operation on this transaction (e.g. request 50.00 EUR for the goods you already dispatched the customer and request the remaining transaction amount when you dispatch the rest).
3. Click the respective button and confirm.

Do you prefer automated operations?

Data captures

Batch: Send the operation code SAL (not last) or SAS (last) in field 10

DirectLink: Send OPERATION=SAL (not last) or OPERATION=SAS (last)

Refunds

Batch: Send the operation code RFD (not last) or RFS (last) in field 10

DirectLink: Send OPERATION=RFD (not last) or OPERATION=RFS (last)

Authorisation deletion

Batch: Send the operation code DEL (not last) or DES (last) in field 10

DirectLink: Send OPERATION=DEL (not last) or OPERATION=DES (last)

Direct Maintenance
A direct maintenance request from your application allows you to:

  • Perform a data capture (payment) of an authorised order automatically (as opposed to manually in the back office);
  • Cancel an authorisation of an order;
  • Renew an authorisation of an order;
  • Refund a paid order.

Data captures, authorisation cancellations and authorisation renewals are specifically for merchants who have configured their account/requests to perform the authorisation and the data capture in two steps.

Maintenance request
1. Request URL
The request URL in the TEST environment is https://e-payment.postfinance.ch/ncol/test/maintenancedirect.asp.
The request URL in the PRODUCTION environment is https://e-payment.postfinance.ch/ncol/prod/maintenancedirect.asp.
Change "test" to "prod"
Replace “test” with “prod” in the request URL when you switch to your production account. If you forget to change the request URL, once you start working with real orders, your maintenance transactions will be sent to the test environment and will not be sent to the acquirers/banks.
1.2 Request parameters
The following table contains the mandatory request parameters for performing a maintenance operation:

Field Description
AMOUNT Order amount multiplied by 100.
This is only required when the amount of the maintenance differs from the amount of the original authorisation. However, we recommend its use in all cases.
Our system will check that the maintenance transaction amount is not higher than the authorisation/payment amount.
OPERATION
Possible values:
  • REN: renewal of authorisation, if the original authorisation is no longer valid.
  • DEL: delete authorisation, leaving the transaction open for further potential maintenance operations.
  • DES: delete authorisation, closing the transaction after this operation.
  • SAL: partial data capture (payment), leaving the transaction open for another potential data capture.
  • SAS: (last) partial or full data capture (payment), closing the transaction (for further data captures) after this data capture.
  • RFD: partial refund (on a paid order), leaving the transaction open for another potential refund.
  • RFS: (last) partial or full refund (on a paid order), closing the transaction after this refund.
Please note that with DEL and DES that not all acquirers support the deletion of an authorisation. If your acquirer does not support DEL/DES, we will nevertheless simulate the deletion of the authorisation in the back office.
ORDERID You can send the PAYID or the orderID to identify the original order. We recommend the use of the PAYID.
PAYID Your account's PSPID
PSPID The ID of your PSP
PSWD Password of your API-user
SHASIGN
Signature (hashed string) to authenticate the data (see SHA-IN-signature)
USERID
Your API user

1.2.1 Test page
You can test direct maintenance requests here: https://e-payment.postfinance.ch/ncol/test/testdm.aspData captures, authorisation cancellations and authorisation renewals are specifically for merchants who have configured their account/requests to perform the authorisation and the data capture in two steps.

2. Maintenance response
Our server returns an XML response to the maintenance request:
Example of an XML response to a direct maintenance request
<?xml version=”1.0”?>
< ncresponse orderID=”99999” PAYID=”1111111” PAYIDSUB=”3” NCSTATUS=”0” NCERROR=””
NCERRORPLUS=”” ACCEPTANCE=”12345” STATUS="91" amount="125" currency="EUR"/>

The following table contains a list of the ncresponse tag attributes:

Field Description
ACCEPTANCE Acceptance code returned by acquirer
AMOUNT Order amount (not multiplied by 100)
CURRENCY Order currency
NCERROR Error code
NCERRORPLUS Explanation of the error code
NCSTATUS First digit of NCERROR
ORDERID Your order reference
PAYID Payment reference in our system
PAYIDSUB
The history level ID of the maintenance operation on the PAYID
STATUS Transaction status (Possible statuses)

The standard ncresponse tag attributes are the same as those for the XML reply to a new order, except for the extra attribute PAYIDSUB.
1.3 Duplicate request
If maintenance is requested twice for the same order, the second request will theoretically be declined with an error “50001127” (This order is not authorised), because the initial successful transaction will have changed the order status.

4.1.3 Authorisation and capture

SwissBilling follows a 2-step flow which means that Authorisation and Capture can be separated in the order process. However, only full captures are accepted by SwissBilling.

4.1.4 Refunds

For more information about refunds, see Chapter 3.1 Performing maintenance operations.

4.1.5 Test credentials

Tests are run on SwissBilling. Contact our Merchanthelp to set up an end-to-end testing.
Testing has to be done with the MerchantID, Password, and ShopID that was provided at the signing of a contract with SwissBilling.