Transaction Limit Callbacks

StraitsX sends callbacks to your registered URL when transaction limits change for a Customer Profile+ (CP+). This page covers two related events.

📘

Transaction limit callbacks are applicable to Customer Profile+ (CP+) only. Regular CP profiles do not have configurable transaction limits.

Events

EventDescription
cpTxnLimitsUpdatedTransaction limits change after a tier upgrade or approved limits request.
cpTxnLimitsUpdateRequestStatusUpdatedA transaction limit update request is approved or rejected.


cpTxnLimitsUpdated

Fires when a customer profile's transaction limits change (e.g., after a verification tier upgrade or an approved limits update request).

📘

Personal CP+ profiles have annual limits. Business CP+ profiles have daily limits.

Payload structure

{
  "data": {
    "id": "customer_profile_transaction_limit_c3d4e5f6-a7b8-9012-cdef-123456789012",
    "attributes": {
      "customerProfileId": "customer_profile_d4e5f6a7-b8c9-0123-def0-234567890123",
      "totalDailyPaymentLimit": "300000.0",
      "availableDailyPaymentLimit": "300000.0",
      "totalDailyPayoutLimit": "300000.0",
      "availableDailyPayoutLimit": "300000.0",
      "transactionSizeLimit": "50000.0"
    }
  }
}
{
  "data": {
    "id": "customer_profile_transaction_limit_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "attributes": {
      "customerProfileId": "customer_profile_b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "totalAnnualPaymentLimit": "50000.0",
      "availableAnnualPaymentLimit": "48500.0",
      "totalAnnualPayoutLimit": "50000.0",
      "availableAnnualPayoutLimit": "49000.0",
      "transactionSizeLimit": "10000.0"
    }
  }
}

Field reference

FieldScopeTypeDescription
data.idCommon fieldsStringTransaction limits record ID.
data.attributes.customerProfileIdCommon fieldsStringCustomer profile this limit belongs to.
data.attributes.transactionSizeLimitCommonStringMaximum single transaction size in USD.
data.attributes.totalAnnualPaymentLimitPersonal CP+StringTotal annual payment limit in USD.
data.attributes.availableAnnualPaymentLimitPersonal CP+StringRemaining annual payment limit.
data.attributes.totalAnnualPayoutLimitPersonal CP+StringTotal annual payout limit in USD.
data.attributes.availableAnnualPayoutLimitPersonal CP+StringRemaining annual payout limit.
data.attributes.totalDailyPaymentLimitBusiness CP+StringTotal daily payment limit in USD.
data.attributes.availableDailyPaymentLimitBusiness CP+StringRemaining daily payment limit.
data.attributes.totalDailyPayoutLimitBusiness CP+StringTotal daily payout limit in USD.
data.attributes.availableDailyPayoutLimitBusiness CP+StringRemaining daily payout limit.


cpTxnLimitsUpdateRequestStatusUpdated

Fires when a transaction limits update request status changes.

Status values

StatusDescription
pendingRequest submitted, under review.
approvedLimits update approved and applied.
rejectedLimits update request rejected.

Payload structure

{
  "data": {
    "id": "transaction_limits_update_request_b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "type": "transactionLimitsUpdateRequest",
    "attributes": {
      "status": "approved",
      "customerProfileId": "customer_profile_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "updatedAt": "2026-05-03T14:30:00+08:00",
      "createdAt": "2026-05-01T10:00:00+08:00"
    }
  }
}

Field reference

FieldTypeDescription
data.idStringUpdate request ID.
data.typeStringAlways transactionLimitsUpdateRequest.
data.attributes.statusStringUpdate request status: pending, approved, or rejected.
data.attributes.customerProfileIdStringCustomer profile this request belongs to.
data.attributes.createdAtStringISO 8601 timestamp when the request was submitted.
data.attributes.updatedAtStringISO 8601 timestamp when the status last changed.

Did this page help you?