Skip to content

Platform

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