Skip to main content

PoS API Release Notes

The Point of Sale API V10 is now in production.





  • Made it clear that directly using the pollDelayInMs response can improve payment flow completion time in API Principles.


  • Removed information regarding a now decomissioned migration endpoint.



  • Made it clear that it is the beaconId that should be used in QR code generation instead of posId.


  • Made it clear that Integrator's notification endpoint must return 200 on success in Notification Service






  • Re-wrote the Onboarding section of the Point-of-Sale Management page. The section now contains a description on how to acquire store information needed for integrators when onboarding a merchant, which does not have a MobilePay PoS solution using an older version of the MobilePay PoS API.



  • Added section to Refund Flow regarding how to get a paymentId for a refund if the paymentId is not known.


  • Clarified language in the network and server errors paragraph of API principles.
  • Added desciption of why it is important to either capture or cancel a refund in error situations in Cancelling refunds.
  • Removed age validation from documentation since this is not possible to do.


  • Added error codes 1406, 1407, 1408, 1409, 1410, and 1411 to API Errors.


  • Refund functionality now ready and live in prod. See Refund Flow for documentation on how to implement the functionality. An integrator needs to be certified in the new Refund section on the self certification website, to use the refund endpoints in the production environment. Also see the MobilePay developer portal to check out the API documentation.


  • Removed the following supportedBeaconTypes: BluetoothOther, BluetoothMP1, BluetoothMP2, BluetoothMP3, BluetoothMP4 and replaced them with one Bluetooth in Input Formats. During certification when calling POST /pointofsales the request will now fail if supportedBeaconTypes contains any of the removed mentioned values above. If you already have a client that is certified and is using the old values, they will continue to work in production.




  • Changed and updated how Refunds is planned to work. See description in Payment Flows. Release of Refunds are planned to Ultimo September.
  • Clarified how to choose a beaconId in Best Practices


  • Clarified the requirements for using long lived access tokens in Authentication
  • Reduced the number of test cases in Self Certification by e.g. having more than one error or timeout scenario in one test case. Categories remain the same and this does not require a re-certification since this has not changed what is being tested.
  • Updated picture of Onboarding cases in Self Certification
  • Removed x-mobilepay-client-system-name header from table in Input Formats
  • Please do not hesitate to provide feedback


  • Added a section on Best Practices regarding Merchant onboarding.
  • Moved information regarding Partial Capture from Best Practices to Payment Flows and added some diagrams describing the flow.
  • Removed the 403 forbidden statuscode when calling POST /payments/{paymentId}/capture from API ERRORS
  • Added a 409 conflict statuscode when calling POST /payments/{paymentId}/capture from API ERRORS that descibes if a partial capture is attempted on a payment where that is not possible.


  • Added a 403 error code for payments/{payid}/capture in API ERRORS which is returned when trying to make a partial capture which is still not supported. When it will be possible to do partial captures it will be listed here in the release notes.







  • Added a note on the possibility of long-lived access tokens for PoS devices


  • Added 403 in the API Errors section as a possible non-successful status-code when creating a Point of Sale.
  • Added a conflict case to the capture payment endpoint in the API Errors section when trying to capture an already captured payment with a different amount.


  • Dropped the x-ibm-client-system-name header and modified the API principles page to explain how the x-ibm-client-system-version header will be used for client versioning.

  • Renamed all X-IBM-* and X-MobilePay-* headers to be lowercase in the documentation (the actual headers are case-insensitive).


  • Renamed vat_number parameter to merchant_vat for Authentication endpoint and changed the format to remove the dash between country code and VAT (e.g., "DK12345678" instead of "DK-12345678").

  • Removed 'api/' as part of the endpoint route for all endpoints.


  • Added a RejectedByMobilePayDueToAgeRestrictions payment state, to indicate that a payment could not be completed because of age restrictions on the payment.

  • Added section Authentication Authentication section so Integrators can use MobilePay APIs, as they'll have to obtain an access_token from the Integrator Authentication service. This way, MobilePay knows who is calling our service.


  • Added section Handling Timeouts in API Principles section.

  • Removed a 409 errorcode from POST /api/v10/refunds regarding refund amount in the API Errors section and added an extra one regarding call to POST /api/v10/refunds if payment is not captured.


  • Renamed header from X-MobilePay-MerchantVatNumber to X-MobilePay-Merchant-VAT-Number in the Input Formats section.

  • Rewrote parameters to camelCase instead of PascalCase in the Input Formats section to reflect the right casing in the API


  • Added HTTP StatusCodes and ErrorCodes pr. endpoint in the API. Response codes have also slightly changed in the API on the basis of this documentation so be aware of minor changes to the API as well. See more at API Errors.

  • Added header to all endpoints in the API called X-MobilePay-MerchantVatNumber. For more information see Input Formats

  • Fixed wrong header name from X-IBM-ClientId to X-IBM-Client-Id. See Input Formats


  • Added documentation on payment restrictions under Input Formats and expanded on best practices regarding payment restrictions Best Practices


  • Specified expiration length of Refund reservations to 24 hours. Refunds



  • Changed the month that news will come out regarding self-certification from December 2019 to January 2020


  • Added BrandName to the subpage Input and Output Formats in the Brand section
  • Renamed subpage Input Formats to Input and Output Formats.
  • Adjusted content of subpage Input and Output Formats
    • HTTP Headers
      • Renamed from X-MP-\* to X-MobilePay-\*.
      • Removed X-MP-IntegratorId.
    • Payments
      • Added PlannedCaptureDelay, CustomerToken and CustomerReceiptToken.