Ir al contenido

SecurityProfiles

Los SecurityProfiles permiten definir reglas de seguridad granulares aplicadas a las solicitudes de API de su App: restricción por IP o dominio, límite de importe por transacción, lista blanca de métodos de pago y bloqueo de países de riesgo.

Casos de uso típicos: limitar las llamadas a la API a sus servidores de producción, prohibir los pagos por encima de un determinado importe desde el frontend, bloquear los países sometidos a embargo o con una elevada tasa de fraude.

Disponibilidad

Los SecurityProfiles están disponibles en los planes Growth, Business y Enterprise. En el plan Starter, las solicitudes no se filtran mediante un perfil de seguridad.

Endpoints

MéthodeEndpointDescription
POST/security-profiles/Crear un perfil de seguridad
GET/security-profiles/Listar los perfiles
GET/security-profiles/{id}/Recuperar un perfil
PATCH/security-profiles/{id}/Modificar un perfil
DELETE/security-profiles/{id}/Eliminar un perfil

Esquema del objeto

ResponseObjeto SecurityProfile
Estructura completa devuelta por todos los endpoints de este recurso.
json
{
  "id": "sp_xxxxxxxxxxxx",
  "object": "security_profile",
  "name": "Profil E-commerce Production",
  "allowed_ips": [
    "196.200.1.0/24",
    "41.202.219.5"
  ],
  "allowed_domains": [
    "ma-boutique.com",
    "app.ma-boutique.com"
  ],
  "max_amount": 500000,
  "allowed_payment_methods": [
    "mobile_money",
    "bank_card"
  ],
  "blocked_countries": [
    "KP",
    "IR"
  ],
  "livemode": true,
  "created_at": "2026-01-01T00:00:00Z",
  "updated_at": "2026-01-01T00:00:00Z"
}

Crear un SecurityProfile

Crea un nuevo perfil de seguridad para su App. El perfil se aplica de inmediato a todas las solicitudes de API desde su creación.

POSTCuerpo de la solicitud
nameRequis
stringex :Perfil de comercio electrónico en producción

Nombre del perfil de seguridad. Se utiliza únicamente con fines de identificación en el panel; no es visible para sus clientes.

allowed_ipsOptionnel
array[string]ex :[“196.200.1.0/24”, “41.202.219.5”]

Lista de direcciones IP o de rangos CIDR autorizados a emitir solicitudes de API. Si este campo se rellena, toda solicitud procedente de una IP que no figure en la lista se rechaza con un error 403 Forbidden.

En savoir plus

Formatos aceptados: dirección IPv4 única (41.202.219.5) o notación CIDR (196.200.1.0/24). Deje este campo vacío para autorizar todas las IP, lo que resulta útil si sus servidores no tienen IP fija. Combínelo con allowed_domains para una protección en profundidad.

allowed_domainsOptionnel
array[string]ex :[“ma-boutique.com”, “app.ma-boutique.com”]

Lista de dominios autorizados a iniciar solicitudes desde el navegador (cabecera Origin). Útil para restringir el uso de su clave pública únicamente a los dominios que usted controla.

En savoir plus

No incluya el protocolo (https://) ni la barra final. Los subdominios deben indicarse explícitamente: ma-boutique.com no autoriza automáticamente app.ma-boutique.com. El campo allowed_domains se aplica únicamente a las solicitudes de frontend (CORS); las llamadas de servidor a servidor no se filtran con este campo.

max_amountOptionnel
integercentimesex :500000

Importe máximo autorizado por transacción, en céntimos. Todo intento de pago que supere este umbral se rechaza antes de crearse.

En savoir plus

Este límite se aplica al importe bruto del PaymentIntent, antes de descuentos o impuestos. Deje este campo en null para no aplicar ningún límite. Útil para limitar la exposición en caso de compromiso de una clave API, o para los comerciantes sujetos a límites reglamentarios por transacción.

allowed_payment_methodsOptionnel
array[string]

Lista de los métodos de pago autorizados por este perfil. Si se rellena, solo los métodos indicados pueden utilizarse en las transacciones asociadas a esta App.

En savoir plus

Valores posibles: mobile_money, bank_card, bank_transfer. Si este campo está vacío u omitido, se autorizan todos los métodos activos de la App. Restringir a los métodos que realmente se ofrecen en su interfaz reduce la superficie de ataque.

blocked_countriesOptionnel
array[string]ISO 3166-1 alpha-2

Lista de códigos de país cuyos pagos se bloquean. Toda transacción iniciada desde una IP geolocalizada en un país bloqueado se rechaza.

En savoir plus

Códigos ISO 3166-1 alpha-2 en mayúsculas (p. ej. KP, IR, SY). La geolocalización se basa en la IP del comprador y, en la mayoría de los casos, no se puede eludir mediante VPN gracias a la detección de anomalías. Esta lista es independiente de las restricciones de su App; un país puede estar bloqueado aquí sin retirarse de su catálogo.

Crear un perfil restrictivo

bash
curl -X POST https://api.sangho.ga/v1/security-profiles/ \
  -H "Authorization: Bearer sk_prod_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Profil E-commerce Production",
    "allowed_ips": ["196.200.1.0/24", "41.202.219.5"],
    "allowed_domains": ["ma-boutique.com", "app.ma-boutique.com"],
    "max_amount": 500000,
    "allowed_payment_methods": ["mobile_money", "bank_card"],
    "blocked_countries": ["KP", "IR"]
  }'
Response201 Created
El perfil está activo de inmediato. Las solicitudes de API de su App se filtran ya según estas reglas.
json
{
  "id": "sp_xxxxxxxxxxxx",
  "object": "security_profile",
  "name": "Profil E-commerce Production",
  "allowed_ips": [
    "196.200.1.0/24",
    "41.202.219.5"
  ],
  "allowed_domains": [
    "ma-boutique.com",
    "app.ma-boutique.com"
  ],
  "max_amount": 500000,
  "allowed_payment_methods": [
    "mobile_money",
    "bank_card"
  ],
  "blocked_countries": [
    "KP",
    "IR"
  ],
  "livemode": true,
  "created_at": "2026-03-01T10:00:00Z",
  "updated_at": "2026-03-01T10:00:00Z"
}

Listar los SecurityProfiles

Devuelve todos los perfiles de seguridad de su App, ordenados por fecha de creación descendente.

Modificar un SecurityProfile

Actualiza uno o varios campos de un perfil existente. Los cambios se aplican de inmediato: las solicitudes siguientes se filtran según las nuevas reglas.

PATCHCuerpo de la actualización (PATCH)
nameOptionnel
string
Nuevo nombre del perfil.
allowed_ipsOptionnel
array[string]

Nueva lista completa de IP autorizadas. Sustituye por completo la lista existente: no es una combinación (merge). Pase un array vacío [] para eliminar todas las restricciones de IP.

allowed_domainsOptionnel
array[string]

Nueva lista completa de dominios autorizados. Sustituye por completo la lista existente. Pase [] para eliminar las restricciones de dominio.

max_amountOptionnel
integercentimes

Nuevo límite de importe. Pase null para eliminar el límite.

allowed_payment_methodsOptionnel
array[string]

Nueva lista de métodos autorizados. Sustituye por completo la lista existente.

blocked_countriesOptionnel
array[string]ISO 3166-1 alpha-2

Nueva lista de países bloqueados. Sustituye por completo la lista existente. Pase [] para desbloquear todos los países.

Eliminar un SecurityProfile

Elimina definitivamente el perfil de seguridad. Las reglas asociadas dejan de aplicarse de inmediato. La acción es irreversible.

Impacto inmediato

La eliminación de un SecurityProfile surte efecto al instante: su App deja de estar sujeta a ninguna restricción de seguridad hasta que se cree y active un nuevo perfil. Asegúrese de tener listo un perfil de sustitución antes de eliminar un perfil de producción.

Listar los perfiles

bash
curl "https://api.sangho.ga/v1/security-profiles/" \
  -H "Authorization: Bearer sk_prod_xxxx"

Modificar un perfil

bash
curl -X PATCH https://api.sangho.ga/v1/security-profiles/sp_xxx/ \
  -H "Authorization: Bearer sk_prod_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "max_amount": 750000,
    "blocked_countries": ["KP", "IR", "SY"]
  }'
Response200 OK — Perfil actualizado
Devuelve el objeto SecurityProfile completo con las reglas actualizadas. Los cambios son efectivos de inmediato.
json
{
  "id": "sp_xxxxxxxxxxxx",
  "object": "security_profile",
  "name": "Profil E-commerce Production",
  "allowed_ips": ["196.200.1.0/24", "41.202.219.5"],
  "allowed_domains": ["ma-boutique.com", "app.ma-boutique.com"],
  "max_amount": 750000,
  "allowed_payment_methods": ["mobile_money", "bank_card"],
  "blocked_countries": ["KP", "IR", "SY"],
  "livemode": true,
  "updated_at": "2026-04-10T15:30:00Z"
}

Eliminar un perfil

bash
curl -X DELETE https://api.sangho.ga/v1/security-profiles/sp_xxx/ \
  -H "Authorization: Bearer sk_prod_xxxx"
Response204 No Content — Eliminado
La eliminación se ha realizado correctamente. Las reglas de seguridad dejan de aplicarse de inmediato.