Download OpenAPI specification:
Public API exposed by the gateway under /v1 (03 §3.1, REQ-052). Every call needs a bearer token. A response contains only data of the caller's own participant or community (REQ-010). Personal data is limited to the billing profile on /me.
Profile, roles, community and readiness of the caller (REQ-049, REQ-009).
{- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "communityId": "b3a7bb5e-2860-4aca-803b-cc380a8c5ca0",
- "roles": [
- "member"
], - "readiness": "Invited",
- "profile": {
- "name": "string",
- "address": "string",
- "email": "user@example.com"
}, - "billingMode": "live"
}The participant updates their own name, address and contact e-mail. Trade-attribution identifiers are changed by the community manager (REQ-009).
| name required | string |
| address required | string |
| email required | string <email> |
{- "name": "string",
- "address": "string",
- "email": "user@example.com"
}{- "name": "string",
- "address": "string",
- "email": "user@example.com"
}Records terms acceptance and, for a producer, the self-billing mandate (REQ-050).
| termsVersion required | string |
| selfBillingMandate required | boolean Required for a producer. False for a consumer who does not self-bill (REQ-050). |
{- "termsVersion": "string",
- "selfBillingMandate": true
}{- "termsVersion": "string",
- "selfBillingMandate": true,
- "acceptedAt": "2019-08-24T14:15:22Z"
}Producer/prosumer: returns outstanding KYC requirements for in-platform collection (INT-190 / INT-191, REQ-051, UAT-051). The Custom Connect account is created on the first requirements submit with an Account Token. Consumer: returns a SetupIntent client secret (mode: elements) for in-platform Payment Element collection (INT-193 / REQ-040), or a provider setup link (mode: link) as fallback.
{- "mode": "requirements",
- "status": "requirements_due",
- "stripeAccountId": "string",
- "currentlyDue": [
- "string"
], - "eventuallyDue": [
- "string"
], - "clientSecret": "string"
}Confirms the payment method collected via Stripe.js / Payment Element (INT-193, REQ-040) and marks the payment account ready.
| paymentMethodId required | string Stripe PaymentMethod id ( |
{- "paymentMethodId": "string"
}{- "mode": "requirements",
- "status": "requirements_due",
- "stripeAccountId": "string",
- "currentlyDue": [
- "string"
], - "eventuallyDue": [
- "string"
], - "clientSecret": "string"
}Creates or updates a Custom Connect account using an Account Token (INT-191, REQ-051) and returns the refreshed onboarding session. Personal data is not retained by billing.
| accountToken | string Stripe Account Token id ( |
| country | string = 2 characters Connected-account country (outside the token). Default FR. |
| businessType | string Enum: "individual" "company" |
| businessProfileUrl | string <uri> |
| businessProfileMcc | string Merchant category code (e.g. 5734). |
object | |
| identityDocumentFront | string Stripe File id for individual.verification.document.front (INT-195). Prefer embedding in the Account Token from Stripe.js. Test mode may use |
| identityDocumentAdditionalFront | string Stripe File id for individual.verification.additional_document.front (INT-195). Defaults to identityDocumentFront when omitted in adapters. |
object Test-mode bank account for Connect payouts (BR-12). | |
| tosAccepted | boolean Caller accepted Stripe Connected Account Agreement. |
{- "accountToken": "string",
- "country": "st",
- "businessType": "individual",
- "businessProfileMcc": "string",
- "representative": {
- "firstName": "string",
- "lastName": "string",
- "email": "user@example.com",
- "phone": "string",
- "dob": {
- "day": 1,
- "month": 1,
- "year": 1900
}, - "address": {
- "line1": "string",
- "city": "string",
- "postalCode": "string",
- "country": "st"
}
}, - "identityDocumentFront": "string",
- "identityDocumentAdditionalFront": "string",
- "externalAccount": {
- "country": "st",
- "currency": "str",
- "accountNumber": "string",
- "routingNumber": "string"
}, - "tosAccepted": true
}{- "mode": "requirements",
- "status": "requirements_due",
- "stripeAccountId": "string",
- "currentlyDue": [
- "string"
], - "eventuallyDue": [
- "string"
], - "clientSecret": "string"
}The consumer pays the invoice. The payment goes to the producer's account (REQ-014).
| id required | string <uuid> (Uuid) Resource identifier. |
{- "paymentId": "472e651e-5a1e-424d-8098-23858bf03ad7",
- "invoiceId": "4f163819-178d-470c-a246-d6768476a6ec",
- "amount": "5.00",
- "currency": "EUR",
- "status": "pending",
- "method": "string",
- "failureCategory": "string"
}Unbilled amounts of the caller, one row per counterpart (REQ-002, REQ-057).
[- {
- "counterpartId": "26ebd171-257e-42b4-a435-d8c7983803ac",
- "amount": "5.00",
- "currency": "EUR",
- "since": "2019-08-24T14:15:22Z"
}
]The consumer settles the unbilled balance with the named producer now (REQ-057). The threshold does not apply (BR-05).
| producerId required | string <uuid> (Uuid) |
{- "producerId": "09cbf28b-153f-46c1-af4f-7ee5a3a319fc"
}{- "runId": "78c33d18-170c-44d3-a227-b3194f134f73",
- "communityId": "b3a7bb5e-2860-4aca-803b-cc380a8c5ca0",
- "period": "string",
- "type": "periodic",
- "status": "Scheduled",
- "version": 1
}Invoices where the caller is the producer or the consumer (REQ-007, REQ-039).
[- {
- "invoiceId": "4f163819-178d-470c-a246-d6768476a6ec",
- "legalNumber": "string",
- "producerId": "09cbf28b-153f-46c1-af4f-7ee5a3a319fc",
- "consumerId": "9e675a24-20d6-4913-9836-f861cd23e89e",
- "period": "string",
- "currency": "EUR",
- "status": "Draft",
- "dueDate": "2019-08-24",
- "pairSettlementId": "be603dfd-1b5b-4583-98bb-409a00500833",
- "tradeIds": [
- "string"
], - "amounts": {
- "energy": "5.00",
- "vat": "5.00",
- "total": "5.00"
}, - "billingMode": "live"
}
]One invoice in the caller's scope. The detail view reads the provider live (TD-6, REQ-007).
| id required | string <uuid> (Uuid) Resource identifier. |
{- "invoiceId": "4f163819-178d-470c-a246-d6768476a6ec",
- "legalNumber": "string",
- "producerId": "09cbf28b-153f-46c1-af4f-7ee5a3a319fc",
- "consumerId": "9e675a24-20d6-4913-9836-f861cd23e89e",
- "period": "string",
- "currency": "EUR",
- "status": "Draft",
- "dueDate": "2019-08-24",
- "pairSettlementId": "be603dfd-1b5b-4583-98bb-409a00500833",
- "tradeIds": [
- "string"
], - "amounts": {
- "energy": "5.00",
- "vat": "5.00",
- "total": "5.00"
}, - "billingMode": "live"
}A community manager sets a status with a mandatory reason (REQ-044).
| id required | string <uuid> (Uuid) Resource identifier. |
| status required | string (InvoiceStatus) Enum: "Draft" "Open" "PartiallyPaid" "Paid" "Overdue" "Void" "Disputed" Invoice lifecycle (REQ-044, 02 §5). |
| reason required | string non-empty |
{- "status": "Draft",
- "reason": "string"
}{- "invoiceId": "4f163819-178d-470c-a246-d6768476a6ec",
- "legalNumber": "string",
- "producerId": "09cbf28b-153f-46c1-af4f-7ee5a3a319fc",
- "consumerId": "9e675a24-20d6-4913-9836-f861cd23e89e",
- "period": "string",
- "currency": "EUR",
- "status": "Draft",
- "dueDate": "2019-08-24",
- "pairSettlementId": "be603dfd-1b5b-4583-98bb-409a00500833",
- "tradeIds": [
- "string"
], - "amounts": {
- "energy": "5.00",
- "vat": "5.00",
- "total": "5.00"
}, - "billingMode": "live"
}Currency, period, threshold, VAT and mode (REQ-006, REQ-043, REQ-056).
| id required | string <uuid> (Uuid) Resource identifier. |
{- "communityId": "b3a7bb5e-2860-4aca-803b-cc380a8c5ca0",
- "currency": "EUR",
- "billingPeriod": "string",
- "threshold": "5.00",
- "vatRate": "0.00",
- "billingMode": "live"
}A community manager updates currency, period, threshold, VAT and mode (REQ-006, REQ-043, REQ-056).
| id required | string <uuid> (Uuid) Resource identifier. |
| currency required | string (Currency) ^[A-Z]{3}$ ISO 4217 currency code of the community. |
| billingPeriod required | string |
| threshold required | string (Money) ^-?\d+\.\d{2}$ Decimal amount rounded to the cent (BR-08). |
| vatRate required | string (Rate) ^\d+\.\d{2}$ Decimal rate rounded to the cent, such as a VAT rate (BR-07, BR-08). |
| billingMode required | string (BillingMode) Enum: "live" "virtual" Community billing mode (REQ-043). V1 communities are virtual. |
{- "currency": "EUR",
- "billingPeriod": "string",
- "threshold": "5.00",
- "vatRate": "0.00",
- "billingMode": "live"
}{- "communityId": "b3a7bb5e-2860-4aca-803b-cc380a8c5ca0",
- "currency": "EUR",
- "billingPeriod": "string",
- "threshold": "5.00",
- "vatRate": "0.00",
- "billingMode": "live"
}Imports a minimal list of e-mail, GSY DEX actor identifier, meter identifier and role. The import creates the participant, the identity-provider account and the invitation (REQ-008).
| id required | string <uuid> (Uuid) Resource identifier. |
required | Array of objects (ParticipantImport) non-empty |
{- "participants": [
- {
- "email": "user@example.com",
- "marketActorId": "string",
- "meterId": "string",
- "role": "consumer",
- "existingIdpSubject": "8aa26fb3-9918-4d41-8a0e-ba323e24af7f"
}
]
}[- {
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "communityId": "b3a7bb5e-2860-4aca-803b-cc380a8c5ca0",
- "role": "consumer",
- "status": "Invited",
- "marketActorId": "string",
- "meterId": "string"
}
]Participant registry of the community (REQ-008, REQ-058).
| id required | string <uuid> (Uuid) Resource identifier. |
[- {
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "communityId": "b3a7bb5e-2860-4aca-803b-cc380a8c5ca0",
- "role": "consumer",
- "status": "Invited",
- "marketActorId": "string",
- "meterId": "string"
}
]A community manager changes the GSY DEX actor identifier, meter or role. The participant cannot change these (REQ-009, REQ-058).
| id required | string <uuid> (Uuid) Resource identifier. |
| marketActorId | string |
| meterId | string |
| role | string (ParticipantRole) Enum: "consumer" "producer" "prosumer" Role of a participant in the community (02 §6). |
{- "marketActorId": "string",
- "meterId": "string",
- "role": "consumer"
}{- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "communityId": "b3a7bb5e-2860-4aca-803b-cc380a8c5ca0",
- "role": "consumer",
- "status": "Invited",
- "marketActorId": "string",
- "meterId": "string"
}Removes the participant from the community and triggers the final settlement (REQ-012).
| id required | string <uuid> (Uuid) Resource identifier. |
{- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "communityId": "b3a7bb5e-2860-4aca-803b-cc380a8c5ca0",
- "role": "consumer",
- "status": "Invited",
- "marketActorId": "string",
- "meterId": "string"
}A manager or operator starts a run for the community (REQ-006).
| id required | string <uuid> (Uuid) Resource identifier. |
| type required | string (BillingRunType) Enum: "periodic" "early" "final" Kind of billing run (02 §6). |
| period | string Required when type is periodic. |
{- "type": "periodic",
- "period": "string"
}{- "runId": "78c33d18-170c-44d3-a227-b3194f134f73",
- "communityId": "b3a7bb5e-2860-4aca-803b-cc380a8c5ca0",
- "period": "string",
- "type": "periodic",
- "status": "Scheduled",
- "version": 1
}Status of one billing run (REQ-006).
| id required | string <uuid> (Uuid) Resource identifier. |
{- "runId": "78c33d18-170c-44d3-a227-b3194f134f73",
- "communityId": "b3a7bb5e-2860-4aca-803b-cc380a8c5ca0",
- "period": "string",
- "type": "periodic",
- "status": "Scheduled",
- "version": 1
}Manager view of payments in the community (REQ-018). Lists use the provider read cache (TD-6).
| id required | string <uuid> (Uuid) Resource identifier. |
[- {
- "paymentId": "472e651e-5a1e-424d-8098-23858bf03ad7",
- "invoiceId": "4f163819-178d-470c-a246-d6768476a6ec",
- "amount": "5.00",
- "currency": "EUR",
- "status": "pending",
- "method": "string",
- "failureCategory": "string"
}
]Invoices and payments of one participant (REQ-031).
| id required | string <uuid> (Uuid) Resource identifier. |
{- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "invoices": [
- {
- "invoiceId": "4f163819-178d-470c-a246-d6768476a6ec",
- "legalNumber": "string",
- "producerId": "09cbf28b-153f-46c1-af4f-7ee5a3a319fc",
- "consumerId": "9e675a24-20d6-4913-9836-f861cd23e89e",
- "period": "string",
- "currency": "EUR",
- "status": "Draft",
- "dueDate": "2019-08-24",
- "pairSettlementId": "be603dfd-1b5b-4583-98bb-409a00500833",
- "tradeIds": [
- "string"
], - "amounts": {
- "energy": "5.00",
- "vat": "5.00",
- "total": "5.00"
}, - "billingMode": "live"
}
], - "payments": [
- {
- "paymentId": "472e651e-5a1e-424d-8098-23858bf03ad7",
- "invoiceId": "4f163819-178d-470c-a246-d6768476a6ec",
- "amount": "5.00",
- "currency": "EUR",
- "status": "pending",
- "method": "string",
- "failureCategory": "string"
}
]
}Summary of one community and period (REQ-032).
| communityId required | string <uuid> (Uuid) Community whose data is requested (REQ-010). |
| period required | string Billing period of the report. |
{- "communityId": "b3a7bb5e-2860-4aca-803b-cc380a8c5ca0",
- "period": "string",
- "currency": "EUR",
- "invoiceCount": 0,
- "paymentCount": 0,
- "total": "5.00"
}CSV file export of the period (REQ-047 invoice amounts/kWh plus REQ-046 payment failure causes, suggested corrective actions and processing times per method). The later channel is still open in the architecture (03 §7, port P-KPI).
| period required | string Billing period of the export. |
| communityId required | string <uuid> (Uuid) Community whose data is requested (REQ-010). |
{- "title": "string",
- "status": 0,
- "detail": "string"
}Discrepancies visible to an operator (REQ-041).
| communityId | string <uuid> (Uuid) Limits the result to one community in the caller's scope (REQ-010). |
[- {
- "scope": "invoice",
- "expected": "string",
- "actual": "string",
- "status": "string"
}
]Trade-intake anomalies visible to an operator (REQ-029).
| communityId | string <uuid> (Uuid) Limits the result to one community in the caller's scope (REQ-010). |
[- {
- "type": "string",
- "marketId": "string",
- "details": "string"
}
]Job executions visible to an operator (02 §4.5).
| communityId | string <uuid> (Uuid) Limits the result to one community in the caller's scope (REQ-010). |
[- {
- "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39",
- "name": "RefreshIntake",
- "communityId": "b3a7bb5e-2860-4aca-803b-cc380a8c5ca0",
- "outcome": "string",
- "lastRunAt": "2019-08-24T14:15:22Z"
}
]An operator triggers one scheduled job (02 §4.5).
| id required | string <uuid> (Uuid) Resource identifier. |
{- "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39",
- "name": "RefreshIntake",
- "communityId": "b3a7bb5e-2860-4aca-803b-cc380a8c5ca0",
- "outcome": "string",
- "lastRunAt": "2019-08-24T14:15:22Z"
}The member or the DPO opens an export or erasure request (REQ-013).
| type required | string Enum: "export" "erasure" |
| participantId | string <uuid> (Uuid) Set by a DPO acting for a participant. Omitted when the member acts for themselves. |
{- "type": "export",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7"
}{- "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "type": "export",
- "status": "string"
}Status of one export or erasure request (REQ-013).
| id required | string <uuid> (Uuid) Resource identifier. |
{- "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",
- "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
- "type": "export",
- "status": "string"
}