---
id: object/codeunit/18391-in
type: object
title: Codeunit 18391 "GST Transfer Order Shipment" (IN)
summary: Codeunit 18391 "GST Transfer Order Shipment" (IN) in the IN country layer (Microsoft.Finance.GST.StockTransfer). 4 public procedures, 31 events, 12 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: 55959fb7523c4d02edfa38a72960927f956fa0ab8b41d614fb6f8637465e331f
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/IN/INGST/app/GSTStockTransfer/src/codeunit/GSTTransferOrderShipment.Codeunit.al
    title: src/Apps/IN/INGST/app/GSTStockTransfer/src/codeunit/GSTTransferOrderShipment.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: 18391
name: GST Transfer Order Shipment
namespace: Microsoft.Finance.GST.StockTransfer
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: 82
  events: 31
  subscribers: 12
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
---

# Codeunit 18391 "GST Transfer Order Shipment" (IN)

> Codeunit 18391 "GST Transfer Order Shipment" (IN) in the IN country layer (Microsoft.Finance.GST.StockTransfer). 4 public procedures, 31 events, 12 event subscribers. Introduced in BC29, still in BC30.

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

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

## Properties

| Property | Value |
|---|---|
| SingleInstance | True |

## Events published

- `OnBeforeUpdateGSTTrackingEntryFromTransferOrder(DocumentNo: Code[20]; ItemNo: Code[20]; DocumentLineNo: Integer; OrignalDocType: Enum "Original Doc Type"; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertGSTLedgerEntryTransfer(var GSTPostingBuffer: Record "GST Posting Buffer"; var TransferHeader: Record "Transfer Header"; NextTransactionNo: Integer; DocumentNo: Code[20]; SourceCode: Code[10]; DocTransferType: enum "Doc Transfer Type"; var IsHandled: Boolean)` (integration)
- `OnAfterUpdateOnBeforeInsertGSTLedgerEntryTransfer(GSTPostingBuffer: Record "GST Posting Buffer"; TransferHeader: Record "Transfer Header"; var GSTLedgerEntry: Record "GST Ledger Entry")` (integration)
- `OnBeforeInsertDetailedGSTLedgEntryTransfer(var TransferLine: Record "Transfer Line"; var TransferHeader: Record "Transfer Header"; DocumentNo: Code[20]; TransactionNo: Integer; DocTransferType: Enum "Doc Transfer Type"; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertDetailedGSTEntryInfoTransfer(DetailedGSTLedgerEntry: Record "Detailed GST Ledger Entry"; DetailedGSTEntryBuffer: Record "Detailed GST Entry Buffer"; var TransferHeader: Record "Transfer Header"; DocTransferType: Enum "Doc Transfer Type"; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertTransShptLineFillBuffer(var TransShptLine: Record "Transfer Shipment Line"; TransLine: Record "Transfer Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeGetInventoryPostingSetup(var TempGSTPostingBufferFinal: Record "GST Posting Buffer" temporary; var TransferHeader: Record "Transfer Header"; var TransferShipmentHeader: Record "Transfer Shipment Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeGetInvPostingSetupOnAfterFindTempTransferBuffer(var TempTransferBufferFinal: Record "Transfer Buffer" temporary; var TempGSTPostingBufferFinal: Record "GST Posting Buffer" temporary; var TransferHeader: Record "Transfer Header"; var TransferShipmentHeader: Record "Transfer Shipment Header"; var TransferLine: Record "Transfer Line"; var InventoryPostingSetup: Record "Inventory Posting Setup")` (integration)
- `OnBeforePostGeneralEntries(var TempTransferBufferFinal: Record "Transfer Buffer" temporary; var TransferShipmentHeader: Record "Transfer Shipment Header"; var TransferHeader: Record "Transfer Header"; var InventoryPostingSetup: Record "Inventory Posting Setup")` (integration)
- `OnBeforePostGeneralJnlLineForUnrealizedGainOrLoss(var GenJournalLine: Record "Gen. Journal Line"; TempTransferBufferFinal: Record "Transfer Buffer"; TransferShipmentHeader: Record "Transfer Shipment Header"; TransferHeader: Record "Transfer Header"; InventoryPostingSetup: Record "Inventory Posting Setup"; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeRunGenJnlPostLineForCharges(var GenJournalLine: Record "Gen. Journal Line"; TempTransferBufferFinal: Record "Transfer Buffer" temporary; TransferShipmentHeader: Record "Transfer Shipment Header"; TransferHeader: Record "Transfer Header"; InventoryPostingSetup: Record "Inventory Posting Setup")` (integration)
- `OnBeforePostGeneralJnlLineForExcise(var GenJournalLine: Record "Gen. Journal Line"; TempTransferBufferFinal: Record "Transfer Buffer" temporary; TransferShipmentHeader: Record "Transfer Shipment Header"; TransferHeader: Record "Transfer Header"; InventoryPostingSetup: Record "Inventory Posting Setup")` (integration)
- `OnBeforePostGLEntries(var TempTransferBufferFinal: Record "Transfer Buffer" temporary; var TempGSTPostingBufferFinal: Record "GST Posting Buffer" temporary; var TransferHeader: Record "Transfer Header"; var TransferShipmentHeader: Record "Transfer Shipment Header"; var TransferLine: Record "Transfer Line"; var InventoryPostingSetup: Record "Inventory Posting Setup"; var IsHandled: Boolean)` (integration)
- `OnBeforePostTransLineToGenJnlLine(var GenJournalLine: Record "Gen. Journal Line"; var TempGSTPostingBufferFinal: Record "GST Posting Buffer" temporary; var TempTransferBufferStage: Record "Transfer Buffer" temporary; TransferHeader: Record "Transfer Header"; TransferShptNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeRunGenJnlPostTransferLine(var GenJournalLine: Record "Gen. Journal Line"; TempGSTPostingBufferFinal: Record "GST Posting Buffer" temporary; TempTransferBufferStage: Record "Transfer Buffer" temporary; TransferHeader: Record "Transfer Header"; TransferShptNo: Code[20])` (integration)
- `OnAfterRunGenJnlPostLineOnBeforeInsertGSTLedgerEntryTransfer(var GenJournalLine: Record "Gen. Journal Line"; TempGSTPostingBufferFinal: Record "GST Posting Buffer" temporary; TransferHeader: Record "Transfer Header"; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line")` (integration)
- `OnFindTempGSTPostingBufferFinalForTransfer(var TempGSTPostingBufferFinal: Record "GST Posting Buffer" temporary; TempTransferBufferFinal: Record "Transfer Buffer" temporary; TransferHeader: Record "Transfer Header"; TransferShipmentHeader: Record "Transfer Shipment Header")` (integration)
- `OnFindTempTransferBufferFinal(var TempTransferBufferFinal: Record "Transfer Buffer" temporary; TempGSTPostingBufferFinal: Record "GST Posting Buffer" temporary; TransferHeader: Record "Transfer Header"; TransferShipmentHeader: Record "Transfer Shipment Header")` (integration)
- `OnFindTransferLineInTempTransferBufferFinalLoop(var TransferLine: Record "Transfer Line"; TempTransferBufferFinal: Record "Transfer Buffer" temporary; TempGSTPostingBufferFinal: Record "GST Posting Buffer" temporary; TransferHeader: Record "Transfer Header"; TransferShipmentHeader: Record "Transfer Shipment Header")` (integration)
- `OnBeforeValidateTransferLineForAccountSetup(TransferHeader: Record "Transfer Header"; TransferShipmentHeader: Record "Transfer Shipment Header"; TempTransferBufferFinal: Record "Transfer Buffer" temporary; TempGSTPostingBufferFinal: Record "GST Posting Buffer" temporary; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertDetailedGSTEntryInfoUndoTransferShipment(OldDetailedGSTLedgerEntry: Record "Detailed GST Ledger Entry"; NewDetailedGSTLedgerEntry: Record "Detailed GST Ledger Entry"; TransferShipmentLineOld: Record "Transfer Shipment Line"; TransferShipmentLineNew: Record "Transfer Shipment Line"; IsHandled: Boolean)` (integration)
- `OnBeforeInsertNewDetailedGSTEntryInfoUndoTransferShipment(var NewDetailedGSTLedgerEntryInfo: Record "Detailed GST Ledger Entry Info"; OldDetailedGSTLedgerEntryInfo: Record "Detailed GST Ledger Entry Info"; NewDetailedGSTLedgerEntry: Record "Detailed GST Ledger Entry"; OldDetailedGSTLedgerEntry: Record "Detailed GST Ledger Entry"; TransferShipmentLineNew: Record "Transfer Shipment Line"; TransferShipmentLineOld: Record "Transfer Shipment Line")` (integration)
- `OnBeforeFillDetailedGSTLedgerEntriesUndoTransferShipment(var TransferShipmentLineOld: Record "Transfer Shipment Line"; NewDocLineNo: Integer; IsHandled: Boolean)` (integration)
- `OnFindOldDetailedGSTLedgerEntry(var OldDetailedGSTLedgerEntry: Record "Detailed GST Ledger Entry"; TransferShipmentLineOld: Record "Transfer Shipment Line")` (integration)
- `OnBeforeInsertNewDetailedGSTLedgerEntry(var NewDetailedGSTLedgerEntry: Record "Detailed GST Ledger Entry"; OldDetailedGSTLedgerEntry: Record "Detailed GST Ledger Entry"; TransferShipmentLineNew: Record "Transfer Shipment Line"; TransferShipmentLineOld: Record "Transfer Shipment Line")` (integration)
- `OnBeforeInsertGSTLedgerEntryTransferUndoShipment(NewDetailedGSTLedgerEntry: Record "Detailed GST Ledger Entry"; TransferShipmentLineNew: Record "Transfer Shipment Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertNewGSTLedgerEntryTransferUndoShipment(var GSTLedgerEntry: Record "GST Ledger Entry"; NewDetailedGSTLedgerEntry: Record "Detailed GST Ledger Entry"; TransferShipmentLineNew: Record "Transfer Shipment Line")` (integration)
- `OnBeforePostUndoTransShipmentLineToGenJnlLine(var GenJournalLine: Record "Gen. Journal Line"; NewDetailedGSTLedgerEntry: Record "Detailed GST Ledger Entry"; TransferShipmentLineNew: Record "Transfer Shipment Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeRunGenJnlPostUndoTransShipmentLine(var GenJournalLine: Record "Gen. Journal Line"; NewDetailedGSTLedgerEntry: Record "Detailed GST Ledger Entry"; TransferShipmentLineNew: Record "Transfer Shipment Line")` (integration)
- `OnBeforePostGeneralEntriesUndoShipment(var GenJournalLine: Record "Gen. Journal Line"; NewDetailedGSTLedgerEntry: Record "Detailed GST Ledger Entry"; TransferShipmentLineNew: Record "Transfer Shipment Line"; var IsHandled: Boolean)` (integration)
- `OnBeforePostGLEntriesUndoTransferShipment(var TransferShipmentLine: Record "Transfer Shipment Line"; var CorrectionDocLineNos: List of [Integer]; var IsHandled: Boolean)` (integration)

## Event subscriptions

- CopyInfotoShipmentLine subscribes to Table "Transfer Shipment Line" OnAfterCopyFromTransferLine
- GetPostingNoSeries subscribes to Codeunit "TransferOrder-Post Shipment" OnBeforeGenNextNo
- OnBeforePostShipment subscribes to Codeunit "TransferOrder-Post Shipment" OnBeforeTransferOrderPostShipment
- InsertTransferBuffer subscribes to Codeunit "TransferOrder-Post Shipment" OnAfterInsertTransShptLine
- InsertDetailedGSTEntry subscribes to Codeunit "TransferOrder-Post Shipment" OnAfterInsertTransShptLine
- PostGLEntries subscribes to Codeunit "TransferOrder-Post Shipment" OnRunOnBeforeCommit
- FillGSTLedgerBuffer subscribes to Codeunit "TransferOrder-Post Shipment" OnBeforeTransferOrderPostShipment
- CopyInfointoTransShptHeader subscribes to Table "Transfer Shipment Header" OnAfterCopyFromTransferHeader
- FillBuffer subscribes to Codeunit "TransferOrder-Post Shipment" OnBeforeInsertTransShptLine
- GetTranfsrePrice subscribes to Codeunit "Item Jnl.-Post Line" OnPostItemOnBeforeUpdateUnitCost
- FillDetailedGSTLedgerEntriesUndoTransferShipment subscribes to Codeunit "Undo Transfer Shipment" OnAfterInsertNewShipmentLine
- OnCodeOnAfterUndoTransferShpt subscribes to Codeunit "Undo Transfer Shipment" OnAfterCode

## Procedures

- `UpdateGSTTrackingEntryFromTransferOrder(DocumentNo: Code[20]; ItemNo: Code[20]; DocumentLineNo: Integer; OrignalDocType: Enum "Original Doc Type")`
- `LoopPostingNoSeries(var PostingNoSeries: Record "Posting No. Series"; Record: Variant; PostingDocumentType: Enum "Posting Document Type"): Code[20]`
- `InsertGSTLedgerEntryTransfer(GSTPostingBuffer: Record "GST Posting Buffer"; TransferHeader: Record "Transfer Header"; NextTransactionNo: Integer; DocumentNo: Code[20]; SourceCode: Code[10]; DocTransferType: enum "Doc Transfer Type")`
- `InsertDetailedGSTLedgEntryTransfer(var TransferLine: Record "Transfer Line"; TransferHeader: Record "Transfer Header"; DocumentNo: Code[20]; TransactionNo: Integer; DocTransferType: Enum "Doc Transfer Type")`

Plus 35 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: "GST Transfer Order Shipment")`, 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.
