openapi: 3.1.0 info: title: Visa Acceptance Payments Captures Invoices API description: The Visa Acceptance Payments API (powered by CyberSource) provides REST endpoints for accepting payments online, in-person, and via mobile. The API supports authorization, capture, refund, void, and reversal operations for credit cards, debit cards, digital wallets (Apple Pay, Google Pay), and other payment methods. Authentication uses JSON Web Token (JWT) with RSA key pairs. version: '2.0' contact: name: Visa Acceptance Developer Portal url: https://developer.visaacceptance.com/ license: name: Commercial url: https://developer.visaacceptance.com/ servers: - url: https://api.visaacceptance.com description: Production environment - url: https://apitest.visaacceptance.com description: Sandbox/test environment security: - JWT: [] tags: - name: Invoices description: Create and manage invoices for payment collection paths: /pts/v2/invoices: post: operationId: createInvoice summary: Create Invoice description: Create an invoice for payment collection. Invoices can be sent to customers via email and include a payment link. Supports line items, tax, and custom due dates. tags: - Invoices requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/InvoiceRequest' responses: '201': description: Invoice created successfully content: application/json: schema: $ref: '#/components/schemas/InvoiceResponse' '400': description: Invalid invoice request get: operationId: listInvoices summary: List Invoices description: Retrieve a list of invoices with optional filtering by status and date range. tags: - Invoices parameters: - name: status in: query required: false description: Filter by invoice status schema: type: string enum: - CREATED - SENT - PAID - CANCELLED - EXPIRED - name: limit in: query required: false description: Maximum number of invoices to return schema: type: integer default: 20 maximum: 100 responses: '200': description: List of invoices content: application/json: schema: $ref: '#/components/schemas/InvoiceListResponse' /pts/v2/invoices/{invoiceId}: get: operationId: getInvoice summary: Get Invoice description: Retrieve details of a specific invoice by its ID. tags: - Invoices parameters: - name: invoiceId in: path required: true schema: type: string responses: '200': description: Invoice details content: application/json: schema: $ref: '#/components/schemas/InvoiceResponse' '404': description: Invoice not found patch: operationId: updateInvoice summary: Update Invoice description: Update a draft invoice before sending it to the customer. tags: - Invoices parameters: - name: invoiceId in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/InvoiceRequest' responses: '200': description: Invoice updated successfully content: application/json: schema: $ref: '#/components/schemas/InvoiceResponse' components: schemas: InvoiceResponse: type: object properties: id: type: string status: type: string enum: - CREATED - SENT - PAID - CANCELLED - EXPIRED invoiceUrl: type: string format: uri description: URL where the customer can pay the invoice createdDate: type: string format: date-time dueDate: type: string format: date LineItem: type: object properties: productName: type: string quantity: type: integer unitPrice: type: string totalAmount: type: string InvoiceRequest: type: object required: - customerInformation - orderInformation properties: customerInformation: type: object properties: name: type: string email: type: string format: email orderInformation: type: object properties: amountDetails: type: object properties: totalAmount: type: string currency: type: string lineItems: type: array items: $ref: '#/components/schemas/LineItem' dueDate: type: string format: date description: Due date for the invoice payment InvoiceListResponse: type: object properties: invoices: type: array items: $ref: '#/components/schemas/InvoiceResponse' totalCount: type: integer securitySchemes: JWT: type: http scheme: bearer bearerFormat: JWT description: RSA-signed JSON Web Token. Generate using your merchant ID and RSA key pair from the Visa Acceptance Business Center. externalDocs: description: Visa Acceptance Developer Documentation url: https://developer.visaacceptance.com/docs.html