Skip to main content

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):
    • accountHolder
    • iban
  • B2C contracts:
    • userAccount.firstName
    • userAccount.lastName
    • deliveryAddress.firstName
    • deliveryAddress.lastName
  • B2B contracts:
    • userAccount.businessName
    • deliveryAddress.businessName
    • contract.industry
    • contract.legalStructure
  • ChangeOfSupplier:
    • desiredTransitionDate
    • previousSelfCancelledDate
  • NewDeliveryLocation:
    • moveInDate
  • 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).