Typically the POS uploads an electronic receipt after the payment has been confirmed. By the Merchant Agreement, the Merchant is required to provide information of the purchase to the user. This is done by uploading either Receipts or ItemLists to an attachment URI.

How to upload

Attachment URIs are generated by mCASH and are given in the attachment_uri field in the JSON response on certain endpoint. At the moment only the outcome endpoint for payment request exposes such a field. When an attachment URI has been acquired, any number of files can be uploaded by making a POST request formatted as multipart/form-data. This format is described in RFC 2388. However, libraries that are able to make multipart/form-data HTTP requests are readily available for most programming languages.

Note that each upload is "all or nothing". This means that if one or more files fails in a multi-file upload (e.g. due to failed server-side format validation), the entire upload will be discarded by mCASH.

Supported mime-types

The uploaded data is validated according to the Content-Type of the part in the request.

The supported MIME-types and their respective schemas are:

  • 'application/vnd.mcash.itemlist.v1+json'

    mCASH item lists. Will be rendered for the user in the mCASH app.

    store_name : String : optional : default=null
      Information about the Store
      organization_number : String : optional : default=null
        Organization number, e.g. "123456789MVA"
        items[] : Item : optional : default=null
        • 'application/vnd.mcash.receipt.v1+json'
          cashier : String : optional : default=null
            Seller ID or seller name
            register : String : optional : default=null
              Cash register/POS identifier
              store : Store : optional : default=null
                Information about the Store
                items[] : ReceiptItem : optional : default=null
                  payments[] : ReceiptPayment : optional : default=null
                    currency : String : optional : default=null
                      The currency of amounts on this receipt
                      gross : String : optional : default=null
                        Gross amount before discounts
                        discount : String : optional : default=null
                          Discount on the gross
                          net : String : optional : default=null
                            gross - discount
                          • 'image/png'

                            No schema, only size restriction of 1 MB.