Overview of the Exarep platform. Two domains provide external/internal separation:
- exarep.com — All external, public, and customer-facing endpoints
- intexarep.com — All internal services, administration, and infrastructure
Web Applications
| Application |
Domain |
Description |
| Public Website |
www.exarep.com |
Marketing site, plan browsing, and enrollment wizard (unauthenticated) |
| Customer Portal |
customer.exarep.com |
Authenticated self-service for account, billing, usage, and payments |
| Administrator Portal |
administrator.intexarep.com |
Internal tool for customer support, enrollment management, and reporting |
API Gateways and APIs
Public API Gateway (public.apigw.exarep.com)
These are the publicly accessible endpoints powering the Exarep public website (www.exarep.com) and enrollment wizard. All endpoints are unauthenticated. The gateway routes requests to the appropriate internal microservice.
Plan Discovery
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/plans?zipCode={zipCode} |
plan |
Get all active plans with rates for a zip code (resolves TDSP from zip) |
| GET |
/api/v1/plans/{planId} |
plan |
Get plan details by ID |
| GET |
/api/v1/plans/{planId}/efl |
plan |
Get the current Electricity Facts Label for a plan |
| GET |
/api/v1/plans/{planId}/tos |
plan |
Get the current Terms of Service for a plan |
| GET |
/api/v1/plans/{planId}/yrac |
plan |
Get the current Your Rights as a Customer document |
Service Point Lookup
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/service-points?zipCode={zipCode} |
service-point |
Search ERCOT service points by zip code (returns ServicePointErcot data) |
| GET |
/api/v1/service-points?address={address}&zipCode={zipCode} |
service-point |
Search ERCOT service points by street address and zip code |
| GET |
/api/v1/service-points/{esiId} |
service-point |
Get service point details by ESI ID |
| GET |
/api/v1/service-points/{esiId}/validate |
service-point |
Validate an ESI ID exists, is active, and check for switch holds |
TDSP Reference
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/tdsps |
service-point |
List all TDSPs |
| GET |
/api/v1/tdsps/{tdspId} |
service-point |
Get TDSP details including current charges |
| GET |
/api/v1/tdsps/{tdspId}/charges?effectiveDate={date} |
service-point |
Get active TDSP charges for a specific date |
| GET |
/api/v1/zip-codes/{zipCode}/tdsp |
service-point |
Resolve which TDSP serves a zip code |
Tax Reference
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/tax-jurisdictions?zipCode={zipCode} |
service-point |
Get the tax jurisdiction for a zip code |
| GET |
/api/v1/tax-jurisdictions/{taxJurisdictionId}/rates?effectiveDate={date} |
service-point |
Get active tax rates for a jurisdiction on a specific date |
Enrollment
| Method |
Endpoint |
Backing API |
Description |
| POST |
/api/v1/enrollments |
enrollment |
Submit a new enrollment (switch or move-in) |
| GET |
/api/v1/enrollments/{enrollmentId} |
enrollment |
Get enrollment status |
| POST |
/api/v1/enrollments/{enrollmentId}/rescind |
enrollment |
Rescind a pending switch enrollment within the rescission period |
Enrollment Estimate
| Method |
Endpoint |
Backing API |
Description |
| POST |
/api/v1/estimates |
plan |
Calculate an estimated monthly bill given a plan, ESI ID, and usage |
Customer API Gateway (customer.apigw.exarep.com)
Authenticated endpoints powering the customer self-service portal (customer.exarep.com). All requests require a valid customer session via auth.exarep.com. The authenticated customer's identity scopes all responses to their own data.
My Account
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/me |
crm |
Get the authenticated customer's profile |
| PUT |
/api/v1/me |
crm |
Update customer profile (name, language preference) |
| GET |
/api/v1/me/contact-methods |
crm |
List contact methods |
| POST |
/api/v1/me/contact-methods |
crm |
Add a contact method |
| PUT |
/api/v1/me/contact-methods/{contactMethodId} |
crm |
Update a contact method |
| DELETE |
/api/v1/me/contact-methods/{contactMethodId} |
crm |
Remove a contact method |
| GET |
/api/v1/me/accounts |
crm |
List the customer's accounts |
| GET |
/api/v1/me/accounts/{accountId} |
crm |
Get account details |
My Contracts
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/me/accounts/{accountId}/contracts |
enrollment |
List contracts for an account |
| GET |
/api/v1/me/contracts/{contractId} |
enrollment |
Get contract details |
| GET |
/api/v1/me/contracts/{contractId}/documents |
enrollment |
Get contract documents (TOS, EFL, YRAC) |
| POST |
/api/v1/me/contracts/{contractId}/renew |
enrollment |
Renew a contract by selecting a new plan |
My Billing
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/me/accounts/{accountId}/bills |
billing |
List bills for an account |
| GET |
/api/v1/me/bills/{billId} |
billing |
Get bill details with line items |
| GET |
/api/v1/me/bills/{billId}/pdf |
billing |
Download bill as PDF |
| POST |
/api/v1/me/bills/{billId}/dispute |
billing |
Dispute a bill |
| GET |
/api/v1/me/accounts/{accountId}/balance |
billing |
Get current balance and payment history |
| GET |
/api/v1/me/accounts/{accountId}/payment-arrangements |
billing |
List active payment arrangements |
My Payments
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/me/accounts/{accountId}/payments |
billing |
List payments for an account |
| POST |
/api/v1/me/accounts/{accountId}/payments |
billing |
Submit a payment |
| GET |
/api/v1/me/payments/{paymentId} |
billing |
Get payment details |
My Usage
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/me/service-points/{servicePointId}/usage |
usage |
Get usage data for a service point (supports date range) |
| GET |
/api/v1/me/service-points/{servicePointId}/usage/interval |
usage |
Get 15-minute interval data for a specific date |
| GET |
/api/v1/me/service-points/{servicePointId}/usage/monthly |
usage |
Get monthly usage summary |
My Notifications
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/me/notifications |
notification |
List notifications for the customer |
| GET |
/api/v1/me/notifications/{notificationId} |
notification |
Get notification details |
Plan Browsing
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/plans?zipCode={zipCode} |
plan |
Browse available plans (same as public gateway) |
| GET |
/api/v1/plans/{planId} |
plan |
Get plan details |
| GET |
/api/v1/plans/{planId}/efl |
plan |
Get the EFL for a plan |
| POST |
/api/v1/estimates |
plan |
Calculate an estimated monthly bill |
Administrator API Gateway (administrator.apigw.intexarep.com)
Internal endpoints powering the administrator portal (administrator.intexarep.com). All requests require an administrator session via auth.intexarep.com. Provides full read/write access to all domain entities for customer support and operations.
Customer Management
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/customers |
crm |
Search customers |
| GET |
/api/v1/customers/{customerId} |
crm |
Get customer details |
| POST |
/api/v1/customers |
crm |
Create a customer |
| PUT |
/api/v1/customers/{customerId} |
crm |
Update customer details |
| GET |
/api/v1/accounts |
crm |
Search accounts |
| GET |
/api/v1/accounts/{accountId} |
crm |
Get account details |
| PUT |
/api/v1/accounts/{accountId} |
crm |
Update account (status, billing cycle, payment method) |
| GET |
/api/v1/premises |
crm |
Search premises |
| GET |
/api/v1/premises/{premiseId} |
crm |
Get premise details |
Enrollment Management
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/enrollments |
enrollment |
Search enrollments |
| GET |
/api/v1/enrollments/{enrollmentId} |
enrollment |
Get enrollment details |
| POST |
/api/v1/enrollments |
enrollment |
Create an enrollment on behalf of a customer |
| POST |
/api/v1/enrollments/{enrollmentId}/rescind |
enrollment |
Rescind an enrollment on behalf of a customer |
| POST |
/api/v1/enrollments/{enrollmentId}/cancel |
enrollment |
Cancel a pending enrollment |
| GET |
/api/v1/contracts |
enrollment |
Search contracts |
| GET |
/api/v1/contracts/{contractId} |
enrollment |
Get contract details |
| PUT |
/api/v1/contracts/{contractId} |
enrollment |
Update contract details |
| POST |
/api/v1/contracts/{contractId}/renew |
enrollment |
Renew a contract on behalf of a customer |
| POST |
/api/v1/contracts/{contractId}/terminate |
enrollment |
Terminate a contract |
Billing Management
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/bills |
billing |
Search bills |
| GET |
/api/v1/bills/{billId} |
billing |
Get bill details with line items |
| POST |
/api/v1/bills |
billing |
Generate a bill |
| GET |
/api/v1/bills/{billId}/pdf |
billing |
Download bill as PDF |
| POST |
/api/v1/bills/{billId}/adjust |
billing |
Apply a credit or adjustment to a bill |
| GET |
/api/v1/payments |
billing |
Search payments |
| GET |
/api/v1/payments/{paymentId} |
billing |
Get payment details |
| POST |
/api/v1/payments |
billing |
Record a payment |
| POST |
/api/v1/payments/{paymentId}/refund |
billing |
Refund a payment |
| GET |
/api/v1/accounts/{accountId}/balance |
billing |
Get account balance |
| GET |
/api/v1/accounts/{accountId}/payment-arrangements |
billing |
List payment arrangements |
| POST |
/api/v1/accounts/{accountId}/payment-arrangements |
billing |
Create a payment arrangement (DPP, level pay) |
Plan & Rate Management
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/plans |
plan |
List all plans |
| POST |
/api/v1/plans |
plan |
Create a new plan |
| PUT |
/api/v1/plans/{planId} |
plan |
Update a plan |
| GET |
/api/v1/rates |
plan |
List rates |
| POST |
/api/v1/rates |
plan |
Create a new rate |
| PUT |
/api/v1/rates/{rateId} |
plan |
Update a rate |
Service Point & Reference Data Management
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/service-points |
service-point |
Search Exarep service points |
| GET |
/api/v1/service-points-ercot |
service-point |
Search ERCOT ESI ID mirror |
| GET |
/api/v1/tdsps |
service-point |
List TDSPs |
| POST |
/api/v1/tdsps/{tdspId}/charges |
service-point |
Create a TDSP charge |
| PUT |
/api/v1/tdsps/{tdspId}/charges/{tdspChargeId} |
service-point |
Update a TDSP charge |
| GET |
/api/v1/tax-jurisdictions |
service-point |
List tax jurisdictions |
| POST |
/api/v1/tax-jurisdictions/{taxJurisdictionId}/rates |
service-point |
Create a tax rate |
| PUT |
/api/v1/tax-jurisdictions/{taxJurisdictionId}/rates/{taxRateId} |
service-point |
Update a tax rate |
Usage Management
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/usage?servicePointId={servicePointId}&startDate={date}&endDate={date} |
usage |
Get usage data for a service point |
| POST |
/api/v1/usage |
usage |
Ingest usage data |
Notification Management
| Method |
Endpoint |
Backing API |
Description |
| GET |
/api/v1/notifications |
notification |
Search notifications |
| GET |
/api/v1/notifications/{notificationId} |
notification |
Get notification details |
| POST |
/api/v1/notifications |
notification |
Create and send a notification |
Internal Microservice APIs
All microservice APIs are hosted on the internal domain (intexarep.com) and are not directly accessible from the public internet. Each API has a dedicated database on *.db.intexarep.com.
Plan API (plan.api.intexarep.com)
Manages plans, rates, and regulatory documents (EFL, TOS, YRAC).
| Method |
Endpoint |
Description |
| GET |
/api/v1/plans |
List all plans (supports filtering by planType, active) |
| GET |
/api/v1/plans/{planId} |
Get plan details |
| POST |
/api/v1/plans |
Create a new plan |
| PUT |
/api/v1/plans/{planId} |
Update a plan |
| GET |
/api/v1/plans/{planId}/efl |
Get the current EFL for a plan |
| GET |
/api/v1/plans/{planId}/tos |
Get the current TOS for a plan |
| GET |
/api/v1/plans/{planId}/yrac |
Get the current YRAC for a plan |
| GET |
/api/v1/rates |
List rates (supports filtering by planId, tdspId, effectiveDate) |
| GET |
/api/v1/rates/{rateId} |
Get rate details |
| POST |
/api/v1/rates |
Create a new rate |
| PUT |
/api/v1/rates/{rateId} |
Update a rate |
| GET |
/api/v1/rates/lookup?planId={planId}&tdspId={tdspId}&effectiveDate={date} |
Look up the active rate for a plan and TDSP on a given date |
| POST |
/api/v1/estimates |
Calculate estimated monthly bill for a plan, TDSP, and usage level |
Service Point API (service-point.api.intexarep.com)
Manages service points, the ERCOT ESI ID mirror, TDSP reference data, tax jurisdictions, and zip code mappings.
| Method |
Endpoint |
Description |
| GET |
/api/v1/service-points |
List Exarep service points (supports filtering by premiseId, esiId, status) |
| GET |
/api/v1/service-points/{servicePointId} |
Get service point details |
| POST |
/api/v1/service-points |
Create a service point (typically triggered by enrollment completion) |
| PUT |
/api/v1/service-points/{servicePointId} |
Update a service point |
| GET |
/api/v1/service-points-ercot |
Search ERCOT service points (supports filtering by esiId, zipCode, address, tdspDuns, status) |
| GET |
/api/v1/service-points-ercot/{esiId} |
Get ERCOT service point details by ESI ID |
| GET |
/api/v1/service-points-ercot/{esiId}/validate |
Validate ESI ID (active, eligible for enrollment, switch hold check) |
| GET |
/api/v1/tdsps |
List all TDSPs |
| GET |
/api/v1/tdsps/{tdspId} |
Get TDSP details |
| GET |
/api/v1/tdsps/{tdspId}/charges |
Get TDSP charges (supports filtering by chargeType, effectiveDate) |
| POST |
/api/v1/tdsps/{tdspId}/charges |
Create a TDSP charge |
| PUT |
/api/v1/tdsps/{tdspId}/charges/{tdspChargeId} |
Update a TDSP charge |
| GET |
/api/v1/tax-jurisdictions |
List tax jurisdictions (supports filtering by zipCode, city, county) |
| GET |
/api/v1/tax-jurisdictions/{taxJurisdictionId} |
Get tax jurisdiction details |
| GET |
/api/v1/tax-jurisdictions/{taxJurisdictionId}/rates |
Get tax rates (supports filtering by taxType, effectiveDate) |
| POST |
/api/v1/tax-jurisdictions/{taxJurisdictionId}/rates |
Create a tax rate |
| PUT |
/api/v1/tax-jurisdictions/{taxJurisdictionId}/rates/{taxRateId} |
Update a tax rate |
| GET |
/api/v1/zip-codes/{zipCode}/tdsp |
Resolve which TDSP serves a zip code |
| GET |
/api/v1/zip-codes/{zipCode}/tax-jurisdiction |
Resolve the tax jurisdiction for a zip code |
CRM API (crm.api.intexarep.com)
Manages customers, accounts, premises, and contact methods.
| Method |
Endpoint |
Description |
| GET |
/api/v1/customers |
List customers (supports filtering by name, ein, accountId) |
| GET |
/api/v1/customers/{customerId} |
Get customer details |
| POST |
/api/v1/customers |
Create a customer (IndividualCustomer or BusinessCustomer) |
| PUT |
/api/v1/customers/{customerId} |
Update customer details |
| GET |
/api/v1/customers/{customerId}/accounts |
List accounts for a customer |
| GET |
/api/v1/customers/{customerId}/contact-methods |
List contact methods for a customer |
| POST |
/api/v1/customers/{customerId}/contact-methods |
Add a contact method |
| PUT |
/api/v1/customers/{customerId}/contact-methods/{contactMethodId} |
Update a contact method |
| DELETE |
/api/v1/customers/{customerId}/contact-methods/{contactMethodId} |
Remove a contact method |
| GET |
/api/v1/accounts |
List accounts (supports filtering by customerId, accountStatus) |
| GET |
/api/v1/accounts/{accountId} |
Get account details |
| POST |
/api/v1/accounts |
Create an account |
| PUT |
/api/v1/accounts/{accountId} |
Update account details |
| GET |
/api/v1/accounts/{accountId}/premises |
List premises associated with an account |
| POST |
/api/v1/accounts/{accountId}/premises |
Associate a premise with an account (creates AccountPremise) |
| DELETE |
/api/v1/accounts/{accountId}/premises/{premiseId} |
End-date the account-premise association |
| GET |
/api/v1/accounts/{accountId}/contracts |
List contracts for an account |
| GET |
/api/v1/premises |
List premises (supports filtering by zipCode, city, address) |
| GET |
/api/v1/premises/{premiseId} |
Get premise details |
| POST |
/api/v1/premises |
Create a premise |
| PUT |
/api/v1/premises/{premiseId} |
Update premise details |
| GET |
/api/v1/premises/{premiseId}/service-points |
List service points at a premise |
Enrollment API (enrollment.api.intexarep.com)
Manages the enrollment lifecycle including contract creation, ERCOT transaction submission, and rescission.
| Method |
Endpoint |
Description |
| GET |
/api/v1/enrollments |
List enrollments (supports filtering by contractId, esiId, status, type) |
| GET |
/api/v1/enrollments/{enrollmentId} |
Get enrollment details and current status |
| POST |
/api/v1/enrollments |
Create a new enrollment (switch, move-in, or move-out) |
| POST |
/api/v1/enrollments/{enrollmentId}/rescind |
Rescind a pending switch enrollment within the rescission period |
| POST |
/api/v1/enrollments/{enrollmentId}/cancel |
Cancel a pending enrollment (before ERCOT submission) |
| GET |
/api/v1/contracts |
List contracts (supports filtering by accountId, planId, status) |
| GET |
/api/v1/contracts/{contractId} |
Get contract details |
| POST |
/api/v1/contracts |
Create a contract |
| PUT |
/api/v1/contracts/{contractId} |
Update contract details |
| POST |
/api/v1/contracts/{contractId}/renew |
Renew a contract with a new plan |
| POST |
/api/v1/contracts/{contractId}/terminate |
Terminate a contract (triggers early termination fee if applicable) |
| GET |
/api/v1/contracts/{contractId}/documents |
Get all contract documents (TOS, EFL, YRAC) |
| GET |
/api/v1/contracts/{contractId}/enrollments |
List enrollments associated with a contract |
Billing API (billing.api.intexarep.com)
Manages bills, bill line items, and payments.
| Method |
Endpoint |
Description |
| GET |
/api/v1/bills |
List bills (supports filtering by accountId, status, billingPeriod) |
| GET |
/api/v1/bills/{billId} |
Get bill details including all line items |
| POST |
/api/v1/bills |
Generate a bill for an account and billing period |
| GET |
/api/v1/bills/{billId}/line-items |
Get bill line items |
| GET |
/api/v1/bills/{billId}/pdf |
Download bill as PDF |
| POST |
/api/v1/bills/{billId}/dispute |
Dispute a bill |
| GET |
/api/v1/payments |
List payments (supports filtering by accountId, status, dateRange) |
| GET |
/api/v1/payments/{paymentId} |
Get payment details |
| POST |
/api/v1/payments |
Submit a payment |
| POST |
/api/v1/payments/{paymentId}/refund |
Refund a payment |
| GET |
/api/v1/accounts/{accountId}/balance |
Get current account balance, previous balance, and payment history |
| GET |
/api/v1/accounts/{accountId}/payment-arrangements |
List active payment arrangements (DPP, level pay) for an account |
| POST |
/api/v1/accounts/{accountId}/payment-arrangements |
Create a payment arrangement |
Usage API (usage.api.intexarep.com)
Manages meter usage data received from TDSPs via 867 transactions.
| Method |
Endpoint |
Description |
| GET |
/api/v1/usage?servicePointId={servicePointId}&startDate={date}&endDate={date} |
Get usage data for a service point and date range |
| GET |
/api/v1/usage/interval?servicePointId={servicePointId}&date={date} |
Get 15-minute interval data for AMS/IDR meters on a specific date |
| GET |
/api/v1/usage/monthly?servicePointId={servicePointId}&months={n} |
Get monthly usage summary for the last N months |
| POST |
/api/v1/usage |
Ingest usage data (from 867 transaction processing) |
| GET |
/api/v1/usage/history?esiId={esiId} |
Get historical usage for an ESI ID (from 867_04 data) |
Notification API (notification.api.intexarep.com)
Manages customer communications including contract expiration notices, disconnection notices, and enrollment confirmations.
| Method |
Endpoint |
Description |
| GET |
/api/v1/notifications |
List notifications (supports filtering by accountId, type, status) |
| GET |
/api/v1/notifications/{notificationId} |
Get notification details |
| POST |
/api/v1/notifications |
Create and send a notification |
| GET |
/api/v1/notification-templates |
List notification templates |
| GET |
/api/v1/notification-templates/{templateId} |
Get a notification template |
Notification Types
| Type |
Trigger |
Channel |
| EnrollmentConfirmation |
Enrollment submitted |
Email, Mail |
| ContractExpirationNotice1 |
First notice during last third of contract |
Mail, Email |
| ContractExpirationNotice2 |
Second notice during last third of contract |
Mail, Email |
| ContractExpirationNotice3 |
Final notice at least 30 days before expiry |
Mail, Email |
| ContractRenewalConfirmation |
Customer renews or rolls over to MonthToMonth |
Email, Mail |
| DisconnectionNotice |
Account past due, 10+ days before disconnect date |
Mail |
| PaymentConfirmation |
Payment received |
Email |
| WelcomeLetter |
Enrollment completed, customer is now served by Exarep |
Mail, Email |