Crear una tienda
Mismos pasos que el asistente de onboarding: dominio normalizado y globalmente único (409 conflict), límite de tiendas del plan (403 plan_limit, omitido para organizaciones facturadas por el socio), stores + configuración del SDK + destinatarios (solo se almacenan hashes SHA-256 de las claves normalizadas) + canal de correo predeterminado para el propietario + páginas de pago. La respuesta incluye la sdk_key y snippets de instalación listos para pegar.
bearerAuthAutorizaciónBearer <token>Token de API creado en Ajustes → API. Los alcances están vinculados al token; cada operación indica el alcance requerido en x-scope.
org_id?stringSolo socios (orgs:manage): actúa sobre esta organización hija. También se puede enviar como org_id en cuerpos JSON.
uuidIdempotency-Key?stringReproduce la respuesta original durante 24 h
1 <= length <= 255application/json- body
mode?string"monitor""block"calibration_seconds?integer10 <= value <= 120overlay_check_interval_ms?integer500 <= value <= 60000installation_order_policy?string"warn""silent"payment_methods?array<>sensitive_fields?array<string>|null → SDK defaults
expected_iframe_origins?array<string>Hosts (suffix match) of expected payment iframes, e.g. js.stripe.com
allowed_service_workers?array<string>Same-origin paths; [] = no restriction
gtm_containers?array<>Approved GTM containers; [] = no restriction
developer_mode?booleantrue pauses the SDK (config returns paused:true)
release_channel?string"stable""latest"domain*stringHost name; scheme/path are stripped
name?stringlength <= 120country?string2 <= length <= 2"BR"timezone?string"America/Sao_Paulo"emergency_contact?|length <= 32recipients?array<>items <= 50payment_pages?array<>items <= 50Creada
application/json- response
id?stringuuidorg_id?stringuuidname?stringdomain?stringcountry?stringtimezone?stringstatus?string"active""suspended""deleted"sdk_key?stringsafe_slug?stringemergency_contact?string|nullcreated_at?stringdate-timeupdated_at?stringdate-timesdk_config?|nullrecipients?array<>pages?array<>snippets?curl -X POST "https://example.com/stores" \ -H "Content-Type: application/json" \ -d '{ "domain": "lojadojoao.com.br", "name": "Loja do João", "country": "BR", "timezone": "America/Sao_Paulo", "payment_methods": [ "pix", "card", "boleto" ], "expected_iframe_origins": [ "js.stripe.com" ], "recipients": [ { "method": "pix", "key": "12.345.678/0001-90", "label": "CNPJ principal" } ], "payment_pages": [ { "url_pattern": "/checkout/*", "payment_methods": [ "pix", "card" ] } ] }'{ "id": "0c1d2e3f-1111-4222-8333-444455556666", "org_id": "7f3c1e2a-0b4d-4c8e-9f10-2a3b4c5d6e7f", "name": "Loja do João", "domain": "lojadojoao.com.br", "country": "BR", "timezone": "America/Sao_Paulo", "status": "active", "sdk_key": "pk_live_0123456789abcdef0123456789abcdef", "safe_slug": "lojadojoao-com-br", "emergency_contact": null, "created_at": "2026-09-27T10:01:00.000Z", "updated_at": "2026-09-27T10:01:00.000Z", "sdk_config": { "mode": "monitor", "calibration_seconds": 30, "overlay_check_interval_ms": 2000, "installation_order_policy": "warn", "payment_methods": [ "pix", "card", "boleto" ], "sensitive_fields": null, "expected_iframe_origins": [ "js.stripe.com" ], "allowed_service_workers": [], "gtm_containers": [], "developer_mode": false, "release_channel": "stable", "updated_at": "2026-09-27T10:01:00.000Z" }, "recipients": [ { "id": "9a8b7c6d-2222-4333-8444-555566667777", "method": "pix", "key_masked": "12.***.***/0001-90", "key_hash": "3f1a…64 hex…", "label": "CNPJ principal", "active": true, "created_at": "2026-09-27T10:01:00.000Z" } ], "pages": [ { "id": "5e4d3c2b-3333-4444-8555-666677778888", "store_id": "0c1d2e3f-1111-4222-8333-444455556666", "url_pattern": "/checkout/*", "url": "/checkout/*", "domain": "lojadojoao.com.br", "is_payment_page": true, "mode": "monitor", "payment_methods": [ "pix", "card" ], "status": "active", "created_at": "2026-09-27T10:01:00.000Z" } ], "snippets": { "html": "<script src=\"https://cdn.proteside.com/v1/stable/shield.js\" data-key=\"pk_live_…\" async></script>", "nextjs": "…", "nuxt": "…", "wordpress": "…" }}