---
type: event
title: order-placed
description: Published when a charge succeeds and an order becomes real; the async contract between payments and everything downstream.
tags: [event]
topic: orders.placed.v1
timestamp: {{DATE}}
---
<!-- ✂ docujoint template sample — replace with your own content, then delete this comment. -->
# order-placed

## Purpose
The moment an order exists, announced once. Consumers must tolerate
duplicates (the producer guarantees at-least-once). The payload references
the [orders](</Data/main/Tables/orders.md>) row, never embeds it fully.

## Message
| Field | Type | Purpose |
|-------|------|---------|
| order_id | string | Primary key of the order row |
| buyer_id | string | Who placed it |
| total_cents | int | Charged amount, in cents |
| placed_at | timestamp | When the charge succeeded |

## Participants
| Participant | Role | Notes |
|-------------|------|-------|
| [Payments Service](</Services/Payments Service.md>) | producer | publishes after a successful charge |
| [Storefront](</Apps/Storefront/Storefront.md>) | consumer | invalidates cart, shows confirmation |

## Open questions
