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

# Send a controlled test purchase

> Creates an identity-free synthetic purchase and sends it only to the selected destination while test mode is enabled.



## OpenAPI

````yaml https://plainrouter.com/openapi.json post /destinations/{destination}/test-purchase
openapi: 3.1.0
info:
  title: PlainRouter Conversion API
  version: 0.5.0
  description: PlainRouter public Signals Conversion API.
servers:
  - url: https://plainrouter.com/api/v1
    description: Production
security:
  - signalTrackerSecret: []
paths:
  /destinations/{destination}/test-purchase:
    post:
      tags:
        - Operations
      summary: Send a controlled test purchase
      description: >-
        Creates an identity-free synthetic purchase and sends it only to the
        selected destination while test mode is enabled.
      operationId: sendTestPurchase
      parameters:
        - name: destination
          in: path
          required: true
          description: The destination ID
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                value:
                  type:
                    - string
                    - 'null'
                  pattern: ^-?\d+(?:\.\d+)?$
                currency:
                  type:
                    - string
                    - 'null'
                  minLength: 3
                  maxLength: 3
                order_id:
                  type:
                    - string
                    - 'null'
                  maxLength: 128
      responses:
        '200':
          description: Meta accepted the test purchase.
          content:
            application/json:
              schema:
                type: object
                properties:
                  event_id:
                    type: string
                  status:
                    $ref: '#/components/schemas/DeliveryStatus'
                  trace_id:
                    type:
                      - string
                      - 'null'
                required:
                  - event_id
                  - status
                  - trace_id
        '401':
          description: Invalid or missing Signal tracker secret.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '422':
          description: Test mode is disabled or request validation failed.
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ValidationError'
                  - $ref: '#/components/schemas/ErrorMessage'
        '502':
          description: Meta did not accept the test purchase.
          content:
            application/json:
              schema:
                type: object
                properties:
                  event_id:
                    type: string
                  status:
                    $ref: '#/components/schemas/DeliveryStatus'
                  trace_id:
                    type:
                      - string
                      - 'null'
                required:
                  - event_id
                  - status
                  - trace_id
components:
  schemas:
    DeliveryStatus:
      type: string
      enum:
        - queued
        - sent
        - accepted
        - retrying
        - failed:auth
        - failed:permanent
        - failed:unknown
        - expired
        - skipped:consent
        - skipped:no_destination
        - skipped:duplicate
      title: DeliveryStatus
    ErrorMessage:
      type: object
      properties:
        message:
          type: string
      required:
        - message
      title: ErrorMessage
    ValidationError:
      type: object
      properties:
        message:
          type: string
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
      required:
        - message
        - errors
      title: ValidationError
  securitySchemes:
    signalTrackerSecret:
      type: http
      description: >-
        Per-tracker bearer secret. It authenticates only the Signal tracker
        represented by the credential.
      scheme: bearer

````