Identity Management API
A high-level overview of a RESTful API for managing individual customers, their online accounts, and authenticated sessions. The API follows the JSON:API specification (application/vnd.api+json) for all request and response payloads.
Base URL
http://localhost:8080/v1
Resources Overview
| Resource | Description |
|---|---|
/individualCustomers |
Manage individual customer records |
/onlineAccounts |
Manage online account credentials and associations |
/authenticatedSessions |
Create and manage authenticated sessions for accounts |
Content-Type Requirements
All POST and PATCH requests must include:
Content-Type: application/vnd.api+json
Individual Customers
Operations under /individualCustomers allow clients to create, retrieve, update, and delete customer profiles.
Create Individual Customer
POST /individualCustomers
Example request:
{
"data": {
"type": "individualCustomer",
"attributes": {
"firstName": "Jane",
"lastName": "Smith",
"emailAddress": "jane.smith@example.com"
}
}
}
Retrieve Customer
GET /individualCustomers/{customerId}
Example response:
{
"data": {
"type": "individualCustomer",
"id": "12345",
"attributes": {
"firstName": "Jane",
"lastName": "Smith",
"emailAddress": "jane.smith@example.com"
}
}
}
Update Customer
PATCH /individualCustomers/{customerId}
Example request:
{
"data": {
"type": "individualCustomer",
"id": "12345",
"attributes": {
"emailAddress": "new.email@example.com"
}
}
}
Delete Customer
DELETE /individualCustomers/{customerId}
Online Accounts
Represents login-capable accounts tied to customers.
Create Online Account
POST /onlineAccounts
Example request:
{
"data": {
"type": "onlineAccount",
"attributes": {
"username": "jsmith",
"password": "MyPassword123"
},
"relationships": {
"individualCustomer": {
"data": { "type": "individualCustomer", "id": "12345" }
}
}
}
}
Retrieve Online Account
GET /onlineAccounts/{accountId}
Update Online Account Credentials
PATCH /onlineAccounts/{accountId}
Example:
{
"data": {
"type": "onlineAccount",
"id": "acct-789",
"attributes": {
"password": "NewSecurePassword456"
}
}
}
Authenticated Sessions
Used to authenticate an online account and generate a session token.
Create Authenticated Session
POST /authenticatedSessions
Example request:
{
"data": {
"type": "authenticatedSession",
"attributes": {
"username": "jsmith",
"password": "MyPassword123"
}
}
}
Example response:
{
"data": {
"type": "authenticatedSession",
"id": "session-001",
"attributes": {
"issuedAt": "2025-01-01T12:00:00Z",
"expiresAt": "2025-01-01T14:00:00Z",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
}
License
Specify license information here.
Acknowledgments
Document inspirations, contributors, or tools used in the API’s development.