Transactions

Get customer transaction

Get status and details for a specific customer transaction.

GET
/api/v2/customers/{customerId}/transactions/{transactionId}

Returns details for a specific customer transaction. Use this to check the current status of a withdrawal or deposit. For deposit transactions where developerFee is present, wallet receive amount = targetAmount - developerFee.amount.

Status Values

  • PROCESSING — Transaction is being processed (an in-flight deposit return also reports PROCESSING)
  • PROPOSED — Awaiting approval in dashboard
  • PARTIALLY_SIGNED — If multiple approvers configured: requires more approvals.
  • COMPLETED — Successfully completed
  • FAILED — Transaction failed
  • CANCELLED — Cancelled by user
  • EXPIRED — Expired before completion
  • REVERSED — Deposit returned to the sender's bank account

Action Required

When requiresUiAction is true, the transaction needs user approval in the dashboard.

For AUD-only customers, each AUD payment is a DEPOSIT with paymentRail: "AU_BANK_TRANSFER", sourceCurrency: "AUD" and payerName; payments on hold are reported as PROCESSING. A returned AUD payment reports PROCESSING while the return is in flight and REVERSED once it settles. An AUD withdrawal that reached COMPLETED can later move to FAILED if the receiving bank returns the payment.

Authorization

bearerAuth
AuthorizationBearer <token>

Organization API key obtained on Settings > API Keys page in Compose UI.

In: header

Path Parameters

customerId*string

Unique identifier of the customer

transactionId*string

Unique identifier of the transaction

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET 'https://compose.finance/api/v2/customers/{customerId}/transactions/{transactionId}' \  -H 'Authorization: Bearer YOUR_API_KEY'

{
  "id": "txn_abc123",
  "type": "DEPOSIT",
  "status": "COMPLETED",
  "paymentRail": "SEPA",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "completedAt": "2024-01-15T10:35:00.000Z",
  "reference": "FLGVNY3H9F",
  "sourceCurrency": "EUR",
  "targetCurrency": "USDC",
  "sourceAmount": "1000",
  "targetAmount": "1167.95886",
  "exchangeRate": "1.1691279887",
  "fee": "1",
  "depositInstructions": {
    "accountType": "sharedAccount",
    "reference": "FLGVNY3H9F"
  },
  "walletAddress": "0x1234567890abcdef1234567890abcdef12345678",
  "developerFee": {
    "developerSpreadFeeBps": 100,
    "amount": "11.679589"
  },
  "txHash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
}

{
  "error": "Unauthorized - Invalid or missing API key or session"
}
{
  "error": "Customers feature is not enabled for your organization"
}

{
  "error": "Customer not found"
}

{
  "error": "Rate limit exceeded. Please try again later."
}

{
  "error": "Internal server error"
}