Validar FALHA no valor que excede o limite

[JSR-LIM-002] - Fluxo e Condições para Erro de Limite Excedido


Introdução

Este documento descreve as condições necessárias e o fluxo de status para reproduzir o cenário de erro VALOR_ACIMA_LIMITE no teste [JSR-LIM-002].

Condições Necessárias

Valores Críticos

ParâmetroValorObservação
Limite de transaçãoR$ 3.000,00Definido na etapa 4 (Approve)
Valor do pagamento PIXR$ 3.001,00Deve exceder o limite em pelo menos R$ 0,01
Limite diárioR$ 8.000,00Não é o fator limitante neste teste

Status Necessários por Etapa

EtapaRequisiçãoStatus EsperadoObservação
1Get Application Token-Autenticação bem-sucedida
2Enrollment Payment initiationAWAITING_ACCOUNT_HOLDER_VALIDATIONEnrollment criado
3LoginAWAITING_ACCOUNT_HOLDER_VALIDATIONLogin bem-sucedido
4ApproveAWAITING_ENROLLMENTLimite definido: R$ 3.000,00
5Callback Payment InitiationAWAITING_ENROLLMENTCallback processado
6fido-registration-options-Opções geradas
7fido-registrationAUTHORISEDEnrollment autorizado
8payment-initiationAWAITING_AUTHORISATIONPayment criado
9fido-sign-options-Opções de assinatura geradas
10authoriseAUTHORISEDPayment autorizado
11pix422 ERRORErro: VALOR_ACIMA_LIMITE

Fluxo de Status

┌─────────────────────────────────────────────────────────────┐
│ 1. Enrollment Payment Initiation                            │
│    Status: AWAITING_ACCOUNT_HOLDER_VALIDATION               │
└────────────────────┬─────────────────────────────────────--─┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│ 2. Login + Approve                                          │
│    Status: AWAITING_ENROLLMENT                              │
│    ⚠️ LIMITE DEFINIDO: R$ 3.000,00                          │
└────────────────────┬──────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│ 3. Callback + FIDO Registration                             │
│    Status: AUTHORISED                                       │
│    ✅ Enrollment completo e autorizado                      │
└────────────────────┬──────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│ 4. Payment Initiation                                       │
│    Status: AWAITING_AUTHORISATION                           │
│    Valor: R$ 3.001,00 ⚠️                                    │
└────────────────────┬──────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│ 5. FIDO Sign + Authorise                                    │
│    Status: AUTHORISED                                       │
│    ✅ Payment autorizado                                    │
└────────────────────┬──────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│ 6. PIX - Processamento                                      │
│    ❌ ERRO 422: VALOR_ACIMA_LIMITE                          │
│    "Transaction limit exceeded (3001.00 > 3000)"            │
└─────────────────────────────────────────────────────────────┘

Pontos Críticos

1. Definição do Limite (Etapa 4 - Approve)

Na requisição Approve, é essencial definir o limite de transação:

{
    "limits": {
        "transactionLimit": "3000", // ⚠️ Limite crítico
        "dailyLimit": "8000"
    }
}

2. Valor do Pagamento (Etapa 8 - payment-initiation)

O valor do pagamento deve exceder o limite definido:

{
    "payment": {
        "amount": "3001.00", // ⚠️ Excede limite em R$ 1,00
        "currency": "BRL"
    }
}

3. Momento do Erro

O erro não ocorre durante:

  • Criação do payment-initiation
  • Autorização do payment (fido-sign-options + authorise)

O erro ocorre apenas na etapa final:

  • Processamento do PIX (etapa 11)

Validação do Erro

Resposta Esperada

{
    "name": "MoleculerClientError",
    "message": [
        {
            "code": "VALOR_ACIMA_LIMITE",
            "title": "Valor acima do limite.",
            "detail": "Transaction limit exceeded (3001.00 > 3000)"
        }
    ],
    "code": 422
}

Condições para Reproduzir

  1. ✅ Enrollment deve estar no status AUTHORISED
  2. ✅ Payment deve estar no status AUTHORISED
  3. ✅ Limite de transação deve ser exatamente 3000
  4. ✅ Valor do pagamento deve ser 3000.01 ou superior
  5. ✅ Todas as etapas anteriores devem ser executadas com sucesso

Observações Importantes

  • O limite é validado apenas no momento do processamento do PIX
  • O payment pode ser criado e autorizado mesmo com valor acima do limite
  • A validação ocorre na camada de processamento de pagamento, não na autorização
  • O erro retorna código HTTP 422 (Unprocessable Entity)