WritersLogic Verifiable AI Agent Hub Fight Chargeback API
The Fight Chargeback API from WritersLogic Verifiable AI Agent Hub — 1 operation(s) for fight chargeback.
The Fight Chargeback API from WritersLogic Verifiable AI Agent Hub — 1 operation(s) for fight chargeback.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/writerslogic-com:writerslogic-com-fight-chargeback-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: WritersLogic Verifiable AI Agent Hub Fight Chargeback API
version: 2.0.0
description: Pay-per-call agents settled in USDC on Base via x402. Every response carries a signed provenance envelope.
contact:
name: WritersLogic
url: https://writerslogic.com/agents
email: agents@writerslogic.com
servers:
- url: https://agents.writerslogic.com
tags:
- name: Fight Chargeback
paths:
/api/v1/fight-chargeback:
post:
operationId: chargeback_fighter
summary: E-Commerce Chargeback Representment Builder
description: 'Tells a merchant whether to fight or accept a card dispute: scores win probability against the network rubric for the reason code (Visa, Mastercard, Amex, Discover), runs deterministic Visa CE3.0 eligibility and invalid-dispute checks, computes expected recovery net of the contest fee and days to the deadline, and returns a processor-ready submission (summary under 4,000 characters, evidence fields in dispute-form order, missing items marked NOT AVAILABLE). Uses only supplied evidence and never fabricates it. Not legal advice; the issuer decides.
Price: 2.50 USDC on Base (x402).'
x-x402-price-usdc: '2.50'
x-x402-amount: '2500000'
x-payment-info:
protocols:
- x402
price:
mode: fixed
currency: USD
amount: '2.50'
x-audience: business
x-sample-url: https://agents.writerslogic.com/api/v1/samples/chargeback-fighter
security:
- x402: []
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- network
- reasonCode
- orderDetails
- evidence
properties:
network:
type: string
enum:
- visa
- mastercard
- amex
- discover
reasonCode:
type: string
pattern: ^[0-9A-Za-z.]{1,10}$
description: e.g. 10.4, 13.1, 13.3 (Visa); 4837, 4853, 4855 (Mastercard).
disputeDate:
type: string
pattern: ^\d{4}-\d{2}-\d{2}
disputeFeeUsd:
type: number
minimum: 0
maximum: 10000
description: Fee your processor charges to contest the dispute and does not return on a loss; used to net the expected value.
responseDeadline:
type: string
pattern: ^\d{4}-\d{2}-\d{2}
description: Deadline shown in your processor's dispute dashboard (YYYY-MM-DD); days remaining are computed from it.
orderDetails:
type: object
additionalProperties: false
required:
- orderId
- amount
- currency
- transactionDate
- items
properties:
orderId:
type: string
maxLength: 100
amount:
type: number
minimum: 0
maximum: 10000000
currency:
type: string
pattern: ^[A-Za-z]{3}$
transactionDate:
type: string
pattern: ^\d{4}-\d{2}-\d{2}
items:
type: array
minItems: 1
maxItems: 100
items:
type: object
additionalProperties: false
required:
- name
- quantity
- unitPrice
properties:
name:
type: string
maxLength: 300
quantity:
type: integer
minimum: 1
unitPrice:
type: number
minimum: 0
customerEmail:
type: string
maxLength: 320
shippingAddress:
type: string
maxLength: 500
billingAddress:
type: string
maxLength: 500
productType:
type: string
enum:
- physical
- digital
- service
- subscription
evidence:
type: object
additionalProperties: false
properties:
trackingNumber:
type: string
maxLength: 100
carrier:
type: string
maxLength: 100
deliveryConfirmation:
type: string
maxLength: 2000
deliveryDate:
type: string
maxLength: 40
signedProofOfDelivery:
type: boolean
ipAddress:
type: string
maxLength: 64
deviceFingerprint:
type: string
maxLength: 256
deviceId:
type: string
maxLength: 256
customerAccountId:
type: string
maxLength: 256
authorization:
type: object
additionalProperties: false
description: Authorization-message data from the processor; lets Visa 10.4 invalid disputes be decided without a model call.
properties:
eci:
type: string
pattern: ^0?[0-9]$
description: Electronic Commerce Indicator, e.g. 05 or 5.
cavvPresent:
type: boolean
authenticationConfirmed:
type: boolean
description: Issuer returned an Authentication Confirmation (Visa Secure / EMV 3DS).
attemptResponse:
type: boolean
cvv2PresenceIndicator:
type: string
pattern: ^[0-9]$
cvv2ResultCode:
type: string
pattern: ^[A-Za-z]$
description: CVV2 result code in the authorization response, e.g. M, N, U.
approved:
type: boolean
avsResult:
type: string
maxLength: 100
cvvResult:
type: string
maxLength: 100
threeDSecure:
type: string
maxLength: 200
priorUndisputedTransactions:
type: array
maxItems: 50
items:
type: object
additionalProperties: false
required:
- date
properties:
transactionId:
type: string
maxLength: 100
date:
type: string
pattern: ^\d{4}-\d{2}-\d{2}
amount:
type: number
minimum: 0
ipAddress:
type: string
maxLength: 64
deviceId:
type: string
maxLength: 256
deviceFingerprint:
type: string
maxLength: 256
shippingAddress:
type: string
maxLength: 500
customerAccountId:
type: string
maxLength: 256
description:
type: string
maxLength: 1000
description: What was purchased; CE3.0 requires a detailed description for each prior transaction.
disputed:
type: boolean
customerCommunications:
type: string
maxLength: 20000
refundPolicyExcerpt:
type: string
maxLength: 5000
productDescription:
type: string
maxLength: 5000
digitalUsageLogs:
type: string
maxLength: 10000
cancellationPolicy:
type: string
maxLength: 5000
refundIssued:
type: string
maxLength: 500
example:
network: visa
reasonCode: '13.1'
disputeDate: '2026-10-20'
orderDetails:
orderId: SHOP-10442
amount: 189
currency: USD
transactionDate: '2026-09-28'
items:
- name: Trail running shoes, size 10
quantity: 1
unitPrice: 189
shippingAddress: 42 Elm St, Austin, TX 78701
productType: physical
evidence:
trackingNumber: 1Z999AA10123456784
carrier: UPS
deliveryConfirmation: Delivered 2026-10-02 14:12, left at front door, 42 Elm St Austin TX
deliveryDate: '2026-10-02'
avsResult: Y (full match)
cvvResult: M (match)
customerCommunications: '2026-10-03 customer email: ''Got the shoes, they run a bit small.'''
responses:
'200':
description: Paid result with provenance
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
reason_code_name:
type: string
winProbability:
type: integer
description: 0-100 probability of winning representment with the supplied evidence.
win_rationale:
type: string
evidence_map:
type: array
items:
type: object
additionalProperties: false
required:
- evidence
- rubric_requirement
- how_it_satisfies
- strength
properties:
evidence:
type: string
description: The merchant-supplied evidence item.
rubric_requirement:
type: string
description: The network rule or remedy element it answers.
how_it_satisfies:
type: string
strength:
type: string
enum:
- strong
- moderate
- weak
missingEvidence:
type: array
items:
type: object
additionalProperties: false
required:
- item
- why_it_matters
- where_to_get_it
properties:
item:
type: string
why_it_matters:
type: string
where_to_get_it:
type: string
weaknesses:
type: array
items:
type: string
rebuttal:
type: object
additionalProperties: false
required:
- title
- summary
- body
- attachments_checklist
properties:
title:
type: string
summary:
type: string
description: 2-3 sentence case summary for the dispute form's first field.
body:
type: string
description: Full representment letter, plain text.
attachments_checklist:
type: array
items:
type: string
recommend_accept:
type: boolean
description: True when fighting is unlikely to succeed and accepting the dispute is cheaper.
rubric:
type: object
ce3:
type: object
properties:
applicable:
type: boolean
eligible:
type: boolean
undetermined:
type: boolean
qualifyingTransactions:
type: array
items:
type: string
unmet:
type: array
items:
type: string
invalidDispute:
type: object
headline:
type: object
description: 'Decision first: the verdict, the dollars at stake, confidence and the exact next step.'
properties:
decision:
type: string
enum:
- FIGHT
- ACCEPT
- FIGHT_IF_EVIDENCE_ADDED
summary:
type: string
amountAtStakeUsd:
anyOf:
- type: number
- type: 'null'
description: Dollars saved or recoverable if the recommended action succeeds; null when it cannot be computed from the input.
amountBasis:
type: string
confidence:
type: string
enum:
- high
- medium
- low
nextStep:
type: string
expectedRecoveryUsd:
anyOf:
- type: number
- type: 'null'
description: Order amount x winProbability, for USD orders.
netExpectedValueUsd:
anyOf:
- type: number
- type: 'null'
description: expectedRecoveryUsd minus disputeFeeUsd when given.
responseDeadline:
type: object
description: date, daysRemaining and status (open, due_today, past, not_provided), from the deadline you supplied.
customerAcknowledgments:
type: array
items:
type: string
description: Exact sentences from the customer's messages acknowledging receipt or use of the order; led with in the rebuttal.
submission:
type: object
description: 'Processor-ready package: controllingRule, summaryText (4,000 characters max), rebuttalBody, fields in dispute-form order marked PROVIDED or NOT AVAILABLE, attachmentsChecklist and placeholdersToFill.'
caveat:
type: string
decision:
type: object
properties:
source:
type: string
enum:
- model
- deterministic_rule
_provenance:
type: object
description: C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance
required:
- data
- _provenance
'400':
description: Invalid request (no payment consumed)
content:
application/json:
schema:
type: object
properties:
error:
type: string
code:
type: string
'401':
description: Invalid X-API-KEY
content:
application/json:
schema:
type: object
properties:
error:
type: string
code:
type: string
'402':
description: Payment required or invalid
content:
application/json:
schema:
type: object
description: x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)
properties:
x402Version:
type: integer
error:
type: string
code:
type: string
resource:
type: object
accepts:
type: array
items:
type: object
extensions:
type: object
'502':
description: Upstream failure; the payment is released or not settled
content:
application/json:
schema:
type: object
properties:
error:
type: string
code:
type: string
tags:
- Fight Chargeback
components:
securitySchemes:
x402:
type: apiKey
in: header
name: PAYMENT-SIGNATURE
description: x402 v2 payment payload (base64) sent after a 402 challenge
apiKey:
type: apiKey
in: header
name: X-API-KEY