<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Codeblix Ltd</title>
    <description>The latest articles on DEV Community by Codeblix Ltd (codeblix).</description>
    <link>https://dev.to/codeblix</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F15426%2Fdb7e65f5-36d4-4ec4-b402-9e77e3a16639.png</url>
      <title>DEV Community: Codeblix Ltd</title>
      <link>https://dev.to/codeblix</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codeblix"/>
    <language>en</language>
    <item>
      <title>MRA e-invoicing Mauritius: five API checks before going live</title>
      <dc:creator>Jayesh Choolun</dc:creator>
      <pubDate>Tue, 20 Oct 2026 08:15:54 +0000</pubDate>
      <link>https://dev.to/codeblix/mra-e-invoicing-mauritius-five-api-checks-before-going-live-5chf</link>
      <guid>https://dev.to/codeblix/mra-e-invoicing-mauritius-five-api-checks-before-going-live-5chf</guid>
      <description>&lt;p&gt;Connecting an existing billing system, ERP or POS to an e-invoicing service needs more than a successful request. Your application also needs to understand the document’s fiscal result and handle interrupted connections without creating duplicate invoices.&lt;/p&gt;

&lt;p&gt;This checklist describes the Codeblix EBS integration workflow for Mauritius. We build Codeblix, so the examples refer to our own API.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Keep sandbox records separate
&lt;/h2&gt;

&lt;p&gt;The Codeblix simulated sandbox does not submit invoices to MRA. Its IRNs and QR images are test results. Label them clearly in your interface and keep test records out of live reporting. Test successful submissions, rejections, service unavailability and uncertain outcomes before activation.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Give each document a permanent source ID
&lt;/h2&gt;

&lt;p&gt;Assign a stable &lt;code&gt;source_id&lt;/code&gt; in your source system before sending the document. If a request fails before you receive a result, look up that original ID or follow the documented retry path using the identical payload and ID.&lt;/p&gt;

&lt;p&gt;Generating a new ID every time a connection drops makes reconciliation harder. Keep the source document, submission attempt and returned document ID linked in your own records.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Read the fiscal status
&lt;/h2&gt;

&lt;p&gt;An HTTP success response tells you the API handled the request. Read the returned &lt;code&gt;status&lt;/code&gt; to determine the document’s fiscal outcome.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;th&gt;Application behaviour&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pending&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Show the outstanding state and follow the documented retry path.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;rejected&lt;/code&gt; or &lt;code&gt;on_hold&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Display the reported issue for review.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;outcome_unknown&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Poll the existing document and let Codeblix reconcile it; do not resubmit or reissue it.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fiscalised&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Preserve the result, IRN, QR image and returned totals.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A timeout needs an explicit recovery path in your interface. Staff should be able to see which document is being checked and why it is still awaiting a result.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Preserve the fiscalised snapshot
&lt;/h2&gt;

&lt;p&gt;Keep the sent document snapshot and returned fiscal result together. After successful live fiscalisation, use the returned totals and QR image in the invoice layout and lock the issued fiscal record against edits.&lt;/p&gt;

&lt;p&gt;The documented correction workflow uses a credit or debit note with the original invoice reference. Build that flow deliberately instead of allowing staff to overwrite an issued invoice.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Check readiness before changing environments
&lt;/h2&gt;

&lt;p&gt;Each issuing business needs its own Codeblix account and MRA onboarding. A developer can begin sandbox testing while the business completes setup. Check readiness through the account endpoint before enabling live submissions. Keep API keys in server configuration and use the appropriate key for each environment.&lt;/p&gt;

&lt;p&gt;Read the &lt;a href="https://codeblix.com/integrations/mra-e-invoicing-api" rel="noopener noreferrer"&gt;MRA e-invoicing API overview&lt;/a&gt; and the &lt;a href="https://ebs.codeblix.com/developers/api" rel="noopener noreferrer"&gt;developer documentation&lt;/a&gt; for the current request contract, fields and error handling. The &lt;a href="https://codeblix.com/videos" rel="noopener noreferrer"&gt;Codeblix video library&lt;/a&gt; includes product walkthroughs with demo data.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Scope: this is a Codeblix integration checklist. Sandbox output is not a fiscal invoice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>invoicing</category>
      <category>api</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
