Skip to main content

ePayment API Errors

The standard response body format for our error messages follows RFC 7807. For example, an error sent together with a HTTP 400 Bad Request:

HTTP/1.1 400 Bad Request
Content-Type: application/problem+json
Content-Language: en
{
"type": "https://httpstatuses.io/400",
"title": "Cannot capture before reservation",
"detail": "The amount you tried to capture is not reserved. The user must accept the payment before capture can be done.",
"instance": "/v1/payments/577531734343670112/capture",
"status": 400,
"extraDetails": [
{
"name": "ErrorCode",
"reason": "6080"
}
],
"traceId": "00-813b63975adcaaeef2b0ec7c103c40e3-706492e906541d31-01",
}

Find more information at: Knowledge base: Errors.

warning

Use the ErrorCode field to identify the type of error. The title and details may be updated over time to improve the API and make the error messages easier to understand.

Error types

InternalError

Error CodeTitleDetails
3010Internal errorInternal error. This may be caused by an incorrect API request. Please check the request. See the status pages.

InvalidRequest

Error messages that convey a problem with how the request was formed.

Error CodeTitleDetails
4010Capture idempotency conflictThe capture request in an idempotent retry must be identical to the previous request(s). See Idempotency.
4020Idempotency errorIdempotency-Key acme-shop-123-order123abc already exists. See Idempotency.
4040Invalid amountThe amount is invalid. Amounts must be integers, no decimals. They are specified in minor units, like øre or cent. A common error is to specify amounts with decimals, sometimes due to rounding errors.
4050Invalid CustomerTokenThe parameter CustomerToken is invalid. If you scan your personal QR, you can get a customer token that you can use to start a payment. If this is not valid, this message will be displayed. See Personal QR.
4060Invalid PersonalQrThe parameter PersonalQr is invalid. See Personal QR.
4070Invalid phone numberThe phone number is invalid. Phone numbers must be in MSISDN format: Country code and subscriber number, but no prefix.
4080Invalid scopeThe scope something-something is invalid.
4090Invalid URLThe parameter http://example.com is invalid.
4100Metadata capacity exceededThe metadata object exceeds the maximum capacity.
4110Metadata duplicate keys not allowedDuplicate keys are not allowed.
4120Metadata key length exceededThe key something-something exceeds the maximum allowed key length.
4130Metadata value length exceededThe value something-something exceeds the maximum allowed value length.
4140Missing required parameterThe parameter something-something is required.
4150Refund idempotency conflictThe request in an idempotent retry must be identical to the previous request(s). See Idempotency.

Merchant

Error messages that convey a problem with merchant configuration or permission.

Error CodeTitleDetails
5010Blocking sources not applicableNot possible to block payment sources for market: 'Norwegian' Block payment sources is only available for Danish and Finnish sales units.
5020Express payment not allowedExpress payment is not allowed for this sales unit.
5030Illegal scopeThe scope something-something is illegal. Are you asking for more than you are allowed to? This occurs if the merchant asking for NIN or account number without proper permissions.
5040Invalid currency for merchantYou must use the currency which matches your merchants registered market. See Offering Vipps/MobilePay in the Nordics.
5050Long-living payment not allowedThe sales unit with MSN 123456 is not allowed to perform long-living payment requests.
5060Merchant bank account not verifiedThe sales unit is active, but the merchant has not yet verified its bank account, and the sales unit cannot receive payments.
5070Payment cannot be createdReference acme-shop-123-order123abc cannot be created. Invalid state: something-something, missing precondition, or incorrect merchant setup.
5080PUSH_MESSAGE not allowedThe sales unit with MSN 123456 is not allowed to use PUSH_MESSAGE flow.
5090Reference not foundThe reference acme-shop-123-order123abc does not exist for MSN 123456.
5100Refund not possibleCannot refund payment due to a configuration problem.

Payment

Error messages that convey a problem with a payment.

Error CodeTitleDetails
6010Amount too smallThe amount is too small. Amounts are specified in minor units, like øre or cent. The minimum amounts allowed are NOK 100 øre, DKK 1 øre, EUR 1 cent.
6020Attempted refund before reservationCannot refund a payment that is not reserved. Check the payment event log. See GET:/epayment/v1/payments/{reference}/events.
6030Cancel period expiredPayments can only be canceled within 180 days of the reservation. After reservation, payments can only be canceled within the payment capture deadlines.
6040Cannot cancel a captured paymentCannot cancel a payment that has been captured. Check the payment event log. See Cancellations and GET:/epayment/v1/payments/{reference}/events.
6050Cannot cancel a non-reserved paymentCannot cancel a payment that is not reserved. Check the payment event log. See Cancellations and GET:/epayment/v1/payments/{reference}/events.
6060Cannot cancel authorized paymentThis payment is authorized and cannot be cancelled when CancelTransactionOnly is set. This error can occur if the CancelTransactionOnly: true in the cancel request. See POST:/epayment/v1/payments/{reference}/cancel.
6070Cannot capture a cancelled paymentCannot capture a payment that has been cancelled. Check the payment event log. See Cancellations and GET:/epayment/v1/payments/{reference}/events.
6080Cannot capture before reservationThe amount you tried to capture is not reserved. The user must accept the payment before capture can be done.
6090Capture amount too highThe total capture amount exceeds the reserved amount. Cannot capture a higher amount than the amount the user has accepted. Check the payment details.
6100Capture period expiredCannot capture because the payment's capture period has passed. After reservation, payments can only be captured within the payment capture deadlines. See Reserve and capture.
6110Expiration date is too lateThe expiration date something-something is too late. The maximum expiry is 60 days into the future.
6120Expiration date is too soonThe expiration date something-something is too soon. The minimum expiry is 10 minutes into the future.
6130Long living payments require a receiptIf ExpiresAt is set, receipt is mandatory. See Long-living payment requests.
6140Must capture full amountPartial capture is not allowed on this payment. See Partial capture.
6150Not enough refundableCannot refund more than the available amount. Check the payment event log. See GET:/epayment/v1/payments/{reference}/events.
6160Order processingOrder locked and is already processing.
6170Payment already capturedThe payment has already been captured. See Capture.
6180Payment already refundedCannot refund a payment that has already been refunded. Check the payment event log. See GET:/epayment/v1/payments/{reference}/events.
6190Payment cannot be cancelledReference acme-shop-123-order123abc cannot be cancelled. Invalid state: something-something. See Cancellations.
6200Payment cannot be capturedReference acme-shop-123-order123abc cannot be captured. Invalid state: something-something.
6210Payment cannot be refundedReference acme-shop-123-order123abc cannot be refunded. Invalid state: something-something.
6220Refund period expiredPayments can only be refunded within 365 days of the reservation. See Reserve and capture.
6230Payment is already reservedThe payment with reference acme-shop-123-order123abc has already been reserved.
6240Shipping details requiredExpress payments with static shipping details require a list of shipping options.

Test environment

Error messages only encountered in the test environment.

Error CodeTitleDetails
10010Approve failedForce approve payment failed. Reason: something-something. This for the "force approve" endpoint in the test environment.
10020Approve not allowedThe payment is in a state that does not allow approval. This for the "force approve" endpoint in the test environment.
10030Identification requiredThe user must identify before proceeding. This for the "force approve" endpoint in the test environment.
10040Invalid payment sourceThe payment source is disabled or does not exist.
10050No cardsThe user does not have any payment cards. The user must add a valid card in the app.
10060Operation not supportedThe attempted payment operation is not supported. This for the "force approve" endpoint in the test environment.
10070Payment limit exceededThe merchant's payment request limit is exceeded.

Help us improve our documentation

Did you find what you were looking for?