Payout dispute
Opens a dispute on a completed payout when the recipient reports the money did not arrive.
Request
POST /v1/payouts/{id}/dispute — application/json or multipart/form-data (with a file); headers: see Authorization.
| Field | Type | Required | Description |
|---|---|---|---|
comment | string | no | Comment |
receipt | file | no | File (multipart): up to 10 MB, png/jpg/jpeg/webp/heic/pdf |
data | string (JSON) | no | In multipart — the fields above as one JSON string |
Available for completed. There is no time limit for opening a dispute.
Request example
curl -X POST https://api.bopay.io/v1/payouts/7c1d2b9e-1f2a-4c3d-9e8f-0a1b2c3d4e5f/dispute \
-H "X-Identity: <API-key>" \
-H "X-Signature: <Signature>" \
-F 'data={"comment":"Client did not receive the transfer"}' \
-F "[email protected]"
Response
The payout object, as in Get payout, with status dispute.
Statuses
dispute → completed (payout confirmed or dispute withdrawn) or cancelled (payout did not go through, the reserve is returned to the balance). The outcome is sent as a webhook.
Errors
| Code | HTTP | Reason |
|---|---|---|
PAY_001 | 404 | Payout not found |
PAY_002 | 400 | Invalid parameters |
PAY_009 | 400 | File larger than 10 MB |
PAY_010 | 400 | Unsupported file format |
DIS_001 | 400 | Payout is not completed |
DIS_002 | 409 | Dispute already open |
SYS_001 | 500 | Internal error |