# Response Codes & Failure Reason

## Response Codes

<table><thead><tr><th width="166">Response Code</th><th width="176">Response Message</th><th>Error Object</th></tr></thead><tbody><tr><td>00</td><td>Success</td><td>-</td></tr><tr><td>credentials_invalid</td><td>Access Token is Invalid</td><td><p></p><pre class="language-json"><code class="lang-json">{
  "error": {
    "type": "API_ERROR",
    "details": [
      {
        "field": "",
        "message": "Request new access token"
      }
    ],
    "traceId": "{trace id}" 
  }
}

</code></pre></td></tr><tr><td>field\_format\_invalid</td><td>Format Field is Invalid</td><td><p></p><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "{field name}",
"message": "Make sure {field name} format is correct"
}
],
"traceId": "{trace id}"
}
}

</code></pre></td></tr><tr><td>field\_required</td><td>Mandatory Field is Missing</td><td><p></p><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "{field name}",
"message": "Make sure {field name} value is fulfilled"
}
],
"traceId": "{trace id}"
}
}

</code></pre></td></tr><tr><td>amount\_below\_limit</td><td>Amount Value below the minimum</td><td><p></p><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "{field name}",
"message": "Make sure {field name} amount is above minimum"
}
],
"traceId": "{trace id}"
}
}

</code></pre></td></tr><tr><td>resource\_already\_exists</td><td>X-REQUEST-ID is already exists</td><td><p></p><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "",
"message": "Use unique X-EXTERNAL-ID"
}
],
"traceId": "{trace id}"
}
}

</code></pre></td></tr><tr><td>resource\_already\_exists</td><td>ID is already exists</td><td><p></p><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "{field name}",
"message": "Use unique {field name}"
}
],
"traceId": "{trace id}"
}
}

</code></pre></td></tr><tr><td>service\_unavailable</td><td>Gateway / Partner service is unavailable</td><td><p></p><pre class="language-json"><code class="lang-json">{
"error": {
"type": "GATEWAY\_ERROR",
"details": \[
{
"field": "",
"message": "Please hit periodically"
}
],
"traceId": "{trace id}"
}
} </code></pre></td></tr><tr><td>balance\_insufficient</td><td>Merchant Balance is Insufficient</td><td><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "",
"message": "Re Top-up your Balance"
}
],
"traceId": "{trace id}"
}
} </code></pre></td></tr><tr><td>unsupported\_channel\_code</td><td>Channel Code is currently not supported</td><td><p></p><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "{field name}",
"message": "Make sure channel code following on the API Document"
}
],
"traceId": "{trace id}"
}
}

</code></pre></td></tr><tr><td>resource\_missing</td><td>Payout ID is not exist</td><td><p></p><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "",
"message": "Make sure payout id is correct"
}
],
"traceId": "{trace id}"
}
} </code></pre></td></tr><tr><td>format\_invalid</td><td>Payout format is invalid</td><td><p></p><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "",
"message": "Make sure payout object no more than 1000 items"
}
],
"traceId": "{trace id}"
}
}

</code></pre></td></tr><tr><td>resource\_missing</td><td>Inquiry ID is not exist</td><td><p></p><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "{field name}",
"message": "Make sure inquiry id is correct"
}
],
"traceId": "{trace id}"
}
}

</code></pre></td></tr><tr><td>general\_error</td><td>General Error</td><td><p></p><pre class="language-json"><code class="lang-json"><strong>{ </strong>  "error": {
"type": "API\_ERROR",
"details": \[
{
"field": "",
"message": "Please contact our representative team"
}
],
"traceId": "{trace id}"
}
}

</code></pre></td></tr><tr><td>amount\_above\_limit</td><td>Amount value above the maximum</td><td><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "{field name}",
"message": "Make sure {field name} amount is below maximum"
}
],
"traceId": "{trace id}"
}
} </code></pre></td></tr><tr><td>daily\_payout\_limit\_exceeded</td><td>Exceed daily Payout limit</td><td><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "",
"message": "Remaining amount today: Rp \[current Payout balance]. Please try again tomorrow or contact Helpdesk"
}
],
"trace\_id": "{trace id}"
}
} </code></pre></td></tr><tr><td>payouts\_in\_process</td><td>Payouts are being process</td><td><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "",
"message": "Wait a moment to retrieve the Payout"
}
],
"trace\_id": "{trace id}"
}
} </code></pre></td></tr><tr><td>format\_invalid</td><td>Payouts format is invalid</td><td><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "",
"message": "Make sure Payout request format is correct"
}
],
"trace\_id": "{trace id}"
}
} </code></pre></td></tr><tr><td>field\_value\_invalid</td><td>Format Field is invalid</td><td><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "",
"message": "unsupported currency, only IDR is supported"
}
],
"trace\_id": "{trace id}"
}
} </code></pre></td></tr><tr><td>unprocessable\_entity</td><td>disbursement status has not been approved</td><td><pre class="language-json"><code class="lang-json">{
"error": {
"type": "API\_ERROR",
"details": \[
{
"field": "",
"message": "disbursement status has not been approved"
}
],
"trace\_id": "{trace id}"
}
} </code></pre></td></tr></tbody></table>

## Failure Reason

Failure reason will appear whenever Payout Transaction Status is "FAILED"

| Failure Reason                    | Description                                                  |
| --------------------------------- | ------------------------------------------------------------ |
| Invalid account                   | Beneficiary account is invalid or doesn't exist              |
| Inactive account                  | Beneficiary account is inactive                              |
| Dormant account                   | Beneficiary account is closed or deactivated                 |
| Failed to process by Bank Network | Bank is failed to process the transaction                    |
| Feature not allowed at this time  | Merchant is not eligible to access the feature at the moment |
| Unknown Bank Network error        | Undefined Bank error response                                |
| Declined due to beneficiary limit | Beneficiary account has already reached the daily limit      |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pivot-payment.gitbook.io/pivot-docs/api-references/api-lists/payout-local/response-codes-and-failure-reason.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
