Skip to main content
Card class: Cross-ChannelCategory: Ecommerce Platform
The killer reconciliation card. Shows commerce-vs-S/4HANA Cloud gap broken down by reason, not just the dollar number.

At a glance

The killer reconciliation card: each missing dollar between commerce-platform total revenue and S/4HANA Cloud GL booked revenue, listed with originating order ID, SAP Sales Document number (if any), reason classification, and audit comment. The Finance Manager / SAP Functional Analyst’s daily worklist. The headline lives on Revenue Gap vs Commerce; this card is the per-order audit trail.
What it countsA row per commerce order in the period whose payment-cleared value does not match an S/4HANA Cloud Sales Document plus Billing Document of the same value within the same period. Each row tagged with reason: Pending Billing, Voided/Rejected, Credit Memo Refund, Unmapped Marketplace, Period Boundary Timing, FX Translation, EBRR Deferred Revenue, or Unknown.
Tax treatmentNet of tax on both sides.
ShippingBoth sides include shipping; mismatches drop to Unknown.
DiscountsBoth net of discount.
RefundsCounted as Credit Memo Refund.
Cancelled / voided ordersCounted as Voided / Rejected.
CurrencyGroup Currency translation via SAP TCURR rate type M; residual is FX Translation bucket.
Multi-Company-Code scopeAll connected CCs with mapped commerce platforms.
Time window30D
Alert trigger>5% gap unreconciled (Unknown-bucket fraction of commerce gross).
Rolesowner, finance

Calculation

Calculated automatically from your SAP data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

A US enterprise B2B distributor on S/4HANA Cloud. 30-day window 04 Apr 26 to 03 May 26. Commerce gross 22.56M,S/4GLbooked22.56M, S/4 GL booked 20.14M, gap $2.42M. Sample of 12 rows from the breakdown table (full table has 738 rows):
Commerce platformOrder IDOrder dateOrder netSAP Sales DocumentSAP Billing DocumentReasonComment
BigCommerce B2BBC-44982122 Apr 26$48,2005000098234(none)Pending BillingGoods issue 30 Apr 26; awaiting next billing-due-list run
BigCommerce B2BBC-44983323 Apr 26$32,4005000098267(none)Pending BillingGoods issue 02 May 26
Adobe CommerceAC-1283418 Apr 26$14,200(none)(none)Unmapped MarketplaceCustomer ACME-EU-12 not found in BP master
Adobe CommerceAC-1284819 Apr 26$18,600(none)(none)Unmapped MarketplaceSame ACME-EU-12 customer
Shopify PlusSP-9242125 Apr 26$4,80050000983989100000823Credit Memo RefundG2 Credit Memo posted 28 Apr 26, returned full order
BigCommerce B2BBC-44941212 Apr 26$2,400(none)(none)Voided / RejectedSales Document 5000097998 cancelled by customer; rejection reason 04
Shopify PlusSP-9251103 May 26 23:42$1,840(none)(none)Period Boundary TimingCreated in S/4 04 May 26 03:15 (next day)
BigCommerce B2BBC-44971220 Apr 26$94,00050000981989100000821EBRR Deferred Revenue12-month maintenance contract, 1/12 recognised
Adobe CommerceAC-1289128 Apr 26$1,42050000984659100000867FX TranslationCAD captured at spot rate 0.74; SAP at month-avg 0.7320
Shopify PlusSP-9243826 Apr 26$640(none)(none)UnknownNo audit trail; logged for investigation
BigCommerce B2BBC-44978821 Apr 26$14,20050000982129100000819(matched, not in gap)Reference row only
Shopify PlusSP-9238924 Apr 26$38450000983219100000826(matched, not in gap)Reference row only
Five things to notice:
  1. Pending Billing rows are easy. They will resolve when the next billing-due-list (VF04) runs. The Finance Manager checks the cadence and escalates if VF04 has not run for >7 days.
  2. Unmapped Marketplace rows are master-data work. ACME-EU-12 needs a Business Partner record (transaction BP) created with role FLCU01 customer. Once mapped, the integration retries and the Sales Documents flow.
  3. Voided / Rejected rows are correct as-is. A cancelled order should not become GL revenue. The card surfaces them so Finance can reconcile against the commerce-platform refund posting.
  4. Period Boundary Timing rows resolve next period. No action needed; just note them for the close.
  5. Unknown rows are the worklist. SP-92438 at $640 is small but the lack of audit trail is the concerning thing. The SAP Functional Analyst pivots to integration logs (SAP Integration Suite or whatever middleware connects commerce to S/4) to investigate.
Action playbook:
  • Daily during quarter-end close: SAP Functional Analyst clears the Unknown bucket. Goal: zero Unknown rows by month-close.
  • Weekly in normal operations: Finance Manager reviews Pending Billing for stuck cases (>14 days old) and chases Operations for VF04 runs.
  • Monthly: Master-data team clears Unmapped Marketplace cases and prevents recurrence by tightening the commerce-to-SAP customer-creation workflow.

Sibling cards merchants should reference together

CardWhy pair it with Revenue Gap, Detailed Breakdown
Revenue Gap vs CommerceThe headline that this card details.
Revenue Booked into GLThe SAP-side total.
Commerce Orders Without S/4HANA Cloud Sales DocumentThe Unmapped Marketplace bucket as its own card.
Open Sales Document ValueThe forward-looking pipeline; rows in Pending Billing here transition to Billed there.
Sales Document to Invoice Lead TimeVelocity that drives Pending Billing volume.
Credit Memo ValueThe G2 Credit Memo trend.

Reconciling against the vendor’s own dashboard

Where to look in S/4HANA Cloud’s own dashboard: S/4HANA Cloud has no native cross-platform reconciliation report; this card is uniquely a Vortex IQ surface. The closest manual exercise inside SAP is to export Sales Document and Billing Document lists for the period (transaction VA05 / VF05) and cross-reference manually against the commerce platform’s order export. That is a 4-to-8-hour manual job for a $20M-revenue merchant; this card runs it every 15 minutes. For drill-down to the SAP side of any row:
Manage Sales Documents Fiori app -> open the Sales Document number from the row Manage Billing Documents Fiori app -> open the Billing Document number Display Document transaction FB03 -> open the FI document for the GL view Manage Business Partner transaction BP -> for Unmapped Marketplace customers
Why our list may legitimately differ from a manual cross-reference:
ReasonDirectionWhy
Connector sync lagCard may show false Pending BillingLast 15 minutes of orders not yet in SAP.
Business Partner mapping conflictsCard may overstate UnmappedCustomer exists under a different BP role; matching logic needs tuning.
Tax engine recomputeCard may show false UnknownIf SAP DRC adjusts tax classification, the line totals shift; the card flags as Unknown until reconciled.
EBRR period treatmentCard categorises as EBRRManually-matched would split this across periods; the card identifies it cleanly.
Cross-connector reconciliation: This IS the reconciliation, by design. The card joins:
SourceRole
Shopify / BigCommerce / Adobe Commerce / SAP Commerce CloudCommerce gross orders
S/4HANA Cloud Sales Documents (I_SalesDocument)SAP order book
S/4HANA Cloud Billing Documents (I_BillingDocumentItem)SAP billing
S/4HANA Cloud Universal Journal (ACDOCA)SAP GL postings
Stripe / PayPal paymentsCash side, used for FX timing reconciliation

Known limitations / merchant FAQs

Should the Unknown bucket ever be zero? At month-end close, yes. The Finance Manager and SAP Functional Analyst clear it before quarter-end. During the period, having a few open Unknown rows is normal as integration cases work themselves through. Why does the same row sometimes change reason classification? Because the underlying state moves. A row classified Pending Billing when goods issue was posted but no Billing Document yet, becomes “matched, not in gap” once the next VF04 run creates the Billing Document. The card refreshes every 15 minutes. Can I export this table to Excel for audit? Yes. The full table exports to CSV / XLSX with the same columns. Ask Viq supports “export the gap breakdown for April 2026” as a one-shot action. How does the card handle multi-line orders that partially fulfil? Each commerce-order line maps to a Sales Document line. A 5-line order with 3 lines billed and 2 lines pending generates 2 Pending Billing rows in the breakdown. What is the rule for matching a commerce order to a SAP Sales Document? The integration writes the commerce order ID into the SAP Sales Document’s BSTKD (Customer Reference) field at creation. The card joins on that field. Mis-matched joins (e.g. a commerce order ID typed into wrong field) show as Unknown. Inter-company sales between Company Codes, do they appear? No. Inter-company billing flows are SAP-internal and have no commerce-platform side; the card scope is commerce-to-SAP only. What if my commerce platform isn’t connected to Vortex IQ? Then it is excluded from the card. The gap shown reflects only connected commerce platforms vs S/4. Connect all commerce surfaces for the full picture. Refunds processed via the commerce platform but not yet credit-memo’d in SAP? They show as Pending Billing (commerce-side refund pending SAP-side Credit Memo). Once the G2 Credit Memo posts, the row reclassifies as Credit Memo Refund. T-codes / Fiori apps for working the bucket?
  • Pending Billing: VF04 (run billing-due-list), VF03 (display Billing Document).
  • Unmapped: BP (business partner master), CMD_EI_API (master data integration logs).
  • Voided / Rejected: VA02 (change Sales Document to clear or confirm rejection).
  • Credit Memo: VF03 type G2.
  • Period Boundary: no action; reconciles next period.
  • FX Translation: configurable rate type in SAP TCURR.
  • EBRR Deferred: Run EBRR Recognition (Fiori app Run Revenue Recognition).
  • Unknown: integration log review (SAP Integration Suite or BTP Integration Cockpit).

Tracked live in Vortex IQ Nerve Centre

Revenue Gap, Detailed Breakdown is one of hundreds of KPI pulses Vortex IQ tracks across SAP and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.