---
id: object/codeunit/30476-mx
type: object
title: Codeunit 30476 "Shpfy TMA Notify" (MX)
summary: Codeunit 30476 "Shpfy TMA Notify" (MX) in the MX country layer (Microsoft.Integration.Shopify). 10 public procedures. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - codeunit
  - mx 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: 0ffb10b97ca0dd609174a70051e73ba07275a39254dfbde17de94befeadb3b53
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/NA/ShopifyNA/app/src/Tax%20Matching%20Agent/Codeunits/ShpfyTMANotify.Codeunit.al
    title: src/Apps/NA/ShopifyNA/app/src/Tax Matching Agent/Codeunits/ShpfyTMANotify.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/mx
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 30476
name: Shpfy TMA Notify
namespace: Microsoft.Integration.Shopify
app: ShopifyNA
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: MX
counts:
  fields: 0
  procedures: 14
  events: 0
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
---

# Codeunit 30476 "Shpfy TMA Notify" (MX)

> Codeunit 30476 "Shpfy TMA Notify" (MX) in the MX country layer (Microsoft.Integration.Shopify). 10 public procedures. Introduced in BC29, still in BC30.

MX country layer · Microsoft.Integration.Shopify · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/NA/ShopifyNA/app/src/Tax%20Matching%20Agent/Codeunits/ShpfyTMANotify.Codeunit.al) · facts from BC29

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

## Properties

| Property | Value |
|---|---|
| Access | Internal |

## Procedures

- `SendForCurrentSalesHeader(SalesHeader: Record "Sales Header")`: Fires the review prompt on the Sales Order when Shopify Tax Matching populated its tax fields and the originating Shopify order has not yet been reviewed. Stateless — whether to prompt comes from the order's Tax Match Reviewed flag plus the per-user My Notifications toggle, so no per-user row is sto...
- `OpenShopifyOrder(Notif: Notification)`
- `SendOrderReviewNotification(OrderHeader: Record "Shpfy Order Header")`: Sends the actionable review prompt on the Shopify order itself. The order page calls this once per order per page session. Clicking Review opens the Tax Match Review page.
- `OpenReviewForOrder(Notif: Notification)`
- `DisableOrderNotifForUser(Notif: Notification)`
- `RunReviewForSalesHeader(SalesHeader: Record "Sales Header"): Boolean` (internal): Opens the Tax Match Review page for the Shopify order that produced the given Sales Header (resolved via Shpfy Order Header."Sales Order No."). Returns false when no such order exists, so callers can fall back to another surface.
- `RunReviewPage(var OrderHeader: Record "Shpfy Order Header")` (internal): The single entry point that opens the Tax Match Review page for a Shopify order. All review surfaces (order-page action, order-page notification, Sales Order action, Sales Order notification) resolve their Shpfy Order Header and route through here, so the page is opened one consistent way.
- `MarkReviewed(Notif: Notification)`
- `UndoApproval(var OrderHeader: Record "Shpfy Order Header")` (internal): Reverses an approval: clears the order's Tax Match Reviewed flag so the order is held for review again (it is created only once re-approved), and un-verifies the agent-created Tax Jurisdictions the order used so they return to their provisional state. Exposed as internal so the review page's Undo Ap...
- `DisableForUser(Notif: Notification)`

Plus 4 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: "Shpfy TMA Notify")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.

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