> ## Documentation Index
> Fetch the complete documentation index at: https://omniflow-vpn.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get v1panelreportsconversions

> Requires finance.read. The offline-conversion export: settled orders that came from an advertisement, with the click identifier the platform issued.
Payment happens on the backend, often a day after the click, so the browser session that carried the identifier is long gone by the time there is money to attribute. This is what makes the upload possible.
Nothing is uploaded by this software. `format=csv` returns a file the operator downloads and hands to the platform themselves — sending a customer's purchase to an advertising network because a settings toggle was on is not something anybody should have to discover from behaviour.
Refunded orders are present with their refunded amount rather than dropped. A platform that optimised bidding on a sale that was later returned is being taught the wrong thing, and an operator can only correct for that if the export says it happened.



## OpenAPI

````yaml https://raw.githubusercontent.com/kewldan/omniflow/main/api/openapi.yaml get /v1/panel/reports/conversions
openapi: 3.0.3
info:
  title: Omniflow API
  version: 1.0.0
  description: >-
    Customer, commerce, payment, wallet, fulfillment, and operations API for
    Omniflow.
servers: []
security: []
paths:
  /v1/panel/reports/conversions:
    get:
      tags:
        - panel
      description: >-
        Requires finance.read. The offline-conversion export: settled orders
        that came from an advertisement, with the click identifier the platform
        issued.

        Payment happens on the backend, often a day after the click, so the
        browser session that carried the identifier is long gone by the time
        there is money to attribute. This is what makes the upload possible.

        Nothing is uploaded by this software. `format=csv` returns a file the
        operator downloads and hands to the platform themselves — sending a
        customer's purchase to an advertising network because a settings toggle
        was on is not something anybody should have to discover from behaviour.

        Refunded orders are present with their refunded amount rather than
        dropped. A platform that optimised bidding on a sale that was later
        returned is being taught the wrong thing, and an operator can only
        correct for that if the export says it happened.
      operationId: getPanelConversions
      parameters:
        - in: query
          name: since
          schema:
            type: string
            format: date-time
        - in: query
          name: until
          schema:
            type: string
            format: date-time
        - in: query
          name: source
          schema:
            type: string
            enum:
              - google
              - yandex
              - meta
              - microsoft
              - tiktok
              - x
        - in: query
          name: format
          schema:
            type: string
            enum:
              - json
              - csv
      responses:
        '200':
          description: Conversions
          content:
            application/json:
              schema:
                type: object
                required:
                  - conversions
                properties:
                  conversions:
                    type: array
                    items:
                      $ref: '#/components/schemas/PanelConversion'
            text/csv:
              schema:
                type: string
        '403':
          $ref: '#/components/responses/Problem'
components:
  schemas:
    PanelConversion:
      type: object
      required:
        - orderId
        - operation
        - state
        - currency
        - paidMinor
        - refundedMinor
        - paidAt
      properties:
        orderId:
          type: string
          format: uuid
        operation:
          type: string
        state:
          type: string
        currency:
          type: string
        paidMinor:
          type: integer
          format: int64
        refundedMinor:
          type: integer
          format: int64
        paidAt:
          type: string
          format: date-time
        clickId:
          type: string
        clickSource:
          type: string
        source:
          type: string
        medium:
          type: string
        campaign:
          type: string
        content:
          type: string
        term:
          type: string
    Problem:
      type: object
      required:
        - type
        - title
        - status
      properties:
        type:
          type: string
          format: uri
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
        request_id:
          type: string
  responses:
    Problem:
      description: Request failed
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'

````

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