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

# Publish a saved V2 flow import after reading its losses



## OpenAPI

````yaml /payments-api/openapi.json post /v1/payment-policies/import-v2/{id}/publish
openapi: 3.1.0
info:
  title: TagadaPay Payments API
  version: '2026-11-01'
servers:
  - url: https://api.tagada.io
security: []
paths:
  /v1/payment-policies/import-v2/{id}/publish:
    post:
      tags:
        - policies
      summary: Publish a saved V2 flow import after reading its losses
      operationId: paymentPolicies.publishV2Import
      parameters:
        - in: path
          name: id
          required: true
          schema:
            pattern: ^v2imp_[0-9a-hjkmnp-tv-z]{26}$
            type: string
        - in: header
          name: idempotency-key
          required: true
          schema:
            maxLength: 255
            minLength: 1
            type: string
        - in: header
          name: payments-account
          required: false
          schema:
            type: string
        - in: header
          name: payments-version
          required: false
          schema:
            enum:
              - '2026-11-01'
            type: string
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: false
              properties:
                losses_read:
                  enum:
                    - true
                  type: boolean
              required:
                - losses_read
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2FlowImportPublication'
          description: >-
            Published versions, their loss reports, applied bindings and the
            recorded reader.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: parameter_invalid, parameter_missing, amount_out_of_range
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: authentication_required
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: permission_denied
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: resource_not_found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: >-
            idempotency_key_reused, idempotency_key_in_progress,
            policy_has_problems, policy_not_published
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: rate_limited
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: internal_error
        '501':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: not_implemented
      security:
        - bearerAuth: []
components:
  schemas:
    V2FlowImportPublication:
      properties:
        bindings:
          items:
            properties:
              checkout:
                type:
                  - string
                  - 'null'
              flow:
                type: string
              policy:
                type: string
            required:
              - checkout
              - flow
              - policy
            type: object
          type: array
        id:
          type: string
        losses:
          items:
            $ref: '#/components/schemas/PolicyLoss'
          type: array
        losses_read_at:
          type: string
        losses_read_by:
          type: string
        mode:
          enum:
            - live
            - test
          type: string
        object:
          enum:
            - v2_flow_import_publication
          type: string
        policies:
          items:
            properties:
              flow:
                type: string
              losses:
                items:
                  $ref: '#/components/schemas/PolicyLoss'
                type: array
              name:
                type: string
              policy:
                type: string
              version:
                type: string
              version_number:
                type: integer
            required:
              - flow
              - policy
              - name
              - losses
              - version
              - version_number
            type: object
          type: array
        store:
          type: string
      required:
        - id
        - object
        - store
        - policies
        - bindings
        - losses
        - mode
        - losses_read_by
        - losses_read_at
      type: object
    ApiError:
      properties:
        error:
          properties:
            code:
              $ref: '#/components/schemas/ErrorCode'
            details:
              additionalProperties: {}
              type: object
            message:
              type: string
            param:
              type:
                - string
                - 'null'
            request_id:
              type: string
            type:
              enum:
                - invalid_request_error
                - authentication_error
                - permission_error
                - conflict_error
                - rate_limit_error
                - api_error
                - unavailable_error
              type: string
          required:
            - type
            - code
            - message
            - param
            - request_id
          type: object
      required:
        - error
      type: object
    PolicyLoss:
      properties:
        field:
          type: string
        kind:
          enum:
            - changed
            - dropped
            - unread
          type: string
        text:
          type: string
      required:
        - field
        - kind
        - text
      type: object
    ErrorCode:
      enum:
        - account_daily_cap_exceeded
        - account_not_enabled
        - amount_out_of_range
        - authentication_required
        - checkout_session_in_use
        - currency_not_supported
        - fx_rate_unavailable
        - idempotency_key_in_progress
        - idempotency_key_reused
        - internal_error
        - no_active_policy
        - not_implemented
        - parameter_invalid
        - parameter_missing
        - parent_payment_invalid
        - parent_payment_not_allowed
        - parent_payment_not_paid
        - payment_method_not_usable
        - payment_method_required
        - payment_method_save_disabled
        - payment_not_confirmable
        - payment_not_retryable
        - payments_api_disabled
        - permission_denied
        - rate_limited
        - resource_not_found
        - retry_exists
        - retry_limit_reached
        - store_not_on_payments_api
        - stored_credential_missing
      type: string
      x-extensible-enum:
        - account_daily_cap_exceeded
        - account_not_enabled
        - amount_out_of_range
        - authentication_required
        - checkout_session_in_use
        - currency_not_supported
        - fx_rate_unavailable
        - idempotency_key_in_progress
        - idempotency_key_reused
        - internal_error
        - no_active_policy
        - not_implemented
        - parameter_invalid
        - parameter_missing
        - parent_payment_invalid
        - parent_payment_not_allowed
        - parent_payment_not_paid
        - payment_method_not_usable
        - payment_method_required
        - payment_method_save_disabled
        - payment_not_confirmable
        - payment_not_retryable
        - payments_api_disabled
        - permission_denied
        - rate_limited
        - resource_not_found
        - retry_exists
        - retry_limit_reached
        - store_not_on_payments_api
        - stored_credential_missing
  securitySchemes:
    bearerAuth:
      description: >-
        Secret, platform or publishable API key. Platform keys require
        Payments-Account.
      scheme: bearer
      type: http

````

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