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

# Update the current authenticated user

> Updates the authenticated user's profile. Both fields are optional - include only what you want to change.

**Updatable fields:**
- `timezone`: User's timezone in IANA format (e.g., "America/New_York")
- `notificationPreferences`: Array of notification preference updates

**Partial updates for notification preferences:**
The `notificationPreferences` array supports partial updates at two levels:

1. **Type-level**: Only include notification types you want to modify. Types not included will keep their existing settings.
2. **Field-level**: For each type included, you must provide both `email` and `mobile` fields, but only the values you provide will be applied.

**Example - Update just one notification type:**
```json
{
  "notificationPreferences": [
    { "type": "cardTransaction.approved", "email": false, "mobile": true }
  ]
}
```
This updates only "cardTransaction.approved" preferences; all other notification types remain unchanged.

**Example - Update only timezone:**
```json
{
  "timezone": "Europe/London"
}
```



## OpenAPI

````yaml https://platform.spritz.finance/openapi.json post /v1/users/me
openapi: 3.0.3
info:
  title: Spritz Finance API
  version: 1.0.0
  description: API for the Spritz Finance platform with RFC 9457 error handling
servers:
  - url: https://platform.spritz.finance
    description: Production
  - url: https://sandbox.spritz.finance
    description: Sandbox
security: []
tags:
  - name: Users
    description: User management endpoints
  - name: Bank Accounts
    description: Manage bank accounts for off-ramp destinations
  - name: Bills
    description: Manage bill pay accounts
  - name: Cards
    description: Spritz-issued debit cards
  - name: Auto-Ramp Accounts
    description: Virtual bank accounts that automatically convert fiat deposits to crypto
  - name: Spritz App
    description: >-
      Endpoints used by the Spritz app and internal SDKs. Excluded from the
      public partner spec.
paths:
  /v1/users/me:
    post:
      tags:
        - Users
      summary: Update the current authenticated user
      description: >-
        Updates the authenticated user's profile. Both fields are optional -
        include only what you want to change.


        **Updatable fields:**

        - `timezone`: User's timezone in IANA format (e.g., "America/New_York")

        - `notificationPreferences`: Array of notification preference updates


        **Partial updates for notification preferences:**

        The `notificationPreferences` array supports partial updates at two
        levels:


        1. **Type-level**: Only include notification types you want to modify.
        Types not included will keep their existing settings.

        2. **Field-level**: For each type included, you must provide both
        `email` and `mobile` fields, but only the values you provide will be
        applied.


        **Example - Update just one notification type:**

        ```json

        {
          "notificationPreferences": [
            { "type": "cardTransaction.approved", "email": false, "mobile": true }
          ]
        }

        ```

        This updates only "cardTransaction.approved" preferences; all other
        notification types remain unchanged.


        **Example - Update only timezone:**

        ```json

        {
          "timezone": "Europe/London"
        }

        ```
      operationId: postV1UsersMe
      requestBody:
        description: >-
          Request body for updating user profile. All fields are optional -
          include only the fields you want to update.
        required: true
        content:
          application/json:
            schema:
              description: >-
                Request body for updating user profile. All fields are optional
                - include only the fields you want to update.
              type: object
              properties:
                timezone:
                  description: User's timezone in IANA format
                  type: string
                  example: America/New_York
                notificationPreferences:
                  description: >-
                    Notification preferences to update. Supports partial
                    updates: only include the notification types you want to
                    change. For each type included, you can update just 'email',
                    just 'mobile', or both fields. Notification types not
                    included in this array will retain their existing settings.
                  type: array
                  items:
                    description: A notification preference for a specific notification type
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - cardTransaction.approved
                          - cardTransaction.declined
                          - credit.added
                      email:
                        description: Whether email notifications are enabled for this type
                        default: true
                        type: boolean
                      mobile:
                        description: Whether mobile notifications are enabled for this type
                        default: false
                        type: boolean
                    required:
                      - type
                      - email
                      - mobile
                  example:
                    - type: cardTransaction.approved
                      email: false
                      mobile: true
          application/x-www-form-urlencoded:
            schema:
              description: >-
                Request body for updating user profile. All fields are optional
                - include only the fields you want to update.
              type: object
              properties:
                timezone:
                  description: User's timezone in IANA format
                  type: string
                  example: America/New_York
                notificationPreferences:
                  description: >-
                    Notification preferences to update. Supports partial
                    updates: only include the notification types you want to
                    change. For each type included, you can update just 'email',
                    just 'mobile', or both fields. Notification types not
                    included in this array will retain their existing settings.
                  type: array
                  items:
                    description: A notification preference for a specific notification type
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - cardTransaction.approved
                          - cardTransaction.declined
                          - credit.added
                      email:
                        description: Whether email notifications are enabled for this type
                        default: true
                        type: boolean
                      mobile:
                        description: Whether mobile notifications are enabled for this type
                        default: false
                        type: boolean
                    required:
                      - type
                      - email
                      - mobile
                  example:
                    - type: cardTransaction.approved
                      email: false
                      mobile: true
          multipart/form-data:
            schema:
              description: >-
                Request body for updating user profile. All fields are optional
                - include only the fields you want to update.
              type: object
              properties:
                timezone:
                  description: User's timezone in IANA format
                  type: string
                  example: America/New_York
                notificationPreferences:
                  description: >-
                    Notification preferences to update. Supports partial
                    updates: only include the notification types you want to
                    change. For each type included, you can update just 'email',
                    just 'mobile', or both fields. Notification types not
                    included in this array will retain their existing settings.
                  type: array
                  items:
                    description: A notification preference for a specific notification type
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - cardTransaction.approved
                          - cardTransaction.declined
                          - credit.added
                      email:
                        description: Whether email notifications are enabled for this type
                        default: true
                        type: boolean
                      mobile:
                        description: Whether mobile notifications are enabled for this type
                        default: false
                        type: boolean
                    required:
                      - type
                      - email
                      - mobile
                  example:
                    - type: cardTransaction.approved
                      email: false
                      mobile: true
      responses:
        '200':
          description: Response for status 200
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    description: Unique identifier for the user
                    type: string
                    example: 6a749a054c3b8fc5da595d1a
                  email:
                    description: User's email address
                    format: email
                    type: string
                    nullable: true
                    example: user@example.com
                  firstName:
                    description: User's first name
                    type: string
                    nullable: true
                    example: John
                  signedUpAt:
                    description: ISO 8601 timestamp of when the user was created
                    format: date-time
                    type: string
                    example: '2026-08-06T14:28:21.827Z'
                  timezone:
                    description: User's timezone in IANA format
                    type: string
                    nullable: true
                    example: America/New_York
                  notificationPreferences:
                    description: User's notification preferences by type
                    type: array
                    items:
                      description: >-
                        A notification preference for a specific notification
                        type
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - cardTransaction.approved
                            - cardTransaction.declined
                            - credit.added
                        email:
                          description: >-
                            Whether email notifications are enabled for this
                            type
                          default: true
                          type: boolean
                        mobile:
                          description: >-
                            Whether mobile notifications are enabled for this
                            type
                          default: false
                          type: boolean
                      required:
                        - type
                        - email
                        - mobile
                  verification:
                    description: >-
                      User's identity verification status and any pending
                      requirements
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - not_started
                          - verified
                          - failed
                          - disabled
                          - retry
                      country:
                        description: >-
                          ISO 3166-1 alpha-2 country code where user was
                          verified
                        type: string
                        nullable: true
                        example: US
                      requirement:
                        description: >-
                          A requirement that must be fulfilled to access certain
                          features
                        type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - identity_verification
                              - terms_acceptance
                              - additional_verification
                              - document_submission
                              - region_restriction
                              - regional_compliance
                          description:
                            description: >-
                              Human-readable description of what needs to be
                              done
                            type: string
                            example: Verify your identity to unlock payment features
                          actionUrl:
                            description: URL where the user can complete this requirement
                            type: string
                            nullable: true
                            example: https://verify.example.com/start
                          retryable:
                            description: >-
                              Whether this requirement can be retried after
                              failure
                            type: boolean
                            example: true
                          status:
                            type: string
                            enum:
                              - not_started
                              - pending
                              - completed
                              - failed
                        required:
                          - type
                          - status
                    required:
                      - status
                      - country
                  capabilities:
                    description: User's available capabilities and their requirements
                    type: array
                    items:
                      description: >-
                        Individual capability with its own requirements and
                        status
                      type: object
                      properties:
                        product:
                          type: string
                          enum:
                            - fiat_to_crypto
                            - crypto_to_fiat
                            - bill_pay
                            - crypto_card
                        method:
                          type: string
                          enum:
                            - ach_credit
                            - ach_debit
                            - wire
                            - sepa_credit_transfer
                            - rtp
                            - push_to_card
                            - canadian_eft
                        name:
                          description: Human-readable name for this capability
                          type: string
                          example: ACH Bank Transfer
                        description:
                          description: Description of what this capability enables
                          type: string
                          example: Buy crypto using ACH bank transfer
                        status:
                          type: string
                          enum:
                            - active
                            - requirements_needed
                            - not_available
                            - pending
                        nextRequirement:
                          type: string
                          enum:
                            - identity_verification
                            - terms_acceptance
                            - additional_verification
                            - document_submission
                            - region_restriction
                            - regional_compliance
                        requirements:
                          description: >-
                            List of requirements that must be met to activate
                            this capability
                          type: array
                          items:
                            description: >-
                              A requirement that must be fulfilled to access
                              certain features
                            type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - identity_verification
                                  - terms_acceptance
                                  - additional_verification
                                  - document_submission
                                  - region_restriction
                                  - regional_compliance
                              description:
                                description: >-
                                  Human-readable description of what needs to be
                                  done
                                type: string
                                example: >-
                                  Verify your identity to unlock payment
                                  features
                              actionUrl:
                                description: >-
                                  URL where the user can complete this
                                  requirement
                                type: string
                                nullable: true
                                example: https://verify.example.com/start
                              retryable:
                                description: >-
                                  Whether this requirement can be retried after
                                  failure
                                type: boolean
                                example: true
                              status:
                                type: string
                                enum:
                                  - not_started
                                  - pending
                                  - completed
                                  - failed
                            required:
                              - type
                              - status
                          example: []
                      required:
                        - product
                        - name
                        - description
                        - status
                        - requirements
                required:
                  - id
                  - email
                  - firstName
                  - signedUpAt
                  - timezone
                  - notificationPreferences
                  - verification
                  - capabilities
                additionalProperties: false
        '401':
          description: Response for status 401
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    default: about:blank
                    description: A URI reference that identifies the problem type
                    type: string
                    example: urn:problem-type:auth:unauthorized
                  title:
                    description: A short, human-readable summary of the problem type
                    type: string
                    example: Unauthorized
                  status:
                    description: The HTTP status code
                    type: number
                    example: 401
                  detail:
                    description: A human-readable explanation specific to this occurrence
                    type: string
                    example: Bearer token required
                  instance:
                    description: A URI reference that identifies the specific occurrence
                    type: string
                  realm:
                    description: The authentication realm
                    type: string
                    example: API
                  scope:
                    description: The required scope for this resource
                    type: string
                    example: read:users
                required:
                  - title
                  - status
                additionalProperties: false
        '404':
          description: Response for status 404
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    default: about:blank
                    description: A URI reference that identifies the problem type
                    type: string
                  title:
                    description: A short, human-readable summary of the problem type
                    type: string
                  status:
                    description: The HTTP status code
                    type: number
                    example: 404
                  detail:
                    description: A human-readable explanation specific to this occurrence
                    type: string
                  instance:
                    description: A URI reference that identifies the specific occurrence
                    type: string
                  resourceType:
                    description: The type of resource that was not found
                    type: string
                    example: user
                  resourceId:
                    description: The identifier of the resource that was not found
                    type: string
                required:
                  - title
                  - status
                  - resourceType
                  - resourceId
                additionalProperties: false
        '500':
          description: Response for status 500
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    default: about:blank
                    description: A URI reference that identifies the problem type
                    type: string
                    example: urn:problem-type:auth:unauthorized
                  title:
                    description: A short, human-readable summary of the problem type
                    type: string
                    example: Unauthorized
                  status:
                    description: The HTTP status code
                    type: number
                    example: 400
                  detail:
                    description: A human-readable explanation specific to this occurrence
                    type: string
                  instance:
                    description: A URI reference that identifies the specific occurrence
                    type: string
                    example: /errors/1234567890
                  code:
                    description: >-
                      Machine-readable cause, present when exactly one thing
                      failed. Branch on this, never on `detail`, which is
                      human-facing copy and may change. For deposit limits the
                      vocabulary matches the `reason` values the limits API
                      returns pre-flight.
                    type: string
                    example: transaction_limit
                  field:
                    description: The offending request field, present alongside `code`.
                    type: string
                    example: amountUsd
                  retryable:
                    description: >-
                      Whether retrying the same request later may succeed
                      without changing its inputs.
                    type: boolean
                    example: true
                required:
                  - title
                  - status
                additionalProperties: false
      security:
        - bearerAuth: []
        - integratorJwt: []
        - hmacAuth: []
          integratorKey: []
          timestamp: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Cognito JWT token for regular user authentication
    integratorJwt:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Integrator JWT token (prefix: spr_) for frontend integrator
        authentication. Obtained via token exchange endpoint.
    hmacAuth:
      type: apiKey
      in: header
      name: X-Signature
      description: >-
        HMAC signature authentication for backend integrators.


        **Required Headers:**

        - X-Integrator-Key: Integrator API key (format: int_...)

        - X-Signature: HMAC signature (format: sha256={hex})

        - X-Timestamp: Unix timestamp in milliseconds

        - Authorization: Bearer {user-api-key}


        **Signature Algorithm:** HMAC-SHA256


        **Signature Format:** {timestamp}.{METHOD}.{path}.{bodyHash}

        - timestamp: Unix timestamp in milliseconds

        - METHOD: HTTP method in UPPERCASE (GET, POST, etc.)

        - path: Request path (e.g., /v1/transactions)

        - bodyHash: SHA256 hex digest of request body (empty string if no body)


        **Timestamp Tolerance:** ±5 minutes (300 seconds)


        **Example:**

        For POST /v1/transactions with body {"amount":100} and timestamp
        1234567890000:

        Payload: 1234567890000.POST./v1/transactions.{sha256(body)}

        Signature: sha256=abc123...
    integratorKey:
      type: apiKey
      in: header
      name: X-Integrator-Key
      description: 'Integrator API key (format: int_...) used with HMAC authentication'
    timestamp:
      type: apiKey
      in: header
      name: X-Timestamp
      description: >-
        Unix timestamp in milliseconds for replay attack prevention. Must be
        within 5 minutes of server time.

````