API Reference

Authentication

Authenticate with the API using your identity provider's JWT to receive a session token for subsequent requests.
Include the provider token as a Bearer token in the Authorization header.
GET
/v1/authenticate

Request

Provide a valid provider JWT as a Bearer token in the Authorization header.
curl -X GET https://api.casaphq.com/v1/authenticate \ -H "Authorization: Bearer <provider_jwt>"
JWT Claims
Field
Type
Required?
Description
iss
string
Required
JWT issuer URL identifying the token provider
sub
string
Required
Subject identifier (member's unique ID)
partyId
string
Required
Numeric member ID from the core banking system
accountsId
This is some text inside of a div block.
string[]
This is some text inside of a div block.
Required
This is some text inside of a div block.
List of account IDs the member has access to
This is some text inside of a div block.
orgId
This is some text inside of a div block.
string
This is some text inside of a div block.
Required
This is some text inside of a div block.
Organization UUID identifying the credit union
This is some text inside of a div block.
name
This is some text inside of a div block.
string
This is some text inside of a div block.
Optional
This is some text inside of a div block.
Member's full name
This is some text inside of a div block.
locale
This is some text inside of a div block.
string
This is some text inside of a div block.
Optional
This is some text inside of a div block.
Language locale (e.g. en)
This is some text inside of a div block.

Response

Field
Type
Description
session_token
string
JWT session token for authenticating API requests
expires_at
int64
Token expiration time (Unix milliseconds)

Example Response

{ "session_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "expires_at": 1708387200000 }

Create Dispute

Submit a new dispute with the disputed transaction details and customer information.
POST
/v1/disputes

Request Body

Field
Type
Required?
Description
customer
Customer
Required
Customer details object
reason
DisputeReason
Required
Dispute reason enum value
transaction_details
TransactionDetail[]
Required
List of disputed transactions
org_uuid
string
Required
Organization UUID
questionnaire_answers
QuestionnaireAnswer[]
Optional
Survey question responses

Response

Field
Type
Description
dispute
DisputeSummary
The newly created dispute object

Example

{  "org_uuid": "16131e64-90ad-484d-8b65-29f2725299a2",  "customer": {    "name": "Jane Smith",    "member_id": "98765"  },  "reason": "DISPUTE_REASON_UNAUTH",  "transaction_details": [    {      "uuid": "txn-uuid-here",      "amount": { "value": 5000, "currency": "USD" }    }  ] }

Response

Get Disputes

Retrieve a paginated list of disputes. Supports filtering by customer UUID or short ID.
GET
/v1/disputes

Query Parameters

Field
This is some text inside of a div block.
Type
Required?
Description
size
int32
Optional
Number of results per page (default 20)
page
int32
Optional
Page number (1-indexed, default 1)
customer_uuid
string
Optional
Filter disputes by customer UUID
short_id
string
Optional
Filter by dispute short ID

Response

Field
Type
Description
items
DisputeSummary[]
Optional
Paginated list of disputes
total_items
int32
Optional
Total number of disputes matching the query
total_pages
int32
Optional
Total number of pages
current_page
int32
Optional
Current page number (1-indexed)

Example

{
 "items": {
   "org_uuid": "16131e64-90ad-484d-8b65-29f2725299a2",    "customer": {      "name": "Jane Smith",      "member_id": "98765"    },    "reason": "DISPUTE_REASON_UNAUTH",    "transaction_details": [      {        "uuid": "txn-uuid-here",        "amount": { "value": 5000, "currency": "USD" }      }    ]
 },
  "total_items": 1,
 "total_pages": 1,
 "current_page": 1 }

Query Parameters

Response

Example

Get Dispute Status

Get the current status and full details of a specific dispute by its UUID.
GET
/v1/dispute/status/{dispute_uuid}

Path Parameters

Field
Type
Description

Path Parameters

Field
Type
Description

Path Parameters

Path Parameters

Field
Type
Required?
Description
dispute_uuid
string
Required
The UUID of the dispute to retrieve

Response

Field
Type
Required?
Description
dispute
DisputeSummary
Optional
Full dispute summary object

Example

{ "dispute": { "uuid": "d1a2b3c4-e5f6-7890-abcd-ef1234567890", "short_id": "CSP-1234", "status": "DISPUTE_STATUS_OPEN", "reason": "DISPUTE_REASON_UNAUTH", "resolution_deadline": 1708300800, "customer": { "uuid": "c1a2b3c4-e5f6-7890-abcd-ef1234567890", "name": "Jane Doe", "email": "jane.doe@example.com" }, "agent": null, "transactions": [ { "uuid": "t1a2b3c4-e5f6-7890-abcd-ef1234567890", "settled_timestamp": 1708214400, "amount": { "value": 5000, "currency": "USD" }, "merchant": "AMAZON.COM", "status": "DISPUTED_TRANSACTION_STATUS_OPEN", "transaction_status": "TRANSACTION_STATUS_SETTLED" } ], "audit_log": [] } }

Upload File

Upload a file attachment to an existing dispute.
POST
/v1/disputes/{dispute_uuid}/files

Request Body

Field
Type
Required?
Description
dispute_uuid
string
Required
The UUID of the dispute (path parameter)
file_content
bytes
Required
The file content as raw bytes
filename
string
Optional
Original filename
content_type
string
Optional
MIME type of the file

Example

{}

Example

Example

Reopen Dispute

Reopen a previously closed dispute to add or review additional transactions.
This is some text inside of a div block.
POST
/v1/disputes/{dispute_uuid}/reopen

Request Body

Field
Type
Required?
Description
dispute_uuid
string
Required
The UUID of the dispute (path parameter)
transaction_uuids
[]string
Required
List of transaction UUIDs to reopen

Response

Field
Type
Required?
Description
dispute
DisputeSummary
Optional
The reopened dispute summary

Example

{  "dispute": {    "uuid": "d1a2b3c4-e5f6-7890-abcd-ef1234567890",    "short_id": "CSP-1234",    "status": "DISPUTE_STATUS_OPEN",    "reason": "DISPUTE_REASON_UNAUTH",    "resolution_deadline": 1708300800,    "customer": { "..." },    "transactions": [ "..." ],    "audit_log": [ "..." ]  } }

Request Body

Field
Type
Required?
Description

Response

Field
Type
Description

Example

Request Body

Response

Field
Type
Required?
Description

Example

Get Disputes

Get Dispute Status

Upload File

Type Definitions

This is some text inside of a div block.

DisputeSummary

uuid
string
Dispute identifier
short_id
string
Human-readable dispute ID
status
DisputeStatus
OPEN or CLOSED
This is some text inside of a div block.
string
This is some text inside of a div block.
This is some text inside of a div block.
string
This is some text inside of a div block.
This is some text inside of a div block.
DisputeStatus
This is some text inside of a div block.
reason
DisputeReason
Reason for dispute
customer
Customer
Customer who filed dispute
resolution_deadline
int64
Resolution deadline (Unix ms)
agent
Agent
Agent acting on the dispute
This is some text inside of a div block.
DisputeReason
This is some text inside of a div block.
This is some text inside of a div block.
Customer
This is some text inside of a div block.
This is some text inside of a div block.
int64
This is some text inside of a div block.
This is some text inside of a div block.
Agent
This is some text inside of a div block.
transactions
DisputedTransaction[]
List of disputed transactions
audit_log
DisputeAuditLog[]
Audit log of dispute events

DisputedTransaction

uuid
string
Disputed transaction identifier
This is some text inside of a div block.
string
This is some text inside of a div block.
settled_timestamp
int64
Settlement time (Unix ms)
amount
Amount
Transaction amount
merchant
string
Merchant name
status
DisputedTransactionStatus
OPEN, INVESTIGATING, CHARGEBACK, or CLOSED
transaction_status
TransactionStatus
PENDING or SETTLED
provisional_credit_amount
Amount
Provisional credit amount
final_credit_amount
Amount
Final credit amount
reverse_credit_amount
Amount
Reverse credit amount

Amount

amount_in_cents
int32
Amount in cents (e.g. 10000 = $100.00)
currency
string
Currency code (e.g. USD)
This is some text inside of a div block.
int32
This is some text inside of a div block.
This is some text inside of a div block.
int32
This is some text inside of a div block.
This is some text inside of a div block.
int32
This is some text inside of a div block.

Customer

uuid
string
Customer identifier
name
string
Customer name
email
string
Customer email address
phone
string
Customer phone number
account_uuid
string
Customer's account ID
This is some text inside of a div block.
string
This is some text inside of a div block.
This is some text inside of a div block.
string
This is some text inside of a div block.

TransactionDetail

uuid
string
Transaction identifier
settled_timestamp
int64
Settlement time (Unix ms)
authorized_timestamp
int64
Authorization time (Unix ms)
amount
Amount
Transaction amount
merchant
string
Merchant name
status
TransactionStatus
PENDING or SETTLED
type
TransactionType
DEBIT_CARD, CREDIT_CARD, ATM, ACH, or TRANSFER
network
TransactionNetwork
VISA, MASTERCARD, or AMEX
arn
string
Acquirer Reference Number
location
string
Transaction location
card_id
string
Card identifier
visa_transaction_id
string
Visa-assigned transaction ID
type_code
string
Transaction type code
ica
string
Interbank Card Association number
card_type
CardType
PHYSICAL or VIRTUAL