These docs are for v1.0.1. Click to read the latest docs for v2.1.0.

PostFinance Card

120

paymentmethod=PFC

Payment ProcessIntegration
Authorization:heavy-check-mark:Payment Page:heavy-check-mark:
Deferred Settlement:heavy-check-mark:Split Mode:heavy-check-mark:
Refund:heavy-check-mark:Mobile SDK:heavy-check-mark:
Cancel:heavy-check-mark:
Alias:heavy-check-mark:

Description

With a PostFinance account your customers pay for their purchases direct via computer or mobile telephone. The payment is made with the PostFinance Card. The payment solution from Datatrans offers you the opportunity of activating both methods of payment.

The PostFinance Card has over 3 million cardholders in Switzerland - with an above-average number of people below the age of 18 (credit cards may only be held from the age of 14).

Post E-Finance Website :link:

Proper Redirects

Lightbox Mode: When using PostFinance make sure to also submit the uppStartTarget=_top parameter. This ensures that a proper redirect is made to the respective systems.

Web payment flow

 1 
[Not supported by viewer]
Customer clicks Pay
Customer clicks Pay
Merchant Website
Merchant Website
Merchant Server
Merchant Server
Payment Page loaded from Datatrans
Payment Page loaded from Datatrans
Swiss Post 
Swiss Post 
 3 
[Not supported by viewer]
Customer selects PFC
[Not supported by viewer]
 2 
[Not supported by viewer]
 4 
[Not supported by viewer]
Validates and prepares Forwarding
Validates and prepares Forwarding
 5 
[Not supported by viewer]
Authorization
Authorization
 6 
[Not supported by viewer]
Receives Result 
Receives Result 
6.1
[Not supported by viewer]
 7 
[Not supported by viewer]
Invokes merchant's
POST URL (Webhook)
Invokes merchant's<br>POST URL (Webhook)
Receives Result 
Receives Result 
 8 
[Not supported by viewer]
Redirects customer back to merchant
Redirects customer back to merchant
Customer gets redirected to merchant page
Customer gets redirected to merchant page

Server to Server API calls

After a transactionId or alias was received by completing the payment flow on the web, the following server to server API calls can be used to do other actions.

Authorization

Request

curl -v -X POST https://api.sandbox.datatrans.com/upp/jsp/XML_authorize.jsp \
-H 'Content-Type: application/xml' \
-H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
-d @- << EOF
<?xml version="1.0" encoding="UTF-8" ?>
<authorizationService version="6">
  <body merchantId="1000011011">
    <transaction refno="749532">
      <request>
        <amount>100</amount>
        <currency>CHF</currency>
        <aliasCC>PF151126170240403883</aliasCC>
        <sign>30916165706580013</sign>
        <pmethod>PFC</pmethod>
       </request>
    </transaction>
  </body>
</authorizationService>
EOF

Response

<?xml version='1.0' encoding='UTF-8'?>
<authorizationService version='6'>
    <body merchantId='1000011011' status='accepted'>
        <transaction refno='749532' trxStatus='response'>
            <request>
                <amount>100</amount>
                <currency>CHF</currency>
                <aliasCC>PF151126170240403883</aliasCC>
                <sign>30916165706580013</sign>
                <pmethod>PFC</pmethod>
                <reqtype>NOA</reqtype>
            </request>
            <response>
                <responseCode>01</responseCode>
                <responseMessage>authorization successful</responseMessage>
                <uppTransactionId>171002152752145299</uppTransactionId>
                <authorizationCode>752165301</authorizationCode>
                <acqAuthorizationCode>239433</acqAuthorizationCode>
            </response>
        </transaction>
    </body>
</authorizationService>

Settlement

Request

curl -v -X POST https://api.sandbox.datatrans.com/upp/jsp/XML_processor.jsp \
-H 'Content-Type: application/xml' \
-H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
-d @- << EOF
<?xml version="1.0" encoding="UTF-8" ?>
<paymentService version="2">
  <body merchantId="1000011011">
    <transaction refno="705824">
      <request>
        <amount>50</amount>
        <currency>CHF</currency>
        <uppTransactionId>171002152752145299</uppTransactionId>
      </request>
    </transaction>
  </body>
</paymentService>
EOF

Response

<?xml version='1.0' encoding='UTF-8'?>
<paymentService version='2'>
    <body merchantId='1000011011' status='accepted'>
        <transaction refno='705824' trxStatus='response'>
            <request>
                <amount>50</amount>
                <currency>CHF</currency>
                <uppTransactionId>171002152752145299</uppTransactionId>
                <reqtype>COA</reqtype>
                <transtype>05</transtype>
            </request>
            <response>
                <responseCode>01</responseCode>
                <responseMessage>settlement succeeded</responseMessage>
            </response>
        </transaction>
    </body>
</paymentService>

Credit

Request

curl -v -X POST https://api.sandbox.datatrans.com/upp/jsp/XML_processor.jsp \
-H 'Content-Type: application/xml' \
-H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
-d @- << EOF
<?xml version="1.0" encoding="UTF-8" ?>
<paymentService version="2">
  <body merchantId="1000011011">
    <transaction refno="999273">
      <request>
        <amount>100</amount>
        <currency>CHF</currency>
        <uppTransactionId>171002153232242915</uppTransactionId>
        <transtype>06</transtype>
      </request>
    </transaction>
  </body>
</paymentService>
EOF

Response

<?xml version='1.0' encoding='UTF-8'?>
<paymentService version='2'>
    <body merchantId='1000011011' status='accepted'>
        <transaction refno='999273' trxStatus='response'>
            <request>
                <amount>100</amount>
                <currency>CHF</currency>
                <uppTransactionId>171002153232242915</uppTransactionId>
                <reqtype>COA</reqtype>
                <transtype>06</transtype>
            </request>
            <response>
                <responseCode>01</responseCode>
                <responseMessage>credit succeeded</responseMessage>
                <uppTransactionId>171002153232242915</uppTransactionId>
                <authorizationCode>430939749</authorizationCode>
                <acqAuthorizationCode>092430</acqAuthorizationCode>
            </response>
        </transaction>
    </body>
</paymentService>

Cancel

Request

curl -v -X POST https://api.sandbox.datatrans.com/upp/jsp/XML_processor.jsp \
-H 'Content-Type: application/xml' \
-H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
-d @- << EOF
<?xml version="1.0" encoding="UTF-8" ?>
<paymentService version="2">
  <body merchantId="1000011011">
    <transaction refno="29023">
      <request>
        <amount>100</amount>
        <currency>CHF</currency>
        <uppTransactionId>171002153232242915</uppTransactionId>
        <reqtype>DOA</reqtype>
      </request>
    </transaction>
  </body>
</paymentService>
EOF

Response

<?xml version='1.0' encoding='UTF-8'?>
<paymentService version='2'>
    <body merchantId='1000011011' status='accepted'>
        <transaction refno='29023' trxStatus='response'>
            <request>
                <amount>100</amount>
                <currency>CHF</currency>
                <uppTransactionId>171002153232242915</uppTransactionId>
                <reqtype>DOA</reqtype>
                <transtype>05</transtype>
            </request>
            <response>
                <responseCode>01</responseCode>
                <responseMessage>cancellation succeeded</responseMessage>
            </response>
        </transaction>
    </body>
</paymentService>

Status

Request

curl -v -X POST https://api.sandbox.datatrans.com/upp/jsp/XML_status.jsp \
-H 'Content-Type: application/xml' \
-H 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=' \
-d @- << EOF
<?xml version="1.0" encoding="UTF-8" ?>
<statusService version="5">
  <body merchantId="1000011011">
    <transaction>
      <request>
        <uppTransactionId>171002153232242915</uppTransactionId>
        <reqtype>STX</reqtype>
      </request>
    </transaction>
  </body>
</statusService>
EOF

Response

<?xml version='1.0' encoding='UTF-8'?>
<statusService version='5'>
    <body merchantId='1000011011' status='accepted'>
        <transaction trxStatus='response'>
            <request>
                <uppTransactionId>171002153232242915</uppTransactionId>
                <reqtype>STX</reqtype>
            </request>
            <response itemNr='1'>
                <responseCode>6</responseCode>
                <responseMessage>DOA Cancel</responseMessage>
                <refno>999273</refno>
                <amount>100</amount>
                <currency>CHF</currency>
                <authorizationCode>232262916</authorizationCode>
                <pmethod>PFC</pmethod>
                <uppTransactionId>171002153232242915</uppTransactionId>
                <maskedCC>****3448</maskedCC>
                <aliasCC>PF151126170240403883</aliasCC>
                <expm>06</expm>
                <expy>21</expy>
                <trxDate>20171002</trxDate>
                <trxTime>153232</trxTime>
                <trtype>05</trtype>
                <settledAmount>100</settledAmount>
            </response>
        </transaction>
    </body>
</statusService>