# 错误代码

## HTTP 状态码

| 代码 | 描述 |
|------|------|
| 400 | 请求参数错误 |
| 401 | 认证失败 |
| 403 | 权限不足 |
| 404 | 资源未找到 |
| 409 | 资源冲突 |
| 422 | 验证错误 |
| 429 | 请求频率超限 |
| 500 | 服务器内部错误 |

## 错误响应格式

```json
{
  "error": {
    "code": "BOLETO_NOT_FOUND",
    "message": "指定的 Boleto 不存在",
    "details": {}
  }
}
```

## 业务错误代码

| 代码 | 描述 |
|------|------|
| `BOLETO_NOT_FOUND` | Boleto 不存在 |
| `BOLETO_ALREADY_REGISTERED` | Boleto 已在 PCR 登记 |
| `BOLETO_EXPIRED` | Boleto 已过期 |
| `PCR_REGISTRATION_FAILED` | PCR 登记失败 |
| `SETTLEMENT_FILE_ERROR` | 清算文件处理错误 |
| `INVALID_BARCODE` | 条形码无效 |
