Step 5. Production 

Now you've learned how to customize and send invoices. Understanding what happens in Invoice PaymentFlow helps provide the smoothest experience for both you and your users. Invoices can be a one-time bill that you charge your customer. 

 
 
Invoice API - Reconciliation 

It is important to ensure that the balances match at the end of the particular account period. It is easy to do reconciliation with Invoice.

If you fill out the field PaymentReference, then the ID follows, that you’ve written as a  PaymentReferencefor the payment, if the merchant has chosen Instant Transfers. PaymentReference is not a required string, as it is completely up to the merchant to decide, the needed ID used to reconcile transactions with the bank. 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, which is why it is also a required string. 

Reconcilation

 It is possible to do reconciliation in three ways:

  1. API Callback: You get the status on the invoice through the API. When the Invoice has status paid it means that the money has been transferred to the customer’s bank. If you have instant transfer method chosen, then the individual transactions will contain the same PaymentReference, that you have assigned, and that PaymentReference, will be returned through the API.
  2. Export CSV file: The merchant logs-in to our MobilePay portal on https://admin.mobilepay.dk where the transactions can be exported in a CSV-file.
  3. Use the Transaction Reporting API

For example, if the merchant wants to use their FIK-Creditor-ID for transactions, then you simply choose the reference number, which can be the merchant FIK Creditor ID. There are no special requirements for the merchant FIK creditor-ID to be able to use it for MobilePay Invoice.

All possible invoice statuses returned in callback body can be found in Get invoice status section.

 

Api GET calls 
There is no admin panel to check request, but you can use the following API calls:
 
1. Get Status:
All possible invoice statuses returned in callback body can be found in Get invoice status section. 
GET api/v1/merchants/{merchantId}/invoices/{invoiceId}/status
Response
HTTP 200 OK

The table below shows all possible statuses.

Status Explanation Type
created Merchant created the Invoice Intermediate
invalid Invoice validation failed Intermediate
accepted User swiped to accept the Invoice Intermediate
paid Invoice was paid Final
rejected User rejected the Invoice Final
expired User did not do do anything until Invoice DueDate + 30 days Final
canceled You canceled this invoice. Final

 

Get invoice details

GET api/v1/merchants/{merchantId}/invoices/{invoiceId}

Response
HTTP 200 OK

{
    "InvoiceId""578a9f10-4e81-4265-bbae-2e8fa33cb83b",
    "InvoiceNumber""301",
    "IssueDate""2018-07-02",
    "DueDate""2018-08-02",
    "Comment""Sample Invoice",
    "InvoiceArticles": [
        {
            "ArticleNumber""1-123",
            "ArticleDescription""Process Flying V Snowboard",
            "TotalPriceIncludingVat"360,
            "Quantity"1,
            "PricePerUnit"288,
        }
    ],
    "CurrencyCode""DKK",
    "TotalAmount"360,
    "InvoiceVatTotals": [
        {
            "VatRate"25,
            "TotalVatAmount"72
        }
    ],
    "TotalVatAmount"72,
    "TotalAmountExcludingVat"288,
    "MerchantId""f3dd9011-d930-4063-901d-2a47621e5b76",
    "InvoiceIssuerId""238fe387-f4a4-40e7-ae8a-4c107da2c0ad",
    "InvoiceIssuerName""Invoice Issuer 1",
    "InvoiceIssuerAddress""Edwin Rahrs Vej 2-12",
    "InvoiceIssuerZipcode""8220",
    "InvoiceIssuerCity""Brabrand",
    "MerchantIsoCountryCode""DK",
    "Status""created",
}

 

Invoice Transfers

It is important to know which transfer type are possible to use as a merchant. There are two:

  1. Instant Transfer:  Transfers are executed for each payment automatically. 
  2. Daily Transfer: Transfers are executed once per day for all payments per day

 

Instant Transfer

Daily Transfer

HOW TO SET IT 

  • Merchant can set Instant transfers for each Invoice issuer in MobilePay portal.
  • Merchant can set Daily transfers for each Invoice issuer in MobilePay portal.

WHEN TRANSFER IS DONE 

  • MobilePay transfer instantly after User pays the Invoice.
  • Transfer might reach Merchant account later then MobilePay executes transfers. It depends on Merchant bank transfer times.
  • MobilePay does transfer ones per day, at night. Payments payed on day X will be transferred on day X+1.
  • Transfer might reach Merchant account later then MobilePay executes transfers. It depends on Merchant bank transfer times.

REFERENCE NUMBER 

  •  Field  PaymentReference is used as Reference number. If not filled, InvoiceNumber will be used as reference.
  • Reference number is generated by MobilePay.

  • External Rules here.

BANK STATEMENT

  • MobilePay generated reference number will be used in bank statement in fields:

    • DK Text field.
    • FI Text field and Reference no. field.

 

Transaction reporting api

With the transaction reporting API, you can quickly find all information associated with each of your payment

When using the Transaction Reporting API, you will be introduced to the term 'paymentPointId'. paymentPointId is a GUID assigned to payment point. 

API PaymentPointID Obtained
Invoice  InvoiceIssuerID

You can call GET /api/v1/merchants/{merchantId}/invoiceissuers , which will return a list of all invoice issuers, associated with that merchant. Read more here 

ExternalTransactionID

API ExternalTransactionID
Invoice The individual transactions will contain the same PaymentReference, that you have assigned, and that PaymentReference, will be returned through the API.

ExternalTransactionId is ID that could be provided by merchant / payment integrator when initiating payments. In general, it can be used for correlating transactions between MobilePay and external (merchant/integrator) system.

 

 Learn More

 
What's next?

Now that you've have integrated the Invoice api, feel free to read our Invoice Release Notes, to ensure you are updated on the newest features. 

Previous step