NAV Navbar
shell

Introduction

Welcome to the IncomeWizard API!.

IncomeWizard API! provides endpoint to create or retrieve annuity products, living benefit riders, withdrawal rates, illustrations etc.

This documentation includes detailed explanations of API endpoints and common data definitions

Making Requests

The base URL for IncomeWizard API requests is https://www.incomewizard.com/api/v2

The API is built on RESTful principles with resource-oriented URL endpoints. HTTP status codes are used to indicate any API errors and all responses are returned in JSON format. All requests must be made over an HTTPS connection to ensure a secure transmission of data. Following a RESTful structure, requests should hit API endpoints using the appropriate HTTP method, which will depend on the desired action:

Method Description
GET Use the GET method to retrieve information about your users, their accounts, and any associated financial data. This will always be a read-only request, so queried objects will never be modified by a GET request.
POST Use a POST method to create a new object, such as a new user or connection. Request parameters should be given in JSON format. The response body will typically return the newly created resource.
PUT Use a PUT method to update an object, such as updating connection credentials. As with a POST request, parameters should be given in JSON format. If successful, the response body will typically return the modified object.
DELETE Use a DELETE method to delete an object, such as deleting one of your users. Successful DELETE requests will typically return an empty response body.

Errors

The IncomeWizard API uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- The API credentials or access token used are incorrect.
403 Forbidden -- You do not have access to the requested endpoint or action.
404 Not Found -- Returned if the given resource either does not exist or you do not have access to it.
405 Method Not Allowed -- You tried to access an endpoint with an invalid http method.
406 Not Acceptable -- You requested a format that isn't json.
410 Gone -- The requested resource has been removed from our servers.
422 Unprocessable Entity -- There was an issue with the given parameters. This could be due to a missing required field, a malformed parameter, etc.
500 Internal Server Error -- There are internal or API-related errors on our side. Additional requests will not resolve the issue.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.

Authentication

To authorize, use this code:

# With shell, you can just pass the correct header with each request
curl "https://www.incomewizard.com/api/v2/authenticate"
  -H "Authorization: a724809d37d0a21b7e9257f45cee416f5aec61993ab4b09e"

Make sure to replace a724809d37d0a21b7e9257f45cee416f5aec61993ab4b09e with your API key.

IncomeWizard uses API keys to allow access to the API.

IncomeWizard expects for the API key to be included in all API requests to the server in a header that looks like the following:

Authorization: a724809d37d0a21b7e9257f45cee416f5aec61993ab4b09e

Carrier

Get Carrier Details

curl "https://www.incomewizard.com/api/v2/carrier_details"
  -H "Authorization: a724809d37d0a21b7e9257f45cee416f5aec61993ab4b09e"

The above command returns JSON structured like this:

{
"data":{
"id":1, "name":"Carrier Name",
"a_m_best_rating": "A++", "s_and_p_rating": "A", "moodys_rating": "A+", "created_at":"2019-03-15T09:18:00.000-04:00", "updated_at":"2019-03-15T09:18:00.000-04:00" } }

This endpoint retrieves details of your insurance carrier.

HTTP Request

GET https://www.incomewizard.com/api/v2/carrier_details

Products

Get All Products

curl "https://www.incomewizard.com/api/v2/products"
  -H "Authorization: a724809d37d0a21b7e9257f45cee416f5aec61993ab4b09e"

The above command returns JSON structured like this:

{
"data":[
{
"id":99, "name":"Retirement Plus Multiplier Annuity 5 Year CDSC", "carrier_id":1, "annuity_type":null, "mortality_expense_charge":"0.0", "admin_charge_type":null, "admin_charge":"0.0", "avg_sub_account_exp":null, "min_issue_age":null, "max_issue_age":null, "minimum_premium":null, "maximum_premium":null, "death_benefit_oftions":null, "enhance_death_benefit":null, "initial_credit_based_on":null, "one_time_credit_percentage":null, "one_time_credit_percentage_to_cv":null, "vesting":false, "created_at":"2019-08-06T10:12:08.000-04:00", "updated_at":"2019-08-06T10:12:08.000-04:00" }, {
"id":98, "name":"Retirement Plus Multiplier Annuity", "carrier_id":1, "annuity_type":null, "mortality_expense_charge":"0.0", "admin_charge_type":null, "admin_charge":"0.0", "avg_sub_account_exp":null, "min_issue_age":null, "max_issue_age":null, "minimum_premium":null, "maximum_premium":null, "death_benefit_oftions":null, "enhance_death_benefit":null, "initial_credit_based_on":null, "one_time_credit_percentage":null, "one_time_credit_percentage_to_cv":null, "vesting":false, "created_at":"2019-08-06T10:08:21.000-04:00", "updated_at":"2019-08-06T10:08:21.000-04:00" } ] }

This endpoint retrieves all products.

HTTP Request

GET https://www.incomewizard.com/api/v2/products

Query Parameters

Parameter Default Description
status active/in-review If set to active, the result will includes only active products.

Create Annuity Product

curl "https://www.incomewizard.com/api/v2/products"
  -X POST
  -H "Authorization: a724809d37d0a21b7e9257f45cee416f5aec61993ab4b09e"
  -d '{"name":"SecureLink Future",
      "carrier_id":1,
      "annuity_type":"FIA",
      "mortality_expense_charge":"0.0",
      "admin_charge_type":1,
      "admin_charge":"0.0",
      "avg_sub_account_exp":"0.0",
      "min_issue_age":0,
      "max_issue_age":80,
      "minimum_premium":"10000.0",
      "maximum_premium":"2000000.0",
      "death_benefit_oftions":true,
      "enhance_death_benefit":false,
      "initial_credit_based_on":null,
      "one_time_credit_percentage":null,
      "one_time_credit_percentage_to_cv":null,
      "vesting":false}'

The above command returns JSON structured like this:

{ 
  "success" :"true"
}

This endpoint create annuity product.

HTTP Request

POST https://www.incomewizard.com/api/v2/products

URL Parameters

Parameter Description
name The name of the annuity product
carrier_id The id of insurance carrier of this product
annuity_type Type of annuity product must be in ['VA','FIA','FI','SPIA']
mortality_expense_charge Mortality and Expense ratio of this product. eg 1.25
admin_charge_type value 1 if charge is in percentage and 2 if charge is in dollar value
admin_charge value
avg_sub_account_exp Percentage value of average sub account expense
min_issue_age Minimum issue age for a annuity product
max_issue_age Maximum issue age for a annuity product
minimum_premium Minimum premium amount for a annuity product
maximum_Premium Maximum premium amount for a annuity product
death_benefit_oftions true if product offers death benefits
enhance_death_benefit true if product offers enhanced death benefits
initial_credit_based_on contract_value if credit/bonus is applied only on contract value, benefit_base if credit/bonus is applied only on benefit base , both of bonus applied on both
one_time_credit_percentage Initial credit percentage for Benefit Base
one_time_credit_percentage_cv Initial credit percentage for Contract Value
vesting true if there is vesting option

Get a Specific Product

curl "https://www.incomewizard.com/api/v2/products/2"
  -H "Authorization: a724809d37d0a21b7e9257f45cee416f5aec61993ab4b09e"

The above command returns JSON structured like this:

{
"data":{
"id":2, "name":"SecureLink Future", "carrier_id":1, "annuity_type":"FIA", "mortality_expense_charge":"0.0", "admin_charge_type":1, "admin_charge":"0.0", "avg_sub_account_exp":"0.0", "min_issue_age":0, "max_issue_age":80, "minimum_premium":"10000.0", "maximum_premium":"2000000.0", "death_benefit_oftions":true, "enhance_death_benefit":false, "initial_credit_based_on":null, "one_time_credit_percentage":null, "one_time_credit_percentage_to_cv":null, "vesting":false, "created_at":"2019-03-15T09:18:00.000-04:00", "updated_at":"2019-03-15T09:18:00.000-04:00" } }

This endpoint retrieves a specific annuity product.

HTTP Request

GET https://www.incomewizard.com/api/v2/products/{id}