Skip to main content

Overview

This guide outlines the mandatory test scenarios for integrating with the MMR-SASK API. You must complete all test scenarios in the test environment before moving to production.
Once you complete all test cases, contact us to proceed with production deployment.

Test Environment

Use the development server for all testing:
https://api.rrc.dev.finventi.com

Test Scenarios

Natural person accounts are reported with owner type F. This flow covers account creation, updates, and representative management.What you report for a natural person account:
  • Account details - IBAN, currency, account type, open/close dates
  • Owner information - Name, surname, birth date, address, nationality
  • Identification - Personal code or foreign identification code, document type and number
  • Representatives - Individuals authorized to manage the account on behalf of the owner
  • Beneficial owners (UBO) are not reported for natural person accounts.
  • Representatives can only be natural persons.
Objective: Report a newly opened account with owner and representatives to the tax authority.Use POST only for newly opened accounts. If the account was opened and closed on the same day, include closedDate in the request - no separate update is required.Request: POST /reports/sask/v1/accountsRequest Body:
[
  {
    "accountType": "CURRENT_ACCOUNT",
    "iban": "LT601010012345678901",
    "currency": "EUR",
    "openedDate": "2024-12-20",
    "owner": {
      "type": "F",
      "name": "Jonas",
      "surname": "Jonaitis",
      "birthDate": "1990-05-15",
      "addressCountry": "LT",
      "address": "Vilnius, Gedimino pr. 1",
      "codeCountry": "LT",
      "codeInForeignCountry": "39005150001",
      "documentType": "LT_PASSPORT",
      "documentNumber": "AB123456",
      "nationalities": ["LT"]
    },
    "representatives": [
      {
        "dateFrom": "2024-12-20",
        "representative": {
          "type": "F",
          "name": "Petras",
          "surname": "Petraitis",
          "birthDate": "1985-03-20",
          "addressCountry": "LT",
          "address": "Kaunas, Laisves al. 10",
          "codeCountry": "LT",
          "codeInForeignCountry": "38503200001",
          "documentType": "LT_PASSPORT",
          "documentNumber": "CD789012",
          "nationalities": ["LT"]
        }
      }
    ]
  }
]
The representatives array is optional. Include it when the account has authorized representatives.
Expected Response:
[
  {
    "status": "SUCCESS",
    "data": {
      "refId": "305697289_20250303_E5D11991C7B74CB0",
      ...
    }
  }
]
Store the returned refId for use in Test Cases 2, 3, and 4.
Objective: Update a previously reported account when account details or owner information changes.The refId from the original account submission is required to identify the record to update.Request: PUT /reports/sask/v1/accountsRequest Body:
[
  {
    "refId": "<refId from Test Case 1>",
    "accountType": "CURRENT_ACCOUNT",
    "iban": "LT601010012345678901",
    "currency": "EUR",
    "openedDate": "2024-12-20",
    "closedDate": "2025-06-30",
    "owner": {
      "type": "F",
      "name": "Jonas",
      "surname": "Jonaitis",
      "birthDate": "1990-05-15",
      "addressCountry": "LT",
      "address": "Vilnius, Gedimino pr. 1",
      "codeCountry": "LT",
      "codeInForeignCountry": "39005150001",
      "documentType": "LT_PASSPORT",
      "documentNumber": "AB123456",
      "nationalities": ["LT"]
    }
  }
]
Expected Response:
[
  {
    "status": "SUCCESS",
    "data": {
      "refId": "305697289_20250303_E5D11991C7B74CB0",
      ...
    }
  }
]
Objective: Add a new representative for an already reported account.The accountRefId in the URL must be the refId returned when the account was reported.Request: POST /reports/sask/v1/accounts/{accountRefId}/representativesRequest Body:
[
  {
    "dateFrom": "2024-12-18",
    "representative": {
      "type": "F",
      "name": "Petras",
      "surname": "Petraitis",
      "birthDate": "1985-03-20",
      "addressCountry": "LT",
      "address": "Kaunas, Laisves al. 10",
      "codeCountry": "LT",
      "codeInForeignCountry": "38503200001",
      "documentType": "LT_PASSPORT",
      "documentNumber": "CD789012",
      "nationalities": ["LT"]
    }
  }
]
Expected Response:
[
  {
    "status": "SUCCESS",
    "data": {
      "refId": "a8306155-8731-4aea-9b36-d30e958fbe33",
      ...
    }
  }
]
Store the returned representative refId for Test Case 4.
Objective: Update a representative when their information changes, or end the representative relationship by adding dateTo.Request: PUT /reports/sask/v1/accounts/{accountRefId}/representativesRequest Body:
[
  {
    "refId": "<representative refId from Test Case 3>",
    "dateFrom": "2024-12-18",
    "dateTo": "2025-12-31",
    "representative": {
      "type": "F",
      "name": "Petras",
      "surname": "Petraitis",
      "birthDate": "1985-03-20",
      "addressCountry": "LT",
      "address": "Kaunas, Laisves al. 10",
      "codeCountry": "LT",
      "codeInForeignCountry": "38503200001",
      "documentType": "LT_PASSPORT",
      "documentNumber": "CD789012",
      "nationalities": ["LT"]
    }
  }
]
Expected Response:
[
  {
    "status": "SUCCESS",
    "data": {
      "refId": "a8306155-8731-4aea-9b36-d30e958fbe33",
      ...
    }
  }
]

Batch Submission Tests

Objective: Verify batch submission where all records are valid.Steps:
  1. Submit multiple valid records in a single request
  2. Verify HTTP 200 or 201 response
  3. Confirm all items have status: SUCCESS
Expected Result:
HTTP 201 Created
[
  { "status": "SUCCESS", "data": { "refId": "..." } },
  { "status": "SUCCESS", "data": { "refId": "..." } },
  { "status": "SUCCESS", "data": { "refId": "..." } }
]
Objective: Verify batch submission where some records fail validation.Steps:
  1. Submit multiple records where at least one has invalid data
  2. Verify HTTP 207 response
  3. Confirm successful items have status: SUCCESS
  4. Confirm failed items have status: FAILED with error details
Expected Result:
HTTP 207 Multi-Status
[
  { "status": "SUCCESS", "data": { "refId": "..." } },
  { "status": "FAILED", "errors": [{ "field": "...", "message": "..." }] }
]
Objective: Verify batch submission where all records fail validation.Steps:
  1. Submit multiple records where all have invalid data
  2. Verify HTTP 400 response
  3. Confirm all items have status: FAILED with error details
Expected Result:
HTTP 400 Bad Request
[
  { "status": "FAILED", "errors": [{ "field": "...", "message": "..." }] },
  { "status": "FAILED", "errors": [{ "field": "...", "message": "..." }] }
]

Best Practices

Store Reference IDs

Always save the refId returned for each created record. You need this ID to update or delete records later.

Handle Partial Success

When you receive HTTP 207, check each item in the response array. Some items succeeded while others failed.

Validate Before Submission

Validate your data locally before sending to reduce failed submissions and improve processing speed.
Last modified on April 9, 2026