Validar qual erro prevalece quando ambas as condições, valor limite excedido e saldo insuficiente, falham

[JSR-MIX-004] - Validar qual erro prevalece quando ambas as condições, valor limite excedido e saldo insuficiente, falham.

Introdução

Este documento descreve as condições necessárias e o fluxo de status para validação de qual erro ocorre quando o limite é excedido e o saldo é insuficiente [JSR-MIX-004].


Condições Necessárias

Valores Críticos

ParâmetroValorObservação
Limite de transaçãoR$ 14.000,00Definido na etapa 4 (Approve)
Limite diárioR$ 14.000,00Definido na etapa 4 (Approve)
Valor do pagamento PIXR$ 15.000,00Deve ser exatamente esse valor para cair no mock do erro de saldo insuficiente

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
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: SALDO_INSUFICIENTE

Fluxo de Status

┌─────────────────────────────────────────────────────────────┐
│ 1. Enrollment Payment Initiation                            │
│    Status: AWAITING_ACCOUNT_HOLDER_VALIDATION               │
└────────────────────┬────────────────────────────────────── ┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│ 2. Login + Approve                                          │
│    Status: AWAITING_ENROLLMENT                              │
│    ⚠️ LIMITE DEFINIDO: R$ 14.000,00                  			  │
└────────────────────┬──────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│ 3. Callback + FIDO Registration                             │
│    Status: AUTHORISED                                       │
│    ✅ Enrollment completo e autorizado                      │
└────────────────────┬──────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│ 4. Payment Initiation                                       │
│    Status: AWAITING_AUTHORISATION                           │
│    Valor: R$ 15.000,00 ⚠️                                   │
└────────────────────┬──────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│ 5. FIDO Sign + Authorise                                    │
│    Status: AUTHORISED                                       │
│    ✅ Payment autorizado                                    │
└────────────────────┬──────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│ 6. PIX - Processamento                                      │
│    ❌ ERRO 422: SALDO_INSUFICIENTE                          │
└─────────────────────────────────────────────────────────────┘

Ponto Críticos

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

Na requisição Approve, é importante colocar um limite acima de 15 mil para não gerar erro de limite:

{
    "limits": {
        "transactionLimit": "14000",
        "dailyLimit": "14000"
    }
}

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

O valor do pagamento deve ser exatamente R$ 15.000,00 e deve ser enviado o header "x-force-error":

headers: {
	"x-force-error": true
}

body: {
			...,
      "payment": {
        "amount": "15000.00", // ⚠️ Valor necessário para retornar o erro
        "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": "SALDO_INSUFICIENTE",
            "title": "SALDO_INSUFICIENTE"
        }
    ],
    "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 menor que 15 mil
  4. ✅ Limite diário de transação deve ser menor que 15 mil
  5. ✅ Valor do pagamento deve ser exatamente 15000.00
  6. ✅ Todas as etapas anteriores devem ser executadas com sucesso

Observações Importantes

  • A validação ocorre na camada de processamento de pagamento, não na autorização
  • O erro retorna código HTTP 422 (Unprocessable Entity)