# Business Rule Errors
source: https://developer.mastercard.com/account-to-account-commerce-for-dsp/documentation/code-and-formats/business-rule-errors/index.md

Business rule errors are listed per API.   
Note: If Mastercard fails to validate the content of an incoming message, it will send a JSON response with an error body that contains an error code and an error description to indicate the reason for the message failure. The participant is then expected to fix the issue and send a new message.   

### Update Agreement {#update-agreement}

| Error Code |                                              Error Description                                              |
|------------|-------------------------------------------------------------------------------------------------------------|
| AGRM-0001  | X-Participant-ID must be a valid and active participant                                                     |
| AGRM-0003  | initiatingPartyId must be the same as X-Participant-ID                                                      |
| AGRM-0004  | businessType must be valid                                                                                  |
| AGRM-0030  | debtorId or debtorServiceProviderId is invalid                                                              |
| AGRM-0033  | Agreement Id in path param should match with the agreement Id in request                                    |
| AGRM-0034  | agreementId must be valid                                                                                   |
| AGRM-0038  | Agreements in progress can only be approved or rejected                                                     |
| AGRM-0037  | Only approved or rejected agreements can be deleted                                                         |
| AGRM-0039  | accountNickname must be sent for agreements being approved otherwise not                                    |
| AGRM-0040  | agreementStatusReason must be sent for agreements being rejected, otherwise not, and reason should be valid |
| AGRM-0041  | accountNickname can only be updated for approved agreements                                                 |
| AGRM-0043  | Agreement confirmation timed out                                                                            |

### Agreement Retrievals {#agreement-retrievals}

| Error Code |                                      Error Description                                      |
|------------|---------------------------------------------------------------------------------------------|
| AGRM-0001  | X-Participant-ID must be a valid and active participant                                     |
| AGRM-0003  | initiatingPartyId must be the same as X-Participant-ID                                      |
| AGRM-0004  | businessType must be valid                                                                  |
| AGRM-0026  | Please present either agreementReferenceNumber or agreementId to retrieve agreement details |
| AGRM-0027  | Invalid agreementId or agreementReferenceNumber or agreement is in an invalid state         |
| AGRM-0029  | Agreement retrieval timed out                                                               |

### Agreement Searches {#agreement-searches}

| Error Code |                    Error Description                    |
|------------|---------------------------------------------------------|
| AGRM-0001  | X-Participant-ID must be a valid and active participant |
| AGRM-0003  | initiatingPartyId must be the same as X-Participant-ID  |
| AGRM-0004  | businessType must be valid                              |

### Step Up Advices {#step-up-advices}

| Error Code |                            Error Description                             |
|------------|--------------------------------------------------------------------------|
| RFPX-0001  | X-Participant-ID must be a valid and active participant                  |
| RFPX-0004  | ServiceProviderId must match with X-Participant-ID and initiatingPartyId |
| RFPX-0005  | businessType must be valid                                               |
| RFPX-0025  | paymentRequestLifecycleId or payment_request_lifecycle_id is invalid     |
| RFPX-0061  | Step up notification is only allowed for agreement type AOF              |

### Payment Confirmation {#payment-confirmation}

| Error Code |                                                           Error Description                                                           |
|------------|---------------------------------------------------------------------------------------------------------------------------------------|
| RFPX-0001  | X-Participant-ID must be a valid and active participant                                                                               |
| RFPX-0004  | ServiceProviderId must match with X-Participant-ID and initiatingPartyId                                                              |
| RFPX-0005  | businessType must be valid                                                                                                            |
| RFPX-0025  | paymentRequestLifecycleId in path param or paymentRequestLifecycleId in request is invalid                                            |
| RFPX-0038  | debtorId is invalid                                                                                                                   |
| RFPX-0040  | creditAccountUsed is invalid                                                                                                          |
| RFPX-0031  | transactionStatus is invalid                                                                                                          |
| RFPX-0032  | transactionStatusReason is invalid                                                                                                    |
| RFPX-0042  | paymentDateTime must be present                                                                                                       |
| RFPX-0039  | Payment amount must be present for Authorised payments                                                                                |
| RFPX-0012  | currency must be a valid ISO-4217 alpha currency code                                                                                 |
| RFPX-0013  | Amount must have valid number of fraction digits                                                                                      |
| RFPX-0048  | agreementConfirmed must be present for Pay and Link journeys when transaction is Authorised                                           |
| RFPX-0049  | accountNickName must be present for Pay and Link journeys when Transaction is Authorised                                              |
| RFPX-0050  | Payment Block should not be present if Transaction is not Approved                                                                    |
| RFPX-0051  | Invalid paymentRequestStatusRetrievalLifecycleId                                                                                      |
| RFPX-0052  | Payment Confirmation Details must match with the first Payment Confirmation sent                                                      |
| RFPX-0055  | Payment amount value must be the same as the amount in the associated payment request                                                 |
| RFPX-0059  | Approved agreements must have accountNickname populated. Otherwise, agreementStatusReason should be populated for rejected agreements |
| RFPX-0058  | Invalid agreementStatusReason                                                                                                         |

### Retrieve Payment {#retrieve-payment}

| Error Code |                                                    Error Description                                                    |
|------------|-------------------------------------------------------------------------------------------------------------------------|
| RFPX-0001  | X-Participant-ID must be a valid and active participant                                                                 |
| RFPX-0004  | ServiceProviderId must match with X-Participant-ID and initiatingPartyId                                                |
| RFPX-0005  | businessType must be valid                                                                                              |
| RFPX-0022  | retrieveInitMethod must be valid                                                                                        |
| RFPX-0046  | Either paymentRequestLifecycleId (for INTENT) OR paymentRequestReferenceNumber (for PRN) must be populated and not both |
| RFPX-0023  | Incorrect paymentRequestReferenceNumber                                                                                 |
| RFPX-0024  | Incorrect paymentRequestLifecycleId                                                                                     |
| RFPX-0047  | Payment Request already retrieved or in an incorrect state                                                              |
| RFPX-0045  | Transaction retrieval has timed out                                                                                     |

### Refunds {#refunds}

| Error Code |                                                      Error Description                                                      |
|------------|-----------------------------------------------------------------------------------------------------------------------------|
| RFND-0001  | X-Participant-ID must be a valid and active participant                                                                     |
| RFND-0002  | InitiatingPartyId must be same as X-Participant-ID                                                                          |
| RFND-0026  | refundRequestStatusReason is invalid                                                                                        |
| RFND-0034  | Debtor block must only be present if refundRequestStatus is APPR                                                            |
| RFND-0025  | Either debtor account block or debtor Accounts with valid account details must be present for approved refund requests      |
| RFND-0022  | Must provide either IBAN or Other Account details                                                                           |
| RFND-0023  | debtorAccountType should be from allowed account type values and should always be provided when refundRequestStatus is APPR |
| RFND-0035  | accountNumber must only be present if refundRequestStatus is APPR and other block is present                                |

### Refund Status Retrievals {#refund-status-retrievals}

| Error Code |                                                              Error Description                                                               |
|------------|----------------------------------------------------------------------------------------------------------------------------------------------|
| RFND-0001  | X-Participant-ID must be a valid and active participant                                                                                      |
| RFND-0004  | ServiceProvider Id must match with X-Participant-ID and InitiatingParty Id                                                                   |
| RFND-0003  | businessType must be valid                                                                                                                   |
| RFND-0016  | refundRequestLifecycleId must be valid                                                                                                       |
| RFND-0019  | refundRequestLifecycleId in the path parameter and refundRequestLifecycleId in the request should match                                      |
| RFND-0032  | paymentRequestLifecycleId in the path parameter should match paymentRequestLifecycleId in the request and be linked refundRequestLifecycleId |

### Retrieve CSPs {#retrieve-csps}

| Error Code |                    Error Description                    |                Resolution                 |
|------------|---------------------------------------------------------|-------------------------------------------|
| CSPL-0001  | X-Product-ID must be valid                              | X-Product-ID                              |
| CSPL-0002  | X-Participant-ID must be a valid and active participant | DSP Participant must be active and valid  |
| CSPL-0003  | categoryPurpose must be valid                           | "IEXS" categoryPurpose should be provided |

### Request Alias Resolution {#request-alias-resolution}

| Error Code |                            Error Description                            |                                                         Resolution                                                          |
|------------|-------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|
| ALRE-0001  | X-Product-ID must be valid                                              | X-Product-ID                                                                                                                |
| ALRE-0002  | X-Participant-ID must be a valid and active participant                 | DSP Participant must be active and valid                                                                                    |
| ALRE-0003  | initiatingPartyId must be the same as X-Participant-ID                  | initiatingPartyId and X-Participant-ID should be same                                                                       |
| ALRE-0004  | creditorServiceProviderId must be a valid and active participant        | Creditor Service Provider ID must be valid                                                                                  |
| ALRE-0017  | Creditor details type must be valid                                     | PERS should be provided as creditor type                                                                                    |
| ALRE-0019  | nationality must be a valid ISO 3166-1 alpha-3 country code             | nationality should be valid ISO country code                                                                                |
| ALRE-0020  | addressCountry must be a valid ISO 3166-1 alpha-3 country code          | addressCountry should be valid ISO country code                                                                             |
| ALRE-0021  | originatingCountry must be a valid ISO 3166-1 alpha-3 country code      | originatingCountry should be valid ISO country code                                                                         |
| ALRE-0024  | categoryPurpose must be valid                                           | categoryPurpose                                                                                                             |
| ALRE-0025  | debtorServiceProviderId must be a valid and active participant          | Debtor Service Provider ID must be valid                                                                                    |
| ALRE-0026  | Debtor service provider must be enrolled for provided categoryPurpose   | DSP should be enrolled for IEXS use-case                                                                                    |
| ALRE-0027  | Creditor service provider must be enrolled for provided categoryPurpose | CSP should be enrolled for IEXS use-case                                                                                    |
| ALRE-0028  | Alias type must be valid and supported by the creditor service provider | Alias type provided should be either email, phone, account name or other Alias type provided should be supported by the CSP |
| ALRE-0029  | personDetails is supported with creditor type PERS                      | personDetails should be provided when aliasDetails-\>creditorDetails-\>type is PERS                                         |
| ALRE-0030  | Debtor details type must be valid                                       | PERS should be provided as debitor type                                                                                     |
| ALRE-0031  | personDetails must be provided when debtorDetails type is PERS          | personDetails should be provided when debtorDetails type is PERS                                                            |
| ALRE-0032  | currency must be a valid ISO-4217 alpha currency code                   | currency should be valid ISO country code                                                                                   |
| ALRE-0033  | Amount must have valid number of fraction digits as per currency        | Amount should be provided with correct fractional digits as per currency                                                    |

#### Sample Business Rule Error Message {#sample-business-rule-error-message}

    { 
        "Errors": { 
            "Error": [ 
                { 
                    "Source": "ZAPP", 
                    "ReasonCode": "RFPX-0023",
                    "Description": "Incorrect Payment Reference number", 
                    "Recoverable": false, 
                    "Details": "NA" 
                } 
            ] 
        } 
    } 

<br />

