Vipps direct API

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 GET request to check the payment status.
  • The flow is explained in the picture below:

Vipps_flow_directAPI.png

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. Please do not parse any content and include in your local stored URI's - this will possibly break future compability when PayEx makes future updates.

The general rest-based API model are described in the API Reference & Technical Information.

Sequence diagram

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. 

nullimg/pLPHJzim47wFbFzmWeUEXpQ3iGSg3L4eR6W3AbhG9eGcDxaIgucTEGw5JVllkwHDOgS1eGbDSwigyPtFv-_xxjo3L3EbipXodNJEHS8KYo757naA7t-v3i10ARauaf5K09ixmy7Uxgxh50PVItKYXLuQDzyLmxACzME405CP1VOy_ucm_RwQEsJ-_4x9J0IhM3FCFxLTgW3LocRcy8NFy0iNQ3di5SCoD-C7nLZ66140tES94xfr7zjZBTDYDBnQKMdObzWieVbjed-PH_Ub4gXW-wrf6OSia0ikxc36eXJpz6iZ0SNlkNwqph2zyuw-jkEvr6k0B4AkSSsf3LJRfUMWhZEL3x1n94MQnQWsAXBXcYT9-dsG9FNK8MahHUKwA0B2uY5VRk04PwZya1xisT7Ws_7NtidbnVda-7pOPZiS77qkJ8bXAlRl3KQdhjCnvoVZKRvlf_iV3zTPGGNT_GgLFXJL2qcMlwS8RnBs20kkGxW-7Ot6MwvJg89fD91qdV8vZsLZsOVHnNW2DpVUmuBFkLVy17YFaKnGUVSS5zuPuy93NyR4he-UHZyKt6THLr79ghnla1yXtQLaOXGwzJO_7IdCarXI0ANXzjPr1Aa88fpHOKwuIZKGFw3o1fHg8_qrogrtw5gehE9Jc5GID2Ji8RAd8jLWK8mLo7qWKKVeQuZbb5EPYYoU4lPSmDMfHKMru5Xech7Sd-3ipFRvzsGCCXrAnNyopQb8IrAODTkWPanRK8N-7JVxTUNruLHmpLcKNm2M68nuHfrMZmKxJNW-JIQZdEI44YQIEy-m_AnUB42gWF1ch2dKXy62KShYhcomMqzfvh9Qw8Vep-6Hn0T9A0LkMGgiIz50k0gPXZAB0iWtXHcroDUlHHP5K-h_9V7b--qjJ95sH4YKz143EdFUBNgzdaN4Vjt8ypeHCwvYkjoM9NTLafQRstsNA0z91F8kGylTbehftyZ0wl9zYDaSQo4rH53T1TPhInHyG3_JHg360ZkxMdS6jOPq6ukzDVKQNIgBQBS0dqgyy-9IymnLbvIK_BPU1izrdu_7hzrydk__av2hHe-nKo86rezND_dE2xeyXQZgTSZJ9A8Bixe-IoPQQzLr3kXF2lrJ_WC0

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.

nullimg/VLHDRzim3BtxLn38sVFIZqDp29ecBGQiJOEc63OKFMWIKmkH9PUMuwR3_liaDtOjEvXi610V-SZt9FYoi8nicQaeAhPIvunO1WM-bgWv_ea0PaIccXjb261qifXTd9r5FiojeHkZxGSqEgrN5rZRlKA0tqQ982pV4SRdJUYAyUqBcLAB0z46_TF2XWJI0VhiVYitU2ir1l15lRfedrlKonEid6Z9PSwqFTOYJ1YCMAymwPWLFVZ3aDgFlnsp7pmpDwIHOFor0wnJ9ambzGjic2gmUq3E6xcJTX_CFZuvTMytRMdim8GgbHRxEKTi33E6ygBwVE0EYQTEODGH2wlPh-kVNsuUxfUFryl54UXgDl_kaQOwdeOb4rZThn_XwIbvg-HM9lL7u0wLoP6IdSGgkMDI9yXDbZaIJ2poL4lEL4pk_f2_lYulpuiuP_iCjIsIqRSvosr9MC0FZm0_R9-VezfHPl5JK1lfgmcsmybtJ4dXwvn_fUsbGpmDBPYu8PHg9e4CRMf4ltTZLx2BXwqR5YUfL3PQ8FiVJoiXdZQY9s29wSAN6UrfJEcy7HArPdIGrhXBrCBzKFu1

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.

nullimg/VLHDJ-Cm4BtdLupKSpQKZmCz84eBGbee5QrMkq8SZ3qbLXqxs4wpNSH_nmvji9DgdIYIvysycVTivT9OecrLY2GnQovBeaa11jygb1JV4u2nrggUAA4qmE1uEZu_FKryc5gbRvIqNz3Wf5aXiB1RWG0lIh0epFyX3C_seIj2rwzQLPBjY5RednPMcg7UGT_Tx_WAxxZ423vlLeXskLcpFC7SYUQKbqJQGotYXDw8pOgJ3bdHWRyCQVpu2Cn-zCnKQOaQXaS1iCW9KpMNhx0Ymc1uGCuRlk5s6yq-F3vnRvWsKxPdGfrpYzsS0pR66NrvINC-S8-QvavW4eY5-VZFzUyVDuyFi-NrR7e0kXfFVdfaNvrUn2KZc3yibl3qbFsj-PfdpOVX1eKgKMSRZdLsJxZCaAgYS2IOMQIvv9I8LBlxe_trTNbbQTAIR0kKrcI3smbnOI68vKeQ-ELXe67i-Jbfl2KMlwMraQwkQDlNi262Cr_ddAniBptsOkG64M8t3HHeSyMwdVUsHRkqttX7ej5KmYPJ9F-ZQGTAB_QAHs0raSQNAUbfLEKixXErJWH8wzebIkR-Avy0

Reversal Sequence

Reversal can only be done on a payment where there are some captured amount not yet reversed.

nullimg/VLHDJ-Cm4BtdLupKSpTRFWxqiA9Gq4f0gLg4TeKu67jAh3fsTkmqsrtntx53K-AaOX95cdapRsQUhPnRnyYLkKeIkvQwOCHoiFYdHCtnVm8m8JBLfL6600P7qydPoKaImjmPkZRQVK23uzhQmD9j5GAy62MYiFo7C3fjGXUChr_9b5hiY5OOdZriI23jeC_kjtA5jr9Z19_LraQxtAAsG33tIqik2wRTeHPnGc_4skAaGr9qu0z1QZtUMc8l0ZCtf95WzBq5B3CcJ2NrAwoOijW-8A-Dt4YtZMOV7HtxjvqsCwudGfL9XzsS0pB66Vtralfyu0w9Ptx1fBKip2U_htvzkrxSpnwkPjC3qCNayYOWJVNmHrmoXldzyW6UdjA_bLpBjFu8tA0o1LAwaLYbTqpg5Bd9Sq-2gKEUQScP6fA_FnIkhyyh2Ziis3P7xMmw-Bdm56Izcl0O8A36VtvEQasPmy-Lzf7kFf4B_U4tJ4aH2hs4fUldnogCmK-jW1CAwI17bndHxTq85dd3VkST2Q4jbKkcoBwYQSeyJxFp61mnRKEPqO76b5xSFj5UYnQor-qSjV1_b7S0

Created by Fredrik Köhler on 2018/09/10 14:05
   

Tips

Jump to any page in the wiki with Ctrl+G or Meta+G.
See more shortcuts.

Need help?

If you need help with XWiki you can contact: