Skip to main content

Retrieve product

Returns the sale envelope of a product enabled for your integration: the active coverages with their option spaces, the dependencies between coverages, your default values and your commission band. With this response you have everything needed to build a valid quote.

Request

ENDPOINT
/v1/product_catalog/products/{product_key}
METHOD
GET

Path params

ParameterTypeRequiredDescription
product_keystringrequiredProduct key, obtained from the product listing.

Response

STATUS
200
Response Body
{
"product_key": "9d1f8c7a-3b21-4e60-8a2f-1c5d7e9b0a44",
"name": "Prestamista Master",
"product_category": "insurance",
"insurance_class": "credit_life",
"contract_instrument_type": "ticket",
"regulator_registration": "15414.900123/2025-77",
"provider_name": "QI Seguradora",
"commission_bounds": {
"minimum_rate": 0.05,
"maximum_rate": 0.20,
"default_rate": 0.15
},
"services": [
{
"service_key": "0a3c5e7f-2b4d-4a6c-8e0f-1a3b5c7d9e2f",
"service_type": "credit_life",
"service_category": "insurance",
"mandatory": true,
"maximum_insured_amount": 500000.00,
"deductible_options": {
"deductible_type": "monetary_amount",
"options_type": "list",
"options": [0.00, 1500.00, 3000.00]
},
"waiting_period_options": {
"waiting_period_type": "days",
"options_type": "range",
"options": {
"minimum": 0,
"maximum": 90,
"step": 30
}
},
"indemnity_unit_options": null,
"regulator_registration": null,
"dependencies": {
"include": [],
"exclude": []
},
"service_attributes": null,
"default_configuration": {
"insured_amount_basis": "percentage_of_risk_value",
"insured_amount": null,
"insured_amount_percentage": 0.8000,
"unit_amount": null,
"unit_count": null,
"deductible_data": {
"deductible_type": "monetary_amount",
"value": 1500.00
},
"waiting_period_days": 30
}
}
]
}

Response attributes

FieldTypeDescription
product_keystringUnique product key.
namestringCommercial name of the product.
product_categorystringProduct category: insurance, capitalization or benefit.
insurance_classstringSUSEP line of business of the product. null for non-insurance products.
contract_instrument_typestringThe product's contract instrument: ticket or policy. It determines the contracting flow and which acceptance methods are legal — see Create order. null for non-insurance products.
regulator_registrationstringSUSEP registration of the product (Código SUSEP).
provider_namestringName of the partner insurer.
commission_boundsobjectYour commission band for this product: minimum_rate, maximum_rate and default_rate (decimal rates with 4 places). The quote/order commission is validated against [minimum_rate, maximum_rate]; when omitted, default_rate applies.
servicesarrayActive coverages of the product.

Object in services

FieldTypeDescription
service_keystringUnique coverage key. Use it in the services list of the quote and the order.
service_typestringCoverage type (e.g. credit_life).
service_categorystringCoverage category: insurance, capitalization or benefit.
mandatorybooleanMandatory coverage in every sale of the product. A selection omitting it is rejected with MISSING_MANDATORY_SERVICE.
maximum_insured_amountnumberMaximum accepted insured amount. null for coverages without an insured amount (benefits).
deductible_optionsobjectTyped envelope of the accepted deductibles (see below). null means the coverage has no deductible — sending deductible_data for it is rejected.
waiting_period_optionsobjectTyped envelope of the accepted waiting periods (see below). null means the coverage has no waiting period.
indemnity_unit_optionsobjectTyped envelope of the accepted indemnity units, for unit-priced coverages (e.g. "BRL 100 per daily benefit, up to 60 dailies"). null means the coverage is not unit-priced — sending unit_amount/unit_count for it is refused with OUT_OF_OPTION_SPACE.
regulator_registrationstringCoverage-specific SUSEP registration. null means the coverage inherits the product's registration.
dependenciesobjectStructural rules between coverages of this product: include (prerequisite coverage keys — every listed coverage must be in the selection) and exclude (mutually exclusive keys — they cannot coexist in the selection).
service_attributesobjectFixed coverage attributes defined by the insurer (e.g. quantities of a benefit). Echoed at quote time.
default_configurationobjectYour configured default for this coverage — what the quote fills in automatically when the selection omits services. Every value field is emitted, null on the ones that do not apply; insured_amount_basis says which one is live. The values come in the same shape you would submit in the selection, ready to reuse. null when no default is configured.

Option envelopes (deductible_options / waiting_period_options / indemnity_unit_options)

FieldTypeDescription
deductible_typestringDeductible type: monetary_amount, days or percentage_of_insured_amount. Present in deductible_options.
waiting_period_typestringWaiting period type: days. Present in waiting_period_options.
indemnity_unit_typestringIndemnity unit type (e.g. daily). Present in indemnity_unit_options.
options_typestringShape of the option space: list (list of accepted values) or range (interval {minimum, maximum, step}; a null step means a continuous interval).
optionsarray / objectThe accepted values, in the shape indicated by options_type.

default_configuration object

FieldTypeDescription
insured_amount_basisstringInsured amount basis: monetary_amount (absolute amount), percentage_of_risk_value (percentage of the risk object's value) or unit_amount_times_count (per-unit amount × unit count). It says which of the value fields below is live.
insured_amountnumberInsured amount in BRL. Present when the basis is monetary_amount.
insured_amount_percentagenumberPercentage of the risk object's value, in (0, 1] (1.0000 = 100%). Present when the basis is percentage_of_risk_value; null otherwise.
unit_amountnumberAmount per indemnity unit. Present when the basis is unit_amount_times_count; null otherwise.
unit_countintegerNumber of indemnity units. Present when the basis is unit_amount_times_count; null otherwise.
deductible_dataobjectDefault deductible, in the same typed shape sent in the selection: { deductible_type, value }.
waiting_period_daysintegerDefault waiting period, in days.

Possible errors

Every error (non-2xx) returns the standard body { "title", "description", "translation", "code" } — treat only the code field programmatically.

StatusCodeDescription
401 / 403Authentication or authorization failure.
404CAT000040The product does not exist, is inactive or is not enabled for your integration — the three cases are indistinguishable.
429Request rate limit exceeded — retry with backoff.
500QIT000500Internal error — safe to retry the call.
503CAT000033Service unavailable — safe to retry the call.