Migrate from eCom to ePayment
Overviewβ
The ePayment API expands upon the functionality of the eCom API and simplifies existing flows. Merchants currently using the eCom API should find the ePayment API familiar and intuitive.
The ePayment API is backwards compatible with the eCom API. Payments initiated via the eCom API can be captured, refunded, cancelled, and retrieved using the ePayment API, but not vice versa.
Payments initiated with the ePayment API can't be modified or retrieved using the eCom API. Merchants are advised to fully migrate to the ePayment API. However, it is possible to migrate one endpoint at a time, provided that the Create Payment endpoint is migrated last.
Key differencesβ
New featuresβ
The ePayment API Express solution contains all the features of the eCom API.
New features include:
Support for Finnish and Danish marketplacesβ
The ePayment API can be used in Finnish and Danish marketplaces, as well as Norway.
See Offering Vipps MobilePay in the Nordics for details.
Callbacks are replaced with webhooksβ
The ePayment API does not use callbacks, therefore, callbackPrefix is no longer used.
To get a report of events taking place for a payment request,
register webhooks.
User flow parametersβ
Skipping the landing page is now specified with the new userFlow parameter rather than
the complex isApp of eCom.
See User flow.
Get event logβ
New Get event log endpoint lets you get a history of all the events (e.g., authorize, capture, refund) that happen to a payment.
Parameters name changesβ
These parameter names are remapped across all the endpoints and responses:
| eCom | ePayment |
|---|---|
X-Request-Id | Idempotency-Key |
orderId | reference |
merchantInfo.fallback | returnUrl |
transactionText | paymentDescription |
mobileNumber | phoneNumber (MSISDN format) |
amount | amount.currency, amount.value |
Merchant-Serial-Number | (moved to the header) |
callbackPrefix | (deleted) |
All the endpoints have changed, as shown in the sections that follow.
Endpointsβ
Createβ
eCom initiate payment endpoint
ePayment create payment endpoint
Required header parameters
AuthorizationOcp-Apim-Subscription-Key
Required header parameters
AuthorizationOcp-Apim-Subscription-KeyMerchant-Serial-NumberπIdempotency-Keyπ
Required body parameters
transactionamountβamount.valueorderIdβreferencetransactionTextβpaymentDescription
customerInfoβcustomermerchantInfocallbackPrefixβ RemovedfallBackβreturnUrlmerchantSerialNumberβ Moved to header
Required and related body parameters
amountcurrency- NOK, DKK, EUR (must match the currency of your sales unit)value- Amount in minor units
referencecustomerreturnUrlpaymentDescriptionpaymentMethodπtype- Typically set toWALLET
userFlowπ - Typically set toWEB_REDIRECT(normal flow).
See parameters for details.
Example of payload:
{
"customerInfo": {
"mobileNumber": "12345678"
},
"transaction": {
"orderId": "acme-shop-123-order123abc",
"transactionText": "Phone cover",
"amount": 20000
},
"merchantInfo": {
"fallBack": "https://example.com/fb",
"callbackPrefix": "https://example.com/cb",
"merchantSerialNumber": "123456"
}
}
Example of payload:
{
"customer":{
"phoneNumber":"4712345678"
},
"reference":"acme-shop-123-1234589",
"paymentDescription": "Phone cover",
"amount":{
"value":20000,
"currency":"NOK"
},
"returnUrl":"https://example.com/fb",
"userFlow":"WEB_REDIRECT",
"paymentMethod":{
"type":"WALLET"
}
}
Response
orderIdβreferenceurlβredirectUrl
Example response:
{
"orderId": "acme-shop-123-order123abc",
"url": "https://api.vipps.no/<snip>"
}
Response
referenceredirectUrl
Example response:
{
"reference": "acme-shop-123-order123abc",
"redirectUrl": "https://example.com"
}
eCom details
ePayment details
Captureβ
When you start a payment, the amount is first reserved. You then need to capture it to complete the transaction.
You can capture right away or any time within 180 days.
Important: The ePayment API supports reserve capture only.
This means thereβs no direct capture option, unlike the eCom API.
Why reserve capture?β
Reserve capture gives you more flexibility:
- Supports partial capture
- Cancel the reservation at any time before capture, instantly freeing up the funds in the customerβs account.
- Perfect when the final amount isnβt known at the time of payment, for example:
Typical flow:
- Reserve a higher amount.
- Capture only whatβs needed.
- Cancel the rest.
For more details, see Reserve capture vs. Direct capture.
Partial captureβ
The ePayment API supports partial captures β handy when shipping items separately, so you can capture payment for each shipment as it goes out.
eCom capture
ePayment capture
Path parameters
orderIdβreference
Path parameters
reference
Required header parameters
AuthorizationOcp-Apim-Subscription-KeyX-Request-IdβIdempotency-Key
Required header parameters
AuthorizationOcp-Apim-Subscription-KeyIdempotency-KeyπMerchant-Serial-Numberπ
Body parameters
transactionamountβmodificationAmount.valuetransactionText- Removed
merchantInfomerchantSerialNumber- Moved to the header
Body parameters
modificationAmountvaluecurrency-NOK,DKK,EUR
Example of payload:
{
"merchantInfo": {
"merchantSerialNumber": "123456"
},
"transaction": {
"amount": 49900,
"transactionText": "Phone cover"
}
}
Example of payload:
{
"modificationAmount": {
"currency": "NOK",
"value": 49900
}
}
Response
orderId- Same asreferencetransactionInfoamount- Correlates toamount.valuestatus- Correlates tostatetimeStamptransactionIdtransactionText
transactionSummary- Similar toaggregatecapturedAmountrefundedAmountremainingAmountToCaptureremainingAmountToRefundbankIdentificationNumber
paymentInstrument- No longer returned
Response
referenceamountcurrencyvalue
stateaggregateauthorizedAmountcancelledAmountcapturedAmountrefundedAmount
pspReference
Example response:
{
"paymentInstrument": "Mastercard",
"orderId": "acme-shop-123-order123abc",
"transactionInfo": {
"amount": 49900,
"status": "Captured",
"timeStamp": "2018-12-12T11:18:38.246Z",
"transactionId": "5432123456",
"transactionText": "Phone cover"
},
"transactionSummary": {
"capturedAmount": 49900,
"refundedAmount": 0,
"remainingAmountToCapture": 0,
"remainingAmountToRefund": 49900,
"bankIdentificationNumber": 123456
}
}
Example response:
{
"amount": {
"currency": "NOK",
"value": 49900
},
"state": "CREATED",
"aggregate": {
"authorizedAmount": {
"currency": "NOK",
"value": 49900
},
"cancelledAmount": {
"currency": "NOK",
"value": 0
},
"capturedAmount": {
"currency": "NOK",
"value": 49900
},
"refundedAmount": {
"currency": "NOK",
"value": 0
}
},
"pspReference": "3343121302",
"reference": "acme-shop-123-order123abc"
}
eCom details
ePayment details
Cancelβ
The cancel endpoint is used to cancel reserved payments.
There is no shouldReleaseRemainingFunds flag in the new ePayment API endpoint.
Cancelling a payment will always cancel the entire remaining not-captured amount, this is irreversible.
So, if you want to capture part of the reserved amount, you should send the capture request first.
Then send the cancel request, POST:/epayment/v1/payments/{reference}/cancel. There is no amount specified.
eCom cancel
ePayment cancel
eCom path parameters
orderIdβreference
ePayment path parameters
reference
eCom required header parameters
AuthorizationOcp-Apim-Subscription-Key
ePayment required header parameters
AuthorizationOcp-Apim-Subscription-KeyMerchant-Serial-Numberπ
eCom body parameters
transactionamount- RemovedtransactionText- Removed
merchantInfomerchantSerialNumber- Moved to the header
ePayment body parameters
cancelTransactionOnlyπ - Only cancel transaction if it has not been authorized.
Example of payload:
{
"merchantInfo": {
"merchantSerialNumber": "123456"
},
"transaction": {
"transactionText": "Phone cover"
},
"shouldReleaseRemainingFunds": false
}
Example of payload:
{
"cancelTransactionOnly": true
}
Response
orderIdβreferencepaymentInstrumentβ DeletedtransactionInfoamountβ Correlates toamount.valuestatusβ Correlates tostateEnum:Cancelled,Captured,RefundtimeStamptransactionIdtransactionText
transactionSummaryβ Similar toaggregatecapturedAmountrefundedAmountremainingAmountToCaptureremainingAmountToRefundbankIdentificationNumber
Response
referenceamountcurrencyvalue
state-CREATED,ABORTED,EXPIRED,AUTHORIZED,TERMINATEDaggregateauthorizedAmountcancelledAmountcapturedAmountrefundedAmount
pspReference
Example response:
{
"paymentInstrument": "Mastercard",
"orderId": "acme-shop-123-order123abc",
"transactionInfo": {
"amount": 49900,
"status": "Captured",
"timeStamp": "2018-12-12T11:18:38.246Z",
"transactionId": "5432123456",
"transactionText": "Phone cover"
},
"transactionSummary": {
"capturedAmount": 49900,
"refundedAmount": 0,
"remainingAmountToCapture": 0,
"remainingAmountToRefund": 49900,
"bankIdentificationNumber": 123456
}
}
Example response:
{
"amount": {
"currency": "NOK",
"value": 49900
},
"state": "CREATED",
"aggregate": {
"authorizedAmount": {
"currency": "NOK",
"value": 49900
},
"cancelledAmount": {
"currency": "NOK",
"value": 49900
},
"capturedAmount": {
"currency": "NOK",
"value": 49900
},
"refundedAmount": {
"currency": "NOK",
"value": 49900
}
},
"pspReference": "3343121302",
"reference": "acme-shop-123-order123abc"
}
eCom details
ePayment details
Refundβ
eCom refund
ePayment refund
Path parameters
orderIdβreference
Path parameters
reference
Required header parameters
AuthorizationOcp-Apim-Subscription-KeyX-Request-IdβIdempotency-Key
Required header parameters
AuthorizationOcp-Apim-Subscription-KeyMerchant-Serial-NumberπIdempotency-Keyπ
Body parameters
transactionamountβmodificationAmount.valuetransactionTextβ Removed
merchantInfomerchantSerialNumber- Moved to the header
Body parameters
modificationAmountcurrencyvalue
Example of payload:
{
"merchantInfo": {
"merchantSerialNumber": "123456"
},
"transaction": {
"amount": 49900,
"transactionText": "Phone cover"
}
}
Example of payload:
{
"modificationAmount": {
"currency": "NOK",
"value": 49900
}
}
Response
orderIdβreferencetransactionamountβamount.valuestatusβstatetimeStamptransactionIdtransactionText
transactionSummaryβaggregatecapturedAmountrefundedAmountremainingAmountToCaptureremainingAmountToRefundbankIdentificationNumber
Response
referenceamountcurrencyvalue
state(values have changed)aggregateauthorizedAmountcancelledAmountcapturedAmountrefundedAmount
pspReference
Example:
{
"orderId": "acme-shop-123-order123abc",
"transaction": {
"amount": 49900,
"status": "Captured",
"timeStamp": "2018-12-12T11:18:38.246Z",
"transactionId": "5432123456",
"transactionText": "Phone cover"
},
"transactionSummary": {
"capturedAmount": 49900,
"refundedAmount": 0,
"remainingAmountToCapture": 0,
"remainingAmountToRefund": 49900,
"bankIdentificationNumber": 123456
}
}
Example:
{
"reference": "acme-shop-123-order123abc",
"amount": {
"currency": "NOK",
"value": 49900
},
"state": "CREATED",
"aggregate": {
"authorizedAmount": {
"currency": "NOK",
"value": 49900
},
"cancelledAmount": {
"currency": "NOK",
"value": 49900
},
"capturedAmount": {
"currency": "NOK",
"value": 49900
},
"refundedAmount": {
"currency": "NOK",
"value": 49900
}
},
"pspReference": "3343121302"
}
eCom details
ePayment details
Get payment detailsβ
Retrieve the full history of a payment and the status of the operations.
eCom get payment details
ePayment get payment details
Path parameters
orderIdβreference
Path parameters
reference
Required header parameters
AuthorizationOcp-Apim-Subscription-Key
Required header parameters
AuthorizationOcp-Apim-Subscription-KeyMerchant-Serial-Number
Body parameters
(none)
Body parameters
(none)
eCom response parameters
orderIdβreferencetransactionLogHistory(array)amountβamount.valueoperationβ Correlates tostate("INITIATE" "RESERVE" "SALE" "CAPTURE" "REFUND" "CANCEL" "VOID")operationSuccessrequestIdtimeStamptransactionIdtransactionText
transactionSummaryβ Similar toaggregatecapturedAmountrefundedAmountremainingAmountToCaptureremainingAmountToRefundbankIdentificationNumber
Additional properties when Express Checkout or Profile Sharing has been used:
shippingDetails- Closely matchesshippingDetailsin ePaymentuserDetails- Closely matchesuserDetailsin ePayment with this exception:mobileNumber(no country code)userId- no correlation in ePayment
sub- Correlates toprofile.sub
ePayment response parameters
referenceaggregateauthorizedAmountcancelledAmountcapturedAmountrefundedAmount
amountcurrencyvalue
state-CREATED,ABORTED,EXPIRED,AUTHORIZED,TERMINATEDpaymentMethodtype-WALLETorCARD
pspReferenceredirectUrl
Additional properties supplied when Express or Profile Sharing has been used:
shippingDetailsuserDetails- Correlates touserDetailsin eCom.mobileNumber(includes country code)profilesub-profile.subcorrelates tosubin eCom.
Example response:
{
"orderId": "acme-shop-123-order123abc",
"transactionLogHistory": [
{
"amount": 0,
"operation": "RESERVE",
"operationSuccess": true,
"requestId": "12983921873981899000",
"timeStamp": "2025-08-05T12:27:42.311Z",
"transactionId": "5001446662",
"transactionText": "Phone cover"
}
],
"transactionSummary": {
"capturedAmount": 49900,
"refundedAmount": 0,
"remainingAmountToCapture": 0,
"remainingAmountToRefund": 49900,
"bankIdentificationNumber": 123456
},
}
Example response:
{
"aggregate": {
"authorizedAmount": {
"currency": "NOK",
"value": 49900
},
"cancelledAmount": {
"currency": "NOK",
"value": 49900
},
"capturedAmount": {
"currency": "NOK",
"value": 0
},
"refundedAmount": {
"currency": "NOK",
"value": 0
}
},
"amount": {
"currency": "NOK",
"value": 49900
},
"state": "AUTHORIZED",
"paymentMethod": {
"type": "WALLET"
},
"profile": {},
"pspReference": "37c34d8<snip>",
"reference": "acme-shop-123-order123abc"
}
eCom details
ePayment details
Get payment event logβ
The ePayment API offers a new endpoint that lets you see all the events for a specific payment.
ePayment get payment event log
GET:/epayment/v1/payments/{reference}/events
Path parameter:
reference- same asorderId
Required header parameters:
AuthorizationOcp-Apim-Subscription-Key
Example response:
[
{ // Create Payment example event
"reference": "acme-shop-123-order123abcd",
"pspReference": "83b3fdb0-9547-4ec5-bdb7-5600ce70e792",
"name": "CREATED",
"amount": { "currency": "NOK", "value": 49900 },
"timestamp": "2025-08-27T10:51:44.5333258Z",
"idempotencyKey": "219986263-dedf-4b8e-a424-8d042eee4012",
"success": true
},
{ // Payment authorized example event
"reference": "acme-shop-123-order123abcd",
"pspReference": "1304787731",
"name": "AUTHORIZED",
"amount": { "currency": "NOK", "value": 49900 },
"timestamp": "2025-08-27T10:51:59.378Z",
"idempotencyKey": "219986263-dedf-4b8e-a424-8d042eee4012",
"success": true
},
{ // Captured Payment example event
"reference": "acme-shop-123-order123abcd",
"pspReference": "2018200034",
"name": "CAPTURED",
"amount": { "currency": "NOK", "value": 49900 },
"timestamp": "2025-08-27T10:52:07.748Z",
"idempotencyKey": "219986263-dedf-4b8e-a424-8d042eee4012",
"success": true
}
]
ePayment details:
Error handlingβ
Both eCom and ePayment return HTTP response codes; however, the standard response body format has changed.
The standard response body format for the ePayment error messages follows RFC 7807.
User flowβ
In the eCom API, merchants could choose between three flows by specifying the parameters
isApp and skipLandingPage.
In ePayment: Instead of specifying the parameters, you now decide which flow you want through the
userFlow property. Here's how the fields correspond to each other:
isApp: falseandskipLandingPage: false->WEB_REDIRECTisApp: trueandskipLandingPage: false->NATIVE_REDIRECTskipLandingPage: true->PUSH_MESSAGE
The ePayment API also supports a new flow:
the QR flow.
The QR flow provides you with a direct link to a one-time payment QR code that the user can scan and pay from their app.
Payment statesβ
A payment will not change state after becoming AUTHORIZED. This is because a payment can be partially captured, and also partially refunded.
It is therefore not practical to have states like "captured" or "refunded", since it is not possible to give all the information with just the state.
A payment can be partially captured, partially refunded, cancelled, but it will not change the state.
Here is a state comparison:
| eCom state | ePayment state | Description |
|---|---|---|
INITIATE | CREATED | The payment has been initiated. The user has not yet acted upon the payment. |
RESERVE | AUTHORIZED | The user has accepted the payment in the app. This is a final state. |
VOID | ABORTED | The payment has been actively stopped by the user. The user has aborted the payment before authorization. This is a final state. |
EXPIRED | The payment has expired. The user did not act on the payment within the payment expiration time. This is a final state. | |
TERMINATED | The merchant has cancelled the payment before authorization. The merchant has terminated the payment via the cancel endpoint. This is a final state. | |
CAPTURE | (deleted) | |
REFUND | (deleted) | |
CANCEL | (deleted) | |
SALE | (deleted) |
For details, see ePayment payment states.
Webhooksβ
The ePayment API supports webhooks, whereas the eCom API only supports callbacks.
To receive webhook notifications, register the URLs that will accept a POST request whenever a payment event occurs.
Webhook events are available for payments initiated through the ePayment API. For example payment created, payment aborted, and payment expired.
Note that you should not rely on webhooks alone, and should poll according to the polling recommendations.
The Webhooks API provides guaranteed delivery: If the callback is not successful
(we do not get the expected HTTP 200 OK response from you), we will retry for several days.
In addition, you can now receive webhooks for all adjustments to your payment.
See:
Feature migrationsβ
Expressβ
The new Express has more features than Express Checkout. You get a nicer experience in the app because you will get brand icons, and you can create groupings where there are several options available per group.
- Vipps
- MobilePay


Key differences from eCom Express Checkout to ePayment Express include:
-
Shipping groups
In ePayment Express, shipping options are organized into groups using theshipping.fixedOptionsarray. Each group is defined by a combination of:- brand (e.g., POSTEN, HELTHJEM, DHL, etc.)
- type (e.g., HOME_DELIVERY, PICKUP_POINT, MAILBOX, IN_STORE, OTHER)
Within each group, there can be multiple sub-options in the
optionsarray. Each sub-option represents a specific delivery choice, such as a particular store location or delivery method. -
Callback for dynamic shipping details The format of the callback information has changed.
-
Consent removal
The ePayment API does not require you to support the consent removal options, but we do recommend that you don't keep their information any longer than needed for the shipping to be completed.
In the new Express, split your options into groups with the same type and brand. For details, see Express shipping options.
eCom Express Checkout
ePayment Express
eCom body parameters
Same as for the regular eCom create payment request with these changes:
merchantInfoconsentRemovalPrefix- no longer requiredstaticShippingDetails(see Fixed options below)shippingDetailsPrefix(see Dynamic options below)authToken(see Dynamic options below)
ePayment body parameters
Same as for the regular ePayment create payment request with these additions:
paymentMethod.type- Set toWALLETprofile.scope- Set to"name address email phoneNumber"shippingfixedOptions(see Fixed options below)dynamicOptions(see Dynamic options below)
eCom fixed options
-
staticShippingDetailsβshipping.fixedOptionsisDefaultpriority
The following are moved to the specific options within each group (fixedOptions.options.[array_item]):
shippingCostβamount.value(now minor units)shippingMethodβnameshippingMethodIdβid
ePayment fixed options
fixedOptionsisDefault(Boolean)prioritytype-HOME_DELIVERY,PICKUP_POINT, etc.brand-BRING,DHL,FEDEX, etc.options(array)idamountvaluenameisDefaultprioritymetaestimatedDelivery
eCom dynamic options
shippingDetailsPrefixβcallbackUrlauthTokenβcallbackAuthorizationToken
ePayment dynamic options
dynamicOptionscallbackUrlcallbackAuthorizationToken
eCom payload example
{
"merchantInfo": {
"staticShippingDetails": [
{
"isDefault": "Y",
"priority": 1,
"shippingCost": 59,
"shippingMethod": "POSTEN - In the mailbox",
"shippingMethodId": "shippingMethodId1"
},
{
"isDefault": "N",
"priority": 2,
"shippingCost": 39,
"shippingMethod": "POSTEN - Oslo S",
"shippingMethodId": "shippingMethodId2"
},
{
"isDefault": "N",
"priority": 3,
"shippingCost": 39,
"shippingMethod": "POSTEN - BjΓΈrvika",
"shippingMethodId": "shippingMethodId3"
}
],
"fallBack": "https://example.com/fb",
"callbackPrefix":"https://example.com/cb",
"consentRemovalPrefix": "https://example.com/cm",
"merchantSerialNumber": "123456",
"paymentType": "eComm Express Payment",
"shippingDetailsPrefix": "https://example.com/s"
},
"customerInfo": {
"mobileNumber": "12345678"
},
"transaction": {
"orderId": "acme-shop-123-order123abc",
"transactionText": "Phone cover",
"amount": 20000
}
}
ePayment payload example
{
"shipping": {
"fixedOptions": [ {
"isDefault": true,
"priority": 1,
"type": "HOME_DELIVERY",
"brand": "POSTEN",
"options": [{
"isDefault": true,
"priority": 1,
"amount": { "currency": "NOK", "value": 5900 },
"name": "Posten:Home delivery",
"id": "shippingMethodId1"
}]
},
{
"type": "PICKUP_POINT",
"brand": "POSTEN",
"options": [{
"isDefault": true,
"priority": 1,
"amount": { "currency": "NOK", "value": 3900 },
"name": "POSTEN - Oslo S",
"id": "shippingMethodId3"
},
{
"amount": { "currency": "NOK", "value": 3900 },
"name": "POSTEN - BjΓΈrvika",
"id": "shippingMethodId4"
}]
}
]
},
"profile": { "scope": "name address email phoneNumber" },
"customer": { "phoneNumber": "4712345678" },
"amount": { "currency": "NOK", "value": 20000 },
"paymentMethod": { "type": "WALLET" },
"reference": 2810171754658432260,
"userFlow": "WEB_REDIRECT",
"returnUrl": "https://example.com",
"paymentDescription": "Purchase of socks"
}
eCom details
ePayment details:
Shipping address callbacksβ
For both ePayment and eCom, you need to provide an endpoint that we can call to share the customer's address with you. You define and host this endpoint on your side β weβll call it when we need to send you the shipping address details.
We send the address in almost the same structure for both products β see the difference table below.
eCom merchant callback
Endpoint:
POST:[shippingDetailsPrefix]β/v2β/paymentsβ/{orderId}β/shippingDetails
ePayment merchant callback
eCom callback body structure
addressLine1βAddressLine1cityβCitycountryβCountrypostCodeβPostCodeaddressIdβ replaced by the payment reference
ePayment callback body structure
AddressLine1CityCountryPostCodereferenceπ - The unique identifier for the payment
eCom callback response
The response must follow this schema.
shippingDetailsβgroupsisDefault(now Boolean)priorityshippingCostβamount.valueshippingMethodβnameshippingMethodIdβid
addressIdβ removedorderIdβ removed
Note that several parameters are removed from the top level and specified within the options for each array element.
ePayment callback response
The response must follow this schema.
groups(array)isDefaultprioritytype π-HOME_DELIVERY,PICKUP_POINT, etc.brandπ -BRING,DHL,FEDEX, etc.optionsidisDefaultamountvaluenameprioritymetaestimatedDelivery
eCom details
ePayment details:
- API spec: Merchant dynamic shipping callback (Look under Responses > 200 for the schema of your reply)
Set order detailsβ
The ePayment API comes with order management built-in.
In eCom, you had to create and attach order details using the Order Management API, but now you can add the details directly to your payment request.
You can add order lines to attach order details shown to the user in the app. Alternatively, supply a URL to show the user an invoice or similar. All are accessible before the user accepts the payment.
You just add the receipt to the create payment request.
See Set order details for an example.
One-time payment QR codesβ
The ePayment API lets you create a one-time payment QR code without the QR API.
You just set the userFlow to QR and provide an optional qrFormat.
"userFlow": "QR",
"qrFormat": {
"format": "IMAGE/SVG+XML",
"size": 1024
}
For examples, see One-time payment QR.
Profile sharingβ
The ePayment profile sharing
feature works similarly to in eCom.
You only need to update your scope parameter to an object, like this:
"profile": {
"scope": "name phoneNumber address birthDate"
}
For examples, see Profile sharing.
Report API and settlementsβ
The eCom API and ePayment API use different identification for payments:
- eCom payments are identified with the
orderIdthat is specified when the payment is initiated. - ePayment payments are identified with the
referencein the same way.
When retrieving data about the payments using the Report API there is also a difference:
- eCom API payments will have an automatically generated
transactionIdfor each payment operation, such as capture, refund, etc. - ePayment API payments will have a
pspReferencethat works similarly.
The transactionId in the eCom API is identical to the pspReference in the Report API,
but the pspReference in the ePayment API has no relation to the pspReference in the Report API.
See the Report API's Entry type reference fore more details.
Verification and go liveβ
- Merchants
- Partners
Before going live with your new ePayment solution you must verify your solution. You do this by going through all the points in the ePayment checklist. Please ensure that you have implemented all endpoints and evaluated the Quality assurance and Avoid integration pitfalls. If you have any questions about any of the points in the checklist, please feel free to contact us.
Once you are satisfied with the integration and the checklist, you can go live.
Before going live with your new ePayment solution, we must verify your solution. You do this by going through all the points in the ePayment checklist. Please ensure that you have implemented all endpoints and evaluated the Quality assurance and Avoid integration pitfalls.
Once you have filled out the checklist, please send it to developer@vippsmobilepay.com (or through your Slack channel) including a video of the payment flow.
Once your checklist is approved, you can go live with your merchants according to your own plan. Please let us know how you plan for going live, whether it is all merchants at once or in batches.