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 |
|---|---|
| 200 | Success |
| 201 | Resource created |
| 400 | Bad request — invalid parameters |
| 401 | Unauthorized — invalid signature or key |
| 403 | Forbidden — insufficient permissions |
| 404 | Resource not found |
| 409 | Conflict — duplicate reference |
| 422 | Unprocessable — business logic error |
| 429 | Too many requests — rate limited |
| 500 | Internal server error |
| 502 | Provider 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. |