## Statuses & Errors ### Settlement Statuses | Status | Description | | --- | --- | | **S100_SCHEDULED** | Settlement scheduled for future execution | | **S200_RECEIVED** | Settlement received and validated, ready for processing | | **S300_IN_PROGRESS** | Settlement actively being processed | | **S400_FIAT_WITHDRAWAL_IN_PROGRESS** | Final fiat currency withdrawal in progress | | **S500_TERMINATED** | Settlement cancelled or terminated | | **S600_COMPLETED** | Settlement successfully completed | | **S700_FAILED** | Settlement failed during processing | ### Payout Statuses | Status Code | Status Name | Description | Workflow Stage | | --- | --- | --- | --- | | **RCVD** | Received | Payout request has been received by the system | Initial | | **ACCP** | Accepted | Payout has been accepted and validated | Post-validation | | **TSFS** | Payout Screening Failed - Sender | Payout screening failed for the sender | Screening/Compliance | | **TSFR** | Payout Screening Failed - Beneficiary | Payout screening failed for the beneficiary | Screening/Compliance | | **PNDG** | Pending | Payout is pending processing at destination member | Processing | | **PRCD** | Processed | Payout successfully processed and completed | Final Success | | **RJCT** | Rejected | Payout was rejected | Terminal Failure | | **CNCL** | Cancelled | Payout was cancelled | Cancellation | | **EXRE** | Expired | Payout has expired | Expiration | | **FAIL** | Failed | Payout failed due to technical/system errors | Technical Failure | | **RVSD** | Reversed | Payout has been reversed | Reversal | ### Common Payout Workflows | Workflow Type | Status Progression | Description | | --- | --- | --- | | **Happy Path** | `RCVD → ACCP → PNDG → PRCD` | Successful payout from initiation to completion | | **Sender Screening Failure** | `RCVD → TSFS` | Sender fails AML/KYC screening | | **Beneficiary Screening Failure** | `RCVD → TSFR` | Beneficiary fails AML/KYC screening | | **Business Rejection** | `RCVD → ACCP → PNDG → RJCT` | Rejected due to invalid details or business rules | | **Rate Expiration** | `RCVD → ACCP → EXRE` | Exchange rate expired before processing | | **User Cancellation** | `RCVD → ACCP → PNDG → CNCL` | User cancels the payout | | **Post-Processing Reversal** | `RCVD → ACCP → PNDG → PRCD → RVSD` | Completed payout is later reversed | | **Technical Failure** | `RCVD → ACCP → PNDG → FAIL` | System or technical error during processing | ### Almond Error Codes | Error Code | HTTP Status | Error Message | Category | | --- | --- | --- | --- | | **ALMOND-0000** | 500 | Server Error | System | | **ALMOND-0001** | 400 | Bad Request | Validation | | **ALMOND-0002** | 400 | Invalid 'filedName' field. | Validation | | **ALMOND-0003** | 401 | Unauthorized | Authentication | | **ALMOND-0004** | 403 | Forbidden | Authorization | | **ALMOND-0005** | 503 | Encountered an error at the destination member API. | Integration | | **ALMOND-0006** | 503 | Encountered an error at the provider API. | Integration | | **ALMOND-0007** | 503 | Unable to establish a connection with the target Member or any other third-party API. | Integration | | **ALMOND-0008** | 503 | Destination Member does not support specified 'payoutAmtCcy'. | Currency | | **ALMOND-0009** | 503 | This payment corridor is unavailable temporarily. | Corridor | | **ALMOND-0010** | 400 | Beneficiary account does not exist. | Beneficiary | | **ALMOND-0011** | 400 | Beneficiary is unable to accept funds. | Beneficiary | | **ALMOND-0012** | 410 | Exchange rate has expired. Please initiate a new payout. | Exchange Rate | | **ALMOND-0013** | 451 | Got screening hit. | Compliance | | **ALMOND-0014** | 400 | The payout is rejected. | Transaction | | **ALMOND-0015** | 400 | Destination Member could not resolve the beneficiary account. | Beneficiary | | **ALMOND-0016** | 400 | Destination Member could not resolve the sender or beneficiary name. | Validation | | **ALMOND-0017** | 400 | Destination member did not process the request successfully. | Integration | | **ALMOND-0018** | 429 | Too many requests sent. | Rate Limiting | | **ALMOND-0019** | 400 | Invalid payout method provided. | Validation | | **ALMOND-0020** | 400 | Operation Not Supported | Operation | | **ALMOND-0021** | 400 | Exchange rate request rejected. | Exchange Rate | | **ALMOND-0022** | 400 | Invalid Member id is provided in request. | Validation | | **ALMOND-0023** | 400 | Source Member does not support specified 'sendingAmtCcy'. | Currency | | **ALMOND-0024** | 503 | Prefund account has insufficient balance. | Balance | | **ALMOND-0025** | 400 | Fees not found. | Fees | | **ALMOND-0026** | 400 | Already FLAT fee configured. | Fees | | **ALMOND-0027** | 400 | Already SLAB fee configured. | Fees | | **ALMOND-0028** | 400 | Mandatory field missing. | Validation | | **ALMOND-0029** | 400 | Invalid field. | Validation | | **ALMOND-0030** | 400 | RateId provided in request is expired, please fetch fresh exchange rate. | Exchange Rate | | **ALMOND-0031** | 400 | Invalid rateId is provided in request. | Exchange Rate | | **ALMOND-0032** | 400 | Invalid transapayoutction amt provided in request. | Validation | | **ALMOND-0033** | 400 | Only one amt should be provided in request param | Validation | | **ALMOND-0034** | 500 | Destination Member system error. | Integration | | **ALMOND-0035** | 500 | Destination Member unknown system error. | Integration | | **ALMOND-0036** | 400 | Invalid PIX Key provided. | Validation | | **ALMOND-0036** | 400 | Member Id already exists. | Validation | | **ALMOND-0037** | 400 | Invalid purpose provided. | Validation | **Error Response Example**: ```json { "code": "ALMOND-0031", "message": "Invalid rateId is provided in request.", "detail": "Invalid rateId is provided in request." } ```