---
id: object/codeunit/18435-in
type: object
title: Codeunit 18435 "Reference Invoice No. Mgt." (IN)
summary: Codeunit 18435 "Reference Invoice No. Mgt." (IN) in the IN country layer (Microsoft.Finance.GST.Application). 19 public procedures, 6 events, 26 event subscribers. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - codeunit
  - in layer
versions:
  introduced: "29"
  last_changed: null
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 262c151188425ec4e25060a009e9fd26220d5640d0f2bc2b5547a28f95f128d6
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/IN/INGST/app/GSTApplication/src/Codeunit/ReferenceInvoiceNoMgt.Codeunit.al
    title: src/Apps/IN/INGST/app/GSTApplication/src/Codeunit/ReferenceInvoiceNoMgt.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/in
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 18435
name: Reference Invoice No. Mgt.
namespace: Microsoft.Finance.GST.Application
app: INGST
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
country: IN
counts:
  fields: 0
  procedures: 122
  events: 6
  subscribers: 26
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
---

# Codeunit 18435 "Reference Invoice No. Mgt." (IN)

> Codeunit 18435 "Reference Invoice No. Mgt." (IN) in the IN country layer (Microsoft.Finance.GST.Application). 19 public procedures, 6 events, 26 event subscribers. Introduced in BC29, still in BC30.

IN country layer · Microsoft.Finance.GST.Application · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/IN/INGST/app/GSTApplication/src/Codeunit/ReferenceInvoiceNoMgt.Codeunit.al) · facts from BC29

An object of the [IN localization](../../localizations/in.md), not part of W1.

## Events published

- `OnBeforeCheckRefInvNoPurchaseHeader(var PurchaseHeader: Record "Purchase Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateReferenceInvoiceNoPurchaseHeader(var PurchaseHeader: Record "Purchase Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckRefInvoiceNoSalesHeader(var SalesHeader: Record "Sales Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateRefInvoiceNoSalesHeader(var SalesHeader: Record "Sales Header"; var IsHandled: Boolean)` (integration)
- `OnUpdateReferenceInvoiceNoForVendor(var ReferenceInvoiceNo: Record "Reference Invoice No."; DocumentType: Enum "Purchase Document Type"; DocumentNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnUpdateReferenceInvoiceNoforCustomer(var ReferenceInvoiceNo: Record "Reference Invoice No."; DocumentType: Enum "Sales Document Type"; DocumentNo: Code[20]; var IsHandled: Boolean)` (integration)

## Event subscriptions

- PurchCrMemoOnAfterUpdateRefInvNo subscribes to Page "Purchase Credit Memo" OnAfterActionEvent (Update Reference Invoice No.)
- PurchInvOnAfterUpdateRefInvNo subscribes to Page "Purchase Invoice" OnAfterActionEvent (Update Reference Invoice No.)
- PurchOrdOnAfterUpdateRefInvNo subscribes to Page "Purchase Order" OnAfterActionEvent (Update Reference Invoice No.)
- PurchRetOrdOnAfterUpdateRefInvNo subscribes to Page "Purchase Return Order" OnAfterActionEvent (Update Reference Invoice No.)
- SalesCrMemoOnAfterUpdateRefInvNo subscribes to Page "Sales Credit Memo" OnAfterActionEvent (Update Reference Invoice No.)
- SalesInvOnAfterUpdateRefInvNo subscribes to Page "Sales Invoice" OnAfterActionEvent (Update Reference Invoice No.)
- SalesOrdOnAfterUpdateRefInvNo subscribes to Page "Sales Order" OnAfterActionEvent (Update Reference Invoice No.)
- SalesRetOrdOnAfterUpdateRefInvNo subscribes to Page "Sales Return Order" OnAfterActionEvent (Update Reference Invoice No.)
- GenJnlOnAfterUpdateRefInvNo subscribes to Page "General Journal" OnAfterActionEvent (Update Reference Invoice No.)
- JnlVoucherOnAfterUpdateRefInvNo subscribes to Page "Journal Voucher" OnAfterActionEvent (Update Reference Invoice No.)
- PurchJnlOnAfterUpdateRefInvNo subscribes to Page "Purchase Journal" OnAfterActionEvent (Update Reference Invoice No.)
- SalesJnlOnAfterUpdateRefInvNo subscribes to Page "Sales Journal" OnAfterActionEvent (Update Reference Invoice No.)
- FAGLJnlOnAfterUpdateRefInvNo subscribes to Page "Fixed Asset G/L Journal" OnAfterActionEvent (Update Reference Invoice No.)
- OnAfterValidateReferenceInvoiceNo subscribes to Table "Reference Invoice No." OnAfterValidateEvent (Reference Invoice Nos.)
- PurchPostOnAfterValidatePostingAndDocumentDate subscribes to Codeunit "Purch.-Post" OnAfterValidatePostingAndDocumentDate
- SalesPostOnAfterValidatePostingAndDocumentDate subscribes to Codeunit "Sales-Post" OnAfterValidatePostingAndDocumentDate
- PurchPostOnAfterPostPurchaseDoc subscribes to Codeunit "Purch.-Post" OnAfterPostPurchaseDoc
- SalesPostOnAfterPostSalesDoc subscribes to Codeunit "Sales-Post" OnAfterPostSalesDoc
- GenJnlPostLineOnBeforePostVend subscribes to Codeunit "Gen. Jnl.-Post Line" OnBeforePostVend
- GenJnlPostLineOnBeforePostCust subscribes to Codeunit "Gen. Jnl.-Post Line" OnPostCustOnBeforeInitCustLedgEntry
- UpdateGenJnlLineGSTInJournal subscribes to Codeunit "Calculate Tax" OnAfterValidateGenJnlLineFields
- ServiceOrdOnAfterUpdateRefInvNo subscribes to Page "Service Order" OnActionUpdateRefInvNo
- ServiceInvOnAfterUpdateRefInvNo subscribes to Page "Service Invoice" OnActionUpdateRefInvNo
- ServiceCrMemoOnAfterUpdateRefInvNo subscribes to Page "Service Credit Memo" OnActionUpdateRefInvNo
- ServicePostOnAfterValidatePostingAndDocumentDate subscribes to Codeunit "Service-Post" OnAfterValidatePostingAndDocumentDate
- ServicePostOnAfterPostServiceDoc subscribes to Codeunit "Service-Post" OnAfterPostServiceDoc

## Procedures

- `VerifyReferenceNo(var RefInvNo: Record "Reference Invoice No.")`
- `UpdateReferenceInvoiceNoforVendor(var ReferenceInvoiceNo: Record "Reference Invoice No."; DocumentType: Enum "Purchase Document Type"; DocumentNo: Code[20])`
- `UpdateReferenceInvoiceNoforCustomer(var ReferenceInvoiceNo: Record "Reference Invoice No."; DocumentType: Enum "Sales Document Type"; DocumentNo: Code[20])`
- `UpdateReferenceInvoiceNoforCustomerSales(var ReferenceInvoiceNo: Record "Reference Invoice No."; DocumentType: Enum "Sales Document Type"; DocumentNo: Code[20]): Boolean`
- `UpdateReferenceInvoiceNoforCustomerService(var ReferenceInvoiceNo: Record "Reference Invoice No."; DocumentType: Enum "Sales Document Type"; DocumentNo: Code[20]): Boolean`
- `UpdateReferenceInvoiceforCustomerLedgerEntries(var ReferenceInvoiceNo: Record "Reference Invoice No.")`
- `VerifyReferenceNoJournals(var RefInvNo: Record "Reference Invoice No.")`
- `UpdateReferenceInvoiceNoforPurchJournals(var RefInvNo: Record "Reference Invoice No."; DocumentType: Enum "Gen. Journal Document Type"; DocumentNo: Code[20]; JournalTemplateName: Code[10]; JournalBatchName: Code[10])`
- `UpdateReferenceInvoiceNoforSalesJournals(var RefInvNo: Record "Reference Invoice No."; DocumentType: Enum "Gen. Journal Document Type"; DocumentNo: Code[20]; JournalTemplateName: Code[10]; JournalBatchName: Code[10])`
- `CheckGSTPurchCrMemoValidationReference(PurchaseHeader: Record "Purchase Header"; ReferenceInvoiceNo: Code[20])`
- `CheckGSTPurchCrMemoValidationInJournals(PurchaseHeader: Record "Purchase Header"; ReferenceInvoiceNo: Code[20])`
- `CheckGSTSalesCrMemoValidationReference(SalesHeader: Record "Sales Header"; ReferenceInvoiceNo: Code[20])`
- `CheckGSTSalesCrMemoValidationInJournals(SalesHeader: Record "Sales Header"; ReferenceInvoiceNo: Code[20])`
- `CheckRCMExemptDate(var PurchaseHeader: Record "Purchase Header"): Boolean`
- `CheckRCMExemptDateJournal(var GenJournalLine: Record "Gen. Journal Line"): Boolean`
- `UpdateReferenceInvoiceNoPurchHeader(var PurchaseHeader: Record "Purchase Header")`
- `UpdateReferenceInvoiceNoSalesHeader(var SalesHeader: Record "Sales Header")`
- `UpdateReferenceInvoiceNoGenJournal(var GenJnlLine: Record "Gen. Journal Line")`
- `UpdateReferenceInvoiceNoServiceHeader(var ServiceHeader: Record "Service Header")`

Plus 71 local procedures.

## Across versions

- Present in: BC29-30
- Changed (declaration) in: none

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "codeunit", object_name: "Reference Invoice No. Mgt.")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.

A IN country object, not part of W1: the default corpus does not have it; `bcatlas_list_countries` shows which countries the atlas has.
