HitPay Invoices API

The Invoices API from HitPay — 2 operation(s) for invoices.

OpenAPI Specification

hitpay-invoices-api-openapi.yml Raw ↑
openapi: 3.1.1
info:
  title: HitPay Account Status Invoices API
  description: 'Accept PayNow, FPX, QRIS, GrabPay, cards, and 40+ payment methods with a single API. Production base URL: https://api.hit-pay.com, Sandbox: https://api.sandbox.hit-pay.com'
  version: '1.0'
servers:
- url: https://api.hit-pay.com
  description: Production
- url: https://api.sandbox.hit-pay.com
  description: Sandbox
tags:
- name: Invoices
paths:
  /v1/invoices/{invoice_id}:
    delete:
      summary: Delete Invoice
      description: Delete Invoice
      operationId: delete-invoice
      parameters:
      - name: X-BUSINESS-API-KEY
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
          example: b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d
      - name: invoice_id
        in: path
        description: The invoice id belongs to business.
        schema:
          type: string
        required: true
      responses:
        '204':
          description: '204'
          content:
            application/json:
              examples:
                Result:
                  value: 1
              schema:
                type: integer
                example: 1
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Result:
                  value:
                    message: No query results for model [App\Business\Invoice] 9ef5f219-8c72-488b-997d-a0906d2f81181
              schema:
                type: object
                properties:
                  message:
                    type: string
                    examples:
                    - No query results for model [App\Business\Invoice] 99daaa99-0ccb-4e46-82bd-7a4347957e0a
      deprecated: false
      tags:
      - Invoices
    put:
      summary: Update the invoice
      description: Update the invoice
      operationId: update-the-invoice
      parameters:
      - name: X-BUSINESS-API-KEY
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
          example: b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d
      - name: invoice_id
        in: path
        description: The invoice id belongs to the business.
        schema:
          type: string
        required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - invoice_date
              - currency
              - amount
              - payment_by
              properties:
                customer:
                  type: object
                  properties:
                    name:
                      type: string
                      description: Customer's name. It's required field when customer id is not present.
                      maxLength: 255
                    email:
                      type: string
                      description: Customer's email. It's required field when customer id is not present.
                    address:
                      type: object
                      properties:
                        name:
                          street: string
                          maxLength: 255
                          example: '160 Paya Lebar Road 07-08 Orion Industrial '
                        city:
                          street: string
                          maxLength: 255
                          example: Singapore
                        state:
                          street: string
                          maxLength: 255
                          example: Singapore
                        postal_code:
                          street: string
                          maxLength: 255
                          example: '367903'
                        country:
                          street: string
                          maxLength: 255
                          example: sg
                customer_id:
                  type: string
                  description: 'Customer id and it''s required field if the customer''s email and name are not present/ '
                invoice_date:
                  type: string
                  description: The format(Y-m-d) is 2024-12-21
                due_date:
                  type: string
                  description: 'Invoice Due Date, format Y-m-d. Example: 2024-12-21'
                auto_invoice_number:
                  type: string
                  description: auto_invoice_number
                invoice_number:
                  type: string
                  description: Invoice Number, required if auto_invoice_number set 0
                currency:
                  type: string
                  description: Invoice currency
                payment_methods:
                  type: array
                  items:
                    type: string
                    example: paynow_online
                  description: The available payment methods support on your account and currency.
                amount:
                  type: number
                  description: Invoice amount, only required for payment by amount
                  format: double
                subtotal:
                  type: number
                  description: The subtotal field is required when payment by is amount.
                  format: double
                payment_by:
                  type: string
                  description: Payment is by product or amount
                tax_setting:
                  type: string
                  description: Tax id
                send_email:
                  type: integer
                  description: HitPay to send email receipts to the customer. Default value is 0
                  default: 0
                  format: int32
                webhook:
                  type: string
                  description: Optional URL value to which HitPay will send a POST request when there is a new charge or if there is an error charging the card
                reference:
                  type: string
                  description: Invoice Description
                footer:
                  type: string
                  description: Invoice Footer
                allow_partial_payments:
                  type: string
                  description: allow partial payment of invoice (0 or 1)
                  default: 0
                partial_payments:
                  type: array
                  items:
                    type: object
                    properties:
                      amount:
                        type: integer
                        description: It's required field if allow_partial_payments = 1
                        default: 0
                        format: int32
                      due_date:
                        type: string
                        description: It's required field if allow_partial_payments = 1
                  required: []
                products:
                  type: array
                  items:
                    type: object
                    properties:
                      product_id:
                        type: string
                        description: It's required field if payment_by = product
                      quantity:
                        type: string
                        description: It's required field if payment_by = product
                      variation_id:
                        type: string
                        description: It's required field if payment_by = product
                      discount:
                        type: string
                        description: It's required field if payment_by = product
                    required:
                    - product_id
                stackable_discounts:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        description: Discount name. Max 255 chars
                      discount:
                        type: string
                        description: Discount value >= 0
                      percentage_discount:
                        type: string
                        description: Discount percentage must be between 0 and 1.
                      order:
                        type: string
                        description: The order of discount
                    required:
                    - name
                    - discount
                    - percentage_discount
                    - order
                recipients:
                  type: array
                  items:
                    type: object
                    properties:
                      email:
                        type: string
                        description: The email address. The user can user either email or customer for recipients
                      customer_id:
                        type: string
                        description: The customer id
      responses:
        '200':
          description: '200'
          content: {}
      deprecated: false
      tags:
      - Invoices
  /v1/invoices:
    get:
      summary: Get all invoice
      description: Get the invoice and filter
      operationId: get-invoices
      parameters:
      - name: X-BUSINESS-API-KEY
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
          example: b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d
      - name: customer_email
        in: query
        schema:
          type: string
      - name: status
        in: query
        description: Invoice status, options [draft, sent, pending, overdue, paid]
        schema:
          type: string
      - name: reference
        in: query
        schema:
          type: string
      - name: per_page
        in: query
        description: The number of per page
        schema:
          type: string
          default: '10'
      - name: page
        in: query
        description: The page index
        schema:
          type: string
          default: '1'
      responses:
        '204':
          description: '204'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      tags:
      - Invoices
    post:
      summary: Create the invoice
      description: Create the invoice
      operationId: create-invoice
      parameters:
      - name: X-BUSINESS-API-KEY
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
          example: b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - invoice_date
              - currency
              - amount
              - payment_by
              properties:
                customer:
                  type: object
                  properties:
                    name:
                      type: string
                      description: Customer's name. It's required field when customer id is not present.
                      maxLength: 255
                    email:
                      type: string
                      description: Customer's email. It's required field when customer id is not present.
                    address:
                      type: object
                      properties:
                        name:
                          street: string
                          maxLength: 255
                          example: '160 Paya Lebar Road 07-08 Orion Industrial '
                        city:
                          street: string
                          maxLength: 255
                          example: Singapore
                        state:
                          street: string
                          maxLength: 255
                          example: Singapore
                        postal_code:
                          street: string
                          maxLength: 255
                          example: '367903'
                        country:
                          street: string
                          maxLength: 255
                          example: sg
                customer_id:
                  type: string
                  description: 'Customer id and it''s required field if the customer''s email and name are not present/ '
                invoice_date:
                  type: string
                  description: The format(Y-m-d) is 2024-12-21
                due_date:
                  type: string
                  description: 'Invoice Due Date, format Y-m-d. Example: 2024-12-21'
                auto_invoice_number:
                  type: string
                  description: auto_invoice_number
                invoice_number:
                  type: string
                  description: Invoice Number, required if auto_invoice_number set 0
                currency:
                  type: string
                  description: Invoice currency
                payment_methods:
                  type: array
                  items:
                    type: string
                    example: paynow_online
                  description: The available payment methods support on your account and currency.
                amount:
                  type: number
                  description: Invoice amount, only required for payment by amount
                  format: double
                subtotal:
                  type: number
                  description: The subtotal field is required when payment by is amount.
                  format: double
                payment_by:
                  type: string
                  description: Payment is by product or amount
                tax_setting:
                  type: string
                  description: Tax id
                send_email:
                  type: integer
                  description: HitPay to send email receipts to the customer. Default value is 0
                  default: 0
                  format: int32
                webhook:
                  type: string
                  description: Optional URL value to which HitPay will send a POST request when there is a new charge or if there is an error charging the card
                reference:
                  type: string
                  description: Invoice Description
                footer:
                  type: string
                  description: Invoice Footer
                allow_partial_payments:
                  type: string
                  description: allow partial payment of invoice (0 or 1)
                  default: 0
                partial_payments:
                  type: array
                  items:
                    type: object
                    properties:
                      amount:
                        type: integer
                        description: It's required field if allow_partial_payments = 1
                        default: 0
                        format: int32
                      due_date:
                        type: string
                        description: It's required field if allow_partial_payments = 1
                  required: []
                products:
                  type: array
                  items:
                    type: object
                    properties:
                      product_id:
                        type: string
                        description: It's required field if payment_by = product
                      quantity:
                        type: string
                        description: It's required field if payment_by = product
                      variation_id:
                        type: string
                        description: It's required field if payment_by = product
                      discount:
                        type: string
                        description: It's required field if payment_by = product
                    required:
                    - product_id
                stackable_discounts:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        description: Discount name. Max 255 chars
                      discount:
                        type: string
                        description: Discount value >= 0
                      percentage_discount:
                        type: string
                        description: Discount percentage must be between 0 and 1.
                      order:
                        type: string
                        description: The order of discount
                    required:
                    - name
                    - discount
                    - percentage_discount
                    - order
                recipients:
                  type: array
                  items:
                    type: object
                    properties:
                      email:
                        type: string
                        description: The email address. The user can user either email or customer for recipients
                      customer_id:
                        type: string
                        description: The customer id
      responses:
        '200':
          description: '200'
          content: {}
      deprecated: false
      tags:
      - Invoices
x-readme:
  headers: []
  explorer-enabled: true
  proxy-enabled: true
  samples-enabled: true
x-readme-fauxas: true