> ## Documentation Index
> Fetch the complete documentation index at: https://docs.swervpay.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Card Spending Limits

> Update USD card spending limits in dollars, not cents

Update spending limits for an active or frozen USD card belonging to your
authenticated business. Use the Swerv card ID, not an external card reference.

| Field | Meaning |
| - | - |
| `daily_limit` | Maximum cumulative spending per day. |
| `monthly_limit` | Maximum cumulative spending per month. |
| `transaction_limit` | Maximum spending on one transaction. |

Amounts are **US dollars, not cents**: `2.5` means \$2.50. Provide at least one
field. Values must be positive, no greater than 1,000,000,000, and have at most two
decimal places. This numeric ceiling is input validation, not a guaranteed
card-program allowance. Updates remain subject to the card's program rules.

```bash cURL theme={null}
curl -X PATCH https://api.swervpay.co/api/v1/cards/card_123/limits \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"daily_limit":500,"monthly_limit":5000,"transaction_limit":100}'
```

Only supplied fields are sent for update; omitted fields are not sent as zero.
When supplied together, the per-transaction limit must not exceed the daily or
monthly limit, and the daily limit must not exceed the monthly limit. Existing
configuration may impose additional validation.

Zero is not accepted as a way to disable or remove a limit. Lifetime limits are
not exposed through this endpoint. NGN cards are not supported by this endpoint.
Day/month reset timezone and treatment of pending authorizations are not
specified by this API; do not assume they follow the customer's local timezone.

HTTP 200 confirms a successful limit update. It does not add funds, change the
card balance, guarantee transaction approval, or unfreeze a card. No new webhook
event is emitted, and card-detail responses do not currently include the limits.

If the outcome is unresolved, contact support before retrying: the update may
already have been applied. Sandbox saves simulated limits but does not enforce
them against transaction fixtures or contact the live authorization network.


## OpenAPI

````yaml PATCH /cards/{id}/limits
openapi: 3.0.0
info:
  title: Swervpay Developer API Specification
  version: 0.0.0
servers:
  - url: https://api.swervpay.co/api/v1
    description: Production API
  - url: https://sandbox.swervpay.co/api/v1
    description: Sandbox API
security:
  - bearerAuth: []
paths:
  /cards/{id}/limits:
    patch:
      tags:
        - card.controls
      description: Update USD card spending limits in dollars, not cents
      operationId: updateCardLimits
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenapiCardLimitsRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseSuccessResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsererrorError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsererrorError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsererrorError'
components:
  schemas:
    OpenapiCardLimitsRequest:
      type: object
      properties:
        daily_limit:
          type: number
          nullable: true
        monthly_limit:
          type: number
          nullable: true
        transaction_limit:
          type: number
          nullable: true
    ResponseSuccessResponse:
      type: object
      properties:
        message:
          type: string
    UsererrorError:
      type: object
      properties:
        message:
          type: string
        values:
          type: object
          additionalProperties: {}
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.