Zinnia Policy Transactions API
Enterprise API for enforcing policy transactions and validations across the in-force annuity and life book - financial and non-financial transaction management, policy party management, systematic program management and eligibility/validation pre-checks. 102 operations across eligibility check, validation and submit triples for withdrawals, surrenders, loans, fund transfers, premiums, RMDs, reinstatement, free-look cancellation, party and address/bank/phone/email changes.
GET
/bpm/actuator/health
Zahara BPM Health Check
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/multi-agent/validation
Validation multi agent Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/Restrict
Submit active restrict transaction
#
GET
/policy/v1/transactions/{planCode}/{policyNumber}/Restrict
Get restriction alerts for a policy
#
GET
/policy/v1/transactions/{planCode}/{policyNumber}/Restrict/alerts
Get restriction alerts for a policy
#
POST
/bpm/v1/policies/{planCode}/{policyNumber}/basecoverageupdate/eligibilitycheck
base coverage update
#
POST
/bpm/v1/policies/{planCode}/{policyNumber}/{transactionType}/eligibilitycheck
Eligibility Check For Non-Financial Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/bankaccount/eligibilitycheck
Eligibility Check Bank Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/{partyRole}/validation
Party Change request
#
POST
/bpm/v1/policies/{planCode}/{policyNumber}/billingfeaturechange/eligibilitycheck
Eligibility Check Billing Feature Change
#
POST
/bpm/v1/policies/{planCode}/{policyNumber}/billingfeaturechange/validation
Validate Billing Feature Change
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/freelookcancellation/validation
Validation Freelook Cancellation Transaction
#
POST
/policy/v1/transactions/case
Create case for transaction
#
PUT
/policy/v1/cases/{caseId}/cancel
Cancel a case
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/freelookcancellation/eligibilitycheck
Freelook cancellation request
#
POST
/bpm/v1/policies/{planCode}/{policyNumber}/initialdeathclaim/eligibilitycheck
Initial Death Claim Eligibility Check
#
POST
/bpm/v1/policies/{planCode}/{policyNumber}/initialdeathclaim/validation
Initial Death Claim Validation
#
POST
/bpm/v1/policies/{planCode}/{policyNumber}/initialdeathclaim
Submit Initial Death Claim Transaction
#
PUT
/bpm/v1/policies/{planCode}/{policyNumber}/authorization/status
Receives policyholder authorization status from MPV and updates the status
#
GET
/bpm/v1/policies/withdrawals/transactionstore/entities/{transactionId}
Secure API to get TransactionData by transactionId
#
GET
/bpm/v1/policies/{clientCode}/{planCode}/{transactionName}/prevalidationreference
Get supported configurations for a transaction
#
GET
/policy/v1/transactions/{clientCode}/{planCode}/{transactionName}/prevalidationreference
Get supported configurations for a transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/onetimepremium/validation
Validation OneTime Premium Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/onetimepremium
Submit OneTime Premium Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/onetimepremium/eligibilitycheck
Eligibility Check OneTime Premium Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/onetimermd/validation
Validation OneTime RMD Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/onetimermd
Submit OneTime RMD Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/onetimermd/eligibilitycheck
Eligibility Check OneTime RMD Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/reinstatement/eligibilitycheck
Eligibility Check Reinstatement Request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/reinstatement
Submit reinstatement transaction request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/systematicprograms/quote
Systematic Program Quote Request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/systematicprograms/{arrangementId}/validation
Validate Systematic Program Update Transaction
#
PUT
/policy/v1/transactions/{planCode}/{policyNumber}/systematicprograms/{arrangementId}
Submit Systematic Program Update Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/systematicprograms/{arrangementId}/eligibilitycheck
EligibilityCheck Systematic Program Update Transaction
#
PUT
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/address/{addressId}
Address Change Request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/emailaddress/eligibilitycheck
Eligibility Check Email Address Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/address/eligibilitycheck
Eligibility Check Address Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/address
Create new address based on request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/emailaddress/{partyId}/validation
Add new Email Address based on request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/address/{partyId}/validation
Validate Address based on request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/emailaddress
Create new Emailaddress based on request
#
PUT
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/emailaddress/{emailId}
Email Address Change Request
#
PUT
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/emailaddresses
Multiple Email Address Change Request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/phone
Create new Phone Number based on request
#
PUT
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/phone/{phoneId}
Phone Number Change Request
#
PUT
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/phones
Multiple Phone Number Change Request
#
PATCH
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/identifiers
Identifier change Request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/bankaccount
Add new Bank Account based on request
#
PUT
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/bankaccount/{bankId}
Bank Account Change Request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/communicationpreference/eligibilitycheck
Eligibility Check Communication Preference Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/communicationpreference/validation
Validate Communication Preference based on request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/communicationpreference
Update Communication Preference based on request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/partyname
Update Party Name based on request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyRole}
Party Add request
#
PUT
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/{partyRole}
Party Change request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyRole}/eligibilitycheck
EligibilityCheck For Party Role Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/parties/taxwithholding/eligibilitycheck
Eligibility Check Tax Withholding
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/parties/taxwithholding/validation
Validate Tax Withholding
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/parties/taxwithholding
Submit Tax Withholding Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/partialwithdrawalonetime/eligibilitycheck
Eligibility Check Partial Withdrawal One Time
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/partialwithdrawalonetime/validation
Eligibility Check Partial Withdrawal One Time
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/partialwithdrawalonetime
Submit Partial Withdrawal OneTime
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/billingfeaturechange/eligibilitycheck
Eligibility Check Billing Feature Change
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/billingfeaturechange/validation
Validate Billing Feature Change
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/fullsurrender/eligibilitycheck
FullSurrender Eligibility Check endpoint
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/fullsurrender/validation
Fullsurrender Validation Endpoint
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/fullsurrender
Submit full surrender
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/newloan/eligibilitycheck
NewLoan Eligibility Check endpoint
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/newloan/validation
Fullsurrender Validation Endpoint
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/newloan
Submit New Loan Request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/systematicprograms/validation
Validate Systematic Program Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/systematicprograms
Submit Systematic Program Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/systematicprograms/eligibilitycheck
Eligibility Check Systematic Program Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/loanrepaymentonetime/validation
Validate loan Repayment One Time Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/loanrepaymentonetime
Submit loan Repayment OneTime Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/loanrepaymentonetime/eligibilitycheck
EligibilityCheck Loan Repayment OneTime Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/canceltransaction
Cancel Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/freelookcancellation
Freelook cancellation request
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/reverserecreate
Request to reverse and recreate
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/deliverydatesetup/eligibilitycheck
Eligibility Check to Set Delivery Date
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/deliverydatesetup
Set Delivery Date Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/edeliveryenrollment
EDelivery Enrollment
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/initialpremium/eligibilitycheck
Eligibility Check For Initial Premium
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/initialpremium/validation
Validation Check For Initial Premium
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/initialpremium
Initial Premium Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/fundallocations/eligibilitycheck
Eligibility Check For Fund Allocation
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/fundallocations/validation
Validation Check For Fund Allocation
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/fundallocations
Fund Allocation Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/fundtransfer/eligibilitycheck
Eligibility Check For Fund Transfer
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/fundtransfer/validation
Validation Check For Fund Transfer
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/fundtransfer
Fund Transfer Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/outgoingfundtransfer/eligibilitycheck
Eligibility Check For Outgoing Fund Transfer
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/outgoingfundtransfer/validation
Validation Check For Outgoing Fund Transfer
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/outgoingfundtransfer
Outgoing Fund Transfer Transaction
#
GET
/bpm/v1/policies/{cusip}/{policyNumber}/eligibleTransactions
Get eligible transaction types for a policy by CUSIP and policy number
#
GET
/bpm/v1/policies/{planCode}/{policyNumber}/refdata
Get PPFA Reference Data by Policy
#
GET
/policy/v1/transactions/{planCode}/{policyNumber}/refdata
Get PPFA Reference Data by Policy
#
POST
/policy/v2/transactions/{planCode}/{policyNumber}/eligibility/transaction
Transaction eligibility
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/nonforfeiture/eligibilitycheck
Eligibility Check For Non-Forfeiture Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/nonforfeiture/validation
Validation Check For Non-Forfeiture Transaction
#
POST
/policy/v1/transactions/{planCode}/{policyNumber}/nonforfeiture
Non-Forfeiture Transaction
#
Documentation
Specifications
Other Resources
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/zinnia-policy-transactions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.1.0
info:
title: Zinnia Policy Transactions API.
description: Enterprise API for enforcing policy transactions and validations. This API provides a comprehensive interface
for - Policy transaction validation and processing<br> - Financial and non-financial transaction management<br> - Policy
party management and updates<br> - Systematic program management<br> **Version History** * Draft version 1.0.6<br> - Added
Two Endpoints- Reinstatement eligibility check api, Reinstatement actual transaction api<br> * Draft Specifications (Subject
to Change Upon Review)<br>
version: 1.0.8
x-changelog:
- date: '2026-08-13'
change: 'ZCLA-649 Initial death claim — aligned InitialDeathClaimRequest with the revised FNOL payload: added policy.isContestable/isFuneralHomeAssigned,
deathDetails.causeOfDeath, COVEREDINSURED party role, deathNotification.partyRole enum; renamed documents[].edsDocumentId
to documents[].documentId; removed parties[].isFuneralHomeAssigned (now policy-level only)'
- date: '2026-08-13'
change: 'ZCLA-649 Initial death claim — added deathNotification.partyId (now required, enforced via bean validation on
submit) and deathNotification.partyRole to identify the deceased party, and a riderClaim[] array (DeathClaimRiderClaim:
riderCode, riderName, riderElected, partyId)'
- date: '2026-08-03'
change: Initial death claim — added POST initialdeathclaim/eligibilitycheck (no request body; returns TransactionResponse)
- date: '2026-08-03'
change: Initial death claim submit — aligned InitialDeathClaimRequest with IdnClaimRequest (added documents/DeathClaimDocument,
party isNotifier, expanded partyRole and relationshipToInsured enums); responses now use shared TransactionAcceptedResponse
(202) and TransactionResponse (errors)
- date: '2026-07-29'
change: Billing feature change — eligibility and validation endpoints with BillingFeatureChangeRequest payload (policyFeatures,
transactionReason, signatures, documents, selfServeFlow)
- date: '2026-07-24'
change: Partial withdrawal one-time — updated PartialWithdrawalOneTime payload (selfServeFlow; tax withholding top-level
fields and w4r; removed authorization from request body)
- date: '2026-05-26'
change: Added POST initialdeathclaim endpoint with standalone Initial Death Claim schemas
- date: '2026-05-11'
change: Systematic program — extended SystematicProgramUpdate request (MFA, agent, policyHolder, tax, funds, feature product,
submittedDate, currency, disbursementType); PaymentForm EFT; Frequency BIANNUAL/DEFAULT; optional pdfId on TransactionAcceptedResponse
for systematic program submit 202
- date: '2026-03-18'
change: Active restrict — POST/GET /bpm/v1/policies/{planCode}/{policyNumber}/Restrict and policy API alias
- date: '2025-07-17'
change: CMW-29105 - Updated SystematicProgramUpdate Post to PUT
- date: '2025-07-22'
change: CMW-30437 - New End point for Systematic Programs Quote API
- date: '2025-09-01'
change: CMW-31343 - New End point for Reinstatement Quote API and Reinstatement Actual Transaction API
- date: '2025-09-03'
change: ZDR-3002 - Added One time premium 400 error example
servers:
- url: https://dev.api.zinnia.io
description: DEV Environment
- url: https://qa.api.zinnia.io
description: QA Environment
tags:
- name: Financial Transactions
description: Financial Transactions
- name: Non Financial Transactions
description: Non Financial Transactions
- name: Policy - Transactions
description: All Apis related to policy operations
- name: Ref-Data
description: Ref-Data
- name: Transactions Eligibility
description: Eligibility evaluation for different operations
paths:
/bpm/actuator/health:
get:
x-internal: true
summary: Zahara BPM Health Check
tags:
- Policy - Transactions
description: Returns the health status of the application
operationId: getHealth
responses:
'200':
description: Application is healthy
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- UP
- DOWN
example: UP
'503':
description: Application is unhealthy
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- DOWN
example: DOWN
/policy/v1/transactions/{planCode}/{policyNumber}/multi-agent/validation:
post:
x-kong-plugin-pre-function:
config:
access:
- 'local path = kong.request.get_path()
local new_path = path:gsub("^/policy/v1/transactions", "/bpm/v1/policies")
kong.service.request.set_path(new_path)
'
tags:
- Non Financial Transactions
summary: Validation multi agent Transaction
operationId: validationMultiAgentTransaction1
parameters:
- name: planCode
in: path
required: true
schema:
type: string
- in: path
name: policyNumber
schema:
type: string
required: true
description: Policy Number
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AgentChangeDto'
required: true
responses:
'200':
description: Multi Agent Change Success Response.yaml
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
success:
$ref: '#/components/examples/successTransactionResponse'
'400':
description: Multi Agent Change Failure Response.yaml
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
failure:
$ref: '#/components/examples/failureTransactionResponse'
'500':
description: Internal server error. Please check server logs for more details.
security:
- Auth0: []
/bpm/v1/policies/{planCode}/{policyNumber}/Restrict:
parameters:
- name: planCode
in: path
required: true
schema:
type: string
description: Plan code
example: EVGFIA909
- name: policyNumber
in: path
required: true
schema:
type: string
description: Policy number
example: EVFIA09222243202
/bpm/v1/policies/{planCode}/{policyNumber}/Restrict/alerts:
parameters:
- name: planCode
in: path
required: true
schema:
type: string
description: Plan code
example: EVGFIA909
- name: policyNumber
in: path
required: true
schema:
type: string
description: Policy number
example: EVFIA09222243202
/policy/v1/transactions/{planCode}/{policyNumber}/Restrict:
x-kong-plugin-pre-function:
config:
access:
- 'local path = kong.request.get_path()
local new_path = path:gsub("^/policy/v1/transactions", "/bpm/v1/policies")
kong.service.request.set_path(new_path)
'
parameters:
- name: planCode
in: path
required: true
schema:
type: string
description: Plan code
example: EVGFIA909
- name: policyNumber
in: path
required: true
schema:
type: string
description: Policy number
example: EVFIA09222243202
post:
tags:
- Non Financial Transactions
summary: Submit active restrict transaction
description: 'Submits restriction add/delete requests for a policy. Kong rewrites this path to the BPM service
`/bpm/v1/policies/{planCode}/{policyNumber}/Restrict`.
'
operationId: submitActiveRestrictPolicyApi
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ActiveRestrictTransactionRequest'
responses:
'202':
description: Request accepted; transaction is being processed.
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionAcceptedResponse'
'400':
description: Bad request or rules validation failure
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
'500':
description: Internal server error
security:
- Auth0: []
get:
tags:
- Non Financial Transactions
summary: Get restriction alerts for a policy
description: 'Returns the restriction alert aggregate from TDS. When none exists, response body is `{}`.
Kong rewrites this path to `/bpm/v1/policies/{planCode}/{policyNumber}/Restrict`.
'
operationId: getActiveRestrictAlertsPolicyApi
responses:
'200':
description: Alert aggregate or empty object when no TDS record exists
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ActiveRestrictPolicyAlertDocument'
- type: object
maxProperties: 0
description: No alert aggregate stored for this policy yet
'500':
description: Internal server error
security:
- Auth0: []
/policy/v1/transactions/{planCode}/{policyNumber}/Restrict/alerts:
x-kong-plugin-pre-function:
config:
access:
- 'local path = kong.request.get_path()
local new_path = path:gsub("^/policy/v1/transactions", "/bpm/v1/policies")
kong.service.request.set_path(new_path)
'
parameters:
- name: planCode
in: path
required: true
schema:
type: string
description: Plan code
example: EVGFIA909
- name: policyNumber
in: path
required: true
schema:
type: string
description: Policy number
example: EVFIA09222243202
get:
tags:
- Non Financial Transactions
summary: Get restriction alerts for a policy
description: 'Returns the restriction alert aggregate from TDS. When none exists, response body is `{}`.
Kong rewrites this path to `/bpm/v1/policies/{planCode}/{policyNumber}/Restrict/alerts`.
'
operationId: getActiveRestrictAlertsV2PolicyApi
responses:
'200':
description: Alert aggregate or empty object when no TDS record exists
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ActiveRestrictPolicyAlertDocument'
- type: object
maxProperties: 0
description: No alert aggregate stored for this policy yet
'500':
description: Internal server error
security:
- Auth0: []
/bpm/v1/policies/{planCode}/{policyNumber}/basecoverageupdate/eligibilitycheck:
post:
tags:
- Financial Transactions
summary: base coverage update
operationId: post_bpm_v1_policies_planCode_policyNumber_basecoverageupdate_eligibilitycheck
parameters:
- name: planCode
in: path
required: true
schema:
type: string
- in: path
name: policyNumber
schema:
type: string
required: true
description: Policy Number
responses:
'200':
description: basecoverageupdate Eligibility Success Response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
success:
$ref: '#/components/examples/successTransactionResponse'
'400':
description: basecoverageupdate Eligibility Client Error Response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
failure:
$ref: '#/components/examples/failureTransactionResponse'
'500':
description: basecoverageupdate Eligibility Server Error Response
security:
- Auth0: []
/bpm/v1/policies/{planCode}/{policyNumber}/{transactionType}/eligibilitycheck:
post:
x-internal: true
tags:
- Non Financial Transactions
summary: Eligibility Check For Non-Financial Transaction
operationId: eligibilitycheckNonFinancialTransaction
parameters:
- name: planCode
in: path
required: true
schema:
type: string
- in: path
name: policyNumber
schema:
type: string
required: true
description: Policy Number
- in: path
name: transactionType
schema:
type: string
enum:
- address
- emailaddress
- phone
- bankaccount
- communicationpreference
required: true
description: Transaction Type
responses:
'200':
description: Non Financial Eligibility Success Response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
success:
$ref: '#/components/examples/successTransactionResponse'
'400':
description: Non Financial Eligibility Failure Response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
failure:
$ref: '#/components/examples/failureTransactionResponse'
'500':
description: Unexpected error occured, please check server logs
security:
- Auth0: []
/policy/v1/transactions/{planCode}/{policyNumber}/bankaccount/eligibilitycheck:
post:
tags:
- Non Financial Transactions
summary: Eligibility Check Bank Transaction
operationId: eligibilitycheckbankTransaction1
parameters:
- name: planCode
in: path
required: true
schema:
type: string
- in: path
name: policyNumber
schema:
type: string
required: true
description: Policy Number
responses:
'200':
description: Bank Success Response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
success:
$ref: '#/components/examples/successTransactionResponse'
'400':
description: Bank Failure Response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
failure:
$ref: '#/components/examples/failureTransactionResponse'
'500':
description: Unexpected error occured, please check server logs
security:
- Auth0: []
x-kong-plugin-pre-function:
config:
access:
- 'local path = kong.request.get_path()
local new_path = path:gsub("^/policy/v1/transactions", "/bpm/v1/policies")
kong.service.request.set_path(new_path)
'
/policy/v1/transactions/{planCode}/{policyNumber}/parties/{partyId}/{partyRole}/validation:
post:
x-kong-plugin-pre-function:
config:
access:
- 'local path = kong.request.get_path()
local new_path = path:gsub("^/policy/v1/transactions", "/bpm/v1/policies")
kong.service.request.set_path(new_path)
'
tags:
- Non Financial Transactions
summary: Party Change request
description: Validate Business Rules for Payee/Payor/Owner/TPD/Beneficiary and Add new Payee/Payor/Owner/ThirdPartyDesignee/PrimaryBeneficiary/ContingentBeneficiary
based on the request
operationId: updatePartyValidation1
parameters:
- name: planCode
in: path
required: true
schema:
type: string
- name: policyNumber
in: path
required: true
schema:
type: string
- name: partyId
in: path
required: true
schema:
type: string
- name: partyRole
in: path
required: true
example: Owner
description: Party for which details are being entered. Possible values are - Owner, Payor, Payee, PrimaryBeneficiary,
ContingentBeneficiary, ThirdPartyDesignee
schema:
type: string
enum:
- Payee
- Payor
- Owner
- ThirdPartyDesignee
- PrimaryBeneficiary
- ContingentBeneficiary
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PartyChangeRequest'
responses:
'202':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionAcceptedResponse'
'400':
description: Rules and Transaction Failure
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
failure:
$ref: '#/components/examples/failureTransactionResponse'
'500':
description: Unexpected error occured, please check server logs
/bpm/v1/policies/{planCode}/{policyNumber}/billingfeaturechange/eligibilitycheck:
post:
x-internal: true
tags:
- Non Financial Transactions
summary: Eligibility Check Billing Feature Change
description: Evaluates whether the policy is eligible for a billing feature change transaction.
operationId: billingFeatureChangeEligibilityCheck
parameters:
- name: planCode
in: path
required: true
schema:
type: string
description: Plan Code
- name: policyNumber
in: path
required: true
schema:
type: string
description: Policy Number
responses:
'200':
description: Billing Feature Change Eligibility Success Response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
success:
$ref: '#/components/examples/successTransactionResponse'
'400':
description: Billing Feature Change Eligibility Failure Response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
failure:
$ref: '#/components/examples/failureTransactionResponse'
'500':
description: Unexpected error occured, please check server logs
security:
- Auth0: []
/bpm/v1/policies/{planCode}/{policyNumber}/billingfeaturechange/validation:
post:
x-internal: true
tags:
- Non Financial Transactions
summary: Validate Billing Feature Change
description: Validates the billing feature change request against business rules before submission.
operationId: billingFeatureChangeValidation
parameters:
- name: planCode
in: path
required: true
schema:
type: string
description: Plan Code
- name: policyNumber
in: path
required: true
schema:
type: string
description: Policy Number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BillingFeatureChangeRequest'
examples:
billingFeatureChangeValidationExample:
summary: Billing feature change validation request example
value:
correlationId: e3bdb22b-790f-4357-ae60-42cdb0ff0d12
effectiveDate: '2026-07-24'
transactionReason: AMOUNT
policyFeatures:
- featureType: BILLING
paymentAmount: 1000
approvalDate: '2026-07-24'
frequency: DAILY
signatures:
- isSignedPresent: true
signDate: '2026-06-26'
signDesignation: null
signType: OWNER
signTypeForUI: Owner
- isSignedPresent: false
signDate: null
signDesignation: null
signType: JOINTOWNER
signTypeForUI: Joint Owner
documents:
- documentId: DOC123456
documentType: NFO_FORM
documentDate: '2026-06-26'
caseId: CA0000007389
policyNumber: WL987654321
planCode: WL1001
selfServeFlow: true
supportingDocumentAttached: true
responses:
'200':
description: Billing Feature Change Validation Success Response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
success:
$ref: '#/components/examples/successTransactionResponse'
'400':
description: Billing Feature Change Validation Failure Response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
failure:
$ref: '#/components/examples/failureTransactionResponse'
'500':
description: Unexpected error occured, please check server logs
security:
- Auth0: []
/policy/v1/transactions/{planCode}/{policyNumber}/freelookcancellation/validation:
post:
tags:
- Financial Transactions
summary: Validation Freelook Cancellation Transaction
operationId: validationFreelookCancellationTransaction1
parameters:
- name: planCode
in: path
required: true
schema:
type: string
- in: path
name: policyNumber
schema:
type: string
required: true
description: Policy Number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FreeLookCancellationRequest'
responses:
'200':
description: Freelook Cancellation Validation Success Response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
success:
$ref: '#/components/examples/successTransactionResponse'
'400':
description: Freelook Cancellation Validation Failure Response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
failure:
$ref: '#/components/examples/failureTransactionResponse'
'500':
description: Unexpected error occured, please check server logs
security:
- Auth0: []
/policy/v1/transactions/case:
post:
x-kong-plugin-pre-function:
config:
access:
- 'local path = kong.request.get_path()
local new_path = path:gsub("^/policy/v1/transactions", "/bpm/v1/policies")
kong.service.request.set_path(new_path)
'
tags:
- Policy - Transactions
summary: Create case for transaction
description: This operation must be invoked before submitting a transaction request. The service is responsible for
creating a new case record, which becomes the prerequisite reference for all subsequent transaction activities.
operationId: createCase
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCaseRequest'
responses:
'201':
description: Case Created
content:
application/json:
schema:
$ref: '#/components/schemas/CaseSuccessResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationResponse'
'401':
description: Authentication failed
content:
application/json:
examples:
NewBusiness:
value:
message: Unauthorized
'403':
description: Access denied
content:
application/json:
schema:
$ref: '#/components/schemas/AccessDeniedResponse'
'500':
description: Server error
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
security:
- Auth0: []
/policy/v1/cases/{caseId}/cancel:
put:
x-kong-plugin-pre-function:
config:
access:
- 'local path = kong.request.get_path()
local new_path = path:gsub("^/policy/v1/cases", "/bpm/v1/cases")
kong.service.request.set_path(new_path)
'
tags:
- Policy - Transactions
summary: Cancel a case
description: 'Cancels an existing case based on eligibility rules. The API validates that the case exists and that the
associated BPM process has not yet started. If eligible, the case is transitioned to a CANCELLED status, cancellation
metadata is persisted, and a NES cancellation event is emitted. Only cases in NOT_STARTED BPM state can be cancelled.
'
operationId: cancelCase
parameters:
- name: caseId
in: path
required: true
description: The unique identifier of the case to cancel
schema:
type: string
example: CA0000007516
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CaseCancellationRequest'
example:
correlationId: 218d8992-3783-42ac-b59a-66cbc36adaa2
planCode: TL0101
policyNumber: FIUL463340020
reason: User requested cancellation
requestedBy: CLIENT
type: Reinstatement
subType: Reinstatement
responses:
'202':
description: Cancellation accepted and BPM process triggered
content:
application/json:
schema:
$ref: '#/components/schemas/CaseCancellationResponse'
example:
caseId: CA0000007516
correlationId: 218d8992-3783-42ac-b59a-66cbc36adaa2
caseStatus: CANCELLED
message: Case cancellation initiated successfully
'400':
description: Bad Request - Missing or invalid required fields
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationResponse'
example:
statusCode: 400
timestamp: '2026-02-18T10:30:00Z'
errorId: a4a57ed0-2c1b-4922-9959-3b85dd8a96d3
message: Validation failed
error:
- reason is required
- type is required
'401':
description: Authentication failed
content:
application/json:
examples:
Unauthorized:
value:
message: Unauthorized
'403':
description: Access denied
content:
application/json:
schema:
$ref: '#/components/schemas/AccessDeniedResponse'
'404':
description: Case not found
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationResponse'
example:
statusCode: 404
timestamp: '2026-02-18T10:30:00Z'
errorId: b5b68ed1-3d2c-5933-0060-4c96ee9b97e4
message: Case not found
error:
- 'No case found for caseId: CA0000007516'
'409':
description: Cancellation not allowed - BPM process is not in an eligible state
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationResponse'
example:
statusCode: 409
timestamp: '2026-02-18T10:30:00Z'
errorId: c6c79fe2-4e3d-6044-1171-5da7fface85
message: Cancellation not allowed
error:
- Cancellation not allowed once transaction processing has started.
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
security:
- Auth0: []
/policy/v1/transactions/{planCode}/{policyNumber}/freelookcancellation/eligibilitycheck:
post:
x-kong-plugin-pre-function:
config:
access:
- 'local path = kong.request.get_path()
local new_path = path:gsub("^/policy/v1/transactions", "/bpm/v1/policies")
kong.service.request.set_path(new_path)
'
tags:
- Non Financial Transactions
summary: Freelook cancellation request
description: If freelook endDate is less than or equal to policy effective Date, cancel the policy based on the request
operationId: freelookcancellationEligibility1
parameters:
- name: planCode
in: path
required: true
schema:
type: string
- name: policyNumber
in: path
required: true
schema:
type: string
description: Policy Number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FreeLookCancellationRequest'
responses:
'202':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionAcceptedResponse'
'500':
description: Unexpected error occured, please check server logs
security:
- Auth0: []
/bpm/v1/policies/{planCode}/{policyNumber}/initialdeathclaim/eligibilitycheck:
post:
tags:
- Financial Transactions
summary: Initial Death Claim Eligibility Check
description: 'Checks whether an initial death claim can be submitted for the given policy.
No request body is required; eligibility is derived from the policy identified
by planCode and policyNumber. An eligible policy returns status success; an
ineligible policy returns status failure with the reasons in error.
'
operationId: initialDeathClaimEligibilityCheck
parameters:
- name: planCode
in: path
required: true
schema:
type: string
description: Plan Code
example: EVIU101
- name: policyNumber
in: path
required: true
schema:
type: string
description: Policy
# --- truncated at 32 KB (511 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zinnia/refs/heads/main/openapi/zinnia-policy-transactions-openapi.yml