Step 3. Verification

Once you have finished testing in sandbox, you have to go through a small verification process, to ensure that your system is ready for production. 

Once we have verified that the steps has been completed successfully, you are ready to start testing in production.

11-step Verification Process - Sandbox

To complete the verification, you must go through the steps listed below. This is done to ensure good user experience from the customer side. It is mandatory to test InvoiceDirect and InvoiceLink  in sandbox, even if you do not intend on implementing all functions right away. The sandbox environment is designed to be close to the production environment, which makes the process from sandbox to production smoother. 


Making the first call

1. Get MerchantId
2. Get Invoice Issuer


3. Create an InvoiceDirect
4. Create multiple InvoiceDirect
5. Cancel an unpaid Invoice

Invoice Link

6. Create Invoice Link
7. Create multiple InvoiceLink


8. Have you specified a callback URL and chosen a preferred authentication method?
9. Do you sort callbacks by the property date?

Business Validation

10. Do you adhere to the validation?
11. Do you ensure that the "PaymentReference" meets customer needs in terms of reconciliation?

Internal Self-verification

Once you have followed the steps above, you are ready to do the self-certification. Click the "I'm ready" button below to conduct the verification.  Note: you can save the self-verification as a draft, and come back to it, once you make progress with your integration 

Going from Sandbox to Production 
MobilePay Invoice


  1. Read documentation on Portal and on GitHub
  2. Confirm user for Sandbox Developer Portal here
  3. Create app here
  4. Subscribe to Api's here
  5. Get OpenId Credentials  here
  6. Make the first call to Sandbox API. 
  7. Test Invoice  here
  8. Complete verification here


  1. Confirm user for Production Developer Portal here.
  2. Create app here.
  3. Subscribe to API here.
  4. Get OpenID Connect Credentials. Read more here
  5. Confirm that the implementation is working in production.
  6. Ensure you've followed our UX guidelines
  7. Await approval from
  8. Sign up for operational maillist. 
Error description 

To pass the validation, you must have followed the validation below 

When creating an InvoiceDirect or InvoiceLink , these values can be returned as error_code  and error_description 

Error Code Error Description
10101 MobilePay user not found
10102 MobilePay user not available
10103 MobilePay user not found
10104 Invoice already exists
10105 Technical error - please contact MobilePay developer support
10008 Total amount for must be greater than 0
10106 Invoice country does not match consumer country
10107 Specified currency does not match specified country
10201 Total invoice amount is exceeded
10202 Invoice issuer not found
10203 Account validation error
10204 Account validation error
10205 Technical error - please contact MobilePay developer support
10301 Invoice already exists
10302 Merchant not found
10303 Invoice issuer not found
10304 MobilePay user not found
10305 MobilePay user not found
10306 MobilePay user not found
10310 DueDate must be no later than 400 days from today
10311 DueDate must be today or later
10312 IssueDate must be no later than today
10314 Your daily limit has been reached. No more than 3 invoices can be created per consumer per merchant per day.
Validation - MobilePay Invoice 

To pass the validation, you must have followed the validation below


A set of business rules apply for an Invoice before it gets created. If any of following rules fail, an Invoice falls to state Not Created and an error response with Error Code and Description is returned

Field Country Validation rule Error Code Description
DueDate  DK/FI

CreatedDate < DueDate<

CreatedDate + 400(days)



Due Date must be no more than 400 days in the future
IssueDate  DK/FI IssueDate <= CreatedDate 10312 Issue Date can not be later than Invoice Creation date
CountryCode  DK/FI CountryCode == Consumer CountryCode 10106 Country Code must match Consumer Country Code 
CurrencyCode DK CurrencyCode == DKK 10107 Only DKK is supported for DK Invoices
  FI CurrencyCode == EUR 10107 Only EUR is supported for FI Invoices
TotalAmount DK TotalAmount <= 15000 DKK 10201 Total Amount is limited to 15000 DKK
  FI TotalAmount <= 2000 EUR 10201 Total Amount is limited to 2000 EUR
Limits DK/FI Consumer Daily Invoice Count <= 10 10313 No more than 10 Invoices can be created per Consumer from a single Merchant
Prerequisites using MobilePay Invoice

Business - Prerequisites 

  • Merchant must have a valid bank account
  • Merchant must be onboarded via the MobilePay Portal, and have an agreement for MobilePay Invoice with MobilePay
  • Invoice Amount must comply to MobilePay limits 


  • Integrator must have an onboarding guideline demonstrating how the Merchant goes through the Consent process 
  • Integrator must have received production credentials for OpenID Connect
  • Integrator must have signed up for operational mail-list and release notes here
  • Integrator must use the right MobilePay logo and buttons 

 Technical Prerequisites 

  • Client must have an integration to the MobilePay OpenID Connect Authorization service, in order to generate access tokens 
  • The Invoice Call must contain a token, provided via OpenID Connect Flow
  • You should ensure that the PaymentReference meets customers needs. You can either fill out the field PaymentReference, for the payment. If you do not fill out  PaymentReference, then it would be the input from the field  InvoiceNumber,  that will be the reference on the payment. Read more about reconcilation here
  • Phone numbers must comply with the country specific formats. E.g. Denmark +45XXXXXXXX 0045XXXXXXXX XXXXXXXX (Any spaces in phone numbers will be removed before validation / processing)
Step 4. Verify UX

Once you have finished testing in sandbox, the next step is to ensure that the UX is on point. It is important that you follow our brand guidelines. This way, you have an invoice that practically pays itself. Read more