# Transaction Limits

Returns applicable transaction limits for a given identity and transaction context.

Limits are derived from:
- payment-provider limits (route/method specific), and
- customer-specific limits (tier-based and/or overrides)

The response returns:
- limits for DAILY/WEEKLY/MONTHLY/ANNUAL windows,
  including provider vs customer sources

Endpoint: POST /eapi/v0/identities/transactions/limits
Version: 0 BETA
Security: HMACAuth

## Request fields (application/json):

  - `identityReference` (string, required)
    Partner identity reference.
    Example: 206-0x56c386b7b49be8618dbcdb2c6d09e161645c31ed

  - `method` (string, required)
    The payment method.
| Available payments |
|  --- |
| debit-credit-card |
| apple-pay |
| sepa-bank-transfer |
| gbp-bank-transfer |
| ach-bank-transfer |
| pix |
| zar-bank-transfer |
| interac-bank-transfer |
| ideal-bank-transfer |
| google-pay |
| payid-bank-transfer |
| wire-transfer |
| spei |
| pse |
| khipu |
| aud-bank-transfer |
| usd-bank-transfer |
| paypal |
| klarna-paynow |
    Example: payid-bank-transfer

  - `transactionType` (string, required)
    Transaction type (e.g., ONRAMP/OFFRAMP). Populate enum from your TransactionTypeEnum if desired.
    Example: ONRAMP

  - `fiat` (string, required)
    Fiat currency code (typically ISO 4217).
    Example: AUD

  - `crypto` (string, required)
    Crypto asset code.
    Example: BTC

  - `blockchain` (string, required)
    Blockchain identifier.
    Example: BTC

## Response 200 fields (application/json):

  - `identityReference` (string, required)
    Echo of the identity reference.
    Example: 206-0x56c386b7b49be8618dbcdb2c6d09e161645c31ed

  - `limits` (object, required)

  - `limits.transaction` (object)

  - `limits.transaction.maxFiat` (object)

  - `limits.transaction.maxFiat.amount` (string)
    The maximum value for the transaction
    Example: 100

  - `limits.transaction.maxFiat.currency` (string)
    Subject fiat currencty
    Example: AUD

  - `limits.transaction.minFiat` (object)

  - `limits.transaction.minFiat.amount` (string)
    The maximum value for the transaction
    Example: 100

  - `limits.transaction.minFiat.currency` (string)
    Subject fiat currencty
    Example: AUD

  - `limits.periodical` (array)
    List of limit buckets for each time period.

  - `limits.periodical.period` (string, required)
    Time window the limits apply to.
    Enum: "TRANSACTION", "DAILY", "WEEKLY", "MONTHLY", "ANNUAL"

  - `limits.periodical.sources` (object)
    Breakdown of limit sources

  - `limits.periodical.sources.provider` (object)
    Limit amounts for a given context.

  - `limits.periodical.sources.provider.maxFiat` (object)
    Represents a monetary amount with currency. Used throughout the API for fiat currency amounts.

  - `limits.periodical.sources.provider.maxFiat.amount` (string, required)
    The monetary amount as a decimal string.
**Format**: String representation of a decimal number with up to 2 decimal places for fiat currencies.
**Why String?**: Using strings prevents floating-point precision errors in financial calculations.
**Examples**:
- "100.00" - One hundred dollars/euros/etc
- "1234.56" - One thousand two hundred thirty-four and 56 cents
- "0.01" - One cent (minimum for most currencies)
    Example: 5000.00

  - `limits.periodical.sources.provider.maxFiat.currency` (string, required)
    Three-letter ISO 4217 currency code.
**Supported Currencies** (examples):
- AUD - Australian Dollar
- USD - United States Dollar
- EUR - Euro
- GBP - British Pound Sterling
- CAD - Canadian Dollar

**Note**: The actual list of supported currencies depends on your partner configuration and the payment method being used.
    Example: AUD

  - `limits.periodical.sources.provider.remainder` (any)
    Total remaining value the customer can purchase.
    Example: 5000

## Response 400 fields (application/json):

  - `message` (string)
    Human-readable error message
    Example: Bad Request

  - `code` (integer)
    HTTP status code
    Example: 400

  - `traceId` (string)
    Unique identifier for this error instance. Use this when contacting support.
    Example: 2b6fc5d0-57e4-4b5a-9e3c-6cfbb6d8023f

## Response 401 fields (application/json):

  - `message` (string)
    Human-readable error message
    Example: Unauthenticated.

  - `code` (integer)
    HTTP status code
    Example: 401

  - `traceId` (string)
    Unique identifier for this error instance
    Example: 2b6fc5d0-57e4-4b5a-9e3c-6cfbb6d8023f

## Response 422 fields (application/json):

  - `message` (string)
    Summary of validation errors
    Example: The given data was invalid.

  - `code` (integer)
    HTTP status code
    Example: 422

  - `traceId` (string)
    Unique identifier for this error instance
    Example: 2b6fc5d0-57e4-4b5a-9e3c-6cfbb6d8023f

## Response 429 fields (application/json):

  - `message` (string)
    Human-readable error message
    Example: Too Many Requests. Please try again later.

  - `code` (integer)
    HTTP status code
    Example: 429

  - `traceId` (string)
    Unique identifier for this error instance
    Example: 2b6fc5d0-57e4-4b5a-9e3c-6cfbb6d8023f

## Response 500 fields (application/json):

  - `message` (string)
    Human-readable error message
    Example: Server Error

  - `code` (integer)
    HTTP status code
    Example: 500

  - `traceId` (string)
    Unique identifier for this error instance. **Important**: Include this when contacting support.
    Example: 2b6fc5d0-57e4-4b5a-9e3c-6cfbb6d8023f

