openapi: 3.0.1 info: title: AbacatePay Billing Coupon API description: REST API for AbacatePay, a Brazilian payment gateway focused on instant Pix payments. Create billings and charges, generate and check Pix QR Codes, manage customers and coupons, and request withdrawals. All responses follow the {data, error} envelope and authenticate with a Bearer API key. termsOfService: https://www.abacatepay.com/termos contact: name: AbacatePay Support url: https://docs.abacatepay.com version: v1 servers: - url: https://api.abacatepay.com/v1 description: AbacatePay API v1 production server security: - bearerAuth: [] tags: - name: Coupon description: Create and list discount coupons. paths: /coupon/create: post: operationId: createCoupon tags: - Coupon summary: Create a new coupon description: Creates a discount coupon with a percentage or fixed-amount discount. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCouponRequest' responses: '200': description: Coupon created content: application/json: schema: $ref: '#/components/schemas/CouponResponse' '401': $ref: '#/components/responses/Unauthorized' /coupon/list: get: operationId: listCoupons tags: - Coupon summary: List coupons description: Returns the list of coupons for the authenticated store. responses: '200': description: A list of coupons content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Coupon' error: nullable: true '401': $ref: '#/components/responses/Unauthorized' components: schemas: Error: type: object properties: data: nullable: true error: type: string description: Human-readable error message. CreateCouponRequest: type: object required: - code - discount - discountKind - notes properties: code: type: string discount: type: number description: Discount value (percentage or fixed amount per discountKind). discountKind: type: string enum: - PERCENTAGE - FIXED notes: type: string maxRedeems: type: integer description: Maximum number of redemptions; -1 for unlimited. metadata: $ref: '#/components/schemas/Metadata' CouponResponse: type: object properties: data: $ref: '#/components/schemas/Coupon' error: nullable: true Coupon: type: object properties: id: type: string code: type: string discount: type: number discountKind: type: string status: type: string enum: - ACTIVE - DISABLED maxRedeems: type: integer redeemsCount: type: integer notes: type: string metadata: $ref: '#/components/schemas/Metadata' Metadata: type: object description: Arbitrary key/value metadata attached to a resource. additionalProperties: true responses: Unauthorized: description: Missing or invalid API key content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: API Key description: 'Authenticate with your AbacatePay API key as a Bearer token: `Authorization: Bearer `.'