Skip to main content

Error Handling & Troubleshooting

A useful guide to understanding, handling, and resolving errors in the Weavr Multi API.

Quick error lookup

Having trouble? Jump directly to the solution:

Error CodeCommon CauseQuick Fix
UNAUTHORIZEDInvalid or missing API keyCheck your API key in request headers
FORBIDDENAccount or identity not verified, or in wrong stateVerify corporate identity or check account status
CHANNEL_NOT_REGISTEREDSMS/Auth factor not enrolledComplete SMS enrolment process
OWNER_IDENTITY_NOT_VERIFIEDCorporate KYB not completeUse Simulator API to verify (sandbox)
DENIED_ACCOUNT_NOT_UPGRADED_TO_IBANAccount missing IBANUpgrade account to IBAN before funding
STEP_UP_REQUIREDSCA needed for operationComplete step-up authentication

Understanding Weavr error responses

All Weavr API errors follow a consistent structure:

{
"errorCode": "SPECIFIC_ERROR_CODE"
}

HTTP status codes

StatusCategoryCommon Scenarios
400Bad RequestInvalid parameters, missing required fields
401UnauthorizedInvalid API key, expired token
403ForbiddenInsufficient permissions, wrong account state
404Not FoundResource doesn't exist
409ConflictDuplicate resource, state conflict
429Too Many RequestsRate limit exceeded
500Internal Server ErrorServer-side issue, retry recommended
503Service UnavailableTemporary outage, maintenance

Common integration errors

Authentication errors

UNAUTHORIZED (401)

Problem: API key or authentication token is invalid or missing.

# Example symptom: missing API key
curl -X POST "https://sandbox.weavr.io/multi/login_with_password" \
-H "Content-Type: application/json" \
-d '{"email": "test@example.com", "password": {"value": "pass"}}'

# Response
HTTP Status: 401
{"errorCode": "UNAUTHORIZED"}

FORBIDDEN (403)

Problem: User lacks permission or account is in wrong state.

curl -X POST "https://sandbox.weavr.io/multi/managed_accounts" \
-H "api-key: YOUR_API_KEY" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{...}'

# Response
HTTP Status: 403
{"errorCode": "FORBIDDEN"}

Enrolment & step-up errors

CHANNEL_NOT_REGISTERED

Problem: SMS authentication factor not enrolled.

{
"errorCode": "CHANNEL_NOT_REGISTERED"
}

STEP_UP_REQUIRED

Problem: Operation requires Strong Customer Authentication (SCA).

{
"errorCode": "STEP_UP_REQUIRED"
}

Business logic errors

OWNER_IDENTITY_NOT_VERIFIED

Problem: Corporate identity needs KYB verification (and email/mobile verification).

{
"errorCode": "OWNER_IDENTITY_NOT_VERIFIED"
}

DENIED_ACCOUNT_NOT_UPGRADED_TO_IBAN

Problem: Account needs IBAN (or sort code and account number for GBP) in order to fund the account.

{
"errorCode": "DENIED_ACCOUNT_NOT_UPGRADED_TO_IBAN"
}

Data validation errors

INVALID_ENUM_VALUE

Problem: Using incorrect enum values (singular vs plural).

{
"errorCode": "INVALID_ENUM_VALUE"
}

Testing best practices

Test in sequence

Many operations have dependencies:

  1. Create corporate → 2. Set root user password → 3. Verify root user email and mobile → 4. Verify corporate → 5. Login → 6. Step-up (if not already) → 7. Create account

Breaking the chain causes errors. Test each step individually.

Rate limiting & retry strategy

Rate limits

  • Sandbox: 1000 requests per minute per Embedder
  • Production: Different limits apply (contact support for details)
  • Step-up: 3 attempts per challenge
  • Login: 10 attempts per hour per user

Retry strategy

Only retry requests that fail due to temporary server issues:

  • Retry for: 5xx errors (500, 503) - server-side problems
  • Don't retry: 4xx errors (400, 401, 403, 409) - client-side issues that won't resolve
  • Use exponential backoff: Wait longer between each retry attempt

Environment-specific issues

Sandbox vs Production

IssueSandboxProduction
Verification codesAlways 123456Real SMS/email
KYB processSimulator API instantFull documentation required
Card numbersTest cards onlyReal card issuance
Rate limits1000 requests/min per EmbedderDifferent limits apply

Simulator API authentication

Simulator API uses different header:

# ❌ Wrong - Multi API header
-H "api-key: YOUR_API_KEY"

# ✅ Correct - Simulator API header
-H "programme-key: YOUR_API_KEY"

Getting help

Before contacting support

  1. Check HTTP status code - Identifies error category
  2. Read error message - Often indicates the specific fix required
  3. Review this guide - Common errors documented
  4. Test in isolation - Simplify to minimum reproduction
  5. Collect details:
    • Request ID (from headers)
    • Timestamp
    • Full request/response
    • Account/corporate IDs

Support channels

Next steps