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

# Gets one product charge.

> The same shape as one item of `GET /v1/product-charges`. A charge that does not exist, has
been removed, or belongs to another service provider is a 404.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/product-charges/{productChargeId}
openapi: 3.0.4
info:
  title: Public API
  description: Gorelo Public API documentation.
  version: 1.0.0
servers:
  - url: https://api.usw.gorelo.io
    description: US
  - url: https://api.aue.gorelo.io
    description: Australia
security:
  - ApiKeyAuth: []
tags:
  - name: Attachments
    description: "Uploading a file, for anything that can carry one. One endpoint rather than one per record\r\ntype, because the upload itself is identical - only the record it is checked against differs."
  - name: Alerts
    description: Alerts management operations
  - name: Assets
    description: Assets management operations
  - name: Billing
    description: Billing management operations
  - name: Tickets
    description: Tickets management operations
  - name: Clients
    description: Clients management operations
  - name: Contacts
    description: Contacts management operations
  - name: Deletions
    description: Deletions management operations
  - name: Documents
    description: Documents management operations
  - name: Forms
    description: Forms management operations
  - name: Organization
    description: Organization management operations
  - name: Projects
    description: Projects management operations
paths:
  /v1/product-charges/{productChargeId}:
    get:
      tags:
        - Billing
      summary: Gets one product charge.
      description: "The same shape as one item of `GET /v1/product-charges`. A charge that does not exist, has\r\nbeen removed, or belongs to another service provider is a 404."
      operationId: get_v1_product-charges_productChargeId
      parameters:
        - name: productChargeId
          in: path
          description: Product charge identifier.
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProductChargeModelBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ProductChargeModelBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ProductChargeModelBaseResponse'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
components:
  schemas:
    ProductChargeModelBaseResponse:
      type: object
      properties:
        StatusCode:
          $ref: '#/components/schemas/HttpStatusCode'
        IsSuccess:
          type: boolean
        Data:
          $ref: '#/components/schemas/ProductChargeModel'
        DataContext:
          type: object
          additionalProperties: false
          nullable: true
          example: null
        Notifications:
          type: array
          items:
            $ref: '#/components/schemas/Error'
      additionalProperties: false
    ObjectBaseResponse:
      type: object
      properties:
        StatusCode:
          $ref: '#/components/schemas/HttpStatusCode'
        IsSuccess:
          type: boolean
        Data:
          nullable: true
        DataContext:
          $ref: '#/components/schemas/ErrorDataContext'
        Notifications:
          type: array
          items:
            $ref: '#/components/schemas/Error'
      additionalProperties: false
    HttpStatusCode:
      enum:
        - 100
        - 101
        - 102
        - 103
        - 200
        - 201
        - 202
        - 203
        - 204
        - 205
        - 206
        - 207
        - 208
        - 226
        - 300
        - 301
        - 302
        - 303
        - 304
        - 305
        - 306
        - 307
        - 308
        - 400
        - 401
        - 402
        - 403
        - 404
        - 405
        - 406
        - 407
        - 408
        - 409
        - 410
        - 411
        - 412
        - 413
        - 414
        - 415
        - 416
        - 417
        - 421
        - 422
        - 423
        - 424
        - 426
        - 428
        - 429
        - 431
        - 451
        - 500
        - 501
        - 502
        - 503
        - 504
        - 505
        - 506
        - 507
        - 508
        - 510
        - 511
      type: integer
      format: int32
    ProductChargeModel:
      type: object
      properties:
        Id:
          type: integer
          description: Identifier of the product charge.
          format: int64
          example: 91524
        TicketId:
          type: string
          description: "The ticket the product is charged to, as `GET /v1/tickets/{ticketId}` takes it, or null\r\nwhen it is charged to a task instead."
          format: uuid
          nullable: true
          example: 08dd8170-f413-959c-82ae-152d5f340000
        TaskId:
          type: string
          description: >-
            The project task the product is charged to, or null when it is
            charged to a ticket instead.
          format: uuid
          nullable: true
          example: 08dd8170-f413-959c-82ae-152d5f340001
        ProjectId:
          type: string
          description: >-
            The project of `TaskId`, as `GET /v1/projects/{projectId}` takes it.
            Null for a ticket's charge.
          format: uuid
          nullable: true
          example: 08dd8170-f413-959c-82ae-152d5f340002
        ItemId:
          type: string
          description: "The catalog item that was charged, as `GET /v1/items/{itemId}` takes it - a product or a\r\nbundle."
          format: uuid
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        Name:
          type: string
          description: The item's name as it was when it was charged.
          example: USB-C Docking Station
        Description:
          type: string
          description: >-
            Description shown for the product on the ticket or task and on the
            invoice. Null when there is none.
          nullable: true
          example: Replacement dock for the reception desk.
        Quantity:
          type: number
          description: Quantity charged.
          format: double
          example: 2
        UnitPrice:
          type: number
          description: Price of one unit, before tax.
          format: double
          example: 189
        UnitCost:
          type: number
          description: >-
            Cost of one unit to the service provider. Null when none was
            recorded.
          format: double
          nullable: true
          example: 142.5
        Amount:
          type: number
          description: "What the product is worth to the client: `UnitPrice` x `Quantity` rounded to two\r\ndecimals when it is Billable, and 0 otherwise, because invoicing bills a product that is not\r\nBillable as zero. Excludes tax. The sum of a ticket's or task's amounts is its\r\n`Products.TotalAmount` on `GET /v1/tickets/{ticketId}` or the task detail."
          format: double
          example: 378
        BillableStatus:
          $ref: '#/components/schemas/CodeModel'
        ClientId:
          type: integer
          description: "The client the product is billed to - the ticket's client, or the task's project's client,\r\nwhen it was charged."
          format: int64
          nullable: true
          example: 4983
        InvoiceId:
          type: string
          description: "The invoice the product was billed on, as `GET /v1/invoices/{invoiceId}` takes it. Null\r\nuntil it is invoiced. A charge that is waiting to be invoiced or has been invoiced can no\r\nlonger be changed or removed."
          format: uuid
          nullable: true
        CreatedOn:
          type: string
          description: When the product was charged.
          format: date-time
        UpdatedOn:
          type: string
          description: When the charge was last changed. Null when it never has been.
          format: date-time
          nullable: true
      additionalProperties: false
      description: "A catalog item charged to a ticket or to a project task: a row on the ticket's or the task's\r\nProducts tab, billed with that ticket's or project's other charges. The shape\r\n`GET /v1/product-charges`, `GET /v1/product-charges/{productChargeId}` and `PATCH`\r\nreturn. Exactly one of `TicketId` and `TaskId` is set."
    Error:
      type: object
      properties:
        Code:
          pattern: ^[0-9]{6}$
          type: string
          description: 6-digit MMTTNN error code. See the Public API error-code registry.
          example: '070101'
        Message:
          type: string
        PropertyName:
          type: string
          nullable: true
        ActionHint:
          type: string
          nullable: true
        DocUrl:
          type: string
          nullable: true
      additionalProperties: false
    ErrorDataContext:
      type: object
      properties:
        TraceId:
          type: string
          description: Request correlation id. Quote this when reporting a problem.
          nullable: true
      additionalProperties: false
      description: "The `DataContext` of an error response: carries the correlation id for the failed\r\nrequest."
    CodeModel:
      type: object
      properties:
        Id:
          type: integer
          description: >-
            Numeric identifier of the coded value (e.g. status, priority, type,
            or source id).
          format: int64
          example: 1
        Name:
          type: string
          description: Display name of the coded value.
      additionalProperties: false
      description: >-
        A coded value, such as a status, priority, type or source, as an id and
        a display name.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: >-
        Your Gorelo API key. See [Generate API key](/generate-api-key). If your
        data is hosted in Australia, click the base URL at the top of this page
        and select `https://api.aue.gorelo.io`.
      name: X-API-Key
      in: header

````

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