Understands Beckn 2.0.0 LTS core schema and generates complete, valid sample payloads for all API actions given a use case description. Detects when domain-specific custom schemas are needed and maps them correctly. Covers retail, food & beverage, grocery, EV charging, energy (P2P trading, demand flex), and data marketplace (DDM) domains.
Installation
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Understands Beckn 2.0.0 LTS core schema and generates complete, valid sample payloads for all API actions given a use case description. Detects when domain-specific custom schemas are needed and maps them correctly. Covers retail, food & beverage, grocery, EV charging, energy (P2P trading, demand flex), and data marketplace (DDM) domains.
CRITICAL: DEG repo examples use an older EOS schema format with snake_case context fields
(bap_id, transaction_id) and message.order. Those formats are INVALID in v2.0.0 LTS.
Always use the v2.0.0 LTS spec structure with camelCase context fields.
All context fields are camelCase — never bap_id, transaction_id etc.
bppId/bppUri absent only on discover
transactionId same across entire discover→confirm flow
messageId new per request; callback echoes same messageId
No domain field — domain identity goes in networkId or catalog @context
@context / @type rule — CRITICAL
@context and @type belong ONLY on *Attributes extension objects and the top-level Contract.
Core Beckn schema objects (Descriptor, Location, Catalog, Resource, Offer, Commitment,
Consideration, Performance, Participant, Entitlement) are already defined by beckn.yaml
and do NOT need @context/@type inline in the payload.
Context fields camelCase (bapId not bap_id, messageId not message_id)
No domain key in context
version: "2.0.0" present
Contract has top-level @context: "https://schema.beckn.io/Contract/v2.0" and @type: "beckn:Contract"
@context/@type ONLY on *Attributes objects and the top-level Contract — NOT on Descriptor, Location, Consideration, Commitment, Performance, Participant, Resource, Offer, Catalog, Entitlement
Catalog uses resources[] not items[]
Contract uses performance[] not fulfillments[]
Participants use direct props (id, displayName, telephone, email) — no participantAttributes wrapper
Consideration components[] has type/value/currency/description (not old breakup[])
Status code on on_confirm is ACTIVE (not CONFIRMED)
Step 6 — Custom schema detection
Ask yourself:
Food/beverage prepared item? → beckn:FnBItem in resourceAttributes + commitmentAttributes; beckn:FnBPriceSpecification in considerationAttributes
F&B customizable offer? → beckn:FnBOffer with customization.groups[] in offerAttributes
F&B/retail delivery? → beckn:HyperlocalDelivery in performanceAttributes
Grocery item? → GroceryItem schema in resourceAttributes
EV charging station? → EvChargingService in resourceAttributes; EvChargingOffer in offerAttributes; EvChargingSession in performanceAttributes
P2P energy trade? → EnergyResource in resourceAttributes; EnergyTradeOffer (with BecknTimeSeries) in offerAttributes; EnergyCustomer direct props on Participant
Demand flex event? → DemandFlexNeed in resourceAttributes; DemandFlexBuyOffer in offerAttributes
Dataset/data exchange? → DatasetItem in resourceAttributes; DatasetFulfillment in performanceAttributes
New domain? → First check https://schema.beckn.io for existing schemas. Ask the user which domain/schema set to search. Only propose a new schema after confirming no existing one fits.