---
id: object/codeunit/431
type: object
title: Codeunit 431 "IC Outbox Export"
summary: Codeunit 431 "IC Outbox Export" in Base Application (Microsoft.Intercompany.Outbox). 8 public procedures, 12 events. Present since at least BC23, still in BC30, changed in BC26.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: "26"
  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: 7a6fa47042dc02e3d85f433d35658695ddebf63eceac1d9b1925d5025adf371b
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/Intercompany/Outbox/ICOutboxExport.Codeunit.al
    title: src/Layers/W1/BaseApp/Finance/Intercompany/Outbox/ICOutboxExport.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 431
name: IC Outbox Export
namespace: Microsoft.Intercompany.Outbox
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "26"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 24
  events: 12
  subscribers: 0
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 11
  called_by: 7
  implements: 0
---

# Codeunit 431 "IC Outbox Export"

> Codeunit 431 "IC Outbox Export" in Base Application (Microsoft.Intercompany.Outbox). 8 public procedures, 12 events. Present since at least BC23, still in BC30, changed in BC26.

Base Application · Microsoft.Intercompany.Outbox · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/Intercompany/Outbox/ICOutboxExport.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| TableNo | IC Outbox Transaction |

## Events published

- `OnBeforeExportOutboxTransaction(var ICOutboxTransaction: Record "IC Outbox Transaction"; OutStr: OutStream; var IsHandled: Boolean)` (integration): Integration event raised before exporting an outbox transaction to enable custom export logic.
- `OnBeforeReturnToInbox(var ICOutboxTransaction: Record "IC Outbox Transaction"; var IsHandled: Boolean)` (integration): Integration event raised before returning transactions to inbox to enable custom return logic.
- `OnBeforeRunOutboxTransactions(var ICOutboxTransaction: Record "IC Outbox Transaction"; var IsHandled: Boolean)` (integration): Integration event raised before running outbox transactions to enable custom processing logic.
- `OnBeforeSendToExternalPartner(var ICOutboxTransaction: Record "IC Outbox Transaction"; var IsHandled: Boolean)` (integration): Integration event raised before sending transactions to external partners to enable custom logic.
- `OnUpdateICStatusOnAfterLoopIteration(var ICOutboxTransaction: Record "IC Outbox Transaction")` (integration): Integration event raised after each loop iteration when updating IC status.
- `OnRunOutboxTransactionsOnBeforeSend(var ICOutboxTransaction: Record "IC Outbox Transaction")` (integration): Integration event raised before sending outbox transactions in the run process.
- `OnBeforeDownloadBatchFiles(var IsHandled: Boolean)` (integration): Integration event raised before downloading batch files to enable custom download logic.
- `OnRunOnBeforeConfirmGetResponseOrDefault(var IsHandled: Boolean; var ICOutboxTransaction: Record "IC Outbox Transaction")` (integration): Integration event raised before confirming automatic response handling for outbox transactions. Enables custom logic for transaction confirmation and response processing.
- `OnSendToExternalPartnerOnAfterDocWasSent(ICPartner: Record "IC Partner"; FileName: Text)` (integration): Integration event raised after successfully sending document to external partner. Enables custom post-send processing and partner communication tracking.
- `OnSendToInternalPartnerOnBeforeMoveICTransToPartnerCompany(var ICOutboxTransaction: Record "IC Outbox Transaction"; var IsHandled: Boolean)` (integration): Integration event raised before moving transactions to internal partner company. Enables custom validation and processing logic for internal company transfers.
- `OnBeforeProcessAutoSendOutboxTransactionNo(var ICOutboxTransactionNo: Integer; var IsHandled: Boolean)` (integration): Integration event raised before processing automatic send for specific outbox transaction. Enables custom logic for transaction number validation and send criteria.
- `OnSendToExternalPartnerOnBeforeICPartnerFindset(var ICPartner: Record "IC Partner")` (integration): Integration event raised before filtering and processing IC partner records for external sending. Enables custom partner filtering and selection logic.

## Procedures

- `RunOutboxTransactions(var ICOutboxTransaction: Record "IC Outbox Transaction")`
- `ProcessAutoSendOutboxTransactionNo(ICOutboxTransactionNo: Integer)`: Processes automatic sending of a specific outbox transaction by transaction number. Handles auto-send configuration validation and initiates transaction processing.
- `SendToExternalPartner(var ICOutboxTrans: Record "IC Outbox Transaction")`: Sends outbox transactions to external intercompany partners via file export or email. Handles partner-specific communication methods and file generation for transaction transmission.
- `DownloadBatchFiles(DownloadFileName: Text)`: Downloads batch processed files as a compressed archive with the specified filename.
- `SendToInternalPartner(var ICOutboxTrans: Record "IC Outbox Transaction")`: Sends outbox transactions to internal intercompany partners within the same database. Manages direct company-to-company transaction transfer for internal partner relationships.
- `ReturnToInbox(var ICOutboxTrans: Record "IC Outbox Transaction")`: Returns outbox transactions to the IC partner's inbox for reprocessing.
- `CancelTransaction(var ICOutboxTrans: Record "IC Outbox Transaction")`: Cancels outbox transactions by moving them to the handled outbox.
- `UpdateICStatus(var ICOutboxTransaction: Record "IC Outbox Transaction")`: Updates the intercompany status on source documents based on outbox transaction processing.

Plus 4 local procedures.

## Triggers

OnRun

## Relations

- runs on [Table 414 "IC Outbox Transaction"](../table/414.md)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 1380 "Batch Processing Mgt."](../codeunit/1380.md) (4 calls: `AddBatchProcessingArtifact → AddArtifact`, `AddBatchProcessingArtifact → IsActive`, `DownloadBatchFiles → GetArtifacts`, …)
- [Codeunit 425 "Data Compression"](../codeunit/425.md) (4 calls: `DownloadBatchFiles → AddEntry`, `DownloadBatchFiles → CloseZipArchive`, `DownloadBatchFiles → CreateZipArchive`, …)
- [Codeunit 8703 "Feature Telemetry"](../codeunit/8703.md) (4 calls: `OnRun → LogUptake`, `OnRun → LogUsage`, `RunOutboxTransactions → LogUptake`, …)
- [Codeunit 4100 "Temp Blob"](../codeunit/4100.md) (3 calls: `DownloadBatchFiles → CreateInStream`, `DownloadBatchFiles → CreateOutStream`, `DownloadBatchFiles → FromRecord`)
- [Codeunit 419 "File Management"](../codeunit/419.md) (3 calls: `AddBatchProcessingArtifact → BLOBImportFromServerFile`, `DownloadBatchFiles → DownloadFromStreamHandler`, `SendToExternalPartner → DownloadTempFile`)
- [Codeunit 427 "ICInboxOutboxMgt"](../codeunit/427.md) (3 calls: `CancelTransaction → MoveOutboxTransToHandledOutbox`, `SendToExternalPartner → MoveOutboxTransToHandledOutbox`, `SendToInternalPartner → MoveOutboxTransToHandledOutbox`)
- [Codeunit 428 "IC Mapping"](../codeunit/428.md) (2 calls: `OnRun → GetFeatureTelemetryName`, `RunOutboxTransactions → GetFeatureTelemetryName`)
- [Codeunit 19 "Gen. Jnl.-Post Preview"](../codeunit/19.md) (1 call: `SendToExternalPartner → IsActive`)
- [Codeunit 260 "Document-Mailing"](../codeunit/260.md) (1 call: `SendToExternalPartner → EnqueueEmailFile`)
- [Codeunit 27 "Confirm Management"](../codeunit/27.md) (1 call: `OnRun → GetResponseOrDefault`)
- [Codeunit 4030 "Client Type Management"](../codeunit/4030.md) (1 call: `IsWebClient → GetCurrentClientType`)

## Called by

- [Codeunit 790 "IC Inbox Outbox Subscribers"](../codeunit/790.md) (4 calls: `AutoSendOnInsertICOutboxPurchDocTransaction → ProcessAutoSendOutboxTransactionNo`, `AutoSendOnInsertICOutboxSalesCrMemoTransaction → ProcessAutoSendOutboxTransactionNo`, `AutoSendOnInsertICOutboxSalesDocTransaction → ProcessAutoSendOutboxTransactionNo`, …)
- [Codeunit 13 "Gen. Jnl.-Post Batch"](../codeunit/13.md) (2 calls: `ProcessICTransaction → ProcessAutoSendOutboxTransactionNo`, `ProcessLines → ProcessAutoSendOutboxTransactionNo`)
- [Codeunit 1371 "Sales Batch Post Mgt."](../codeunit/1371.md) (1 call: `OnBatchProcessOnBeforeResetBatchID → DownloadBatchFiles`)
- [Codeunit 1372 "Purchase Batch Post Mgt."](../codeunit/1372.md) (1 call: `OnBatchProcessOnBeforeResetBatchID → DownloadBatchFiles`)
- [Codeunit 1380 "Batch Processing Mgt."](../codeunit/1380.md) (1 call: `BatchProcessGenJournalLine → DownloadBatchFiles`)
- [Codeunit 80 "Sales-Post"](../codeunit/80.md) (1 call: `PostICGenJnl → ProcessAutoSendOutboxTransactionNo`)
- [Codeunit 90 "Purch.-Post"](../codeunit/90.md) (1 call: `PostICGenJnl → ProcessAutoSendOutboxTransactionNo`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC26

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). The call sections above are our own, per object, from the BC29 call graph. 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: "IC Outbox Export")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
