{"openapi":"3.1.0","info":{"title":"ComparaPA API","version":"1.0.0","description":"Comparador financiero independiente para Panamá. Datos con base en tarifarios oficiales de la Superintendencia de Bancos de Panamá (SBP) y la ACODECO.","contact":{"name":"ComparaPA","url":"https://www.comparapa.com/developers"},"license":{"name":"UNLICENSED","url":"https://www.comparapa.com/terms"}},"servers":[{"url":"https://www.comparapa.com","description":"Producción"}],"tags":[{"name":"Catálogo","description":"Productos financieros panameños"},{"name":"Referencia","description":"Tasas y entidades regulatorias"},{"name":"Cálculos","description":"Motores de cálculo tributario y financiero"}],"paths":{"/api/v1/products":{"get":{"operationId":"listProducts","summary":"Catálogo de productos financieros","description":"Devuelve tarjetas de crédito, préstamos, seguros y cuentas de ahorro disponibles en Panamá. Se puede filtrar por categoría, banco o etiqueta de beneficio.","tags":["Catálogo"],"parameters":[{"name":"category","in":"query","description":"Slug público de la categoría (por ejemplo: tarjetas-de-credito, prestamos-personales, seguros).","schema":{"type":"string"}},{"name":"bank","in":"query","description":"Nombre o slug del banco/aseguradora (por ejemplo: Banco General, bac-credomatic).","schema":{"type":"string"}},{"name":"tag","in":"query","description":"Etiqueta de beneficio (por ejemplo: cashback, sin-anualidad, aprobacion-rapida).","schema":{"type":"string"}}],"responses":{"200":{"description":"Lista de productos filtrados","content":{"application/json":{"schema":{"type":"object","required":["status","count","filters","data"],"properties":{"status":{"type":"string","example":"success"},"count":{"type":"integer"},"filters":{"type":"object","properties":{"category":{"type":["string","null"]},"bank":{"type":["string","null"]},"tag":{"type":["string","null"]}}},"data":{"type":"array","items":{"$ref":"#/components/schemas/Product"}}}}}}}}}},"/api/v1/rates":{"get":{"operationId":"getRates","summary":"Tasas y parámetros legales de referencia","description":"Parámetros estatutarios usados por las calculadoras: CSS 9.75%, Seguro Educativo 1.25% y tramos progresivos del ISR de la DGI.","tags":["Referencia"],"responses":{"200":{"description":"Parámetros legales de referencia","content":{"application/json":{"schema":{"type":"object","required":["status","data"],"properties":{"status":{"type":"string","example":"success"},"data":{"type":"object","required":["cssEmployeeRate","educativoRate","isrBrackets","source"],"properties":{"cssEmployeeRate":{"type":"number","example":0.0975},"educativoRate":{"type":"number","example":0.0125},"isrBrackets":{"type":"array","items":{"type":"object","properties":{"upperBound":{"type":"number"},"rate":{"type":"number"}}}},"deductionCaps":{"type":"object"},"source":{"type":"string"}}}}}}}}}}},"/api/v1/banks":{"get":{"operationId":"listBanks","summary":"Directorio de entidades bancarias y aseguradoras","description":"Listado de instituciones financieras y aseguradoras autorizadas en Panamá presentes en el catálogo de ComparaPA.","tags":["Referencia"],"responses":{"200":{"description":"Directorio de entidades","content":{"application/json":{"schema":{"type":"object","required":["status","count","data"],"properties":{"status":{"type":"string","example":"success"},"count":{"type":"integer"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Bank"}}}}}}}}}},"/api/v1/calculators/salario-neto":{"post":{"operationId":"calculateNetSalary","summary":"Calculadora de salario neto panameño","description":"Calcula el salario líquido mensual descontando CSS (9.75%), Seguro Educativo (1.25%) e ISR progresivo de la DGI.","tags":["Cálculos"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["grossMonthly"],"properties":{"grossMonthly":{"type":"number","minimum":0,"description":"Salario bruto mensual en balboas (B/.).","example":1500}}}}}},"responses":{"200":{"description":"Desglose del salario neto","content":{"application/json":{"schema":{"type":"object","required":["status","data"],"properties":{"status":{"type":"string","example":"success"},"data":{"$ref":"#/components/schemas/NetSalaryResult"}}}}}},"400":{"description":"Entrada inválida","content":{"application/json":{"schema":{"type":"object","required":["status","error"],"properties":{"status":{"type":"string","example":"error"},"error":{"type":"string"}}}}}}}}}},"components":{"schemas":{"Product":{"type":"object","required":["id","name","bank","category","benefits","metrics","canonicalUrl"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"bank":{"type":"string"},"category":{"type":"string"},"benefits":{"type":"array","items":{"type":"string"}},"metrics":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"},"numeric":{"type":"number"},"hot":{"type":"boolean"}}}},"canonicalUrl":{"type":"string","format":"uri"}}},"Bank":{"type":"object","required":["slug","name","description","productCount"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"productCount":{"type":"integer"}}},"NetSalaryResult":{"type":"object","required":["grossMonthly","grossAnnual","cssMonthly","educativoMonthly","isrAnnual","isrMonthly","totalDeductionsMonthly","netMonthly","netAnnual"],"properties":{"grossMonthly":{"type":"number"},"grossAnnual":{"type":"number"},"cssMonthly":{"type":"number"},"educativoMonthly":{"type":"number"},"isrAnnual":{"type":"number"},"isrMonthly":{"type":"number"},"totalDeductionsMonthly":{"type":"number"},"netMonthly":{"type":"number"},"netAnnual":{"type":"number"}}}}}}