Accept RPC
<!--
title: Accept description: Concede dispute and accept chargeback loss when evidence is insufficient last_updated: 2026-03-11 generated_from: backend/grpc-api-types/proto/services.proto auto_generated: false reviewed_by: engineering reviewed_at: 2026-03-05
approved: true
-->
Overview
The Accept RPC concedes a chargeback dispute and accepts the loss. Use this when you lack sufficient evidence to defend, when the customer's claim is valid, or when the dispute amount is less than the cost of defense.
Business Use Case: Not all disputes are worth fighting. When you don't have delivery confirmation, the product was genuinely defective, or the dispute amount is small, accepting the chargeback avoids additional fees and administrative overhead.
Purpose
When to accept disputes?
| Scenario | Reason | Outcome |
|---|---|---|
| No delivery proof | Cannot prove product was delivered | Accept to avoid losing defense fee |
| Valid customer complaint | Product/service issue confirmed | Accept to maintain customer relationship |
| Dispute amount < defense cost | $20 dispute vs $15 defense fee | Accept to minimize total loss |
| Evidence deadline passed | Missed submission window | Accept as defense is no longer possible |
| Fraudulent transaction confirmed | Internal investigation confirmed fraud | Accept and write off loss |
Key outcomes:
- Dispute status changes to ACCEPTED
- Chargeback processed immediately
- Funds debited from your account
- Defense process terminated
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
merchant_dispute_id |
string | Yes | Your unique dispute reference |
connector_transaction_id |
string | Yes | Original transaction ID |
dispute_id |
string | Yes | Connector's dispute identifier |
Response Fields
| Field | Type | Description |
|---|---|---|
dispute_id |
string | Connector's dispute identifier |
dispute_status |
DisputeStatus | Updated status: ACCEPTED |
connector_status_code |
string | Connector-specific status code |
error |
ErrorInfo | Error details if acceptance failed |
status_code |
uint32 | HTTP-style status code |
response_headers |
map |
Connector-specific response headers |
merchant_dispute_id |
string | Your dispute reference (echoed back) |
raw_connector_request |
SecretString | Raw API request sent to connector (debugging) |
Example
Request (grpcurl)
grpcurl -H "x-connector: stripe" \
-H "x-connector-auth: {\"Stripe\":{\"api_key\":\"$STRIPE_API_KEY\"}}" \
-d '{
"merchant_dispute_id": "dispute_001",
"connector_transaction_id": "pi_3Oxxx...",
"dispute_id": "dp_1Oxxx..."
}' \
localhost:8080 \
ucs.v2.DisputeService/Accept
Response
{
"dispute_id": "dp_1Oxxx...",
"dispute_status": "ACCEPTED",
"status_code": 200
}
Next Steps
- Get - Verify dispute status after acceptance
- Payment Service - Review original transaction