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

# Get a refund voucher URL

> Returns a presigned URL to download the PDF voucher of a refund. The URL expires 5 minutes after it is generated. Vouchers are available for succeeded refunds in `live` mode, disbursed by bank transfer or card.

**`v1`** · Base URL `https://api.fintoc.com/v1`

<Warning>
  **Voucher URL storage migration**

  Starting **May 4, 2026**, the `url` field returned by voucher endpoint will be a presigned URL served from Google Cloud Storage instead of Amazon S3. There are no changes to the API behavior or contract.
</Warning>


## OpenAPI

````yaml reference/fintoc-api.json GET /refunds/{id}/voucher_url
openapi: 3.1.0
info:
  title: fintoc-api
  version: v2026-02-01
servers:
  - url: https://api.fintoc.com/v1
security: []
paths:
  /refunds/{id}/voucher_url:
    get:
      tags:
        - Refunds
      summary: Get a refund voucher URL
      description: >-
        Returns a presigned URL to download the PDF voucher of a refund. The URL
        expires 5 minutes after it is generated. Vouchers are available for
        succeeded refunds in `live` mode, disbursed by bank transfer or card.
      operationId: refunds-voucher
      parameters:
        - name: id
          in: path
          description: The `id` of the refund whose voucher you want to retrieve.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: >-
            Presigned URL to download the PDF voucher. The URL expires 5 minutes
            after it is generated.
          content:
            application/json:
              examples:
                refund_voucher_url:
                  value:
                    url: >-
                      https://storage.googleapis.com/fintoc-vouchers/refunds/ref_8XzNbCv1LqKjWp4R/voucher.pdf
              schema:
                $ref: '#/components/schemas/refund_voucher_url'
        '400':
          description: >-
            The voucher is not available: the refund has not succeeded, the
            refund is in `test` mode, or the payment method does not support
            vouchers.
          content:
            application/json:
              examples:
                refund_not_succeeded:
                  value:
                    error:
                      type: invalid_request_error
                      code: invalid_refund_to_get_voucher
                      param: null
                      message: Can not get voucher for non succeeded refund.
                      doc_url: https://docs.fintoc.com/reference/errors
              schema:
                $ref: '#/components/schemas/error_object'
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              examples:
                invalid_api_key:
                  value:
                    error:
                      type: authentication_error
                      code: invalid_api_key
                      message: 'Invalid API Key: invalid-*oken'
              schema:
                $ref: '#/components/schemas/error_object'
        '404':
          description: >-
            The refund does not exist, belongs to another organization, or
            belongs to a different mode than the API key.
          content:
            application/json:
              examples:
                refund_not_found:
                  value:
                    error:
                      type: invalid_request_error
                      code: missing_resource
                      param: id
                      message: 'No such refund: ref_8XzNbCv1LqKjWp4R'
                      doc_url: https://docs.fintoc.com/reference/errors
              schema:
                $ref: '#/components/schemas/error_object'
      security:
        - api_key: []
components:
  schemas:
    refund_voucher_url:
      type: object
      properties:
        url:
          type:
            - string
            - 'null'
          description: >-
            Presigned URL to download the PDF voucher of the refund. The URL
            expires 5 minutes after it is generated.
          example: >-
            https://storage.googleapis.com/fintoc-vouchers/refunds/ref_8XzNbCv1LqKjWp4R/voucher.pdf
      required:
        - url
    error_object:
      type: object
      properties:
        error:
          type: object
          description: Details of the error that caused the request to fail.
          properties:
            code:
              type: string
              description: >-
                Machine-readable code identifying the specific error, for
                example `invalid_api_key`. Not returned by every error.
              example: invalid_api_key
            doc_url:
              type: string
              description: >-
                URL of a documentation page with more details about the error.
                Not returned by every error.
              example: https://docs.fintoc.com/reference/errors
            message:
              type: string
              description: Human-readable message describing the error.
              example: 'Invalid API Key: invalid-*oken'
            param:
              type:
                - string
                - 'null'
              description: >-
                Name of the request parameter that caused the error. `null` when
                the error cannot be tied to a single parameter, and not returned
                by every error.
              example: amount
            type:
              type: string
              description: >-
                Category of the error, for example `invalid_request_error`,
                `authentication_error`, or `api_error`.
              example: invalid_request_error
          required:
            - type
            - message
  securitySchemes:
    api_key:
      type: apiKey
      name: Authorization
      in: header

````