Referência API
Iniciar pagamento de bilhetes
Valida acesso a bilhetes, tipo e comprador; cria ou reutiliza pagamento central com recibo vinculado ao domínio.
https://api.sparkglim.net/api/white-label/v1/payments/initializeModelo de acesso
- Modelo de acesso
- HMAC de Organização no servidor
- Âmbito necessário
payments:write- Disponibilidade documentada
- Implementado no código
Disponibilidade verificada no código, sem garantia de produção.
A assinatura privada fica no servidor. A API Versão 1 usa assinatura v2; não é uma API v2.
Cabeçalhos
| Nome | Tipo | Validação |
|---|---|---|
x-white-label-domainObrigatórioDomínio verificado que resolve a conta de Organização aprovada e vincula este pedido. | string | Validação: Nome de anfitrião HTTPS verificado. |
x-white-label-key-idObrigatórioIdentificador extraído da chave privada única; nunca envie o segredo neste cabeçalho. | string | Validação: Identificador interno da chave privada emitida. |
x-white-label-signature-versionObrigatórioSeleciona a assinatura vinculada ao domínio; as rotas API mantêm a Versão 1. | string | Validação: 2. |
x-white-label-timestampObrigatórioInstante da assinatura em milissegundos comparado com o relógio do servidor para rejeitar pedidos antigos. | string | Validação: Milissegundos com 13 dígitos; dentro de cinco minutos. |
x-white-label-nonceObrigatórioValor aleatório novo registado pelo servidor para impedir repetição de um pedido assinado. | string | Validação: Valor novo: 16–128 [A-Za-z0-9_-]. |
x-white-label-signatureObrigatórioHMAC-SHA256 de domínio, chave de idempotência, credencial de campanha, instante, nonce, método, caminho, consulta ordenada e hash exato do corpo. | string | Validação: HMAC-SHA256 hexadecimal em minúsculas. |
x-white-label-campaign-keyOpcionalChave de campanha completa opcional que limita o pedido privado à mesma campanha autorizada. | string | Validação: Valor keyId:secret completo, opcional e limitado ao seu âmbito. |
X-Idempotency-KeyObrigatórioIdentidade estável de operação reutilizada com os mesmos detalhes; detalhes diferentes com a mesma chave são rejeitados. | string | Validação: 16–128 [A-Za-z0-9_-]. |
Pedido
| Nome | Tipo | Validação |
|---|---|---|
campaign_idObrigatórioCampanha existente na conta e no âmbito mais limitado de qualquer credencial de campanha. | string | Validação: UUID. |
ticket_idObrigatórioTipo de bilhete escolhido da campanha indicada; o servidor verifica estado, capacidade e preço. | string | Validação: UUID. |
quantityObrigatórioNúmero de bilhetes; o servidor impõe inventário e limites por pessoa. | integer | Validação: 1–100. |
phone_numberObrigatórioTelefone do participante; métodos e regras podem exigir número internacional válido. | string | Validação: Telefone válido e não vazio. |
emailOpcionalEmail de contacto usado pelo fluxo configurado; por si só não concede acesso. | string | Validação: Endereço de e-mail. |
discount_codeOpcionalCódigo de desconto ou convite da campanha, revalidado antes da compra. | string | Validação: Valor sem espaços nas extremidades e não vazio. |
invite_codeOpcionalCódigo de desconto ou convite da campanha, revalidado antes da compra. | string | Validação: Valor sem espaços nas extremidades e não vazio. |
luggage_quantityOpcionalQuantidade de bagagem para evento que suporta essa opção configurada. | integer | Validação: >=0. |
attendee_informationOpcionalRespostas aos campos reais da campanha, valores exigidos e opções suportadas. | object | Validação: Valores de texto correspondentes aos campos configurados. |
payment_channelOpcionalPreferência opcional; só se usam métodos ativos para país de venda, moeda e comerciante reais. | enum | Validação: card | mobile_money | apple_pay | bank_transfer | crypto; disponibilidade controlada pelo servidor. |
network_codeOpcionalRede móvel configurada quando o método de pagamento a exige. | string | Validação: Rede configurada. |
is_appOpcionalContexto existente para escolher configuração Web ou App; sem permissões extra. | boolean | Validação: Contexto do cliente. |
return_pathOpcionalDestino relativo de regresso ao site atual verificado após pagamento central. | string | Validação: Caminho relativo no mesmo domínio verificado. |
clientIpOpcionalIP original enviada por servidor autorizado para controlos existentes. | string | Validação: Endereço IP válido. |
Pedido
Os exemplos descrevem o contrato e não são executados. Use registos de teste autorizados; nunca cole segredos reais aqui.
POST /api/white-label/v1/payments/initialize HTTP/1.1
Host: api.sparkglim.net
x-white-label-domain: events.example.com
x-white-label-key-id: <ISSUED_KEY_ID>
x-white-label-signature-version: 2
x-white-label-timestamp: <FRESH_MILLISECONDS>
x-white-label-nonce: <FRESH_SIGNING_NONCE>
x-white-label-signature: <SERVER_GENERATED_SIGNATURE>
X-Idempotency-Key: example_stable_operation_0001
Content-Type: application/json
{
"campaign_id": "11111111-1111-4111-8111-111111111111",
"ticket_id": "22222222-2222-4222-8222-222222222222",
"quantity": 1,
"phone_number": "+233200000000",
"return_path": "/payment-return"
}Resposta
{
"success": true,
"data": {
"authorization_url": "https://checkout.sparkglim.net/gh/<SERVER_REFERENCE>",
"reference": "<SERVER_REFERENCE>"
},
"requestId": "wlapi_example"
}{
"success": false,
"error": "<ERROR_MESSAGE>",
"requestId": "wlapi_example"
}Validação, permissões, registos indisponíveis e falhas usam estado HTTP e erro do controlador.
Limites e novas tentativas
Organização: 120 pedidos por chave e 300 por IP por janela; respeite Retry-After e X-RateLimit.
Compatibilidade do código
As operações autorizadas exigem testes específicos da conta.
server/src/api/router.tsserver/src/api/routes/white-label.tsserver/src/white-label/auth.tsserver/src/white-label/schemas.tsserver/src/white-label/organization-service.tsserver/src/white-label/service.ts