Ualá Refunds API

Refunds of approved orders

OpenAPI Specification

ual-refunds-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Ualá Bis API v2 Authentication Refunds API
  description: Token issuance for the Ualá Bis API Cobros Online v2. All integrations require generating an access token via a client-credentials style request (username, client_id, client_secret_id, grant_type). Credentials for both test and production environments are delivered in the Ualá Bis welcome email and in the mobile/web applications. Generated by API Evangelist from the published documentation — the provider does not publish a machine-readable spec.
  version: '2'
  contact:
    email: developers.ualabis@uala.com.ar
    url: https://developers.ualabis.com.ar/
  x-apievangelist:
    provider: ual
    generated: '2026-07-21'
    method: generated
    source: https://developers.ualabis.com.ar/v2/authentication/create
servers:
- url: https://auth.developers.ar.ua.la/v2/api
  description: Production
- url: https://auth.stage.developers.ar.ua.la/v2/api
  description: Test (stage)
tags:
- name: Refunds
  description: Refunds of approved orders
paths:
  /orders/{uuid}/refund:
    post:
      operationId: refundOrder
      tags:
      - Refunds
      summary: Crear devolución (refund an approved order)
      description: Creates a refund for a paid order. The order must be APPROVED, have no refund in progress, be less than 90 days old, and belong to API Checkout v2. The refund result is notified to the optional notification_url via webhook (REFUNDED / NOT_REFUNDED).
      parameters:
      - name: uuid
        in: path
        required: true
        description: Unique identifier of the paid, approved order.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRefundRequest'
            example:
              amount: '32221'
              notification_url: https://your-awesome-web.com/endpoint-to-notify
      responses:
        '200':
          description: Refund initiated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - INITIATED
              example:
                status: INITIATED
        '400':
          $ref: '#/components/responses/RequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ApiError'
components:
  responses:
    Forbidden:
      description: Expired token / explicit deny.
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
          example:
            message: User is not authorized to access this resource with an explicit deny
    Unauthorized:
      description: Missing or invalid credentials.
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
          example:
            message: Unauthorized
    ApiError:
      description: Internal error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: api_error
            message: Something bad happened. Please try again
    NotFound:
      description: Order not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: response_error
            message: No record found.
    RequestError:
      description: Invalid request payload or query string.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: request_error
            message: Invalid request payload
            errors:
            - Invalid amount value. Amount must have only positive numbers and a single point
            - Invalid amount value. Minimum amount is 25.00
            - Invalid amount value. Maximum amount is 9999999.00
  schemas:
    CreateRefundRequest:
      type: object
      required:
      - amount
      properties:
        amount:
          type: string
          description: Order amount to refund.
        notification_url:
          type: string
          description: URL notified with the refund result (REFUNDED / NOT_REFUNDED).
    Error:
      type: object
      properties:
        code:
          type: string
          enum:
          - request_error
          - response_error
          - api_error
        message:
          type: string
        errors:
          type: array
          items:
            type: string