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

# Subtract User Virtual Currency

> _NOTE: This is a Legacy Economy API, and is in bugfix-only mode. All new Economy features are being developed only for version 2._ Decrements the specified virtual currency by the stated amount

## Error codes

This operation may return the following PlayFab errors:

| Error | Code |
| --- | --- |
| InvalidVirtualCurrency | 1051 |
| ProductDisabledForTitle | 1609 |
| VirtualCurrencyCurrentlyUnavailable | 1512 |




## OpenAPI

````yaml post /Admin/SubtractUserVirtualCurrency
openapi: 3.0.0
info:
  version: '260922'
  title: PlayFab Admin API
  description: >-
    APIs for managing title configurations, uploaded Game Server code
    executables, and user data
  termsOfService: https://playfab.com/terms/
  contact:
    url: https://community.playfab.com/index.html
  license:
    name: Apache 2.0
    url: https://github.com/PlayFab/API_Specs/blob/master/LICENSE
servers:
  - url: https://{titleId}.playfabapi.com
    description: PlayFab title endpoint
    variables:
      titleId:
        default: your_title_id
        description: Your PlayFab title ID (hex).
security: []
tags:
  - name: Account Management
    description: Account Management APIs
  - name: Authentication
    description: Authentication APIs
  - name: Characters
    description: Characters APIs
  - name: Content
    description: Content Service APIs
  - name: Custom Server Management
    description: Custom Server Management APIs
  - name: Matchmaking
    description: Matchmaking APIs
  - name: Player Data Management
    description: Player Data Management APIs
  - name: Player Item Management
    description: Player Item Management APIs
  - name: PlayStream
    description: PlayStream Management APIs
  - name: ScheduledTask
    description: Task management APIs
  - name: Segments
    description: Segment management APIs
  - name: Server-Side Cloud Script
    description: Server-Side Cloud Script APIs
  - name: Shared Group Data
    description: Shared Group Data APIs
  - name: Title-Wide Data Management
    description: Title-Wide Data Management APIs
  - name: Xbox Store
    description: Xbox Store APIs
paths:
  /Admin/SubtractUserVirtualCurrency:
    post:
      tags:
        - Player Item Management
      summary: Subtract User Virtual Currency
      description: >
        _NOTE: This is a Legacy Economy API, and is in bugfix-only mode. All new
        Economy features are being developed only for version 2._ Decrements the
        specified virtual currency by the stated amount


        ## Error codes


        This operation may return the following PlayFab errors:


        | Error | Code |

        | --- | --- |

        | InvalidVirtualCurrency | 1051 |

        | ProductDisabledForTitle | 1609 |

        | VirtualCurrencyCurrentlyUnavailable | 1512 |
      operationId: SubtractUserVirtualCurrency
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubtractUserVirtualCurrencyRequest'
      responses:
        '200':
          $ref: '#/components/responses/ModifyUserVirtualCurrencyResult'
        '400':
          $ref: '#/components/responses/ApiErrorWrapper'
      security:
        - SecretKey: []
components:
  schemas:
    SubtractUserVirtualCurrencyRequest:
      type: object
      properties:
        Amount:
          description: >-
            Amount to be subtracted from the user balance of the specified
            virtual currency.
          type: number
          x-actualtype: int32
        CustomTags:
          description: >-
            The optional custom tags associated with the request (e.g. build
            number, external trace identifiers, etc.).
          type: object
        PlayFabId:
          description: >-
            PlayFab unique identifier of the user whose virtual currency balance
            is to be decreased.
          type: string
        VirtualCurrency:
          description: Name of the virtual currency which is to be decremented.
          type: string
      required:
        - PlayFabId
        - VirtualCurrency
        - Amount
      example:
        PlayFabId: '20394883'
        VirtualCurrency: GC
        Amount: 100
    ModifyUserVirtualCurrencyResult:
      type: object
      properties:
        Balance:
          description: Balance of the virtual currency after modification.
          type: number
          x-actualtype: int32
        BalanceChange:
          description: >-
            Amount added or subtracted from the user's virtual currency. Maximum
            VC balance is Int32 (2,147,483,647). Any increase over this value
            will be discarded.
          type: number
          x-actualtype: int32
        PlayFabId:
          description: User currency was subtracted from.
          type: string
        VirtualCurrency:
          description: Name of the virtual currency which was modified.
          type: string
      required:
        - BalanceChange
        - Balance
      example:
        PlayFabId: B456AE0
        VirtualCurrency: GC
        BalanceChange: 10
        Balance: 1500
    ApiErrorWrapper:
      description: The basic wrapper around every failed API response
      type: object
      properties:
        code:
          description: Numerical HTTP code
          type: integer
        status:
          description: String HTTP code
          type: string
        error:
          description: Playfab error code
          type: string
        errorCode:
          description: Numerical PlayFab error code
          type: integer
        errorMessage:
          description: Description for the PlayFab errorCode
          type: string
        errorDetails:
          description: Detailed description of individual issues with the request object
          type: object
      required:
        - code
        - errorCode
  responses:
    ModifyUserVirtualCurrencyResult:
      description: ''
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: integer
                description: >-
                  The Http status code. If X-ReportErrorAsSuccess header is set
                  to true, this will report the actual http error code.
              status:
                type: string
                description: The Http status code as a string.
              data:
                $ref: '#/components/schemas/ModifyUserVirtualCurrencyResult'
            example:
              code: 200
              status: OK
              data:
                PlayFabId: B456AE0
                VirtualCurrency: GC
                BalanceChange: 10
                Balance: 1500
    ApiErrorWrapper:
      description: This is the outer wrapper for all responses with errors
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorWrapper'
  securitySchemes:
    SecretKey:
      type: apiKey
      in: header
      name: X-SecretKey
      description: >-
        This API requires a title secret key, available to title admins, from
        PlayFab Game Manager.

````

## Related topics

- [Subtract User Virtual Currency](/api-reference/player-item-management/subtract-user-virtual-currency.md)
- [Profile Writes Meter API Description](/services/playfab/pricing/meters/profile-writes.md)
- [Subtract Character Virtual Currency](/api-reference/player-item-management/subtract-character-virtual-currency.md)
- [Add User Virtual Currency](/api-reference/player-item-management/add-user-virtual-currency.md)
- [Remove Virtual Currency Types](/services/playfab/api-references/rest/admin/title-wide-data-management/remove-virtual-currency-types.md)
