Skip to main content
Version: 10.7.1

Affirm Content Customization API

The Affirm Content Customization API (introduced in HYPR 10.3.0) provides endpoints for managing content customizations used by Affirm Studio.

API-Only Implementation

This feature currently has API-only support. No Control Center user interface is available yet.

General Branding

For general branding customization (logos, backgrounds, colors), see Custom Branding.

Base URL​

/content-customization

Authentication​

All API endpoints require proper authentication. Include your API credentials in the request headers.

Endpoints​

Create Content Customization​

Creates a new content customization configuration.

POST /content-customization
Content-Type: application/json

Request Body:

{
"displayName": "Content Customization 2",
"description": "Company-specific branding for verification screens",
"contentMap": {
"consentScreen": {
"cardHeader": {
"title": "Welcome to Company Verification",
"description": "Please review and accept our terms"
},
"cardContent": {
"mainContent": "By proceeding, you agree to our verification process",
"extraContent": "This process helps us verify your identity securely"
},
"cardFooter": {
"caption1": "Secure verification process",
"caption2": "Powered by HYPR"
},
"buttonLabels": {
"accept": "I Accept",
"decline": "Decline"
}
},
"instructionsScreen": {
"cardHeader": {
"title": "Verification Instructions",
"description": "Follow these steps to complete verification"
},
"cardContent": {
"mainContent": "Please follow the instructions carefully to complete your verification",
"extraContent": "Ensure you have a valid government-issued ID ready"
},
"cardFooter": {
"caption1": "Secure verification process",
"caption2": "Powered by HYPR"
},
"buttonLabels": {
"continue": "Continue",
"back": "Back"
}
}
}
}

Response:

{
"id": 123,
"displayName": "Content Customization 2",
"description": "Company-specific branding for verification screens",
"contentMap": {
"consentScreen": {
"cardHeader": {
"title": "Welcome to Company Verification",
"description": "Please review and accept our terms"
},
"cardContent": {
"mainContent": "By proceeding, you agree to our verification process",
"extraContent": "This process helps us verify your identity securely"
},
"cardFooter": {
"caption1": "Secure verification process",
"caption2": "Powered by HYPR"
},
"buttonLabels": {
"accept": "I Accept",
"decline": "Decline"
}
}
},
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}

Update Content Customization​

Updates an existing content customization configuration.

POST /content-customization/:content-customization-id
Content-Type: application/json

Request Body:

{
"displayName": "Content Customization 2.2",
"contentMap": {
"instructionsScreen": {
"cardHeader": {
"title": "Updated Instructions"
}
}
}
}

Response:

{
"id": 123,
"displayName": "Content Customization 2.2",
"description": "Company-specific branding for verification screens",
"contentMap": {
"consentScreen": {
"cardHeader": {
"title": "Welcome to Company Verification",
"description": "Please review and accept our terms"
}
},
"instructionsScreen": {
"cardHeader": {
"title": "Updated Instructions"
}
}
},
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T11:45:00Z"
}

List All Content Customizations​

Retrieves all content customizations.

GET /content-customization

Response:

{
"contentCustomizations": [
{
"id": 123,
"displayName": "Content Customization 2.2",
"description": "Company-specific branding for verification screens",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T11:45:00Z"
},
{
"id": 124,
"displayName": "Spanish Localization",
"description": "Spanish language content for global teams",
"createdAt": "2024-01-16T09:15:00Z",
"updatedAt": "2024-01-16T09:15:00Z"
}
],
"total": 2
}

Retrieve Specific Content Customization​

Retrieves a specific content customization by ID.

GET /content-customization/:content-customization-id

Response:

{
"id": 123,
"displayName": "Content Customization 2.2",
"description": "Company-specific branding for verification screens",
"contentMap": {
"consentScreen": {
"cardHeader": {
"title": "Welcome to Company Verification",
"description": "Please review and accept our terms"
},
"cardContent": {
"mainContent": "By proceeding, you agree to our verification process",
"extraContent": "This process helps us verify your identity securely"
},
"cardFooter": {
"caption1": "Secure verification process",
"caption2": "Powered by HYPR"
},
"buttonLabels": {
"accept": "I Accept",
"decline": "Decline"
}
}
},
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T11:45:00Z"
}

Data Models​

ContentCustomization​

FieldTypeDescription
idLongUnique identifier for the content customization
displayNameStringDisplay name for the customization
descriptionStringDescription of the customization purpose
contentMapAffirmContentMapScreen-specific content configuration
createdAtDateTimeCreation timestamp
updatedAtDateTimeLast update timestamp

AffirmContentMap​

Contains configuration for all customizable screens:

ScreenTypeDescription
consentScreenBaseContentCustomizationMapInitial consent screen
instructionsScreenBaseContentCustomizationMapStep-by-step guidance
loginIdentifierScreenBaseContentCustomizationMapUsername/email input
phoneNumberOrEmailScreenBaseContentCustomizationMapContact information collection
otpScreenBaseContentCustomizationMapOne-time password verification
locationScreenBaseContentCustomizationMapLocation-based verification
idvAwaitScreenBaseContentCustomizationMapWaiting for identity verification
idvRequestorReportScreenBaseContentCustomizationMapVerification status reporting
documentLivenessScreenBaseContentCustomizationMapDocument and biometric verification
autoApprovalAwaitScreenBaseContentCustomizationMapWaiting for automatic approval
outcomeScreenBaseContentCustomizationMapFinal verification results
deniedScreenBaseContentCustomizationMapAccess denial notification

BaseContentCustomizationMap​

FieldTypeDescription
cardHeaderCardHeaderContentCustomizationMapHeader content configuration
cardContentCardContentContentCustomizationMapMain content configuration
cardFooterCardFooterContentCustomizationMapFooter content configuration
buttonLabelsMap<String, String>Customizable button text

CardHeaderContentCustomizationMap​

FieldTypeDescription
titleStringMain screen title
descriptionStringScreen description text

CardContentContentCustomizationMap​

FieldTypeDescription
mainContentStringPrimary instructional text
extraContentStringAdditional information or tips

CardFooterContentCustomizationMap​

FieldTypeDescription
caption1StringPrimary footer text
caption2StringSecondary footer text

Error Handling​

The API returns standard HTTP status codes:

  • 200 OK - Request successful
  • 201 Created - Resource created successfully
  • 400 Bad Request - Invalid request data
  • 401 Unauthorized - Authentication required
  • 403 Forbidden - Insufficient permissions
  • 404 Not Found - Resource not found
  • 500 Internal Server Error - Server error

Rate Limiting​

API requests are subject to rate limiting. See the response headers for current rate limit information:

  • X-RateLimit-Limit - Maximum requests per time window
  • X-RateLimit-Remaining - Remaining requests in current window
  • X-RateLimit-Reset - Time when the rate limit resets