---
updatedAt: 2026-09-10T18:41:56.000Z
agentTools:
  siteIndex: https://developers.pismo.io/llms.txt
  projectIndex: https://developers.pismo.io/pismo-docs/llms.txt
---

# On-us disputes

An on-us transaction is a payment, card purchase, or check where the issuing bank (the customer's bank) and the acquiring bank (the merchant's or receiver's bank) are the same financial institution. Because the payment stays inside a single bank, it does not need to go through outside card networks like Visa or Mastercard. Any on-us transaction dispute is resolved within that bank, without the need for card network involvement or extra fees.

# Create on-us dispute endpoint

Sample [Create on-us dispute](https://developers.pismo.io/pismo-docs/reference/post-create-on-us-dispute)  payload

```json
curl --location 'https://disputes-core-api-ext.internal.pismolabs.io/v1/on-us-dispute' 
--header 'Content-Type: application/json' 
--header 'x-cid: e0000000-0000-0000-0000-000000000000' 
--header 'x-tenant: TN-7364948a-cf8c-423b-bc3b-1fbc251c1301' 
--header 'x-account-id: 327313629' \
--data '{
      "source_identifier": { "id": "10007209824", "type": "AUTHORIZATION" },
      "metadata": { "test_run": "PISMO-349906-sandbox-1" },
      "modality": 1,
      "disputed_amount": 10.00,
      "is_partial": true,
      "comment": "PISMO-349906 sandbox smoke",
      "protocol": "PISMO-349906-sandbox-1"
}'
```

# On-us state machine

Like card network disputes, on-us disputes at Pismo use a state machine to progress the dispute to completion. An `event` enum is typically passed to [Update on-us dispute](https://developers.pismo.io/pismo-docs/reference/post-update-on-us-dispute)  to transition the dispute status to a new status.

<Image align="center" src="https://files.readme.io/c7cf995f1c0e79679b62f3d8e0f4349dbacfe2ff34047c8fa388f451d802972a-Dispute_State_Machine.png" />

<br />

<Table align={["left","left","left","left"]}>
  <thead>
    <tr>
      <th>
        Event
      </th>

      <th>
        Valid from states
      </th>

      <th>
        Target state
      </th>

      <th>
        Descriptiom
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `OPEN`
      </td>

      <td>
        `PENDING` \`
      </td>

      <td>
        `OPENED`
      </td>

      <td>
        Open the dispute for analysis
      </td>
    </tr>

    <tr>
      <td>
        `PENDING_DOCUMENTATION`
      </td>

      <td>
        `OPENED`
      </td>

      <td>
        `PENDING_DOCUMENTATION`
      </td>

      <td>
        Request additional documentation
      </td>
    </tr>

    <tr>
      <td>
        `ISSUER_LOSS`
      </td>

      <td>
        `OPENED`
      </td>

      <td>
        `ISSUER_LOSS`
      </td>

      <td>
        Close dispute - issuer loses
      </td>
    </tr>

    <tr>
      <td>
        `STORE_OWNER_LOSS`
      </td>

      <td>
        `OPENED`
      </td>

      <td>
        `STORE_OWNER_LOSS`
      </td>

      <td>
        Close dispute - store owner loses
      </td>
    </tr>

    <tr>
      <td>
        `CARDHOLDER_LOSS`
      </td>

      <td>
        `OPENED`
      </td>

      <td>
        `CARDHOLDER_LOSS`
      </td>

      <td>
        Close dispute - cardholder loses
      </td>
    </tr>

    <tr>
      <td>
        `REOPEN`
      </td>

      <td>
        `CANCELLED`\
        `REJECTED`
      </td>

      <td>
        `PENDING`
      </td>

      <td>
        Reopen a closed dispute
      </td>
    </tr>

    <tr>
      <td>
        `RESEND`
      </td>

      <td>
        `PENDING_DOCUMENTATION`
      </td>

      <td>
        `RESEND`
      </td>

      <td>
        Documentation received, resume analysis
      </td>
    </tr>

    <tr>
      <td>
        `CANCEL`
      </td>

      <td>
        `PENDING`\
        `OPENED` `PENDING_DOCUMENTATION`
      </td>

      <td>
        `CANCELED`
      </td>

      <td>
        Cancel the dispute
      </td>
    </tr>

    <tr>
      <td>
        `EXPIRE`
      </td>

      <td>
        `PENDING`\
        `OPENED` `PENDING_DOCUMENTATION`
      </td>

      <td>
        `EXPIRED`
      </td>

      <td>
        Mark dispute as expired
      </td>
    </tr>

    <tr>
      <td>
        `REJECTS`
      </td>

      <td>
        `PENDING`\
        `PENDING_DOCUMENTATION`
      </td>

      <td>
        `REJECTED`
      </td>

      <td>
        Reject the dispute
      </td>
    </tr>
  </tbody>
</Table>

<br />