Documentation API Codes d'erreur

Codes d'erreur

Every error returned by the API follows the same structure. This page lists every possible error code.

Error format

{
  "success": false,
  "error": {
    "code": "ERROR_CODE",
    "message": "Human readable message",
    "field": "optional_field_name",
    "docs": "https://germinopay.com/docs/erreurs#ERROR_CODE",
    "request_id": "req_a1b2c3d4e5f6"
  }
}
Request ID Every error response includes a request_id. Include it in any support request for faster diagnosis.

HTTP status codes

HTTP Meaning
200Success
201Resource created
400Bad request — invalid parameters
401Unauthorized — invalid signature or key
403Forbidden — insufficient permissions
404Resource not found
409Conflict — duplicate reference
422Unprocessable — business logic error
429Too many requests — rate limited
500Internal server error
502Provider unavailable

Error codes

Code HTTP Description
Authentication
INVALID_SIGNATURE 401 HMAC signature does not match. Check your secret key and signing algorithm.
MISSING_SIGNATURE 401 The X-Signature header is missing.
INVALID_PUBLIC_KEY 401 Public key unknown or revoked.
EXPIRED_TIMESTAMP 401 Timestamp more than 5 minutes old. Check your server clock.
API_DISABLED 403 Your API keys are disabled. Enable them in your dashboard.
Parameters
INVALID_PARAMETER 400 A required field is missing or has the wrong type. Check the "field" key.
INVALID_CURRENCY 400 Currency not supported for this provider.
INVALID_AMOUNT 400 Amount is zero, negative or below the provider minimum.
INVALID_PROVIDER 400 Provider must be paypal, cinetpay, fedapay or paydunya.
Business logic
DUPLICATE_REFERENCE 409 A transaction with this reference already exists. Use a new one.
INSUFFICIENT_BALANCE 422 Not enough balance to complete the payout or refund.
TRANSACTION_NOT_REFUNDABLE 422 This transaction cannot be refunded (failed, already refunded, expired).
REFUND_AMOUNT_EXCEEDED 422 The refund amount exceeds the original transaction.
ACCOUNT_NOT_VERIFIED 403 Your merchant account is not yet validated.
ACCOUNT_SUSPENDED 403 Your account is suspended. Contact support.
MONTHLY_LIMIT_EXCEEDED 422 You exceeded your monthly transaction limit.
Provider
PROVIDER_ERROR 502 The external provider returned an error. Details in "message".
PROVIDER_UNAVAILABLE 502 The external provider is currently down. Try again later.
PROVIDER_TIMEOUT 504 The external provider didn't respond in time.
Rate limit
RATE_LIMIT_EXCEEDED 429 Too many requests. Wait and retry with exponential backoff.