Overview
This document outlines the mandatory and optional fields for the POST /orders endpoint, including conditional requirements based on contract type and reason.
Field Requirement Levels
1. Top-Level Fields
2. User Account (userAccount)
3. Contract (contract)
3.1 Contract Top-Level
3.2 Delivery Address (contract.deliveryAddress)
3.3 Billing Address (contract.billingAddress)
3.4 Bank Details (contract.bankDetails)
If bank transfer (Überweisung) is selected as the payment method, then the ´bankDetails´ object should be null
4. Delivery Details (contract.deliveryDetails)
4.1 Meter & Location Identifiers
4.2 Contract Reason & Dates
Conditional Fields Based on contractReason:
If contractReason = ChangeOfSupplier (Supplier Switch)
If contractReason = NewDeliveryLocation (Move-In)
4.3 Previous Supplier & Consumption
4.4 Capabilities (contract.deliveryDetails.capabilities)
5. Agreements (contract.agreements)
Quick Reference: Contract Reason Decision Tree
B2C vs B2B Decision Tree
Direct Debit vs Bank Transfer Decision Tree
Validation Summary
Always Required (All Scenarios)
tariffKey
userAccount.emailAddress
contract.type
contract.deliveryAddress (full address: street, house number, city, postcode, country)
contract.bankDetails.hasAcceptedDirectDebit
contract.deliveryDetails.meterNumber
contract.deliveryDetails.previousSupplierCode
contract.deliveryDetails.previousAnnualConsumptionKwh
contract.deliveryDetails.capabilities (all three flags)
contract.agreements (all three must be true)
Conditionally Required
- Bank details (if direct debit accepted):
- B2C contracts:
userAccount.firstName
userAccount.lastName
deliveryAddress.firstName
deliveryAddress.lastName
- B2B contracts:
userAccount.businessName
deliveryAddress.businessName
contract.industry
contract.legalStructure
- ChangeOfSupplier:
desiredTransitionDate
previousSelfCancelledDate
- NewDeliveryLocation:
Recommended (Optional but Helpful)
contract.deliveryDetails.maLoIdentifier - Can prevent delays due to invalid addresses or meter numbers
Example Payloads
Example 1: B2C Supplier Change
Example 2: B2B Move-In
Common Validation Errors
Questions or Concerns?
Feel free to speak with our Integration Management Team or alternatively, ask our built-in AI assistant, Rabotini 🤖 (several languages supported).