Vipps direct API
Introduction
Vipps is a two-phase payment method supported by the major norwegian banks. In the direct API scenario, PayEx receives a mobile number (MSISDN) directly from the merchant UI. PayEx performs a payment that the consumer must confirm in the Vipps mobile app.
- When the consumer/end-user starts the purchase process, you make a POST request towards PayEx with the collected Purchase information.
- After that, you need to collect the consumer's mobile number and make a POST request towards PayEx.
- PayEx will handle the dialogue with Vipps and the consumer will have to confirm the purchase in the Vipps app.
- Finally you will receive a payment callback when the Vipps dialogue is completed, and you will have to make a GETrequest to check the payment status.
- The flow is explained in the picture below:
API-requests
The API-requests are displayed in the sequence diagram below.
IMPORTANT: Please make sure to use the complete URI's that are returned in the JSON object from the specific request you make. If you parse any content and include it in your local stored URI's - you risk breaking compability when PayEx release future updates.
The general rest-based API model are described in the API Reference & Technical Information.
Options before posting a payment
All valid options when posting a payment with operation equal to Purchase, are described in the technical reference.
Type of authorization (Intent).
- Authorization (two-phase): The intent of a Vipps purchase is always Authorization. The amount will be reserved but not charged. You will later (i.e. if a physical product, when you are ready to ship the purchased products) have to make a Capture or Cancel request.
- Callback from PayEx: Whenever changes to the payment occur a Callback request will be posted to the callbackUrl, generated when the payment was created.
- Abort: It is possible to abort a payment if the payment has no successful transactions.
Payment flow
The sequence diagram below shows the two requests you have to send to PayEx to make a purchase. The links will take you directly to the API description for the specific request.
Options after posting a payment
- Be prepared to receive a callback from PayEx.
- Vipps only support two-phase transactions (Authorize), which mean that you must implement the Capture and Cancel requests.
- For reversals, you will need to implement the Reversal request.
Capture Sequence
Capture can only be perfomed on a payment with a successfully authorized transaction. It is possible to do a part-capture where you capture a smaller amount than the authorized amount. You can later do more captures on the same payment up to the total authorization amount.
Cancel Sequence
Cancel can only be done on a authorized transaction. If you do cancel after doing a part-capture you will cancel the different between the capture amount and the authorization amount.
Reversal Sequence
Reversal can only be done on a payment where there are some captured amount not yet reversed.