Create new order
Create a new order
curl --request POST \
--url https://api.rabot-charge.de/partner/v1/orders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tariffKey": "RabotSmart",
"offerDate": "2025-08-22",
"userAccount": {
"emailAddress": "j.doe@example.tld",
"phoneNumber": "+491234567890",
"password": "SomeExamplePassword987.",
"firstName": "Max",
"lastName": "Mustermann",
"businessName": "<string>",
"dateOfBirth": "2023-12-25"
},
"contract": {
"externalId": "urn:acme:contract:ffa98ecb-f28c-442d-b52e-7ffdc97ba676",
"salesPersonId": "SALESPERSON123",
"type": "Personal",
"deliveryAddress": {
"title": "Dr.",
"firstName": "Thomas",
"lastName": "Mustermann",
"businessName": null,
"extension": null,
"streetName": "Grüner Weg",
"houseNumber": "42",
"city": "Berlin",
"postCode": "14109",
"countryCode": "DE"
},
"billingAddress": null,
"bankDetails": {
"accountHolder": "Thomas Heinrich Mustermann",
"iban": "DE89370400440532013000",
"bic": "DEUTDEFF",
"bankName": "Deutsche Bank",
"hasAcceptedDirectDebit": true
},
"contractReason": "NewDeliveryLocation",
"agreements": {
"termsAndConditions": true,
"privacyPolicy": true,
"revocationPolicy": true
},
"transactionDateTime": "2024-04-01 00:00:00",
"industry": "ElectricalEquipment",
"legalStructure": "GmbH"
},
"campaignCode": "<string>"
}
'import requests
url = "https://api.rabot-charge.de/partner/v1/orders"
payload = {
"tariffKey": "RabotSmart",
"offerDate": "2025-08-22",
"userAccount": {
"emailAddress": "j.doe@example.tld",
"phoneNumber": "+491234567890",
"password": "SomeExamplePassword987.",
"firstName": "Max",
"lastName": "Mustermann",
"businessName": "<string>",
"dateOfBirth": "2023-12-25"
},
"contract": {
"externalId": "urn:acme:contract:ffa98ecb-f28c-442d-b52e-7ffdc97ba676",
"salesPersonId": "SALESPERSON123",
"type": "Personal",
"deliveryAddress": {
"title": "Dr.",
"firstName": "Thomas",
"lastName": "Mustermann",
"businessName": None,
"extension": None,
"streetName": "Grüner Weg",
"houseNumber": "42",
"city": "Berlin",
"postCode": "14109",
"countryCode": "DE"
},
"billingAddress": None,
"bankDetails": {
"accountHolder": "Thomas Heinrich Mustermann",
"iban": "DE89370400440532013000",
"bic": "DEUTDEFF",
"bankName": "Deutsche Bank",
"hasAcceptedDirectDebit": True
},
"contractReason": "NewDeliveryLocation",
"agreements": {
"termsAndConditions": True,
"privacyPolicy": True,
"revocationPolicy": True
},
"transactionDateTime": "2024-04-01 00:00:00",
"industry": "ElectricalEquipment",
"legalStructure": "GmbH"
},
"campaignCode": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
tariffKey: 'RabotSmart',
offerDate: '2025-08-22',
userAccount: {
emailAddress: 'j.doe@example.tld',
phoneNumber: '+491234567890',
password: 'SomeExamplePassword987.',
firstName: 'Max',
lastName: 'Mustermann',
businessName: '<string>',
dateOfBirth: '2023-12-25'
},
contract: {
externalId: 'urn:acme:contract:ffa98ecb-f28c-442d-b52e-7ffdc97ba676',
salesPersonId: 'SALESPERSON123',
type: 'Personal',
deliveryAddress: {
title: 'Dr.',
firstName: 'Thomas',
lastName: 'Mustermann',
businessName: null,
extension: null,
streetName: 'Grüner Weg',
houseNumber: '42',
city: 'Berlin',
postCode: '14109',
countryCode: 'DE'
},
billingAddress: null,
bankDetails: {
accountHolder: 'Thomas Heinrich Mustermann',
iban: 'DE89370400440532013000',
bic: 'DEUTDEFF',
bankName: 'Deutsche Bank',
hasAcceptedDirectDebit: true
},
contractReason: 'NewDeliveryLocation',
agreements: {termsAndConditions: true, privacyPolicy: true, revocationPolicy: true},
transactionDateTime: '2024-04-01 00:00:00',
industry: 'ElectricalEquipment',
legalStructure: 'GmbH'
},
campaignCode: '<string>'
})
};
fetch('https://api.rabot-charge.de/partner/v1/orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.rabot-charge.de/partner/v1/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tariffKey\": \"RabotSmart\",\n \"offerDate\": \"2025-08-22\",\n \"userAccount\": {\n \"emailAddress\": \"j.doe@example.tld\",\n \"phoneNumber\": \"+491234567890\",\n \"password\": \"SomeExamplePassword987.\",\n \"firstName\": \"Max\",\n \"lastName\": \"Mustermann\",\n \"businessName\": \"<string>\",\n \"dateOfBirth\": \"2023-12-25\"\n },\n \"contract\": {\n \"externalId\": \"urn:acme:contract:ffa98ecb-f28c-442d-b52e-7ffdc97ba676\",\n \"salesPersonId\": \"SALESPERSON123\",\n \"type\": \"Personal\",\n \"deliveryAddress\": {\n \"title\": \"Dr.\",\n \"firstName\": \"Thomas\",\n \"lastName\": \"Mustermann\",\n \"businessName\": null,\n \"extension\": null,\n \"streetName\": \"Grüner Weg\",\n \"houseNumber\": \"42\",\n \"city\": \"Berlin\",\n \"postCode\": \"14109\",\n \"countryCode\": \"DE\"\n },\n \"billingAddress\": null,\n \"bankDetails\": {\n \"accountHolder\": \"Thomas Heinrich Mustermann\",\n \"iban\": \"DE89370400440532013000\",\n \"bic\": \"DEUTDEFF\",\n \"bankName\": \"Deutsche Bank\",\n \"hasAcceptedDirectDebit\": true\n },\n \"contractReason\": \"NewDeliveryLocation\",\n \"agreements\": {\n \"termsAndConditions\": true,\n \"privacyPolicy\": true,\n \"revocationPolicy\": true\n },\n \"transactionDateTime\": \"2024-04-01 00:00:00\",\n \"industry\": \"ElectricalEquipment\",\n \"legalStructure\": \"GmbH\"\n },\n \"campaignCode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"customerNumber": "234567890",
"contractNumber": "345678901",
"messages": [
{
"type": "LocationIssue",
"message": "<string>"
}
]
}Required input
The following information is mandatory to create an order:General information
General information
- a valid
tariffKey(see list tariffs) - customer information in
useraccount:firstNameandlastNamefor private customers,businessNamefor business customers.- a validated email address of the customer
- the
deliveryAddressobject withfirstNameandlastNamefor private customers,businessNamefor business customers.- complete postal address of the delivery location
bankDetailsneed to be complete withaccountHolder,iban,bicandbankNamefor SEPA. SetbankDetails: nullfor payment by invoicedeliveryDetailshas to filled withmaLoIdentifierormeterNumberof the delivery point- the BDEW code of the previous supplier in
previousSupplierCode
Use case: new delivery location
Use case: new delivery location
contractReasonhas to be set toNewDeliveryLocationdeliveryDetailshas to filled withmoveInDateset to the date the customer will move into the new location. This will be used as desired start date for the contractpreviousAnnualConsumptionhas to be filled and set to the expected annual energy consumption.
Use case: change of supplier
Use case: change of supplier
contractReasonhas to be set toChangeOfSupplier- The name in
deliveryAddresshas to match with the contract holder of the previous supply contract deliveryDetailshas to filled withpreviousAnnualConsumptionhas to be filled and set to the annual energy consumption as reported by the previous supplier- If the customer has already cancelled the contract with the previous supplier
previousSelfCancelledDatehas to be filled. This will be used as desired start date for the new contract
- If the customer wants Rabot to take care of cancelling the contract with the previous supplier:
desiredTransitionDatehas to be filled
create:orders scope.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
If arbitrary orders can be created, partner token of partner
Body
Request data object
Information about a new order to be created
Tariff key of the tariff to be used
"RabotSmart"
Date, for which the offer was given. Uses today as default, if not provided.
"2025-08-22"
Information about user account, that should be created and bound with the tariff. If an account for the same user (identified by the email address) already exists, the contract is linked to the existing user account instead.
Hide child attributes
Hide child attributes
E-mail address of the account. This is used for email communication (e.g. when sending the order confirmation), and also serves as the login name for the mobile app.
"j.doe@example.tld"
Phone number of the account holder
"+491234567890"
Password in plain text. If no password is provided, a random password is generated, and the user will have to use the forget password flow to define a new password.
"SomeExamplePassword987."
First name of the account holder
"Max"
Last name of the account holder
"Mustermann"
Company name if this is a business account
Gender of the account holder
Male, Female, Other Date of birth of the account holder
Information about the contract, that should be created for this order
Hide child attributes
Hide child attributes
External identifier of contract created from an external system.
"urn:acme:contract:ffa98ecb-f28c-442d-b52e-7ffdc97ba676"
Identifier of the sales person associated with the contract.
"SALESPERSON123"
Type of the contract.
Private, Business "Personal"
Delivery address of the contract.
Hide child attributes
Hide child attributes
Academic title or NULL if none
"Dr."
First name or NULL if business address
"Thomas"
Last name or NULL if business address
"Mustermann"
Business name in case of business address or NULL if person
null
Gender of the address holder
Male, Female, Other Address extension
null
Street name
"Grüner Weg"
House number or NULL if none
"42"
Name of the city
"Berlin"
Postcode in valid format
"14109"
ISO 3166 A2 code of the country
"DE"
Billing address of the contract.
Hide child attributes
Hide child attributes
Academic title or NULL if none
"Dr."
First name or NULL if business address
"Thomas"
Last name or NULL if business address
"Mustermann"
Business name in case of business address or NULL if person
null
Gender of the address holder
Male, Female, Other Address extension
null
Street name
"Grüner Weg"
House number or NULL if none
"42"
Name of the city
"Berlin"
Postcode in valid format
"14109"
ISO 3166 A2 code of the country
"DE"
null
Bank details of the contract or NULL, when invoice pays due.
Hide child attributes
Hide child attributes
Name of the account holder. When used to create an order, if the value is not provided, the name of the customer from billing address (or delivery address, when billing address is not provided) will be used.
"Thomas Heinrich Mustermann"
IBAN of the account.
"DE89370400440532013000"
BIC of the account.
"DEUTDEFF"
Name of the bank.
"Deutsche Bank"
Flags, if the direct debit has been accepted.
true
Reason, why the contract was created.
NewDeliveryLocation, ChangeOfSupplier "NewDeliveryLocation"
Information about the point of delivery.
Hide child attributes
Hide child attributes
Previous annual consumption in kWh.
2600
Identification number of the metering device bound to the contract.
"123456789"
Market location identifier; will be used when provided, otherwise it will be retrieved from MaKo service.
"99987999749"
Metering location identifier; will be used when provided, otherwise it will be retrieved from MaKo service.
"DE99911149565001246597500M01ID018"
Date of the desired transition to a new supplier.
"2024-05-01"
Date when the customer moves in to a location of delivery point, if applicable.
null
Date of previous contract self-cancellation, if applicable.
"2024-04-22"
BDEW code of previous supplier, or NULL if none.
"9979250000006"
Optional 13-digit BDEW code of the grid operator (DSO) serving this delivery point. When provided, tariff adjustments are resolved by BDEW code + zip code first, and the order is rejected if no BDEW-level match exists for the zip code. Leave unset to resolve by zip code as before. Distinct from Rabot.Partner.WebApi.Api.V1.DataObjects.DeliveryDetailsDto.PreviousSupplierCode (the previous supplier's BDEW code).
"9903176000004"
Capabilities of the delivery point.
Hide child attributes
Hide child attributes
Flag, indicating if the contract holder has an electric vehicle.
false
Flag, indicating if the contract holder has a smart meter.
true
Flag, indicating if the contract holder has a heat pump.
true
Contract agreements.
Hide child attributes
Hide child attributes
Flags, whether the terms and conditions have been accepted.
true
Flags, whether the privacy policy has been accepted.
true
Flags, whether the revocation policy has been accepted.
true
Date and time of the transaction that created this contract. If not provided, current date and time is used.
"2024-04-01 00:00:00"
Represents the industry category associated with the contract, indicating the field of business or commercial activity.
None, AgricultureForestryLivestockFarmingAndFisheries, ChemicalAndPlasticProducts, ChurchesAndChurchInstitutions, Construction, DataProcessing, EducationAndTeaching, ElectricalEquipment, ElectronicAndOpticalProducts, FurnitureAndWoodworking, Gastronomy, GlassAndCeramicProducts, HealthAndSocialServices, Hospitality, MechanicalEngineering, MediaAndCommunication, MetalProductionAndProcessing, MineralOilsAndFuels, Mining, MotorVehicles, PaperGoods, PharmaceuticalProducts, PrintingAndReproduction, PublicAdministration, RealEstateAndHousing, RegisteredAssociations, Retail, ServicesConsultingTechnical, ServicesFinanceInsuranceLegal, ServicesOther, SportAndFitness, TextilesClothingLeatherGoods, Tradework, TransportShippingAndWarehousing, TravelAndTourism, WasteEnvironmentalAndWaterManagement, Wholesale "ElectricalEquipment"
Legal structure of the organization or entity associated with the contract.
"GmbH"
Optional campaign code, if campaign is to be used
Response
OK
Customer number of created customer
"234567890"
Number of newly created contract
"345678901"
Non-fatal advisory messages about the order (e.g. a supplied BDEW code that could not be honoured, so pricing fell back to address-based resolution). Omitted when there are none.
Was this page helpful?
curl --request POST \
--url https://api.rabot-charge.de/partner/v1/orders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tariffKey": "RabotSmart",
"offerDate": "2025-08-22",
"userAccount": {
"emailAddress": "j.doe@example.tld",
"phoneNumber": "+491234567890",
"password": "SomeExamplePassword987.",
"firstName": "Max",
"lastName": "Mustermann",
"businessName": "<string>",
"dateOfBirth": "2023-12-25"
},
"contract": {
"externalId": "urn:acme:contract:ffa98ecb-f28c-442d-b52e-7ffdc97ba676",
"salesPersonId": "SALESPERSON123",
"type": "Personal",
"deliveryAddress": {
"title": "Dr.",
"firstName": "Thomas",
"lastName": "Mustermann",
"businessName": null,
"extension": null,
"streetName": "Grüner Weg",
"houseNumber": "42",
"city": "Berlin",
"postCode": "14109",
"countryCode": "DE"
},
"billingAddress": null,
"bankDetails": {
"accountHolder": "Thomas Heinrich Mustermann",
"iban": "DE89370400440532013000",
"bic": "DEUTDEFF",
"bankName": "Deutsche Bank",
"hasAcceptedDirectDebit": true
},
"contractReason": "NewDeliveryLocation",
"agreements": {
"termsAndConditions": true,
"privacyPolicy": true,
"revocationPolicy": true
},
"transactionDateTime": "2024-04-01 00:00:00",
"industry": "ElectricalEquipment",
"legalStructure": "GmbH"
},
"campaignCode": "<string>"
}
'import requests
url = "https://api.rabot-charge.de/partner/v1/orders"
payload = {
"tariffKey": "RabotSmart",
"offerDate": "2025-08-22",
"userAccount": {
"emailAddress": "j.doe@example.tld",
"phoneNumber": "+491234567890",
"password": "SomeExamplePassword987.",
"firstName": "Max",
"lastName": "Mustermann",
"businessName": "<string>",
"dateOfBirth": "2023-12-25"
},
"contract": {
"externalId": "urn:acme:contract:ffa98ecb-f28c-442d-b52e-7ffdc97ba676",
"salesPersonId": "SALESPERSON123",
"type": "Personal",
"deliveryAddress": {
"title": "Dr.",
"firstName": "Thomas",
"lastName": "Mustermann",
"businessName": None,
"extension": None,
"streetName": "Grüner Weg",
"houseNumber": "42",
"city": "Berlin",
"postCode": "14109",
"countryCode": "DE"
},
"billingAddress": None,
"bankDetails": {
"accountHolder": "Thomas Heinrich Mustermann",
"iban": "DE89370400440532013000",
"bic": "DEUTDEFF",
"bankName": "Deutsche Bank",
"hasAcceptedDirectDebit": True
},
"contractReason": "NewDeliveryLocation",
"agreements": {
"termsAndConditions": True,
"privacyPolicy": True,
"revocationPolicy": True
},
"transactionDateTime": "2024-04-01 00:00:00",
"industry": "ElectricalEquipment",
"legalStructure": "GmbH"
},
"campaignCode": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
tariffKey: 'RabotSmart',
offerDate: '2025-08-22',
userAccount: {
emailAddress: 'j.doe@example.tld',
phoneNumber: '+491234567890',
password: 'SomeExamplePassword987.',
firstName: 'Max',
lastName: 'Mustermann',
businessName: '<string>',
dateOfBirth: '2023-12-25'
},
contract: {
externalId: 'urn:acme:contract:ffa98ecb-f28c-442d-b52e-7ffdc97ba676',
salesPersonId: 'SALESPERSON123',
type: 'Personal',
deliveryAddress: {
title: 'Dr.',
firstName: 'Thomas',
lastName: 'Mustermann',
businessName: null,
extension: null,
streetName: 'Grüner Weg',
houseNumber: '42',
city: 'Berlin',
postCode: '14109',
countryCode: 'DE'
},
billingAddress: null,
bankDetails: {
accountHolder: 'Thomas Heinrich Mustermann',
iban: 'DE89370400440532013000',
bic: 'DEUTDEFF',
bankName: 'Deutsche Bank',
hasAcceptedDirectDebit: true
},
contractReason: 'NewDeliveryLocation',
agreements: {termsAndConditions: true, privacyPolicy: true, revocationPolicy: true},
transactionDateTime: '2024-04-01 00:00:00',
industry: 'ElectricalEquipment',
legalStructure: 'GmbH'
},
campaignCode: '<string>'
})
};
fetch('https://api.rabot-charge.de/partner/v1/orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api.rabot-charge.de/partner/v1/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tariffKey\": \"RabotSmart\",\n \"offerDate\": \"2025-08-22\",\n \"userAccount\": {\n \"emailAddress\": \"j.doe@example.tld\",\n \"phoneNumber\": \"+491234567890\",\n \"password\": \"SomeExamplePassword987.\",\n \"firstName\": \"Max\",\n \"lastName\": \"Mustermann\",\n \"businessName\": \"<string>\",\n \"dateOfBirth\": \"2023-12-25\"\n },\n \"contract\": {\n \"externalId\": \"urn:acme:contract:ffa98ecb-f28c-442d-b52e-7ffdc97ba676\",\n \"salesPersonId\": \"SALESPERSON123\",\n \"type\": \"Personal\",\n \"deliveryAddress\": {\n \"title\": \"Dr.\",\n \"firstName\": \"Thomas\",\n \"lastName\": \"Mustermann\",\n \"businessName\": null,\n \"extension\": null,\n \"streetName\": \"Grüner Weg\",\n \"houseNumber\": \"42\",\n \"city\": \"Berlin\",\n \"postCode\": \"14109\",\n \"countryCode\": \"DE\"\n },\n \"billingAddress\": null,\n \"bankDetails\": {\n \"accountHolder\": \"Thomas Heinrich Mustermann\",\n \"iban\": \"DE89370400440532013000\",\n \"bic\": \"DEUTDEFF\",\n \"bankName\": \"Deutsche Bank\",\n \"hasAcceptedDirectDebit\": true\n },\n \"contractReason\": \"NewDeliveryLocation\",\n \"agreements\": {\n \"termsAndConditions\": true,\n \"privacyPolicy\": true,\n \"revocationPolicy\": true\n },\n \"transactionDateTime\": \"2024-04-01 00:00:00\",\n \"industry\": \"ElectricalEquipment\",\n \"legalStructure\": \"GmbH\"\n },\n \"campaignCode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"customerNumber": "234567890",
"contractNumber": "345678901",
"messages": [
{
"type": "LocationIssue",
"message": "<string>"
}
]
}