{
  "openapi": "3.1.1",
  "info": {
    "title": "HitPay 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"
    }
  ],
  "paths": {
    "/v1/locations": {
      "get": {
        "tags": ["Location"],
        "summary": "List locations",
        "description": "Returns a paginated list of locations for the authenticated business.\n\nThe business is resolved from the API key (`X-BUSINESS-API-KEY`) or OAuth bearer token.\nCashiers and managers only see locations assigned to them.\n",
        "operationId": "PublicGetLocations",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "keywords",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filter by location name (space-separated keywords) or exact UUID",
            "example": "Main Store"
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 500,
              "minimum": 1
            },
            "description": "Number of results per page"
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of locations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Location ID",
                            "example": "9c484458-b2a3-4f49-87ed-ad9ea71b0df3"
                          },
                          "business_id": {
                            "type": "string",
                            "format": "uuid",
                            "description": "Business that owns this location",
                            "example": "8a1f2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d"
                          },
                          "name": {
                            "type": "string",
                            "description": "Name of the location",
                            "example": "Main Store"
                          },
                          "street": {
                            "type": "string",
                            "description": "Street address",
                            "example": "123 Main St"
                          },
                          "city": {
                            "type": "string",
                            "description": "City",
                            "example": "Singapore"
                          },
                          "state": {
                            "type": "string",
                            "description": "State or region",
                            "example": "Singapore"
                          },
                          "country": {
                            "type": "string",
                            "description": "Country code or name",
                            "example": "SG"
                          },
                          "postal_code": {
                            "type": "string",
                            "description": "Postal code",
                            "example": "123456"
                          },
                          "active": {
                            "type": "boolean",
                            "description": "Whether the location is active",
                            "example": true
                          },
                          "pickups": {
                            "type": "array",
                            "description": "Pickup configurations linked to this location (empty when not loaded)",
                            "items": {
                              "type": "object"
                            }
                          },
                          "created_at": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "updated_at": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "id",
                          "business_id",
                          "name",
                          "street",
                          "city",
                          "state",
                          "country",
                          "postal_code",
                          "active"
                        ]
                      }
                    },
                    "links": {
                      "type": "object",
                      "description": "pagination links according to current page and per_page value",
                      "properties": {
                        "first": {
                          "type": "string",
                          "description": "the url of the first page according to current base url"
                        },
                        "last": {
                          "type": "string",
                          "description": "the url of the last page according to current `per_page` value"
                        },
                        "prev": {
                          "type": "string",
                          "description": "the url of the previous page of the current `page`, NULL if not exists"
                        },
                        "next": {
                          "type": "string",
                          "description": "the url of the next page of the current `page`, NULL if not exists"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "description": "meta values for listing operations",
                      "properties": {
                        "current_page": {
                          "type": "number",
                          "description": "the current page number",
                          "example": 5
                        },
                        "per_page": {
                          "type": "number",
                          "description": "the number of items for show for the current listing response",
                          "example": 10
                        },
                        "from": {
                          "type": "number",
                          "description": "the index that current listing page starts",
                          "example": 1
                        },
                        "to": {
                          "type": "number",
                          "description": "the index that current listing page ends",
                          "example": 10
                        },
                        "total": {
                          "type": "number",
                          "description": "the total of items found that match current listing filter",
                          "example": 100
                        },
                        "last_page": {
                          "type": "number",
                          "description": "the number that represents the last page of the listing according to the current `per_page` and filter",
                          "example": 10
                        },
                        "path": {
                          "type": "string",
                          "description": "the base listing url that doesn't contain params"
                        },
                        "links": {
                          "type": "array",
                          "description": "the array of pagination link",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": "string",
                                "description": "the url of the paginated link"
                              },
                              "label": {
                                "type": "string",
                                "description": "label for this link"
                              },
                              "active": {
                                "type": "boolean",
                                "description": "is the current link the active page or not"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key / OAuth token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Location"],
        "summary": "Create location",
        "description": "Create a new location for the authenticated business. The business is resolved from the API key\nor OAuth bearer token. Newly created locations are active by default.\n",
        "operationId": "PublicCreateLocation",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "street",
                  "city",
                  "state",
                  "country",
                  "postal_code"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Location name",
                    "maxLength": 255,
                    "example": "Main Store"
                  },
                  "street": {
                    "type": "string",
                    "description": "Street address",
                    "maxLength": 255,
                    "example": "123 Main St"
                  },
                  "city": {
                    "type": "string",
                    "description": "City",
                    "maxLength": 255,
                    "example": "Singapore"
                  },
                  "state": {
                    "type": "string",
                    "description": "State or region",
                    "maxLength": 255,
                    "example": "Singapore"
                  },
                  "country": {
                    "type": "string",
                    "description": "Country code or name",
                    "maxLength": 255,
                    "example": "SG"
                  },
                  "postal_code": {
                    "type": "string",
                    "description": "Postal code",
                    "maxLength": 16,
                    "example": "123456"
                  }
                }
              },
              "example": {
                "name": "Main Store",
                "street": "123 Main St",
                "city": "Singapore",
                "state": "Singapore",
                "country": "SG",
                "postal_code": "123456"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Location created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Location ID",
                      "example": "9c484458-b2a3-4f49-87ed-ad9ea71b0df3"
                    },
                    "business_id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Business that owns this location",
                      "example": "8a1f2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the location",
                      "example": "Main Store"
                    },
                    "street": {
                      "type": "string",
                      "description": "Street address",
                      "example": "123 Main St"
                    },
                    "city": {
                      "type": "string",
                      "description": "City",
                      "example": "Singapore"
                    },
                    "state": {
                      "type": "string",
                      "description": "State or region",
                      "example": "Singapore"
                    },
                    "country": {
                      "type": "string",
                      "description": "Country code or name",
                      "example": "SG"
                    },
                    "postal_code": {
                      "type": "string",
                      "description": "Postal code",
                      "example": "123456"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Whether the location is active",
                      "example": true
                    },
                    "pickups": {
                      "type": "array",
                      "description": "Pickup configurations linked to this location (empty when not loaded)",
                      "items": {
                        "type": "object"
                      }
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "business_id",
                    "name",
                    "street",
                    "city",
                    "state",
                    "country",
                    "postal_code",
                    "active"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key / OAuth token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Authenticated user cannot manage locations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error — required fields are missing or invalid",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/locations/{location}": {
      "get": {
        "tags": ["Location"],
        "summary": "Get location",
        "description": "Retrieve a single location by ID for the authenticated business.\nReturns `404` if the location does not exist or belongs to another business.\n",
        "operationId": "PublicGetLocation",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "location",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Location ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Location retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Location ID",
                      "example": "9c484458-b2a3-4f49-87ed-ad9ea71b0df3"
                    },
                    "business_id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Business that owns this location",
                      "example": "8a1f2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the location",
                      "example": "Main Store"
                    },
                    "street": {
                      "type": "string",
                      "description": "Street address",
                      "example": "123 Main St"
                    },
                    "city": {
                      "type": "string",
                      "description": "City",
                      "example": "Singapore"
                    },
                    "state": {
                      "type": "string",
                      "description": "State or region",
                      "example": "Singapore"
                    },
                    "country": {
                      "type": "string",
                      "description": "Country code or name",
                      "example": "SG"
                    },
                    "postal_code": {
                      "type": "string",
                      "description": "Postal code",
                      "example": "123456"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Whether the location is active",
                      "example": true
                    },
                    "pickups": {
                      "type": "array",
                      "description": "Pickup configurations linked to this location (empty when not loaded)",
                      "items": {
                        "type": "object"
                      }
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "business_id",
                    "name",
                    "street",
                    "city",
                    "state",
                    "country",
                    "postal_code",
                    "active"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key / OAuth token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Location not found or does not belong to this business",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Location"],
        "summary": "Update location",
        "description": "Update an existing location's address fields. All fields are required.\n",
        "operationId": "PublicUpdateLocation",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "location",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Location ID"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "street",
                  "city",
                  "state",
                  "country",
                  "postal_code"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 255,
                    "example": "Main Store"
                  },
                  "street": {
                    "type": "string",
                    "maxLength": 255,
                    "example": "123 Main St"
                  },
                  "city": {
                    "type": "string",
                    "maxLength": 255,
                    "example": "Singapore"
                  },
                  "state": {
                    "type": "string",
                    "maxLength": 255,
                    "example": "Singapore"
                  },
                  "country": {
                    "type": "string",
                    "maxLength": 255,
                    "example": "SG"
                  },
                  "postal_code": {
                    "type": "string",
                    "maxLength": 16,
                    "example": "123456"
                  }
                }
              },
              "example": {
                "name": "Main Store",
                "street": "123 Main St",
                "city": "Singapore",
                "state": "Singapore",
                "country": "SG",
                "postal_code": "123456"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Location updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Location ID",
                      "example": "9c484458-b2a3-4f49-87ed-ad9ea71b0df3"
                    },
                    "business_id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Business that owns this location",
                      "example": "8a1f2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the location",
                      "example": "Main Store"
                    },
                    "street": {
                      "type": "string",
                      "description": "Street address",
                      "example": "123 Main St"
                    },
                    "city": {
                      "type": "string",
                      "description": "City",
                      "example": "Singapore"
                    },
                    "state": {
                      "type": "string",
                      "description": "State or region",
                      "example": "Singapore"
                    },
                    "country": {
                      "type": "string",
                      "description": "Country code or name",
                      "example": "SG"
                    },
                    "postal_code": {
                      "type": "string",
                      "description": "Postal code",
                      "example": "123456"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Whether the location is active",
                      "example": true
                    },
                    "pickups": {
                      "type": "array",
                      "description": "Pickup configurations linked to this location (empty when not loaded)",
                      "items": {
                        "type": "object"
                      }
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "business_id",
                    "name",
                    "street",
                    "city",
                    "state",
                    "country",
                    "postal_code",
                    "active"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key / OAuth token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Authenticated user cannot manage locations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Location not found or does not belong to this business",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": ["Location"],
        "summary": "Toggle location active status",
        "description": "Activate or deactivate a location. A location must be deactivated before it can be deleted.\n\nDeactivation is blocked if:\n- the location is the only active location, or\n- the location is set as the main or back-order location\n",
        "operationId": "PublicUpdateLocationActive",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "location",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Location ID"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["active"],
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Set to `false` to deactivate, `true` to activate",
                    "example": false
                  }
                }
              },
              "example": {
                "active": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Location active status updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Location ID",
                      "example": "9c484458-b2a3-4f49-87ed-ad9ea71b0df3"
                    },
                    "business_id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Business that owns this location",
                      "example": "8a1f2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the location",
                      "example": "Main Store"
                    },
                    "street": {
                      "type": "string",
                      "description": "Street address",
                      "example": "123 Main St"
                    },
                    "city": {
                      "type": "string",
                      "description": "City",
                      "example": "Singapore"
                    },
                    "state": {
                      "type": "string",
                      "description": "State or region",
                      "example": "Singapore"
                    },
                    "country": {
                      "type": "string",
                      "description": "Country code or name",
                      "example": "SG"
                    },
                    "postal_code": {
                      "type": "string",
                      "description": "Postal code",
                      "example": "123456"
                    },
                    "active": {
                      "type": "boolean",
                      "description": "Whether the location is active",
                      "example": true
                    },
                    "pickups": {
                      "type": "array",
                      "description": "Pickup configurations linked to this location (empty when not loaded)",
                      "items": {
                        "type": "object"
                      }
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "business_id",
                    "name",
                    "street",
                    "city",
                    "state",
                    "country",
                    "postal_code",
                    "active"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Cannot deactivate — only active location",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key / OAuth token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Authenticated user cannot manage locations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error (e.g. main/back-order location cannot be deactivated)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Location"],
        "summary": "Delete location",
        "description": "Permanently delete a location. The location must be **inactive** before deletion — call\n`PATCH /v1/locations/{location}` with `{\"active\": false}` first.\n\nDeletion is blocked if the location is still active, or if it is the last remaining location.\n",
        "operationId": "PublicDeleteLocation",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "location",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Location ID"
          }
        ],
        "responses": {
          "204": {
            "description": "Location deleted successfully"
          },
          "400": {
            "description": "Location is still active, or is the last remaining location",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key / OAuth token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Authenticated user cannot manage locations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Location not found or does not belong to this business",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/account-status": {
      "get": {
        "summary": "Get Account Status",
        "description": "Get the account status",
        "operationId": "get-account-status",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "bank_account_status": "completed",
                      "verification": {
                        "overall_status": "completed",
                        "owner_verification": "not_required",
                        "business_verification": "completed"
                      },
                      "payment_providers": {
                        "airwallex_sg": {
                          "setup_status": "completed"
                        },
                        "atome_sg": {
                          "setup_status": "completed"
                        },
                        "dbs_sg": {
                          "setup_status": "pending"
                        },
                        "fave_sg": {
                          "setup_status": "completed"
                        },
                        "shopback_sg": {
                          "setup_status": "completed"
                        },
                        "shopee_pay": {
                          "setup_status": "completed"
                        },
                        "stripe_sg": {
                          "setup_status": "completed",
                          "payment_enabled": true,
                          "payout_enabled": true
                        }
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "bank_account_status": {
                      "type": "string"
                    },
                    "verification": {
                      "type": "object",
                      "properties": {
                        "overall_status": {
                          "type": "string"
                        },
                        "owner_verification": {
                          "type": "string"
                        },
                        "business_verification": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "overall_status",
                        "owner_verification",
                        "business_verification"
                      ]
                    },
                    "payment_providers": {
                      "type": "object",
                      "properties": {}
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/v1/staffs": {
      "get": {
        "summary": "Get All Staffs",
        "description": "Get All Staffs",
        "operationId": "get-all-staffs",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": [
                      {
                        "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                        "name": "TestingSG",
                        "role": {
                          "id": "93a00e56-c832-490e-b5b8-7f08149548c7",
                          "title": "Owner"
                        }
                      },
                      {
                        "id": "98888a24-d6b2-430d-9063-d2be76d443cd",
                        "name": "SG11",
                        "role": {
                          "id": "93a00e56-d9d8-46f7-aa41-da868820f899",
                          "title": "Manager"
                        }
                      },
                      {
                        "id": "98888a69-2d7a-4695-811d-6df8cee30264",
                        "name": "SG",
                        "role": {
                          "id": "93a00e56-d9d8-46f7-aa41-da868820f899",
                          "title": "Manager"
                        }
                      },
                      {
                        "id": "98888a7a-8d02-48bd-ba00-9ea91ad30ecb",
                        "name": "Cashier 01",
                        "role": {
                          "id": "93a00e56-dbea-4387-8972-e04777d9afce",
                          "title": "Cashier"
                        }
                      },
                      {
                        "id": "98889105-0aa7-4480-989c-41f38172b4e6",
                        "name": "Cashier 02",
                        "role": {
                          "id": "93a00e56-dbea-4387-8972-e04777d9afce",
                          "title": "Cashier"
                        }
                      },
                      {
                        "id": "9888918e-246b-44c6-a602-d8bcfd726345",
                        "name": "Admin 01",
                        "role": {
                          "id": "93a00e56-d68c-4025-9cea-2b08cd50572e",
                          "title": "Admin"
                        }
                      },
                      {
                        "id": "9bf2c210-9516-4525-9a8f-52cb671e7b02",
                        "name": "Manager 01",
                        "role": {
                          "id": "93a00e56-d9d8-46f7-aa41-da868820f899",
                          "title": "Manager"
                        }
                      }
                    ]
                  }
                },
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "role": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          }
                        },
                        "required": ["id", "title"]
                      }
                    },
                    "required": ["id", "name", "role"]
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/v1/staffs/{staff_id}": {
      "get": {
        "summary": "Get Staff Detail",
        "description": "Get Staff Detail",
        "operationId": "get-staff-detail",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "staff_id",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid",
              "example": "98888a69-2d7a-4695-811d-6df8cee30264"
            },

            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                      "name": "Testing ABC",
                      "role": {
                        "id": "93a00e56-c832-490e-b5b8-7f08149548c7",
                        "title": "Owner"
                      },
                      "email": "abcd@gmail.com",
                      "invited_at": "2023-01-29T05:29:24.000000Z",
                      "locations": []
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "role": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "title": {
                          "type": "string"
                        }
                      },
                      "required": ["id", "title"]
                    },
                    "email": {
                      "type": "string"
                    },
                    "invited_at": {
                      "type": "string"
                    },
                    "locations": {
                      "type": "array",
                      "items": {}
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "role",
                    "email",
                    "invited_at",
                    "locations"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "The staff cannot be found."
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": ["message"]
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/v1/refund": {
      "post": {
        "summary": "Refund",
        "description": "The API to refund the charge",
        "operationId": "refund",
        "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": ["amount", "payment_id"],
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "The remaining amount to be refunded.",
                    "example": 100.99
                  },
                  "payment_id": {
                    "type": "string",
                    "format": "uuid",
                    "example": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
                    "description": "Payment ID for the successful payment request"
                  },
                  "webhook": {
                    "type": "string",
                    "format": "uri",
                    "description": "The webhook URL",
                    "example": "https://www.google.com"
                  },
                  "send_email": {
                    "type": "string",
                    "enum": ["true", "false"]
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "example": "test@gmail.com"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9ef6957e-6b1b-4e08-8cde-d5f5c908418d",
                      "refunded_by": "QA SG",
                      "payment_id": "9a934d94-a41f-46c7-a934-c1ebf2436008",
                      "amount_refunded": 1,
                      "total_amount": 96.49,
                      "currency": "sgd",
                      "status": "succeeded",
                      "payment_method": "card",
                      "provider_fee": null,
                      "provider_fee_currency": null,
                      "refunded_at": "2025-05-21T09:17:52.000000Z",
                      "created_at": "2025-05-21T17:17:52"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "examples": ["9858acaf-edc8-427d-b0e5-c32e1b1543db"]
                    },
                    "refunded_by": {
                      "type": "string",
                      "example": "Test QA"
                    },
                    "payment_id": {
                      "type": "string",
                      "example": "984e6b86-f0e2-4283-991c-d8236f67567e"
                    },
                    "amount_refunded": {
                      "type": "integer",
                      "example": 13,
                      "default": 0
                    },
                    "total_amount": {
                      "type": "number",
                      "example": 99.99,
                      "default": 0
                    },
                    "currency": {
                      "type": "string",
                      "example": "usd"
                    },
                    "status": {
                      "type": "string",
                      "default": "succeeded"
                    },
                    "payment_method": {
                      "type": "string",
                      "example": "card"
                    },
                    "provider_fee": {
                      "type": "integer",
                      "example": 1.1
                    },
                    "provider_fee_currency": {
                      "type": "string",
                      "example": "SGD"
                    },
                    "refunded_at": {
                      "type": "string",
                      "example": "2025-05-21T09:17:52.000000Z"
                    },
                    "created_at": {
                      "type": "string",
                      "example": "2023-01-30T16:10:17"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": [],
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request POST 'https://api.sandbox.hit-pay.com/v1/refund' \\\n--header 'X-BUSINESS-API-KEY: meowmeowmeow' \\\n--header 'X-Requested-With: XMLHttpRequest' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--data-urlencode 'amount=13444' \\\n--data-urlencode 'payment_id=984e6b86-f0e2-4283-991c-d8236f67567e' \\\n--data-urlencode 'webhook=https://webhook.site/64da3fed-cd82-49cc-a368-a9ede02441aa' \\\n--data-urlencode 'send_email=true ' \\\n--data-urlencode 'email=raymond@hit-pay.com'\n",
              "name": "cURL"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/refund/{refund_id}": {
      "get": {
        "summary": "Get Refund Details",
        "description": "Get the refund detail.",
        "operationId": "get-refund",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "refund_id",
            "in": "path",
            "description": "The refund id",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "a1feb98d-f31d-4378-9382-1a373853f7eb",
                      "refunded_by": null,
                      "payment_id": "a1feb5cb-fff3-4cd7-a5a1-a4e91307353d",
                      "amount_refunded": 10,
                      "total_amount": 110,
                      "currency": "sgd",
                      "status": "succeeded",
                      "payment_method": "card",
                      "provider_fee": null,
                      "provider_fee_currency": null,
                      "refunded_at": "2026-06-11T05:01:08.000000Z",
                      "created_at": "2026-06-11T05:01:08.000000Z"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "example": "a1feb98d-f31d-4378-9382-1a373853f7eb"
                    },
                    "refunded_by": {
                      "type": "string",
                      "nullable": true,
                      "example": null
                    },
                    "payment_id": {
                      "type": "string",
                      "format": "uuid",
                      "example": "a1feb5cb-fff3-4cd7-a5a1-a4e91307353d"
                    },
                    "amount_refunded": {
                      "type": "number",
                      "example": 10
                    },
                    "total_amount": {
                      "type": "number",
                      "example": 110
                    },
                    "currency": {
                      "type": "string",
                      "example": "sgd"
                    },
                    "status": {
                      "type": "string",
                      "example": "succeeded"
                    },
                    "payment_method": {
                      "type": "string",
                      "example": "card"
                    },
                    "provider_fee": {
                      "type": "number",
                      "nullable": true,
                      "example": null
                    },
                    "provider_fee_currency": {
                      "type": "string",
                      "nullable": true,
                      "example": null
                    },
                    "refunded_at": {
                      "type": "string",
                      "format": "date-time",
                      "example": "2026-06-11T05:01:08.000000Z"
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "example": "2026-06-11T05:01:08.000000Z"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": [],
        "x-readme": {
          "code-samples": [
            {
              "lang": "shell",
              "source": "curl -X GET \"https://api.sandbox.hit-pay.com/v1/refund/{refund_id}\" -H \"X-BUSINESS-API-KEY: b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d\""
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/subscription-plan": {
      "get": {
        "summary": "Get All Subscription Plan",
        "description": "Use this API to get all subscription plans details.",
        "operationId": "get-all-subscription-plan",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "The number of per page",
            "schema": {
              "type": "number",
              "default": 20
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "The page index",
            "schema": {
              "type": "number",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"data\": [\n        {\n            \"id\": \"975b1909-38f6-44f3-a0b1-c198b7478978\",\n            \"name\": \"subscription-plan_new_1664175178\",\n            \"description\": \"New_Description_1664175178\",\n            \"cycle\": \"custom\",\n            \"cycle_repeat\": 1,\n            \"cycle_frequency\": \"day\",\n            \"currency\": \"sgd\",\n            \"price\": 123.45,\n            \"amount\": 123.45,\n            \"reference\": null,\n            \"created_at\": \"2022-09-26T14:52:58\",\n            \"updated_at\": \"2022-09-26T14:52:58\"\n        },\n        {\n            \"id\": \"97533e84-4f48-4625-83de-1d2b3e3ae17b\",\n            \"name\": \"subscription-plan_new_1663837869\",\n            \"description\": \"New_Description_1663837869\",\n            \"cycle\": \"custom\",\n            \"cycle_repeat\": 1,\n            \"cycle_frequency\": \"day\",\n            \"currency\": \"sgd\",\n            \"price\": 9999999.99,\n            \"amount\": 9999999.99,\n            \"reference\": null,\n            \"created_at\": \"2022-09-22T17:11:09\",\n            \"updated_at\": \"2022-09-22T17:11:09\"\n        }\n    ],\n    \"links\": {\n        \"first\": \"https://api.sandbox.hit-pay.com/v1/subscription-plan?page=1\",\n        \"last\": \"https://api.sandbox.hit-pay.com/v1/subscription-plan?page=1\",\n        \"prev\": null,\n        \"next\": null\n    },\n    \"meta\": {\n        \"current_page\": 1,\n        \"from\": 1,\n        \"last_page\": 1,\n        \"links\": [\n            {\n                \"url\": null,\n                \"label\": \"&laquo; Previous\",\n                \"active\": false\n            },\n            {\n                \"url\": \"https://api.sandbox.hit-pay.com/v1/subscription-plan?page=1\",\n                \"label\": \"1\",\n                \"active\": true\n            },\n            {\n                \"url\": null,\n                \"label\": \"Next &raquo;\",\n                \"active\": false\n            }\n        ],\n        \"path\": \"https://api.sandbox.hit-pay.com/v1/subscription-plan\",\n        \"per_page\": 25,\n        \"to\": 2,\n        \"total\": 2\n    }\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "examples": ["975b1909-38f6-44f3-a0b1-c198b7478978"]
                          },
                          "name": {
                            "type": "string",
                            "examples": ["subscription-plan_new_1664175178"]
                          },
                          "description": {
                            "type": "string",
                            "examples": ["New_Description_1664175178"]
                          },
                          "cycle": {
                            "type": "string",
                            "examples": ["custom"]
                          },
                          "cycle_repeat": {
                            "type": "integer",
                            "examples": [1],
                            "default": 0
                          },
                          "cycle_frequency": {
                            "type": "string",
                            "examples": ["day"]
                          },
                          "currency": {
                            "type": "string",
                            "examples": ["sgd"]
                          },
                          "price": {
                            "type": "number",
                            "examples": [123.45],
                            "default": 0
                          },
                          "amount": {
                            "type": "number",
                            "examples": [123.45],
                            "default": 0
                          },
                          "reference": {},
                          "created_at": {
                            "type": "string",
                            "examples": ["2022-09-26T14:52:58"]
                          },
                          "updated_at": {
                            "type": "string",
                            "examples": ["2022-09-26T14:52:58"]
                          }
                        }
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": "string",
                          "examples": [
                            "https://api.sandbox.hit-pay.com/v1/subscription-plan?page=1"
                          ]
                        },
                        "last": {
                          "type": "string",
                          "examples": [
                            "https://api.sandbox.hit-pay.com/v1/subscription-plan?page=1"
                          ]
                        },
                        "prev": {},
                        "next": {}
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "examples": [1],
                          "default": 0
                        },
                        "from": {
                          "type": "integer",
                          "examples": [1],
                          "default": 0
                        },
                        "last_page": {
                          "type": "integer",
                          "examples": [1],
                          "default": 0
                        },
                        "links": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {},
                              "label": {
                                "type": "string",
                                "examples": ["&laquo; Previous"]
                              },
                              "active": {
                                "type": "boolean",
                                "examples": [false],
                                "default": true
                              }
                            }
                          }
                        },
                        "path": {
                          "type": "string",
                          "examples": [
                            "https://api.sandbox.hit-pay.com/v1/subscription-plan"
                          ]
                        },
                        "per_page": {
                          "type": "integer",
                          "examples": [25],
                          "default": 0
                        },
                        "to": {
                          "type": "integer",
                          "examples": [2],
                          "default": 0
                        },
                        "total": {
                          "type": "integer",
                          "examples": [2],
                          "default": 0
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": [],
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request GET 'https://api.sandbox.hit-pay.com/v1/subscription-plan' \\\n--header 'X-BUSINESS-API-KEY: meowmeowmeow' \\\n--header 'X-Requested-With: XMLHttpRequest' \\\n--header 'Content-Type: application/x-www-form-urlencoded'"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "post": {
        "summary": "Create a Subscription Plan",
        "description": "A subscription plan consists of basic information like plan name, amount, and frequency. An example of a subscription plan could be “Spotify Premium Membership” which is SGD 9.90 monthly.",
        "operationId": "create-subscription-plan",
        "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": ["name", "cycle", "amount"],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Plan name. It's required field"
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of subscription plan"
                  },
                  "cycle": {
                    "type": "string",
                    "description": "Billing frequency (weekly / monthly / yearly / custom). If cycle = custom then the user has to send the fields cycle_repeat and cycle_frequency",
                    "enum": ["weekly", "monthly", "yearly", "custom"],
                    "default": "monthly"
                  },
                  "cycle_frequency": {
                    "type": "string",
                    "description": "[This field is only applicable when cycle = custom] It's the frequency of the cycle [day / week / month / year]",
                    "enum": ["day", "week", "month", "year"]
                  },
                  "cycle_repeat": {
                    "type": "integer",
                    "description": "[This field is only applicable when cycle = custom] It's the number of times the cycle will repeat.",
                    "format": "int32"
                  },
                  "currency": {
                    "type": "string",
                    "example": "SGD"
                  },
                  "amount": {
                    "type": "integer",
                    "description": "Min: Depend on the currency, Max: 999999.99. It's required field",
                    "maximum": 999999.99,
                    "format": "int32"
                  },
                  "reference": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Arbitrary reference number that you can map to your internal reference number. This value cannot be edited by the customer"
                  },
                  "redirect_url": {
                    "type": "string",
                    "description": "The redirected URL after the payment"
                  },
                  "start_date_method": {
                    "type": "string",
                    "enum": [
                      "sign_up_date",
                      "customer_select_date",
                      "fixed_date"
                    ]
                  },
                  "fixed_date": {
                    "type": "number",
                    "minimum": 1,
                    "maximum": 28,
                    "description": "it's required if start_date_method = fixed_date"
                  },
                  "times_to_be_charged": {
                    "type": "number",
                    "default": 1,
                    "minimum": 1,
                    "maximum": 100
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"id\": \"973ee344-6737-4897-9929-edbc9d7bf433\",\n    \"name\": \"Spotify Premium\",\n    \"description\": \"Spotify Monthly Subscription\",\n    \"cycle\": \"monthly\",\n    \"cycle_repeat\": null,\n    \"cycle_frequency\": null,\n    \"currency\": \"sgd\",\n    \"amount\": 9.90,\n    \"reference\": \"spotify_premium_2022\",\n    \"created_at\": \"2022-09-12T14:19:26\",\n    \"updated_at\": \"2022-09-12T14:19:26\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "examples": ["973ee344-6737-4897-9929-edbc9d7bf433"]
                    },
                    "name": {
                      "type": "string",
                      "examples": ["Spotify Premium"]
                    },
                    "description": {
                      "type": "string",
                      "examples": ["Spotify Monthly Subscription"]
                    },
                    "cycle": {
                      "type": "string",
                      "examples": ["monthly"]
                    },
                    "cycle_repeat": {},
                    "cycle_frequency": {},
                    "currency": {
                      "type": "string",
                      "examples": ["sgd"]
                    },
                    "amount": {
                      "type": "number",
                      "examples": [9.9],
                      "default": 0
                    },
                    "reference": {
                      "type": "string",
                      "examples": ["spotify_premium_2022"]
                    },
                    "created_at": {
                      "type": "string",
                      "examples": ["2022-09-12T14:19:26"]
                    },
                    "updated_at": {
                      "type": "string",
                      "examples": ["2022-09-12T14:19:26"]
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"The given data was invalid.\",\n    \"errors\": {\n        \"name\": [\n            \"The name field is required.\"\n        ],\n        \"amount\": [\n            \"The amount field is required.\"\n        ],\n        \"cycle\": [\n            \"The cycle field is required.\"\n        ]\n    }\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": ["The given data was invalid."]
                    },
                    "errors": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "examples": ["The name field is required."]
                          }
                        },
                        "amount": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "examples": ["The amount field is required."]
                          }
                        },
                        "cycle": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "examples": ["The cycle field is required."]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": [],
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request POST 'https://api.sandbox.hit-pay.com/v1/subscription-plan' \\\n--header 'X-BUSINESS-API-KEY: meowmeowmeow' \\\n--header 'X-Requested-With: XMLHttpRequest' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--data-urlencode 'name=Spotify Premium' \\\n--data-urlencode 'description=Spotify Monthly Subscription' \\\n--data-urlencode 'currency=SGD' \\\n--data-urlencode 'amount=9.90'\n--data-urlencode 'cycle=monthly' \\\n--data-urlencode 'reference=spotify_premium_2022' \\"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/subscription-plan/{plan_id}": {
      "get": {
        "summary": "Get Subscription Plan Details",
        "description": "Use this API to get the subscription plan details, if you need to make any changes use the Update a Subscription Plan API",
        "operationId": "get-a-subscription-plan-detail",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "plan_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"id\": \"973ee344-6737-4897-9929-edbc9d7bf433\",\n    \"name\": \"Spotify Premium\",\n    \"description\": \"Spotify Monthly Subscription\",\n    \"cycle\": \"monthly\",\n    \"cycle_repeat\": null,\n    \"cycle_frequency\": null,\n    \"currency\": \"sgd\",\n    \"amount\": 9.9,\n    \"reference\": \"spotify_premium_2022\",\n    \"created_at\": \"2022-09-12T14:22:26\",\n    \"updated_at\": \"2022-09-12T14:22:26\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "examples": ["973ee344-6737-4897-9929-edbc9d7bf433"]
                    },
                    "name": {
                      "type": "string",
                      "examples": ["Spotify Premium"]
                    },
                    "description": {
                      "type": "string",
                      "examples": ["Spotify Monthly Subscription"]
                    },
                    "cycle": {
                      "type": "string",
                      "examples": ["monthly"]
                    },
                    "cycle_repeat": {},
                    "cycle_frequency": {},
                    "currency": {
                      "type": "string",
                      "examples": ["sgd"]
                    },
                    "amount": {
                      "type": "number",
                      "examples": [9.9],
                      "default": 0
                    },
                    "reference": {
                      "type": "string",
                      "examples": ["spotify_premium_2022"]
                    },
                    "created_at": {
                      "type": "string",
                      "examples": ["2022-09-12T14:22:26"]
                    },
                    "updated_at": {
                      "type": "string",
                      "examples": ["2022-09-12T14:22:26"]
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\SubscriptionPlan] 973ee456-d28f-4418-93c5-d37e4b311685\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\SubscriptionPlan] 973ee456-d28f-4418-93c5-d37e4b311685"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": [],
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request GET 'https://api.sandbox.hit-pay.com/v1/subscription-plan/{plan_id}' \\\n--header 'X-BUSINESS-API-KEY: meowmeowmeow' \\\n--header 'X-Requested-With: XMLHttpRequest' \\\n--header 'Content-Type: application/x-www-form-urlencoded'"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "put": {
        "summary": "Update Subscription Plan",
        "description": "Use this API to update the subscription plan, changes made to the plan will not affect current subscription. If you would like to make changes to the current subscriptions use the Update Recurring Billing API.",
        "operationId": "update-recurring-billing-plan",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "plan_id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["name", "cycle", "amount"],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Plan name. It's required field"
                  },
                  "amount": {
                    "type": "integer",
                    "description": "Min: Depend on the currency, Max: 999999.99. It's required field",
                    "maximum": 999999.99,
                    "format": "int32"
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of subscription plan"
                  },
                  "cycle": {
                    "type": "string",
                    "description": "Billing frequency (weekly / monthly / yearly / custom / save_card). If cycle = custom then the user has to send the fields cycle_repeat and cycle_frequency",
                    "enum": [
                      "weekly",
                      "monthly",
                      "yearly",
                      "custom",
                      "save_card"
                    ],
                    "default": "monthly"
                  },
                  "cycle_frequency": {
                    "type": "string",
                    "description": "[This field is only applicable when cycle = custom] It's the frequency of the cycle [day / week / month / year]",
                    "enum": ["day", "week", "month", "year"]
                  },
                  "cycle_repeat": {
                    "type": "integer",
                    "description": "[This field is only applicable when cycle = custom] It's the number of times the cycle will repeat.",
                    "format": "int32"
                  },
                  "currency": {
                    "type": "string",
                    "example": "SGD"
                  },
                  "reference": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Arbitrary reference number that you can map to your internal reference number. This value cannot be edited by the customer"
                  },
                  "redirect_url": {
                    "type": "string",
                    "description": "The redirected URL after the payment"
                  },
                  "start_date_method": {
                    "type": "string",
                    "enum": [
                      "sign_up_date",
                      "customer_select_date",
                      "fixed_date"
                    ]
                  },
                  "fixed_date": {
                    "type": "number",
                    "minimum": 1,
                    "maximum": 28,
                    "description": "it's required if start_date_method = fixed_date"
                  },
                  "times_to_be_charged": {
                    "type": "number",
                    "minimum": 1,
                    "maximum": 100
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"id\": \"973ee344-6737-4897-9929-edbc9d7bf433\",\n    \"name\": \"Spotify Premium\",\n    \"description\": \"Spotify Monthly Subscription\",\n    \"cycle\": \"monthly\",\n    \"cycle_repeat\": null,\n    \"cycle_frequency\": null,\n    \"currency\": \"sgd\",\n    \"amount\": 12.9,\n    \"reference\": \"spotify_premium_2022\",\n    \"created_at\": \"2022-09-13T12:34:13\",\n    \"updated_at\": \"2022-09-13T12:34:13\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "examples": ["973ee344-6737-4897-9929-edbc9d7bf433"]
                    },
                    "name": {
                      "type": "string",
                      "examples": ["Spotify Premium"]
                    },
                    "description": {
                      "type": "string",
                      "examples": ["Spotify Monthly Subscription"]
                    },
                    "cycle": {
                      "type": "string",
                      "examples": ["monthly"]
                    },
                    "cycle_repeat": {},
                    "cycle_frequency": {},
                    "currency": {
                      "type": "string",
                      "examples": ["sgd"]
                    },
                    "amount": {
                      "type": "number",
                      "examples": [12.9],
                      "default": 0
                    },
                    "reference": {
                      "type": "string",
                      "examples": ["spotify_premium_2022"]
                    },
                    "created_at": {
                      "type": "string",
                      "examples": ["2022-09-13T12:34:13"]
                    },
                    "updated_at": {
                      "type": "string",
                      "examples": ["2022-09-13T12:34:13"]
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"The given data was invalid.\",\n    \"errors\": {\n        \"name\": [\n            \"The name may not be greater than 128 characters.\"\n        ]\n    }\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": ["The given data was invalid."]
                    },
                    "errors": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "examples": [
                              "The name may not be greater than 128 characters."
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              },
              "text/plain": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"The given data was invalid.\",\n    \"errors\": {\n        \"cycle_repeat\": [\n            \"The cycle repeat field is required when cycle is custom.\"\n        ],\n        \"cycle_frequency\": [\n            \"The cycle frequency field is required when cycle is custom.\"\n        ]\n    }\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": ["The given data was invalid."]
                    },
                    "errors": {
                      "type": "object",
                      "properties": {
                        "cycle_repeat": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "examples": [
                              "The cycle repeat field is required when cycle is custom."
                            ]
                          }
                        },
                        "cycle_frequency": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "examples": [
                              "The cycle frequency field is required when cycle is custom."
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": [],
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request PUT 'https://api.sandbox.hit-pay.com/v1/subscription-plan/{plan_id}' \\\n--header 'X-BUSINESS-API-KEY: meowmeowmeow' \\\n--header 'X-Requested-With: XMLHttpRequest' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--data-urlencode 'amount=12.90'"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "delete": {
        "summary": "Delete Subscription Plan",
        "description": "Delete the Subscription plan",
        "operationId": "delete-subscription",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "plan_id",
            "in": "path",
            "description": "The subscription id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "204",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "1"
                  }
                },
                "schema": {
                  "type": "integer",
                  "example": 1
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": [],
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request DELETE 'https://api.sandbox.hit-pay.com/v1/subscription-plan/99e64cc6-2860-4c54-a92d-1509aa9e2362' \\\n--header 'X-BUSINESS-API-KEY: meowmeowmeow' \\\n--header 'X-Requested-With: XMLHttpRequest' \\\n--header 'Content-Type: application/x-www-form-urlencoded'",
              "name": "Example"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/recurring-billing": {
      "post": {
        "summary": "Create Recurring Billing",
        "description": "Once your customer has decided to start the subscription this endpoint will create the recurring billing request.\nSince this is a server-to-server communication, if you have a mobile or Web client that communicates with your REST API, you must have a new endpoint E.g. /create-subscription or reuse an existing endpoint. This endpoint will be responsible for making the recurring billing API call to HitPay.",
        "operationId": "create-a-recurring-billing",
        "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": ["customer_email"],
                "properties": {
                  "plan_id": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Subscription plan id created from Create a Subscription Plan API. If you would like to create a subscription without a plan, plan_id should be null"
                  },
                  "save_card": {
                    "type": "string",
                    "default": "false",
                    "enum": ["true", "false"],
                    "description": "Only set the value “true” if you wish to save the card and charge the customer later on. More details in “Save Card” section"
                  },
                  "save_payment_method": {
                    "type": "string",
                    "default": "false",
                    "enum": ["true", "false"],
                    "description": "It's new field that will replace save_card field in the future. Only set the value “true” if you wish to save the payment method and charge the customer later on. More details in “Save Payment Method” section"
                  },
                  "start_date_method": {
                    "type": "string",
                    "default": null,
                    "enum": ["sign_up_date", "no_initial_charge"],
                    "description": "It's an optional field and only applicable when save_payment_method is true. By default, the start_date_method is null. Options are sign_up_date or no_initial_charge"
                  },
                  "name": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "It's is required when save card = true or plan_id = null.  By default, the name from the subscription plan will be used.",
                    "example": "Spotify Premium"
                  },
                  "amount": {
                    "type": "integer",
                    "format": "double",
                    "maximum": 999999.99,
                    "example": 9.9,
                    "description": "Required when save_card = true and plan_id = null for cards. By default, the amount from the subscription plan will be used. Optional when payment_methods contains only APMs (zalopay, shopee_pay, grabpay_direct, touch_n_go) and save_payment_method is true. Min: It depends on the currency, Max: 999999.99."
                  },
                  "cycle": {
                    "type": "string",
                    "enum": ["weekly", "monthly", "yearly", "custom"],
                    "description": "It's is required when plan_id = null. By default, the cycle from the subscription plan will be used. Billing frequency (weekly / monthly / yearly / custom)"
                  },
                  "cycle_repeat": {
                    "type": "integer",
                    "description": "It is required field when cycle is custom. New cycle will only be affective at the end of the current cycle",
                    "minimum": 1,
                    "maximum": 999
                  },
                  "cycle_frequency": {
                    "type": "string",
                    "enum": ["day", "week", "month", "year"],
                    "description": "It is required field when the cycle is custom. For cycle = custom, set the frequency for cycle repeat field options [day, week, month, year]"
                  },
                  "customer_email": {
                    "type": "string",
                    "format": "email",
                    "description": "Customer's email.",
                    "example": "abc@gmail.com"
                  },
                  "customer_name": {
                    "type": "string",
                    "description": "Customer's name.",
                    "maxLength": 255,
                    "example": "Paul"
                  },
                  "start_date": {
                    "type": "string",
                    "description": "Required when save_card is not true. Billing start date (YYYY-MM-DD) in SGT. Must be today or a future date.",
                    "example": "2025-12-31"
                  },
                  "redirect_url": {
                    "type": "string",
                    "description": "URL where HitPay redirects the user after the users enters the card details and the subscription is active. Query arguments reference (subscription id) and status are sent along"
                  },
                  "reference": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "payment_methods": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": ["card", "giro", "shopee_recurring"]
                    },
                    "example": ["card"],
                    "description": "The active Payment methods to be used for the subscription: card, giro, shopee_recurring."
                  },
                  "send_email": {
                    "type": "string",
                    "default": "false",
                    "enum": ["true", "false"],
                    "description": "HitPay to send email receipts to the customer. Default value is false"
                  },
                  "times_to_be_charged": {
                    "type": "number",
                    "description": "It's time to be charged. Default value is 1",
                    "default": 1,
                    "minimum": 1,
                    "maximum": 100,
                    "example": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {}
          },
          "422": {
            "description": "422",
            "content": {}
          }
        },
        "deprecated": false,
        "security": [],
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request POST 'https://api.sandbox.hit-pay.com/v1/recurring-billing' \\\n--header 'X-BUSINESS-API-KEY: meowmeowmeow' \\\n--header 'X-Requested-With: XMLHttpRequest' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--data-urlencode 'plan_id=973ee344-6737-4897-9929-edbc9d7bf433' \\\n--data-urlencode 'amount=9.90' \\\n--data-urlencode 'customer_email=paul@hitpayapp.com' \\\n--data-urlencode 'customer_name=Paul' \\\n--data-urlencode 'start_date=2022-11-11' \\\n--data-urlencode 'redirect_url=https://spotify.com/subscription-completed' \\\n--data-urlencode 'reference=cust_id_123' \\\n--data-urlencode 'payment_methods[]=giro' \\\n--data-urlencode 'payment_methods[]=card' \\\n--data-urlencode 'webhook=https://webhoo.site/test' \\\n--data-urlencode 'save_card=false' \\\n--data-urlencode 'send_email=false' \\\n--data-urlencode 'times_to_be_charged=3'"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "get": {
        "summary": "Get All Recurring Billing",
        "description": "Use this API to get the a list of all recurring billings",
        "operationId": "get-all-recurring-billing",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "customer_email",
            "in": "query",
            "description": "Customer Email",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reference",
            "in": "query",
            "description": "Reference number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "business_recurring_plans_id",
            "in": "query",
            "description": "Recurring Plan ID",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Recurring billing status, options [active, scheduled, retrying, inactive, canceled]",
            "schema": {
              "type": "string",
              "default": "active",
              "enum": [
                "active",
                "scheduled",
                "retrying",
                "inactive",
                "canceled"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {}
          }
        },
        "deprecated": false,
        "security": [],
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request GET 'https://api.sandbox.hit-pay.com/v1/recurring-billing' \\\n--header 'X-BUSINESS-API-KEY: meowmeowmeow' \\\n--header 'X-Requested-With: XMLHttpRequest' \\\n--header 'Content-Type: application/x-www-form-urlencoded'"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/recurring-billing/{recurring_billing_id}": {
      "get": {
        "summary": "Get saved card details",
        "description": "Use this API to get the detail of recurring billing with a saved card. If the card is saved the response will have the card details (The last 4 digits and card brand). You can use the card details to display it to the users so they are aware of which card is saved and give them the option to change the card by navigating to the “url”",
        "operationId": "get-saved-card-details",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "recurring_billing_id",
            "in": "path",
            "schema": {
              "type": "string",
              "format:": "uuid"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9ad461a8-47ec-4f95-aeb3-1a3d16fec521",
                      "business_recurring_plans_id": null,
                      "customer_name": "API_Save_Card_1702369621",
                      "customer_email": "test@gmail.com",
                      "customer_phone_number": null,
                      "customer_phone_number_country_code": null,
                      "name": "API_Save_Card_New_1702369621",
                      "description": "description_1702369621",
                      "reference": "cust_id_123",
                      "cycle": "save_card",
                      "cycle_repeat": null,
                      "cycle_frequency": null,
                      "currency": "usd",
                      "price": 94.27,
                      "amount": 94.27,
                      "times_to_be_charged": null,
                      "times_charged": null,
                      "status": "canceled",
                      "send_email": 1,
                      "save_card": 1,
                      "redirect_url": "https://www.google.com/",
                      "payment_methods": ["giro", "card"],
                      "payment_provider_charge_method": "card",
                      "created_at": "2023-12-12T16:27:01",
                      "updated_at": "2023-12-13T09:33:02",
                      "pause_from": null,
                      "pause_until": null,
                      "expires_at": null,
                      "url": "https://securecheckout.staging.hit-pay.com/98567029-f559-49f9-916b-042a4255b32a/recurring-plan/9ad461a8-47ec-4f95-aeb3-1a3d16fec521",
                      "dbs_dda_reference": "RP94OH2LYZY",
                      "total_charge": 0,
                      "payment_method": {
                        "card": {
                          "brand": "visa",
                          "last4": "4242"
                        }
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "business_recurring_plans_id": {},
                    "customer_name": {
                      "type": "string"
                    },
                    "customer_email": {
                      "type": "string"
                    },
                    "customer_phone_number": {},
                    "customer_phone_number_country_code": {},
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "reference": {
                      "type": "string"
                    },
                    "cycle": {
                      "type": "string"
                    },
                    "cycle_repeat": {},
                    "cycle_frequency": {},
                    "currency": {
                      "type": "string"
                    },
                    "price": {
                      "type": "number"
                    },
                    "amount": {
                      "type": "number"
                    },
                    "times_to_be_charged": {},
                    "times_charged": {},
                    "status": {
                      "type": "string"
                    },
                    "send_email": {
                      "type": "number"
                    },
                    "save_card": {
                      "type": "number"
                    },
                    "redirect_url": {
                      "type": "string"
                    },
                    "payment_methods": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "payment_provider_charge_method": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "pause_from": {},
                    "pause_until": {},
                    "expires_at": {},
                    "url": {
                      "type": "string"
                    },
                    "total_charge": {
                      "type": "number"
                    },
                    "payment_method": {
                      "type": "object",
                      "properties": {
                        "card": {
                          "type": "object",
                          "properties": {
                            "brand": {
                              "type": "string"
                            },
                            "last4": {
                              "type": "string"
                            }
                          },
                          "required": ["brand", "last4"]
                        }
                      },
                      "required": ["card"]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\SubscriptionPlan] 973ee456-d28f-4418-93c5-d37e4b311685\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\SubscriptionPlan] 973ee456-d28f-4418-93c5-d37e4b311685"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": [],
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request GET 'https://api.sandbox.hit-pay.com/v1/recurring-billing/{recurring_billing_id}' \\\n--header 'X-BUSINESS-API-KEY: meowmeowmeow' \\\n--header 'X-Requested-With: XMLHttpRequest' \\\n--header 'Content-Type: application/x-www-form-urlencoded'"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "put": {
        "summary": "Update Recurring Billing",
        "description": "Use this API to update the recurring billing, any changes made to the cycle will only be effective at the end of the current cycle.",
        "operationId": "update-recurring-billing",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "recurring_billing_id",
            "in": "path",
            "description": "id value from the create recurring billing API",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "plan_id": {
                    "type": "string",
                    "format": "uuid",
                    "description": "The plan ID, if plan_id is not null it will update [cycle, cycle_repeat, cycle_frequency and amount] with the values from Subscription plan. if plan_id is null you can update each field individually. When save_card is true, you disallow to set plan_id",
                    "example": "973ee344-6737-4897-9929-edbc9d7bf433"
                  },
                  "name": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Plan name",
                    "example": "Spotify Premium"
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of subscription plan",
                    "example": "Spotify Monthly Subscription"
                  },
                  "payment_methods": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": ["card", "giro", "shopee_recurring"]
                    },
                    "example": ["card"],
                    "description": "The active Payment methods to be used for the subscription: card, giro, shopee_recurring."
                  },
                  "cycle": {
                    "type": "string",
                    "enum": ["weekly", "monthly", "yearly", "custom"],
                    "description": "Billing frequency (weekly / monthly / yearly / custom)"
                  },
                  "cycle_repeat": {
                    "type": "integer",
                    "description": "It is required field when cycle is custom. New cycle will only be affective at the end of the current cycle",
                    "minimum": 1,
                    "maximum": 999
                  },
                  "cycle_frequency": {
                    "type": "string",
                    "enum": ["day", "week", "month", "year"],
                    "description": "It is required field when the cycle is custom. For cycle = custom, set the frequency for cycle repeat field options [day, week, month, year]"
                  },
                  "save_card": {
                    "type": "string",
                    "enum": ["true", "false"],
                    "description": "Only set the value “true” if you wish to save the card and charge the customer later on. More details in “Save Card” section"
                  },
                  "save_payment_method": {
                    "type": "string",
                    "default": "false",
                    "enum": ["true", "false"],
                    "description": "It's new field that will replace save_card field in the future. Only set the value “true” if you wish to save the payment method and charge the customer later on. More details in “Save Payment Method” section"
                  },
                  "start_date_method": {
                    "type": "string",
                    "default": null,
                    "enum": ["sign_up_date", "no_initial_charge"],
                    "description": "It's an optional field and only applicable when save_payment_method is true. By default, the start_date_method is null. Options are sign_up_date or no_initial_charge"
                  },
                  "customer_email": {
                    "type": "string",
                    "format": "email",
                    "example": "abc@gmail.com",
                    "description": "Customer's email."
                  },
                  "customer_name": {
                    "type": "string",
                    "maxLength": 255,
                    "example": "Paul",
                    "description": "Customer's name."
                  },
                  "start_date": {
                    "type": "string",
                    "description": "The start date must be a date after or equal to today and Billing start date (YYYY-MM-DD) in SGT, only possible to change start date for recurring billing ID with status = scheduled or active",
                    "example": "2025-12-31"
                  },
                  "redirect_url": {
                    "type": "string",
                    "format": "url",
                    "description": "URL where HitPay redirects the user after the users enters the card details and the subscription is active. Query arguments reference (subscription id) and status are sent along"
                  },
                  "reference": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Arbitrary reference number that you can map to your internal reference number. This value cannot be edited by the customer"
                  },
                  "amount": {
                    "type": "number",
                    "description": "New amount, customer will be charged the new amount on the next cycle. Min: It depends on the currency, Max 999999.99",
                    "format": "double",
                    "maximum": 999999.9
                  },
                  "send_email": {
                    "type": "string",
                    "enum": ["true", "false"],
                    "description": "Send the email",
                    "default": "false"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"id\": \"9741164c-06a1-4dd7-a649-72cca8f9603a\",\n    \"business_recurring_plans_id\": \"973ee344-6737-4897-9929-edbc9d7bf433\",\n    \"customer_name\": \"Paul\",\n    \"customer_email\": \"paul@newemail.com\",\n    \"name\": \"Spotify Premium\",\n    \"description\": \"Spotify Monthly Subscription\",\n    \"reference\": \"cust_id_123\",\n    \"cycle\": \"monthly\",\n    \"cycle_repeat\": null,\n    \"cycle_frequency\": null,\n    \"currency\": \"sgd\",\n    \"amount\": 12.9,\n    \"times_to_be_charged\": 9,\n    \"times_charged\": 2,\n    \"status\": \"active\",\n    \"send_email\": 0,\n    \"save_card\": 0,\n    \"redirect_url\": \"https://newexamaple.com/completed\",\n    \"payment_methods\": [\n        \"giro\",\n        \"card\"\n    ],\n    \"created_at\": \"2022-09-13T21:32:00\",\n    \"updated_at\": \"2022-09-13T21:32:00\",\n    \"expires_at\": null,\n    \"url\": \"https://securecheckout.sandbox.hit-pay.com/973ee344-6737-4897-9929-edbc9d7bf433/recurring-plan/9741164c-06a1-4dd7-a649-72cca8f9603a\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "examples": ["9741164c-06a1-4dd7-a649-72cca8f9603a"]
                    },
                    "business_recurring_plans_id": {
                      "type": "string",
                      "examples": ["973ee344-6737-4897-9929-edbc9d7bf433"]
                    },
                    "customer_name": {
                      "type": "string",
                      "examples": ["Paul"]
                    },
                    "customer_email": {
                      "type": "string",
                      "examples": ["paul@newemail.com"]
                    },
                    "name": {
                      "type": "string",
                      "examples": ["Spotify Premium"]
                    },
                    "description": {
                      "type": "string",
                      "examples": ["Spotify Monthly Subscription"]
                    },
                    "reference": {
                      "type": "string",
                      "examples": ["cust_id_123"]
                    },
                    "cycle": {
                      "type": "string",
                      "examples": ["monthly"]
                    },
                    "cycle_repeat": {},
                    "cycle_frequency": {},
                    "currency": {
                      "type": "string",
                      "examples": ["sgd"]
                    },
                    "amount": {
                      "type": "number",
                      "examples": [12.9],
                      "default": 0
                    },
                    "times_to_be_charged": {
                      "type": "integer",
                      "examples": [9],
                      "default": 0
                    },
                    "times_charged": {
                      "type": "integer",
                      "examples": [2],
                      "default": 0
                    },
                    "status": {
                      "type": "string",
                      "examples": ["active"]
                    },
                    "send_email": {
                      "type": "integer",
                      "examples": [0],
                      "default": 0
                    },
                    "save_card": {
                      "type": "integer",
                      "examples": [0],
                      "default": 0
                    },
                    "redirect_url": {
                      "type": "string",
                      "examples": ["https://newexamaple.com/completed"]
                    },
                    "payment_methods": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "examples": ["giro"]
                      }
                    },
                    "created_at": {
                      "type": "string",
                      "examples": ["2022-09-13T21:32:00"]
                    },
                    "updated_at": {
                      "type": "string",
                      "examples": ["2022-09-13T21:32:00"]
                    },
                    "expires_at": {},
                    "url": {
                      "type": "string",
                      "examples": [
                        "https://securecheckout.sandbox.hit-pay.com/973ee344-6737-4897-9929-edbc9d7bf433/recurring-plan/9741164c-06a1-4dd7-a649-72cca8f9603a"
                      ]
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "text/plain": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"The given data was invalid.\",\n    \"errors\": {\n        \"save_card\": [\n            \"When save_card true, you disallow to set plan_id.\"\n        ]\n    }\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "examples": ["The given data was invalid."]
                        },
                        "errors": {
                          "type": "object",
                          "properties": {
                            "cycle_repeat": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "examples": [
                                  "The cycle repeat field is required when cycle is custom."
                                ]
                              }
                            },
                            "cycle_frequency": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "examples": [
                                  "The cycle frequency field is required when cycle is custom."
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "examples": ["The given data was invalid."]
                        },
                        "errors": {
                          "type": "object",
                          "properties": {
                            "save_card": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "examples": [
                                  "When save_card true, you disallow to set plan_id."
                                ]
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": [],
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request PUT 'https://api.sandbox.hit-pay.com/v1/recurring-billing/{recurring_billing_id}' \\\n--header 'X-BUSINESS-API-KEY: meowmeowmeow' \\\n--header 'X-Requested-With: XMLHttpRequest' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--data-urlencode 'plan_id=9741164c-06a1-4dd7-a649-72cca8f9603a' \\\n--data-urlencode 'name=Spotify Premium' \\\n--data-urlencode 'description=Spotify Monthly Subscription' \\\n--data-urlencode 'cycle=monthly' \\\n--data-urlencode 'customer_email=paul@newemail.com' \\\n--data-urlencode 'customer_name=Paul' \\\n--data-urlencode 'redirect_url=https://newexamaple.com/completed' \\\n--data-urlencode 'reference=cust_id_123' \\\n--data-urlencode 'amount=12.90' \\\n--data-urlencode 'webhook=http://newwebhoo.site/test    ' \\\n--data-urlencode 'send_email=false'"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "delete": {
        "summary": "Delete Recurring Billing",
        "description": "Use this API to cancel the recurring billing subscription",
        "operationId": "delete-a-recurring-billing-detail",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "recurring_billing_id",
            "in": "path",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"id\": \"9741164c-06a1-4dd7-a649-72cca8f9603a\",\n    \"business_recurring_plans_id\": \"973ee344-6737-4897-9929-edbc9d7bf433\",\n    \"customer_name\": \"Paul\",\n    \"customer_email\": \"paul@hitpayapp.com\",\n    \"name\": \"Spotify Premium\",\n    \"description\": \"Spotify Monthly Subscription\",\n    \"reference\": \"cust_id_123\",\n    \"cycle\": \"monthly\",\n    \"cycle_repeat\": null,\n    \"cycle_frequency\": null,\n    \"currency\": \"sgd\",\n    \"amount\": 9.90,\n    \"times_to_be_charged\": 3,\n    \"times_charged\": 0,\n    \"status\": \"canceled\",\n    \"send_email\": false,\n    \"save_card\": 0,\n    \"redirect_url\": \"https://github.com/\",\n    \"payment_methods\": [\n        \"giro\",\n        \"card\"\n    ],\n    \"created_at\": \"2022-09-13T16:33:47\",\n    \"updated_at\": \"2022-09-13T16:33:47\",\n    \"expires_at\": \"2022-11-11T23:59:59\",\n    \"url\": \"https://securecheckout.sandbox.hit-pay.com/973ee344-6737-4897-9929-edbc9d7bf433/recurring-plan/9741164c-06a1-4dd7-a649-72cca8f9603a\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "examples": ["9741164c-06a1-4dd7-a649-72cca8f9603a"]
                    },
                    "business_recurring_plans_id": {
                      "type": "string",
                      "examples": ["973ee344-6737-4897-9929-edbc9d7bf433"]
                    },
                    "customer_name": {
                      "type": "string",
                      "examples": ["Paul"]
                    },
                    "customer_email": {
                      "type": "string",
                      "examples": ["paul@hitpayapp.com"]
                    },
                    "name": {
                      "type": "string",
                      "examples": ["Spotify Premium"]
                    },
                    "description": {
                      "type": "string",
                      "examples": ["Spotify Monthly Subscription"]
                    },
                    "reference": {
                      "type": "string",
                      "examples": ["cust_id_123"]
                    },
                    "cycle": {
                      "type": "string",
                      "examples": ["monthly"]
                    },
                    "cycle_repeat": {},
                    "cycle_frequency": {},
                    "currency": {
                      "type": "string",
                      "examples": ["sgd"]
                    },
                    "amount": {
                      "type": "number",
                      "examples": [9.9],
                      "default": 0
                    },
                    "times_to_be_charged": {
                      "type": "integer",
                      "examples": [3],
                      "default": 0
                    },
                    "times_charged": {
                      "type": "integer",
                      "examples": [0],
                      "default": 0
                    },
                    "status": {
                      "type": "string",
                      "examples": ["canceled"]
                    },
                    "send_email": {
                      "type": "boolean",
                      "examples": [false],
                      "default": true
                    },
                    "save_card": {
                      "type": "integer",
                      "examples": [0],
                      "default": 0
                    },
                    "redirect_url": {
                      "type": "string",
                      "examples": ["https://github.com/"]
                    },
                    "payment_methods": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "examples": ["giro"]
                      }
                    },
                    "created_at": {
                      "type": "string",
                      "examples": ["2022-09-13T16:33:47"]
                    },
                    "updated_at": {
                      "type": "string",
                      "examples": ["2022-09-13T16:33:47"]
                    },
                    "expires_at": {
                      "type": "string",
                      "examples": ["2022-11-11T23:59:59"]
                    },
                    "url": {
                      "type": "string",
                      "examples": [
                        "https://securecheckout.sandbox.hit-pay.com/973ee344-6737-4897-9929-edbc9d7bf433/recurring-plan/9741164c-06a1-4dd7-a649-72cca8f9603a"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "text/plain": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\RecurringBilling] 97414c99-01ca-464d-a57b-81851b307e09\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\RecurringBilling] 97414c99-01ca-464d-a57b-81851b307e09"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": [],
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request DELETE 'https://api.sandbox.hit-pay.com/v1/recurring-billing/{recurring_billing_id}' \\\n--header 'X-BUSINESS-API-KEY: meowmeowmeow' \\\n--header 'X-Requested-With: XMLHttpRequest' \\\n--header 'Content-Type: application/x-www-form-urlencoded'"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/charge/recurring-billing/{recurring_billing_id}": {
      "post": {
        "summary": "Charge the saved card",
        "description": "Once the card is saved you can charged the card anytime using the charge API",
        "operationId": "charge-the-saved-card",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "recurring_billing_id",
            "in": "path",
            "description": "id value from the create recurring billing API",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["amount", "currency"],
                "properties": {
                  "amount": {
                    "type": "integer",
                    "maximum": 9999999.99,
                    "description": "Amount to charge the card. Minimum value: it depends on the currency",
                    "format": "int32",
                    "example": 100
                  },
                  "currency": {
                    "type": "string",
                    "example": "SGD",
                    "description": "The currency"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"payment_id\": \"9746f906-bdbb-4064-8372-642cf5877e0c\",\n    \"recurring_billing_id\": \"9746f8c2-2b7c-4c78-8832-012f203ae687\",\n    \"amount\": 100,\n    \"currency\": \"usd\",\n    \"status\": \"succeeded\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "payment_id": {
                      "type": "string",
                      "examples": ["9746f906-bdbb-4064-8372-642cf5877e0c"]
                    },
                    "recurring_billing_id": {
                      "type": "string",
                      "examples": ["9746f8c2-2b7c-4c78-8832-012f203ae687"]
                    },
                    "amount": {
                      "type": "integer",
                      "examples": [100],
                      "default": 0
                    },
                    "currency": {
                      "type": "string",
                      "examples": ["usd"]
                    },
                    "status": {
                      "type": "string",
                      "examples": ["succeeded"]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\RecurringBilling] 9746f9b2-a2ef-47a2-ac68-358ae3d202fe\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\RecurringBilling] 9746f9b2-a2ef-47a2-ac68-358ae3d202fe"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": []
      }
    },
    "/v1/payment-requests": {
      "post": {
        "summary": "Create Payment Request",
        "description": "This endpoint creates a new payment request. This is the first step of the payment flow, once you have all the details from the user and are ready to collect payment use this API to create a payment request.\nSince this is a server-to-server communication, if you have a mobile or Web client that communicates with your REST API, you must have a new endpoint E.g. /create-order, or reuse an existing endpoint. This endpoint will be responsible for making the payment request API call to HitPay.",
        "operationId": "create-payment-request",
        "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": ["amount", "currency"],
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "It's required field. Amount related to the payment. Example: 2500",
                    "format": "double",
                    "example": 100,
                    "minimum": 0.3,
                    "maximum": 999999999.99
                  },
                  "currency": {
                    "type": "string",
                    "maxLength": 3,
                    "example": "SGD",
                    "description": "It's required field. Currency related to the payment."
                  },
                  "payment_methods": {
                    "type": "array",
                    "description": "They're available payment methods supported on your account.(Example: paynow_online , card, wechat, alipay, grabpay_direct, grabpay_paylater, shopee_pay ... etc.). If we don't pass, use the available methods",
                    "items": {
                      "type": "string"
                    },
                    "example": ["card"]
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "description": "Buyer’s email"
                  },
                  "name": {
                    "type": "string",
                    "description": "Buyer’s name"
                  },
                  "phone": {
                    "type": "string",
                    "format": "phone",
                    "description": "Buyer’s phone number"
                  },
                  "wifi_terminal_id": {
                    "type": "string",
                    "description": "It's terminal id and it's required if payment method is wifi_card_reader"
                  },
                  "staff_id": {
                    "type": "string",
                    "format": "uuid",
                    "description": "It's active staff id from the dashboard",
                    "example": "98888a24-d6b2-430d-9063-d2be76d443cd"
                  },
                  "location_id": {
                    "type": "string",
                    "format": "uuid",
                    "example": "9dd07721-d215-4947-9c79-2b8ec25f69db",
                    "description": "The active location belongs to business. Support both `location_id` and `business_location_id` for backward compatibility, but we recommend using `business_location_id` for future use."
                  },
                  "business_location_id": {
                    "type": "string",
                    "format": "uuid",
                    "example": "9dd07721-d215-4947-9c79-2b8ec25f69db",
                    "description": "The active location belongs to business."
                  },
                  "purpose": {
                    "type": "string",
                    "description": "Purpose of the Payment request.",
                    "maxLength": 255
                  },
                  "reference_number": {
                    "type": "string",
                    "description": "Arbitrary reference number that you can map to your internal reference number. This value cannot be edited by the customer",
                    "maxLength": 255
                  },
                  "redirect_url": {
                    "type": "string",
                    "format": "uri",
                    "maxLength": 1028,
                    "example": "https://www.google.com",
                    "description": "URL where we redirect the user after a payment. Query arguments reference (payment request id) and status are sent along"
                  },
                  "webhook": {
                    "type": "string",
                    "format": "uri",
                    "example": "https://www.google.com",
                    "description": "URL where our server do POST request after a payment If done"
                  },
                  "allow_repeated_payments": {
                    "type": "string",
                    "description": "If set to true, multiple payments can be paid on a payment request link. Default value is false",
                    "default": "false",
                    "enum": ["true", "false"]
                  },
                  "expiry_date": {
                    "type": "string",
                    "description": "Time after which the payment link will be expired (time in SG with YYYY-MM-DD HH:mm:ss format). Applicable for repeated payments."
                  },
                  "expires_after": {
                    "type": "string",
                    "description": "E.g \"30 mins\" Other supported keys are \"mins\", \"hours\", \"days\"",
                    "example": "5 minutes"
                  },
                  "add_admin_fee": {
                    "type": "string",
                    "description": "If set to true, the admin fee will be included in total.",
                    "default": "false",
                    "enum": ["true", "false"]
                  },
                  "send_email": {
                    "type": "string",
                    "description": "It's \"true\" or \"false\". If set to true, an email receipt will be sent to the customer after the payment is completed. Default is false",
                    "default": "false",
                    "enum": ["true", "false"]
                  },
                  "send_sms": {
                    "type": "string",
                    "description": "It's \"true\" or \"false\". If set to \"true\", SMS will be sent to the customer after the payment is completed. Default is false",
                    "default": "true",
                    "enum": ["true", "false"]
                  },
                  "address": {
                    "type": "object",
                    "required": [
                      "line1",
                      "city",
                      "state",
                      "country",
                      "postal_code"
                    ],
                    "properties": {
                      "line1": {
                        "type": "string"
                      },
                      "line2": {
                        "type": "string"
                      },
                      "city": {
                        "type": "string"
                      },
                      "country": {
                        "type": "string"
                      },
                      "state": {
                        "type": "string"
                      },
                      "postal_code": {
                        "type": "string"
                      }
                    }
                  },
                  "generate_qr": {
                    "type": "boolean",
                    "default": false,
                    "description": "Only valid for paynow_online, qrph_netbank, doku_qris and shopee_pay if generate_qr was true"
                  },
                  "metadata": {
                    "type": "object",
                    "properties": {
                      "key": {
                        "type": "string"
                      }
                    },
                    "description": "Support the key-value. The value must be string type, and the max length of the value is 500 characters, up to 50 key-value. Example: {\"car_model\": \"toyota\", \"car_color\": \"red\"}"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9ef68e2e-3569-4f69-9f68-04c7e4bb007c",
                      "name": "Harvey Friesen",
                      "email": "test@gmail.com",
                      "phone": "+65489505050",
                      "amount": "10.00",
                      "currency": "sgd",
                      "is_currency_editable": false,
                      "status": "pending",
                      "purpose": "Purpose_1747817845",
                      "reference_number": "1747817845",
                      "payment_methods": ["card"],
                      "url": "https://securecheckout.sandbox.hit-pay.com/payment-request/@qasg/9ef68e2e-3569-4f69-9f68-04c7e4bb007c/checkout",
                      "redirect_url": "https://google.com",
                      "webhook": "https://webhook.site/8cbdef58-cd15-441a-986d-9446235223ea",
                      "send_sms": true,
                      "send_email": true,
                      "sms_status": "pending",
                      "email_status": "pending",
                      "allow_repeated_payments": false,
                      "expiry_date": "2025-05-26T15:10:00",
                      "address": {
                        "line1": "177 River Valley Road",
                        "line2": "177 River Valley Road",
                        "city": "Singapore",
                        "state": "Central",
                        "country": "SG",
                        "postal_code": "10015"
                      },
                      "line_items": null,
                      "executor_id": 1363,
                      "created_at": "2025-05-21T16:57:25",
                      "updated_at": "2025-05-21T16:57:25",
                      "staff_id": "98888a69-2d7a-4695-811d-6df8cee30264",
                      "business_location_id": "9e42e6be-2ff8-4b37-ac14-07970d2e79ca",
                      "metadata": {
                        "key1": "value1",
                        "key2": "value2"
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "974ee233-bc3e-4aac-a212-15af0d155133"
                    },
                    "name": {
                      "type": "string",
                      "example": "Buyer_Name_1663650582"
                    },
                    "email": {
                      "type": "string",
                      "example": "buyer_1663650582@gmail.com"
                    },
                    "phone": {
                      "type": "string",
                      "examples": ["+6539393939"]
                    },
                    "amount": {
                      "type": "string",
                      "examples": "900"
                    },
                    "currency": {
                      "type": "string",
                      "example": "SGD"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "pending",
                        "completed",
                        "failed",
                        "expired",
                        "canceled",
                        "inactive"
                      ],
                      "example": "pending"
                    },
                    "purpose": {
                      "type": "string",
                      "examples": ["Testing"]
                    },
                    "reference_number": {
                      "type": "string",
                      "example": "12345678"
                    },
                    "payment_methods": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "examples": ["card"]
                    },
                    "url": {
                      "type": "string",
                      "example": "https://securecheckout.sandbox.hit-pay.com/payment-request/@ban/974ee233-bc3e-4aac-a212-15af0d155133/checkout"
                    },
                    "redirect_url": {
                      "type": "string",
                      "example": "https://hit-pay.postman.co/"
                    },
                    "webhook": {
                      "type": "string",
                      "example": "https://hit-pay.postman.co/"
                    },
                    "send_sms": {
                      "type": "boolean"
                    },
                    "send_email": {
                      "type": "boolean",
                      "example": true,
                      "default": true
                    },
                    "sms_status": {
                      "type": "string",
                      "example": "pending"
                    },
                    "email_status": {
                      "type": "string",
                      "example": "pending"
                    },
                    "allow_repeated_payments": {
                      "type": "boolean",
                      "example": false,
                      "default": false
                    },
                    "expiry_date": {
                      "type": "string",
                      "example": "2022-10-10T01:01:01"
                    },
                    "created_at": {
                      "type": "string",
                      "example": "2022-09-20T13:09:42"
                    },
                    "updated_at": {
                      "type": "string",
                      "example": "2022-09-20T13:09:42"
                    },
                    "staff_id": {
                      "type": ["string", "null"],
                      "example": "98888a69-2d7a-4695-811d-6df8cee30264"
                    },
                    "business_location_id": {
                      "type": ["string", "null"],
                      "example": "9dd07721-d215-4947-9c79-2b8ec25f69db"
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string"
                        }
                      },
                      "example": {
                        "key1": "value1",
                        "key2": "value2 "
                      }
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "The currency field is required.",
                      "errors": {
                        "currency": ["The currency field is required."]
                      }
                    }
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "examples": ["The given data was invalid."]
                        },
                        "errors": {
                          "type": "object",
                          "properties": {
                            "amount": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "examples": ["The amount field is required."]
                              }
                            },
                            "currency": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "examples": ["The currency field is required."]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "examples": ["The given data was invalid."]
                        },
                        "errors": {
                          "type": "object",
                          "properties": {
                            "amount": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "examples": [
                                  "The amount must be between 0.3 and 999999999.99."
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "examples": ["The given data was invalid."]
                        },
                        "errors": {
                          "type": "object",
                          "properties": {
                            "payment_methods": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "examples": [
                                  "The selected payment methods is invalid."
                                ]
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": []
      },
      "get": {
        "summary": "Get Payment Requests",
        "description": "Get all payment requests.",
        "operationId": "get-payment-requests",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Page size",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10,
              "maximum": 100
            }
          },
          {
            "name": "current_page",
            "in": "query",
            "description": "Page number (not `page`)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "Partial match on email, id, or reference_number",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          },
          {
            "name": "is_default",
            "in": "query",
            "description": "When set, returns only default payment links (channel = custom or link)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "metadata",
            "in": "query",
            "description": "Filter by metadata key/value (exact match); only the first key/value pair is used",
            "schema": {
              "oneOf": [
                {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string"
                  }
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {}
          }
        },
        "deprecated": false,
        "security": []
      }
    },
    "/v1/payment-requests/{request_id}": {
      "put": {
        "summary": "Update Payment Request",
        "description": "This endpoint is to update the payment request.",
        "operationId": "update-payment-request",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "request_id",
            "in": "path",
            "description": "It's payment request id",
            "schema": {
              "type": "string",
              "format:": "uuid"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["amount", "currency"],
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "It's required field. Amount related to the payment.",
                    "format": "double",
                    "example": 100,
                    "minimum": 0.3,
                    "maximum": 999999999.99
                  },
                  "currency": {
                    "type": "string",
                    "maxLength": 3,
                    "example": "SGD",
                    "description": "Currency related to the payment."
                  },
                  "payment_methods": {
                    "type": "array",
                    "description": "Payment method type (paynow_online , card, wechat, alipay, grabpay_direct, grabpay_paylater, shopee_pay, zip, fpx). If we don't pass, use the available methods",
                    "items": {
                      "type": "string"
                    }
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "description": "Buyer’s email"
                  },
                  "name": {
                    "type": "string",
                    "description": "Buyer’s name"
                  },
                  "phone": {
                    "type": "string",
                    "format": "phone",
                    "description": "Buyer’s phone number"
                  },
                  "wifi_terminal_id": {
                    "type": "string",
                    "description": "It's terminal id and it's required if payment method is wifi_card_reader"
                  },
                  "staff_id": {
                    "type": "string",
                    "format": "uuid",
                    "example": "98888a24-d6b2-430d-9063-d2be76d443cd",
                    "description": "It's active staff id from the dashboard"
                  },
                  "purpose": {
                    "type": "string",
                    "description": "Purpose of the Payment request.",
                    "maxLength": 255
                  },
                  "reference_number": {
                    "type": "string",
                    "description": "Arbitrary reference number that you can map to your internal reference number. This value cannot be edited by the customer",
                    "maxLength": 255
                  },
                  "redirect_url": {
                    "type": "string",
                    "format": "uri",
                    "maxLength": 1028,
                    "example": "https://www.google.com",
                    "description": "URL where we redirect the user after a payment. Query arguments reference (payment request id) and status are sent along"
                  },
                  "webhook": {
                    "type": "string",
                    "format": "uri",
                    "example": "https://www.google.com",
                    "description": "URL where our server do POST request after a payment If done"
                  },
                  "allow_repeated_payments": {
                    "type": "string",
                    "description": "If set to true, multiple payments can be paid on a payment request link. Default value is false",
                    "default": "false",
                    "enum": ["true", "false"]
                  },
                  "expiry_date": {
                    "type": "string",
                    "description": "Time after which the payment link will be expired(time in SG with YYYY-MM-DD HH:mm:ss format). Applicable for repeated payments. Default is Null"
                  },
                  "expires_after": {
                    "type": "string",
                    "description": "E.g \"30 mins\" Other supported keys are \"mins\", \"hours\", \"days\"",
                    "example": "5 minutes"
                  },
                  "add_admin_fee": {
                    "type": "string",
                    "description": "If set to true, the admin fee will be included in total.",
                    "default": "false",
                    "enum": ["true", "false"]
                  },
                  "send_email": {
                    "type": "string",
                    "description": "It's \"true\" or \"false\". If set to true, an email receipt will be sent to the customer after the payment is completed. Default is false",
                    "default": "false",
                    "enum": ["true", "false"]
                  },
                  "send_sms": {
                    "type": "string",
                    "description": "It's \"true\" or \"false\". If set to \"true\", SMS will be sent to the customer after the payment is completed. Default is false",
                    "default": "true",
                    "enum": ["true", "false"]
                  },
                  "address": {
                    "type": "object",
                    "required": [
                      "line1",
                      "city",
                      "state",
                      "country",
                      "postal_code"
                    ],
                    "properties": {
                      "line1": {
                        "type": "string"
                      },
                      "line2": {
                        "type": "string"
                      },
                      "city": {
                        "type": "string"
                      },
                      "country": {
                        "type": "string"
                      },
                      "state": {
                        "type": "string"
                      },
                      "postal_code": {
                        "type": "string"
                      }
                    }
                  },
                  "generate_qr": {
                    "type": "boolean",
                    "default": false,
                    "description": "Only valid for payment methods:  paynow_online, qrph_netbank, doku_qris and shopee_pay if generate_qr was true"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {}
          }
        },
        "deprecated": false,
        "security": []
      },
      "delete": {
        "summary": "Delete Payment Request",
        "description": "This endpoint is to delete a specific payment request.\n\n**Note: We don't allow to delete the completed payment request.**",
        "operationId": "delete-payment-request",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "request_id",
            "in": "path",
            "description": "It's payment request id",
            "schema": {
              "type": "string",
              "format:": "uuid"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"success\": true\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "examples": [true],
                      "default": true
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\PaymentRequest] 974ee879-7feb-4bc6-b329-51f32928bd59\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\PaymentRequest] 974ee879-7feb-4bc6-b329-51f32928bd59"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": []
      },
      "get": {
        "summary": "Get Payment Request Status",
        "description": "This endpoint is to  get the status of a specific payment request.",
        "operationId": "get-payment-status",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "request_id",
            "in": "path",
            "description": "It's required field",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9ef68e2e-3569-4f69-9f68-04c7e4bb007c",
                      "name": "Harvey Friesen",
                      "email": "test@gmail.com",
                      "phone": "+65489505050",
                      "amount": "10.00",
                      "currency": "sgd",
                      "is_currency_editable": false,
                      "status": "pending",
                      "purpose": "Purpose_1747817845",
                      "reference_number": "1747817845",
                      "payment_methods": ["card"],
                      "url": "https://securecheckout.sandbox.hit-pay.com/payment-request/@qasg/9ef68e2e-3569-4f69-9f68-04c7e4bb007c/checkout",
                      "redirect_url": "https://google.com",
                      "webhook": "https://webhook.site/8cbdef58-cd15-441a-986d-9446235223ea",
                      "send_sms": true,
                      "send_email": true,
                      "sms_status": "pending",
                      "email_status": "pending",
                      "allow_repeated_payments": false,
                      "expiry_date": "2025-05-26T15:10:00",
                      "address": {
                        "city": "Singapore",
                        "line1": "177 River Valley Road",
                        "line2": "177 River Valley Road",
                        "state": "Central",
                        "country": "SG",
                        "postal_code": "10015"
                      },
                      "line_items": null,
                      "executor_id": "1363",
                      "created_at": "2025-05-21T16:57:25",
                      "updated_at": "2025-05-21T16:57:25",
                      "staff_id": "98888a69-2d7a-4695-811d-6df8cee30264",
                      "business_location_id": "9e42e6be-2ff8-4b37-ac14-07970d2e79ca",
                      "location": {
                        "id": "9e42e6be-2ff8-4b37-ac14-07970d2e79ca",
                        "name": "API_Location_1740101762910",
                        "street": "58 Izpod Parkway",
                        "postal_code": "079903",
                        "city": "Singapore",
                        "state": "Singapore",
                        "country": "sg",
                        "created_at": "2025-02-21T01:36:02.000000Z",
                        "updated_at": "2025-02-21T01:36:02.000000Z",
                        "active": true,
                        "business_id": "98567029-f559-49f9-916b-042a4255b32a",
                        "pickups": []
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "phone": {
                      "type": "string"
                    },
                    "amount": {
                      "type": "string"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "pending",
                        "completed",
                        "failed",
                        "expired",
                        "canceled",
                        "inactive"
                      ],
                      "description": "The status of the payment request. The value can be pending, completed, failed, expired, canceled or inactive.\n`pending`: Default when a payment request is created: open for payment.\n`failed`: Payment did not complete successfully.\n`completed`: Payment succeeded, the request is treated as paid.(unless allow_repeated_payments applies).\n`expired`: No longer payable because time ran out when either expiry_date or expires_after is set..\n`canceled`: Manually or systematically voided (e.g. terminal flow canceling a pending request).\n`inactive`: Payment link deactivated by the merchant."
                    },
                    "purpose": {
                      "type": "string"
                    },
                    "reference_number": {
                      "type": "string"
                    },
                    "payment_methods": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "url": {
                      "type": "string"
                    },
                    "redirect_url": {
                      "type": "string"
                    },
                    "webhook": {
                      "type": "string"
                    },
                    "send_sms": {
                      "type": "boolean"
                    },
                    "send_email": {
                      "type": "boolean"
                    },
                    "sms_status": {
                      "type": "string"
                    },
                    "email_status": {
                      "type": "string"
                    },
                    "allow_repeated_payments": {
                      "type": "boolean"
                    },
                    "expiry_date": {
                      "type": "string"
                    },
                    "address": {
                      "type": "object",
                      "properties": {
                        "city": {
                          "type": "string"
                        },
                        "line1": {
                          "type": "string"
                        },
                        "line2": {
                          "type": "string"
                        },
                        "state": {
                          "type": "string"
                        },
                        "country": {
                          "type": "string"
                        },
                        "postal_code": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "city",
                        "line1",
                        "line2",
                        "state",
                        "country",
                        "postal_code"
                      ]
                    },
                    "line_items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "sku": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "price": {
                            "type": "number"
                          },
                          "category": {
                            "type": "string"
                          },
                          "quantity": {
                            "type": "number"
                          },
                          "description": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "sku",
                          "url",
                          "name",
                          "price",
                          "category",
                          "quantity",
                          "description"
                        ]
                      }
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "payments": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "quantity": {
                            "type": "number"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "pending",
                              "requires_payment_method",
                              "requires_customer_action",
                              "succeeded_manually",
                              "failed",
                              "canceled",
                              "void",
                              "succeeded",
                              "refunded",
                              "partially_refunded"
                            ]
                          },
                          "buyer_name": {
                            "type": "string"
                          },
                          "buyer_phone": {
                            "type": "string"
                          },
                          "buyer_email": {
                            "type": "string"
                          },
                          "currency": {
                            "type": "string"
                          },
                          "amount": {
                            "type": "string"
                          },
                          "refunded_amount": {
                            "type": "string"
                          },
                          "payment_type": {
                            "type": "string"
                          },
                          "fees": {
                            "type": "string"
                          },
                          "created_at": {
                            "type": "string"
                          },
                          "updated_at": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "No query results for model [App\\Business\\PaymentRequest] 9ef68e2e-3569-4f69-9f68-04c7e4bb007c1"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\PaymentRequest] 974ee879-7feb-4bc6-b329-51f32928bd59"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "security": []
      }
    },
    "/v1/charges/export": {
      "get": {
        "summary": "Export Charges",
        "description": "Export charges",
        "operationId": "export-charges",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 25
            }
          },
          {
            "name": "version",
            "in": "query",
            "description": "The order version.",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "keywords",
            "in": "query",
            "description": "Search for fields: amount ,created_at ,id remark, customer_name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "It's optional field and it's charge_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "It's optional field and it's charge_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "payment_method",
            "in": "query",
            "description": "The payment methods: card, alipay, paypal_card.. etc.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "statuses[]",
            "in": "query",
            "description": "The statuses are in \"completed\" , \"pending\", \"sent\", \"draft\", \"expired\"",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "The from of created order",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "The To of created order",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "with",
            "in": "query",
            "description": "If you want to display more charge and products objects. Example: charges,products",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {}
          }
        },
        "deprecated": false
      }
    },
    "/v1/charges": {
      "get": {
        "summary": "Get All Charges",
        "description": "Get all charges",
        "operationId": "get-all-charges",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 25
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "The cursor parameter accepts a next_cursor value obtained from the previous response's meta object (meta.next_cursor). Use this parameter to fetch the next page of results when implementing pagination."
            }
          },
          {
            "name": "keywords",
            "in": "query",
            "description": "Search for fields: amount ,charge_id ,customer_email, remark",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "It's charge status",
            "schema": {
              "type": "string",
              "enum": ["succeeded", "failed", "refunded"]
            }
          },
          {
            "name": "location_ids",
            "in": "query",
            "description": "The location ids",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "name": "user_ids",
            "in": "query",
            "description": "The user's id, support both uuid and number id",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "description": "It's charge status.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "success",
                  "succeeded_manually",
                  "pending",
                  "failed",
                  "refunded",
                  "cancelled",
                  "partially_refunded",
                  "void"
                ]
              }
            }
          },
          {
            "name": "date_from",
            "in": "query",
            "description": "The from of created order",
            "schema": {
              "type": "string",
              "example": "2024-10-05"
            }
          },
          {
            "name": "date_to",
            "in": "query",
            "description": "The to of created order",
            "schema": {
              "type": "string",
              "example": "2024-10-05"
            }
          },
          {
            "name": "amount_from",
            "in": "query",
            "description": "The from of amount",
            "schema": {
              "type": "number",
              "example": 100
            }
          },
          {
            "name": "amount_to",
            "in": "query",
            "description": "The to of amount",
            "schema": {
              "type": "number",
              "example": 200
            }
          },
          {
            "name": "payment_request_id",
            "in": "query",
            "description": "The payment request id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "description": "The customer id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "payout_id",
            "in": "query",
            "description": "The payout id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful payment",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "data": [
                        {
                          "id": "9ced76ac-1638-44df-b702-3f43f6592e2a",
                          "currency": "sgd",
                          "home_currency": "sgd",
                          "exchange_rate": "1.00000",
                          "amount": 70.56,
                          "fixed_fee": 0.6,
                          "discount_fee": 2.57,
                          "discount_fee_rate": 3.65,
                          "remark": "Order #9ced76aa-580f-4664-866d-a0d6df1cfc57",
                          "status": "succeeded",
                          "payment_method": {
                            "name": "card",
                            "display_logo": {
                              "sm": "https://api.hitpayapp.test/icons/methods/sm/visa.png",
                              "md": "https://api.hitpayapp.test/icons/methods/md/visa.png",
                              "lg": "https://api.hitpayapp.test/icons/methods/lg/visa.png",
                              "svg": "https://api.hitpayapp.test/icons/methods/svg/visa.svg",
                              "svg_square": "https://api.hitpayapp.test/icons/methods/svg_square/visa.svg",
                              "png_square": "https://api.hitpayapp.test/icons/methods/png_square/visa.png"
                            },
                            "method_logo": {
                              "sm": "https://api.hitpayapp.test/icons/methods/sm/card.png",
                              "md": "https://api.hitpayapp.test/icons/methods/md/card.png",
                              "lg": "https://api.hitpayapp.test/icons/methods/lg/card.png",
                              "svg": "https://api.hitpayapp.test/icons/methods/svg/card.svg",
                              "svg_square": "https://api.hitpayapp.test/icons/methods/svg_square/card.svg",
                              "png_square": "https://api.hitpayapp.test/icons/methods/png_square/card.png"
                            },
                            "data": {
                              "brand": "Visa",
                              "last4": "4242",
                              "country_code": "US",
                              "country": "United States of America"
                            }
                          },
                          "customer_id": "9ce1111d-e6c9-4511-95f9-6277d06299c1",
                          "customer": {
                            "name": "Ari",
                            "email": "hiaribahtiar@gmail.com",
                            "phone_number": "6285787995896"
                          },
                          "payment_request_id": "9ced76aa-ea65-46a1-a13a-16e9ae39620f",
                          "webhook_status": false,
                          "order_reference_number": "1007",
                          "executor": null,
                          "location": {
                            "id": "96e21521-3c8a-4c21-b76d-558d2cb8b846",
                            "name": "location 1",
                            "address": "jl ampera, west java, sg, 14023"
                          },
                          "channel": "api_store",
                          "admin_fee": false,
                          "closed_at": "2024-09-04T16:05:37+08:00",
                          "created_at": "2024-09-04T16:05:21+08:00",
                          "updated_at": "2024-09-04T16:35:40+08:00"
                        }
                      ],
                      "links": {
                        "first": null,
                        "last": null,
                        "prev": null,
                        "next": "https://api.sandbox.hit-pay.com/v1/charges?apiKey%5Bincrementing%5D=1&apiKey%5BpreventsLazyLoading%5D=0&apiKey%5Bexists%5D=1&apiKey%5BwasRecentlyCreated%5D=0&apiKey%5Btimestamps%5D=1&apiKey%5BusesUniqueIds%5D=0&statuses%5B0%5D=succeeded&statuses%5B1%5D=succeeded_manually&statuses%5B2%5D=refunded&statuses%5B3%5D=void&cursor=eyJidXNpbmVzc19jaGFyZ2VzLmlkIjoiOWQyZjJiYTYtZWQ2Yi00NGVjLWFmMGQtODg2NDk3YTEyMDJlIiwiX3BvaW50c1RvTmV4dEl0ZW1zIjp0cnVlfQ"
                      },
                      "meta": {
                        "path": "https://api.sandbox.hit-pay.com/v1/charges",
                        "per_page": 25,
                        "next_cursor": "eyJidXNpbmVzc19jaGFyZ2VzLmlkIjoiOWQyZjJiYTYtZWQ2Yi00NGVjLWFmMGQtODg2NDk3YTEyMDJlIiwiX3BvaW50c1RvTmV4dEl0ZW1zIjp0cnVlfQ",
                        "prev_cursor": null
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "currency": {
                            "type": "string"
                          },
                          "home_currency": {
                            "type": "string"
                          },
                          "exchange_rate": {
                            "type": ["string", "null"]
                          },
                          "amount": {
                            "type": "number"
                          },
                          "fixed_fee": {
                            "type": "number"
                          },
                          "discount_fee": {
                            "type": "number"
                          },
                          "discount_fee_rate": {
                            "type": "number"
                          },
                          "remark": {},
                          "status": {
                            "type": "string"
                          },
                          "payment_method": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "display_logo": {
                                "type": "object",
                                "properties": {
                                  "sm": {
                                    "type": "string"
                                  },
                                  "md": {
                                    "type": "string"
                                  },
                                  "lg": {
                                    "type": "string"
                                  },
                                  "svg": {
                                    "type": "string"
                                  },
                                  "svg_square": {
                                    "type": "string"
                                  },
                                  "png_square": {
                                    "type": "string"
                                  },
                                  "method": {
                                    "type": "string"
                                  },
                                  "iconName": {
                                    "type": "string"
                                  },
                                  "displayName": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "sm",
                                  "md",
                                  "lg",
                                  "svg",
                                  "svg_square",
                                  "png_square",
                                  "method",
                                  "iconName",
                                  "displayName"
                                ]
                              },
                              "method_logo": {
                                "type": "object",
                                "properties": {
                                  "sm": {
                                    "type": "string"
                                  },
                                  "md": {
                                    "type": "string"
                                  },
                                  "lg": {
                                    "type": "string"
                                  },
                                  "svg": {
                                    "type": "string"
                                  },
                                  "svg_square": {
                                    "type": "string"
                                  },
                                  "png_square": {
                                    "type": "string"
                                  },
                                  "method": {
                                    "type": "string"
                                  },
                                  "iconName": {
                                    "type": "string"
                                  },
                                  "displayName": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "sm",
                                  "md",
                                  "lg",
                                  "svg",
                                  "svg_square",
                                  "png_square",
                                  "method",
                                  "iconName",
                                  "displayName"
                                ]
                              },
                              "data": {
                                "type": "object",
                                "properties": {
                                  "brand": {
                                    "type": "string"
                                  },
                                  "last4": {
                                    "type": "string"
                                  },
                                  "country_code": {
                                    "type": "string"
                                  },
                                  "country": {
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "brand",
                                  "last4",
                                  "country_code",
                                  "country"
                                ]
                              }
                            },
                            "required": [
                              "name",
                              "display_logo",
                              "method_logo",
                              "data"
                            ]
                          },
                          "customer_id": {
                            "type": "string",
                            "nullable": true
                          },
                          "customer": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "email": {
                                "type": "string"
                              },
                              "phone_number": {}
                            },
                            "required": ["name", "email", "phone_number"]
                          },
                          "payment_request_id": {},
                          "webhook_status": {
                            "type": "boolean"
                          },
                          "order_reference_number": {
                            "type": "string"
                          },
                          "executor": {
                            "type": ["object", "null"],
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "display_name": {
                                "type": "string"
                              },
                              "email": {
                                "type": "string"
                              }
                            },
                            "required": ["id", "display_name", "email"]
                          },
                          "location": {
                            "type": ["object", "null"],
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "address": {
                                "type": "string"
                              }
                            },
                            "required": ["id", "name", "address"]
                          },
                          "channel": {
                            "type": "string"
                          },
                          "admin_fee": {
                            "type": "boolean"
                          },
                          "closed_at": {
                            "type": "string"
                          },
                          "created_at": {
                            "type": "string"
                          },
                          "updated_at": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "currency",
                          "home_currency",
                          "exchange_rate",
                          "amount",
                          "fixed_fee",
                          "discount_fee",
                          "discount_fee_rate",
                          "remark",
                          "status",
                          "payment_method",
                          "customer_id",
                          "customer",
                          "payment_request_id",
                          "webhook_status",
                          "order_reference_number",
                          "executor",
                          "location",
                          "channel",
                          "admin_fee",
                          "closed_at",
                          "created_at",
                          "updated_at"
                        ]
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {},
                        "last": {},
                        "prev": {},
                        "next": {
                          "type": "string"
                        }
                      },
                      "required": ["first", "last", "prev", "next"]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "path": {
                          "type": "string"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "next_cursor": {
                          "type": "string"
                        },
                        "prev_cursor": {}
                      },
                      "required": [
                        "path",
                        "per_page",
                        "next_cursor",
                        "prev_cursor"
                      ]
                    }
                  },
                  "required": ["data", "links", "meta"]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "lang": "shell",
              "source": "curl -X GET \"https://api.sandbox.hit-pay.com/v1/charges\" -H \"X-BUSINESS-API-KEY: b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d\""
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/charges/{charge_id}": {
      "get": {
        "summary": "Get Charge Details",
        "description": "Get charge details",
        "operationId": "get-charge",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "charge_id",
            "in": "path",
            "description": "The charge id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Successful payment",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9cecc92d-9d93-49d6-bd3f-2bb74dcbb283",
                      "currency": "sgd",
                      "home_currency": "sgd",
                      "exchange_rate": null,
                      "amount": 100,
                      "amount_without_fees": 95.85,
                      "refunded_amount": 0,
                      "fixed_fee": 0.5,
                      "discount_fee": 3.65,
                      "discount_fee_rate": 3.65,
                      "remark": "NEWUI from 2024-08-31 To 2024-08-31",
                      "status": "succeeded",
                      "payment_method": {
                        "code": "stripe_sg",
                        "display_logo": {
                          "sm": "https://api.sandbox.hit-pay.com/icons/methods/sm/visa.png",
                          "md": "https://api.sandbox.hit-pay.com/icons/methods/md/visa.png",
                          "lg": "https://api.sandbox.hit-pay.com/icons/methods/lg/visa.png",
                          "svg": "https://api.sandbox.hit-pay.com/icons/methods/svg/visa.svg",
                          "svg_square": "https://api.sandbox.hit-pay.com/icons/methods/svg_square/visa.svg",
                          "png_square": "https://api.sandbox.hit-pay.com/icons/methods/png_square/visa.png",
                          "method": "visa",
                          "iconName": "visa",
                          "displayName": "Visa"
                        },
                        "provider_reference": "ch_3Pv6duAMHowMCIhZ2P9NCA6j",
                        "type": "charge",
                        "name": "card",
                        "method_logo": {
                          "sm": "https://api.sandbox.hit-pay.com/icons/methods/sm/card.png",
                          "md": "https://api.sandbox.hit-pay.com/icons/methods/md/card.png",
                          "lg": "https://api.sandbox.hit-pay.com/icons/methods/lg/card.png",
                          "svg": "https://api.sandbox.hit-pay.com/icons/methods/svg/card.svg",
                          "svg_square": "https://api.sandbox.hit-pay.com/icons/methods/svg_square/card.svg",
                          "png_square": "https://api.sandbox.hit-pay.com/icons/methods/png_square/card.png",
                          "method": "card",
                          "iconName": "card",
                          "displayName": "Cards"
                        },
                        "data": {
                          "brand": "Visa",
                          "last4": "4242",
                          "country_code": "US",
                          "country": "United States of America"
                        }
                      },
                      "customer_id": "9a659602-eafd-4731-972d-424aef24fb2f",
                      "customer": {
                        "name": "KimC",
                        "email": "cherykim@yopmail.com",
                        "phone_number": "993348342"
                      },
                      "payment_request_id": null,
                      "webhook_status": false,
                      "order_reference_number": null,
                      "target_id": "9c0fd92e-1cc8-478f-8b2e-71ee8a218ec5",
                      "target_type": "business_recurring_plan",
                      "executor": null,
                      "location": null,
                      "channel": "api_recurring_dashboard",
                      "admin_fee": false,
                      "refunds": [],
                      "webhook_logs": [],
                      "terminal_id": null,
                      "closed_at": "2024-09-04T08:00:16+08:00",
                      "created_at": "2024-09-04T08:00:17+08:00",
                      "updated_at": "2024-09-04T08:01:19+08:00"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "9cecc92d-9d93-49d6-bd3f-2bb74dcbb283"
                    },
                    "currency": {
                      "type": "string",
                      "example": "sgd"
                    },
                    "home_currency": {
                      "type": "string",
                      "example": "sgd"
                    },
                    "exchange_rate": {
                      "type": "string",
                      "nullable": true,
                      "example": null
                    },
                    "amount": {
                      "type": "number",
                      "example": 100
                    },
                    "amount_without_fees": {
                      "type": "number",
                      "example": 95.85
                    },
                    "refunded_amount": {
                      "type": "number",
                      "example": 0
                    },
                    "fixed_fee": {
                      "type": "number",
                      "example": 0.5
                    },
                    "discount_fee": {
                      "type": "number",
                      "example": 3.65
                    },
                    "discount_fee_rate": {
                      "type": "number",
                      "example": 3.65
                    },
                    "remark": {
                      "type": "string",
                      "example": "NEWUI from 2024-08-31 To 2024-08-31"
                    },
                    "status": {
                      "type": "string",
                      "example": "succeeded"
                    },
                    "payment_method": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "stripe_sg"
                        },
                        "display_logo": {
                          "type": "object",
                          "properties": {
                            "sm": {
                              "type": "string",
                              "example": "https://api.sandbox.hit-pay.com/icons/methods/sm/visa.png"
                            },
                            "md": {
                              "type": "string",
                              "example": "https://api.sandbox.hit-pay.com/icons/methods/md/visa.png"
                            },
                            "lg": {
                              "type": "string",
                              "example": "https://api.sandbox.hit-pay.com/icons/methods/lg/visa.png"
                            },
                            "svg": {
                              "type": "string",
                              "example": "https://api.sandbox.hit-pay.com/icons/methods/svg/visa.svg"
                            },
                            "svg_square": {
                              "type": "string",
                              "example": "https://api.sandbox.hit-pay.com/icons/methods/svg_square/visa.svg"
                            },
                            "png_square": {
                              "type": "string",
                              "example": "https://api.sandbox.hit-pay.com/icons/methods/png_square/visa.png"
                            },
                            "method": {
                              "type": "string",
                              "example": "visa"
                            },
                            "iconName": {
                              "type": "string",
                              "example": "visa"
                            },
                            "displayName": {
                              "type": "string",
                              "example": "Visa"
                            }
                          }
                        },
                        "provider_reference": {
                          "type": "string",
                          "example": "ch_3Pv6duAMHowMCIhZ2P9NCA6j"
                        },
                        "type": {
                          "type": "string",
                          "example": "charge"
                        },
                        "name": {
                          "type": "string",
                          "example": "card"
                        },
                        "method_logo": {
                          "type": "object",
                          "properties": {
                            "sm": {
                              "type": "string",
                              "example": "https://api.sandbox.hit-pay.com/icons/methods/sm/card.png"
                            },
                            "md": {
                              "type": "string",
                              "example": "https://api.sandbox.hit-pay.com/icons/methods/md/card.png"
                            },
                            "lg": {
                              "type": "string",
                              "example": "https://api.sandbox.hit-pay.com/icons/methods/lg/card.png"
                            },
                            "svg": {
                              "type": "string",
                              "example": "https://api.sandbox.hit-pay.com/icons/methods/svg/card.svg"
                            },
                            "svg_square": {
                              "type": "string",
                              "example": "https://api.sandbox.hit-pay.com/icons/methods/svg_square/card.svg"
                            },
                            "png_square": {
                              "type": "string",
                              "example": "https://api.sandbox.hit-pay.com/icons/methods/png_square/card.png"
                            },
                            "method": {
                              "type": "string",
                              "example": "card"
                            },
                            "iconName": {
                              "type": "string",
                              "example": "card"
                            },
                            "displayName": {
                              "type": "string",
                              "example": "Cards"
                            }
                          }
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "brand": {
                              "type": "string",
                              "example": "Visa"
                            },
                            "last4": {
                              "type": "string",
                              "example": "4242"
                            },
                            "country_code": {
                              "type": "string",
                              "example": "US"
                            },
                            "country": {
                              "type": "string",
                              "example": "United States of America"
                            }
                          }
                        }
                      }
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "9a659602-eafd-4731-972d-424aef24fb2f"
                    },
                    "customer": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "example": "KimC"
                        },
                        "email": {
                          "type": "string",
                          "example": "cherykim@yopmail.com"
                        },
                        "phone_number": {
                          "type": "string",
                          "example": "993348342"
                        }
                      }
                    },
                    "payment_request_id": {
                      "type": "string",
                      "nullable": true,
                      "example": null
                    },
                    "webhook_status": {
                      "type": "boolean",
                      "example": false
                    },
                    "order_reference_number": {
                      "type": "string",
                      "nullable": true,
                      "example": null
                    },
                    "target_id": {
                      "type": "string",
                      "example": "9c0fd92e-1cc8-478f-8b2e-71ee8a218ec5"
                    },
                    "target_type": {
                      "type": "string",
                      "example": "business_recurring_plan"
                    },
                    "executor": {
                      "type": "string",
                      "nullable": true,
                      "example": null
                    },
                    "location": {
                      "type": "object",
                      "nullable": true,
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": null
                        },
                        "name": {
                          "type": "string",
                          "example": null
                        },
                        "address": {
                          "type": "string",
                          "example": null
                        }
                      }
                    },
                    "channel": {
                      "type": "string",
                      "example": "api_recurring_dashboard"
                    },
                    "admin_fee": {
                      "type": "boolean",
                      "example": false
                    },
                    "refunds": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      },
                      "example": []
                    },
                    "webhook_logs": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      },
                      "example": []
                    },
                    "terminal_id": {
                      "type": "string",
                      "nullable": true,
                      "example": null
                    },
                    "closed_at": {
                      "type": "string",
                      "example": "2024-09-04T08:00:16+08:00"
                    },
                    "created_at": {
                      "type": "string",
                      "example": "2024-09-04T08:00:17+08:00"
                    },
                    "updated_at": {
                      "type": "string",
                      "example": "2024-09-04T08:01:19+08:00"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "lang": "shell",
              "source": "curl -X GET \"https://api.sandbox.hit-pay.com/v1/charges/{charge_id}\" -H \"X-BUSINESS-API-KEY: b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d\""
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/charges/{charge_id}/receipt/print": {
      "post": {
        "summary": "Print Receipt",
        "description": "Print out charge and refund receipts. Applicable for Singapore merchants who use an All-in-One Terminal only.",
        "operationId": "print-charge-receipt",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "charge_id",
            "in": "path",
            "description": "The charge_id belongs to the business.",
            "schema": {
              "type": "string"
            },
            "required": true,
            "example": "9f12c35b-ae2a-4a6f-8853-6f1f00830bd7"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["terminal_id"],
                "properties": {
                  "terminal_id": {
                    "type": "string",
                    "description": "The terminal id belongs to the business.",
                    "example": "S1F2-000158240536593"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "204",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": 1
                  }
                },
                "schema": {}
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "The given data was invalid. Terminal not found",
                      "errors": {
                        "terminal_id": ["Terminal not found"]
                      }
                    }
                  }
                },
                "schema": {}
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/v1/orders": {
      "get": {
        "summary": "Get Orders",
        "description": "Get and filter the orders",
        "operationId": "get-all-orders",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 25,
              "maximum": 100
            }
          },
          {
            "name": "version",
            "in": "query",
            "description": "Order version: 1.0 or 2.0. Return all orders as default",
            "schema": {
              "type": "string",
              "enum": ["1.0", "2.0"]
            }
          },
          {
            "name": "keywords",
            "in": "query",
            "description": "Search for fields: amount ,created_at ,order id,  remark, customer_name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "statuses[]",
            "in": "query",
            "description": "The available status: completed, sent, draft, expired, canceled",
            "schema": {
              "type": "string",
              "enum": ["completed", "sent", "draft", "expired", "canceled"]
            }
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "Example: 2023-04-18",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateTo",
            "in": "query",
            "description": "Example: 2023-04-18",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "with",
            "in": "query",
            "description": "If we want to show the product or charge detail=> add the value: products or charges. For both: products,charges",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9b4bc2a2-4721-4636-a6dc-4effec3b00fc",
                      "order_display_number": 5660,
                      "business_id": "9130c422-bf97-4bd1-b370-07a3a6f40708",
                      "channel": "point_of_sale",
                      "version": "1.0",
                      "customer_id": null,
                      "business_customer_id": null,
                      "customer": null,
                      "customer_pickup": true,
                      "currency": "sgd",
                      "order_discount_name": null,
                      "status": "draft",
                      "remark": "Razaq is a fool",
                      "created_at": "2024-02-10T00:41:42+08:00",
                      "updated_at": "2024-02-10T00:41:42+08:00",
                      "closed_at": null,
                      "location_id": null,
                      "location": null,
                      "business_user_id": "34",
                      "slot_date": null,
                      "slot_time": null,
                      "messages": null,
                      "products": [],
                      "charges": [],
                      "line_items": [],
                      "order_form": {
                        "membership_id": {
                          "type": "input",
                          "title": "Membership ID",
                          "deleted": false,
                          "include": true,
                          "required": true
                        }
                      },
                      "order_form_response": [],
                      "coupon": null,
                      "payment_status": null,
                      "fulfilment_status": "",
                      "line_items_total": 0,
                      "order_discount_amount": 0,
                      "line_item_discount_amount": 0,
                      "line_item_tax_amount": 0,
                      "additional_discount_amount": 0,
                      "total_discount_amount": 0,
                      "line_item_price": 0,
                      "shipping_amount": 0,
                      "total_coupon_amount": 0,
                      "amount": 0,
                      "subtotal": 0
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "order_display_number": {
                      "type": "integer"
                    },
                    "business_id": {
                      "type": "string"
                    },
                    "channel": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    },
                    "customer_id": {
                      "type": "null"
                    },
                    "business_customer_id": {
                      "type": "null"
                    },
                    "customer": {
                      "type": "null"
                    },
                    "customer_pickup": {
                      "type": "boolean"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "order_discount_name": {
                      "type": "null"
                    },
                    "status": {
                      "type": "string"
                    },
                    "remark": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "closed_at": {
                      "type": "null"
                    },
                    "location_id": {
                      "type": "null"
                    },
                    "location": {
                      "type": "null"
                    },
                    "business_user_id": {
                      "type": "string"
                    },
                    "slot_date": {
                      "type": "null"
                    },
                    "slot_time": {
                      "type": "null"
                    },
                    "messages": {
                      "type": "null"
                    },
                    "products": {
                      "type": "array",
                      "items": {}
                    },
                    "charges": {
                      "type": "array",
                      "items": {}
                    },
                    "line_items": {
                      "type": "array",
                      "items": {}
                    },
                    "order_form": {
                      "type": "object",
                      "properties": {
                        "membership_id": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "title": {
                              "type": "string"
                            },
                            "deleted": {
                              "type": "boolean"
                            },
                            "include": {
                              "type": "boolean"
                            },
                            "required": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "type",
                            "title",
                            "deleted",
                            "include",
                            "required"
                          ]
                        }
                      },
                      "required": ["membership_id"]
                    },
                    "order_form_response": {
                      "type": "array",
                      "items": {}
                    },
                    "coupon": {
                      "type": "null"
                    },
                    "payment_status": {
                      "type": "null"
                    },
                    "fulfilment_status": {
                      "type": "string"
                    },
                    "line_items_total": {
                      "type": "integer"
                    },
                    "order_discount_amount": {
                      "type": "integer"
                    },
                    "line_item_discount_amount": {
                      "type": "integer"
                    },
                    "line_item_tax_amount": {
                      "type": "integer"
                    },
                    "additional_discount_amount": {
                      "type": "integer"
                    },
                    "total_discount_amount": {
                      "type": "integer"
                    },
                    "line_item_price": {
                      "type": "integer"
                    },
                    "shipping_amount": {
                      "type": "integer"
                    },
                    "total_coupon_amount": {
                      "type": "integer"
                    },
                    "amount": {
                      "type": "integer"
                    },
                    "subtotal": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "post": {
        "summary": "Create Order",
        "description": "Create Order with the given data. The order will be created with a `draft` status.",
        "operationId": "create-order",
        "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",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "The total amount of the order",
                    "examples": [100],
                    "default": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "The currency of the order",
                    "examples": ["sgd"],
                    "default": "sgd"
                  },
                  "remark": {
                    "type": "string",
                    "description": "The remark of the order",
                    "examples": ["Order Remark HitPay"]
                  },
                  "location_id": {
                    "type": "string",
                    "description": "The location id of the order",
                    "examples": ["9ae46141-c930-4613-b5a0-241206b9c215"]
                  },
                  "customer_id": {
                    "type": "string",
                    "description": "The customer id of the order",
                    "examples": ["9ae46141-c930-4613-b5a0-241206b9c215"]
                  },
                  "customer_pickup": {
                    "type": "boolean",
                    "description": "The customer pickup of the order",
                    "examples": [true],
                    "default": true
                  },
                  "channel": {
                    "type": "string",
                    "description": "The channel of the order",
                    "examples": ["point_of_sale"],
                    "default": "point_of_sale"
                  },
                  "business_user_id": {
                    "type": "string",
                    "description": "The business user id of the order",
                    "examples": ["34"]
                  },
                  "discount_reason": {
                    "type": "string",
                    "description": "The discount reason of the order",
                    "examples": ["Discount Reason"]
                  },
                  "discount_amount": {
                    "type": "number",
                    "description": "The discount amount of the order",
                    "examples": [10],
                    "default": 0
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the order",
                    "examples": ["1.0"],
                    "default": "1.0"
                  }
                },
                "required": [
                  "amount",
                  "currency",
                  "remark",
                  "location_id",
                  "customer_id",
                  "customer_pickup",
                  "channel",
                  "business_user_id",
                  "discount_reason",
                  "discount_amount",
                  "version"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9b4bc2a2-4721-4636-a6dc-4effec3b00fc",
                      "order_display_number": 5660,
                      "business_id": "9130c422-bf97-4bd1-b370-07a3a6f40708",
                      "channel": "point_of_sale",
                      "version": "1.0",
                      "customer_id": null,
                      "business_customer_id": null,
                      "customer": null,
                      "customer_pickup": true,
                      "currency": "sgd",
                      "order_discount_name": null,
                      "status": "draft",
                      "remark": "Order Remark HitPay",
                      "created_at": "2024-02-10T00:41:42+08:00",
                      "updated_at": "2024-02-10T00:41:42+08:00",
                      "closed_at": null,
                      "location_id": null,
                      "location": null,
                      "business_user_id": "34",
                      "slot_date": null,
                      "slot_time": null,
                      "messages": null,
                      "products": [],
                      "charges": [],
                      "line_items": [],
                      "order_form": {
                        "membership_id": {
                          "type": "input",
                          "title": "Membership ID",
                          "deleted": false,
                          "include": true,
                          "required": true
                        }
                      },
                      "order_form_response": [],
                      "coupon": null,
                      "payment_status": null,
                      "fulfilment_status": "",
                      "line_items_total": 0,
                      "order_discount_amount": 0,
                      "line_item_discount_amount": 0,
                      "line_item_tax_amount": 0,
                      "additional_discount_amount": 0,
                      "total_discount_amount": 0,
                      "line_item_price": 0,
                      "shipping_amount": 0,
                      "total_coupon_amount": 0,
                      "amount": 0,
                      "subtotal": 0
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "order_display_number": {
                      "type": "integer"
                    },
                    "business_id": {
                      "type": "string"
                    },
                    "channel": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    },
                    "customer_id": {
                      "type": "null"
                    },
                    "business_customer_id": {
                      "type": "null"
                    },
                    "customer": {
                      "type": "null"
                    },
                    "customer_pickup": {
                      "type": "boolean"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "order_discount_name": {
                      "type": "null"
                    },
                    "status": {
                      "type": "string"
                    },
                    "remark": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "closed_at": {
                      "type": "null"
                    },
                    "location_id": {
                      "type": "null"
                    },
                    "location": {
                      "type": "null"
                    },
                    "business_user_id": {
                      "type": "string"
                    },
                    "slot_date": {
                      "type": "null"
                    },
                    "slot_time": {
                      "type": "null"
                    },
                    "messages": {
                      "type": "null"
                    },
                    "products": {
                      "type": "array",
                      "items": {}
                    },
                    "charges": {
                      "type": "array",
                      "items": {}
                    },
                    "line_items": {
                      "type": "array",
                      "items": {}
                    },
                    "order_form": {
                      "type": "object",
                      "properties": {
                        "membership_id": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "title": {
                              "type": "string"
                            },
                            "deleted": {
                              "type": "boolean"
                            },
                            "include": {
                              "type": "boolean"
                            },
                            "required": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "type",
                            "title",
                            "deleted",
                            "include",
                            "required"
                          ]
                        }
                      },
                      "required": ["membership_id"]
                    },
                    "order_form_response": {
                      "type": "array",
                      "items": {}
                    },
                    "coupon": {
                      "type": "null"
                    },
                    "payment_status": {
                      "type": "null"
                    },
                    "fulfilment_status": {
                      "type": "string"
                    },
                    "line_items_total": {
                      "type": "integer"
                    },
                    "order_discount_amount": {
                      "type": "integer"
                    },
                    "line_item_discount_amount": {
                      "type": "integer"
                    },
                    "line_item_tax_amount": {
                      "type": "integer"
                    },
                    "additional_discount_amount": {
                      "type": "integer"
                    },
                    "total_discount_amount": {
                      "type": "integer"
                    },
                    "line_item_price": {
                      "type": "integer"
                    },
                    "shipping_amount": {
                      "type": "integer"
                    },
                    "total_coupon_amount": {
                      "type": "integer"
                    },
                    "amount": {
                      "type": "integer"
                    },
                    "subtotal": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/orders/{order_id}": {
      "get": {
        "summary": "Get Order Details",
        "description": "Get the order details",
        "operationId": "get-order",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "description": "It's required field",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9b4bc2a2-4721-4636-a6dc-4effec3b00fc",
                      "order_display_number": 5660,
                      "business_id": "9130c422-bf97-4bd1-b370-07a3a6f40708",
                      "channel": "point_of_sale",
                      "version": "1.0",
                      "customer_id": null,
                      "business_customer_id": null,
                      "customer": null,
                      "customer_pickup": true,
                      "currency": "sgd",
                      "order_discount_name": null,
                      "status": "draft",
                      "remark": "Razaq is a fool",
                      "created_at": "2024-02-10T00:41:42+08:00",
                      "updated_at": "2024-02-10T00:41:42+08:00",
                      "closed_at": null,
                      "location_id": null,
                      "location": null,
                      "business_user_id": "34",
                      "slot_date": null,
                      "slot_time": null,
                      "messages": null,
                      "products": [],
                      "charges": [],
                      "line_items": [],
                      "order_form": {
                        "membership_id": {
                          "type": "input",
                          "title": "Membership ID",
                          "deleted": false,
                          "include": true,
                          "required": true
                        }
                      },
                      "order_form_response": [],
                      "coupon": null,
                      "payment_status": null,
                      "fulfilment_status": "",
                      "line_items_total": 0,
                      "order_discount_amount": 0,
                      "line_item_discount_amount": 0,
                      "line_item_tax_amount": 0,
                      "additional_discount_amount": 0,
                      "total_discount_amount": 0,
                      "line_item_price": 0,
                      "shipping_amount": 0,
                      "total_coupon_amount": 0,
                      "amount": 0,
                      "subtotal": 0
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "order_display_number": {
                      "type": "integer"
                    },
                    "business_id": {
                      "type": "string"
                    },
                    "channel": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    },
                    "customer_id": {
                      "type": "null"
                    },
                    "business_customer_id": {
                      "type": "null"
                    },
                    "customer": {
                      "type": "null"
                    },
                    "customer_pickup": {
                      "type": "boolean"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "order_discount_name": {
                      "type": "null"
                    },
                    "status": {
                      "type": "string"
                    },
                    "remark": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "closed_at": {
                      "type": "null"
                    },
                    "location_id": {
                      "type": "null"
                    },
                    "location": {
                      "type": "null"
                    },
                    "business_user_id": {
                      "type": "string"
                    },
                    "slot_date": {
                      "type": "null"
                    },
                    "slot_time": {
                      "type": "null"
                    },
                    "messages": {
                      "type": "null"
                    },
                    "products": {
                      "type": "array",
                      "items": {}
                    },
                    "charges": {
                      "type": "array",
                      "items": {}
                    },
                    "line_items": {
                      "type": "array",
                      "items": {}
                    },
                    "order_form": {
                      "type": "object",
                      "properties": {
                        "membership_id": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "title": {
                              "type": "string"
                            },
                            "deleted": {
                              "type": "boolean"
                            },
                            "include": {
                              "type": "boolean"
                            },
                            "required": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "type",
                            "title",
                            "deleted",
                            "include",
                            "required"
                          ]
                        }
                      },
                      "required": ["membership_id"]
                    },
                    "order_form_response": {
                      "type": "array",
                      "items": {}
                    },
                    "coupon": {
                      "type": "null"
                    },
                    "payment_status": {
                      "type": "null"
                    },
                    "fulfilment_status": {
                      "type": "string"
                    },
                    "line_items_total": {
                      "type": "integer"
                    },
                    "order_discount_amount": {
                      "type": "integer"
                    },
                    "line_item_discount_amount": {
                      "type": "integer"
                    },
                    "line_item_tax_amount": {
                      "type": "integer"
                    },
                    "additional_discount_amount": {
                      "type": "integer"
                    },
                    "total_discount_amount": {
                      "type": "integer"
                    },
                    "line_item_price": {
                      "type": "integer"
                    },
                    "shipping_amount": {
                      "type": "integer"
                    },
                    "total_coupon_amount": {
                      "type": "integer"
                    },
                    "amount": {
                      "type": "integer"
                    },
                    "subtotal": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\Order] 99daaa99-0ccb-4e46-82bd-7a4347957e0a\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\Order] 99daaa99-0ccb-4e46-82bd-7a4347957e0a"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "patch": {
        "summary": "Update the order",
        "description": "Update the order",
        "operationId": "update-the-order",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "description": "It's required field",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "The total amount of the order",
                    "examples": [100],
                    "default": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "The currency of the order",
                    "examples": ["sgd"],
                    "default": "sgd"
                  },
                  "remark": {
                    "type": "string",
                    "description": "The remark of the order",
                    "examples": ["Order Remark HitPay"]
                  },
                  "location_id": {
                    "type": "string",
                    "description": "The location id of the order",
                    "examples": ["9ae46141-c930-4613-b5a0-241206b9c215"]
                  },
                  "customer_id": {
                    "type": "string",
                    "description": "The customer id of the order",
                    "examples": ["9ae46141-c930-4613-b5a0-241206b9c215"]
                  },
                  "customer_pickup": {
                    "type": "boolean",
                    "description": "The customer pickup of the order",
                    "examples": [true],
                    "default": true
                  },
                  "channel": {
                    "type": "string",
                    "description": "The channel of the order",
                    "examples": ["point_of_sale"],
                    "default": "point_of_sale"
                  },
                  "business_user_id": {
                    "type": "string",
                    "description": "The business user id of the order",
                    "examples": ["34"]
                  },
                  "discount_reason": {
                    "type": "string",
                    "description": "The discount reason of the order",
                    "examples": ["Discount Reason"]
                  },
                  "discount_amount": {
                    "type": "number",
                    "description": "The discount amount of the order",
                    "examples": [10],
                    "default": 0
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the order",
                    "examples": ["1.0"],
                    "default": "1.0"
                  }
                },
                "required": [
                  "amount",
                  "currency",
                  "remark",
                  "location_id",
                  "customer_id",
                  "customer_pickup",
                  "channel",
                  "business_user_id",
                  "discount_reason",
                  "discount_amount",
                  "version"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9b4bc2a2-4721-4636-a6dc-4effec3b00fc",
                      "order_display_number": 5660,
                      "business_id": "9130c422-bf97-4bd1-b370-07a3a6f40708",
                      "channel": "point_of_sale",
                      "version": "1.0",
                      "customer_id": null,
                      "business_customer_id": null,
                      "customer": null,
                      "customer_pickup": true,
                      "currency": "sgd",
                      "order_discount_name": null,
                      "status": "draft",
                      "remark": "Razaq is a fool",
                      "created_at": "2024-02-10T00:41:42+08:00",
                      "updated_at": "2024-02-10T00:41:42+08:00",
                      "closed_at": null,
                      "location_id": null,
                      "location": null,
                      "business_user_id": "34",
                      "slot_date": null,
                      "slot_time": null,
                      "messages": null,
                      "products": [],
                      "charges": [],
                      "line_items": [],
                      "order_form": {
                        "membership_id": {
                          "type": "input",
                          "title": "Membership ID",
                          "deleted": false,
                          "include": true,
                          "required": true
                        }
                      },
                      "order_form_response": [],
                      "coupon": null,
                      "payment_status": null,
                      "fulfilment_status": "",
                      "line_items_total": 0,
                      "order_discount_amount": 0,
                      "line_item_discount_amount": 0,
                      "line_item_tax_amount": 0,
                      "additional_discount_amount": 0,
                      "total_discount_amount": 0,
                      "line_item_price": 0,
                      "shipping_amount": 0,
                      "total_coupon_amount": 0,
                      "amount": 0,
                      "subtotal": 0
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "order_display_number": {
                      "type": "integer"
                    },
                    "business_id": {
                      "type": "string"
                    },
                    "channel": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    },
                    "customer_id": {
                      "type": "null"
                    },
                    "business_customer_id": {
                      "type": "null"
                    },
                    "customer": {
                      "type": "null"
                    },
                    "customer_pickup": {
                      "type": "boolean"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "order_discount_name": {
                      "type": "null"
                    },
                    "status": {
                      "type": "string"
                    },
                    "remark": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "closed_at": {
                      "type": "null"
                    },
                    "location_id": {
                      "type": "null"
                    },
                    "location": {
                      "type": "null"
                    },
                    "business_user_id": {
                      "type": "string"
                    },
                    "slot_date": {
                      "type": "null"
                    },
                    "slot_time": {
                      "type": "null"
                    },
                    "messages": {
                      "type": "null"
                    },
                    "products": {
                      "type": "array",
                      "items": {}
                    },
                    "charges": {
                      "type": "array",
                      "items": {}
                    },
                    "line_items": {
                      "type": "array",
                      "items": {}
                    },
                    "order_form": {
                      "type": "object",
                      "properties": {
                        "membership_id": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "title": {
                              "type": "string"
                            },
                            "deleted": {
                              "type": "boolean"
                            },
                            "include": {
                              "type": "boolean"
                            },
                            "required": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "type",
                            "title",
                            "deleted",
                            "include",
                            "required"
                          ]
                        }
                      },
                      "required": ["membership_id"]
                    },
                    "order_form_response": {
                      "type": "array",
                      "items": {}
                    },
                    "coupon": {
                      "type": "null"
                    },
                    "payment_status": {
                      "type": "null"
                    },
                    "fulfilment_status": {
                      "type": "string"
                    },
                    "line_items_total": {
                      "type": "integer"
                    },
                    "order_discount_amount": {
                      "type": "integer"
                    },
                    "line_item_discount_amount": {
                      "type": "integer"
                    },
                    "line_item_tax_amount": {
                      "type": "integer"
                    },
                    "additional_discount_amount": {
                      "type": "integer"
                    },
                    "total_discount_amount": {
                      "type": "integer"
                    },
                    "line_item_price": {
                      "type": "integer"
                    },
                    "shipping_amount": {
                      "type": "integer"
                    },
                    "total_coupon_amount": {
                      "type": "integer"
                    },
                    "amount": {
                      "type": "integer"
                    },
                    "subtotal": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\Order] 99daaa99-0ccb-4e46-82bd-7a4347957e0a\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\Order] 99daaa99-0ccb-4e46-82bd-7a4347957e0a"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "delete": {
        "summary": "Delete Order",
        "description": "Delete Order",
        "operationId": "delete-order",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "description": "It's required field",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "204",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "1"
                  }
                },
                "schema": {
                  "type": "integer",
                  "examples": [1],
                  "default": 0
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\Order] 99daaa99-0ccb-4e46-82bd-7a4347957e0a\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\Order] 99daaa99-0ccb-4e46-82bd-7a4347957e0a"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/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
      },
      "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
      }
    },
    "/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
      },
      "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
      }
    },
    "/v1/balances": {
      "get": {
        "summary": "Get Balances",
        "description": "Get Balances",
        "operationId": "get-balances",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": [
                      {
                        "currency": "sgd",
                        "wallets": {
                          "available": 2036.25,
                          "deposit": 0,
                          "pending": 94.1,
                          "reserve": 5913.65
                        }
                      },
                      {
                        "currency": "usd",
                        "wallets": {
                          "available": 600,
                          "reserve": 0
                        }
                      }
                    ]
                  }
                },
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "currency": {
                        "type": "string"
                      },
                      "wallets": {
                        "type": "object",
                        "properties": {
                          "available": {
                            "type": "number"
                          },
                          "deposit": {
                            "type": "number"
                          },
                          "pending": {
                            "type": "number"
                          },
                          "reserve": {
                            "type": "number"
                          }
                        },
                        "required": ["available", "reserve"]
                      }
                    },
                    "required": ["currency", "wallets"]
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/v1/balances/{balance_provider}/transactions": {
      "get": {
        "summary": "Get Balance Transactions",
        "description": "Get Balance Transactions and it's only applicable for Singapore merchants with Cards (by Adyen) Balance.",
        "operationId": "get-balance-transactions",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "balance_provider",
            "in": "path",
            "description": "The balance provider",
            "schema": {
              "type": "string",
              "example": "adyen"
            },
            "required": true
          },
          {
            "name": "created_at_from",
            "description": "The start day of Adyen transaction in range.",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "2025-05-21"
            }
          },
          {
            "name": "created_at_to",
            "description": "The end day of Adyen transaction in range. Note: `created_at_to >= created_at_from`",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "2025-05-21"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "It is used to fetch the next (or previous) set of results.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 10,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "data": [
                        {
                          "datetime": "2025-01-23T07:07:36+01:00",
                          "description": "Received for charge #9e08f05a-5374-4ffa-996c-1c8981f11df9",
                          "charge_id": null,
                          "order_id": null,
                          "payout_id": null,
                          "transfer_id": "38E95Y65QHBT2SOX",
                          "debit": null,
                          "credit": 95.85,
                          "currency": "SGD"
                        },
                        {
                          "datetime": "2025-01-24T10:32:39+01:00",
                          "description": "Received for charge #9e0b3d23-7bf7-4e7c-945f-6b81641a851b",
                          "charge_id": null,
                          "order_id": null,
                          "payout_id": null,
                          "transfer_id": "38E96Q65QXNHOSXL",
                          "debit": null,
                          "credit": 95.85,
                          "currency": "SGD"
                        },
                        {
                          "datetime": "2025-01-26T12:38:10+01:00",
                          "description": "Received for charge #9e0f6ffa-639d-46b1-a307-a0b19c4aa09e",
                          "charge_id": null,
                          "order_id": null,
                          "payout_id": null,
                          "transfer_id": "38EBH765RRH5BBIB",
                          "debit": null,
                          "credit": 53.78,
                          "currency": "SGD"
                        },
                        {
                          "datetime": "2025-01-27T05:42:04+01:00",
                          "description": "Received for charge #9e10de13-abc8-4451-99d8-3ceb121a1b35",
                          "charge_id": null,
                          "order_id": null,
                          "payout_id": null,
                          "transfer_id": "38EBHK65S1MY9ZG1",
                          "debit": null,
                          "credit": 6.78,
                          "currency": "SGD"
                        },
                        {
                          "datetime": "2025-01-27T05:43:01+01:00",
                          "description": "Received for charge #9e10de6b-2615-497a-b98d-fc9001b175d4",
                          "charge_id": null,
                          "order_id": null,
                          "payout_id": null,
                          "transfer_id": "38E95Y65S1N7RZD8",
                          "debit": null,
                          "credit": 85.96,
                          "currency": "SGD"
                        },
                        {
                          "datetime": "2025-01-27T07:06:02+01:00",
                          "description": "Transfer #9e10fcd2-f657-489b-947e-1383790b53bf",
                          "charge_id": null,
                          "order_id": null,
                          "payout_id": "9e10fcd2-f657-489b-947e-1383790b53bf",
                          "transfer_id": "1WNMS965S2GXLS2Z",
                          "debit": -96.32,
                          "credit": null,
                          "currency": "SGD"
                        },
                        {
                          "datetime": "2025-01-27T09:55:38+01:00",
                          "description": "Received for charge #9e1138be-14b7-47e4-90d1-188f56e5fe0b",
                          "charge_id": null,
                          "order_id": null,
                          "payout_id": null,
                          "transfer_id": "38E95Y65S45H71IL",
                          "debit": null,
                          "credit": 963,
                          "currency": "SGD"
                        },
                        {
                          "datetime": "2025-01-28T07:06:01+01:00",
                          "description": "Transfer #9e12ffc6-e91e-41ed-98f1-2e7bb6149f98",
                          "charge_id": null,
                          "order_id": null,
                          "payout_id": "9e12ffc6-e91e-41ed-98f1-2e7bb6149f98",
                          "transfer_id": "1X8ESU65SGRBVQLG",
                          "debit": -149.63,
                          "credit": null,
                          "currency": "SGD"
                        },
                        {
                          "datetime": "2025-01-29T07:07:19+01:00",
                          "description": "Transfer #9e15031f-3c86-4aba-b69f-301e31bc5b40",
                          "charge_id": null,
                          "order_id": null,
                          "payout_id": "9e15031f-3c86-4aba-b69f-301e31bc5b40",
                          "transfer_id": "1WNBU765SV27O2GP",
                          "debit": -1055.74,
                          "credit": null,
                          "currency": "SGD"
                        },
                        {
                          "datetime": "2025-02-03T10:12:36+01:00",
                          "description": "Received for charge #9e1f5398-9f3e-4d48-8c7c-3920d06f0e0d",
                          "charge_id": null,
                          "order_id": null,
                          "payout_id": null,
                          "transfer_id": "38E95Y65UWCCRRFU",
                          "debit": null,
                          "credit": 95.85,
                          "currency": "SGD"
                        }
                      ],
                      "meta": {
                        "per_page": "10",
                        "next_cursor": "S2B-MlIjKCkrPEMtMXcvdzV34Xl532WTxxaSZceT9ncVxTWVxBQk5scnE4SX1Mbl5HMmFYWD8kcEApMTJDRW5wfkxUbHdic0VyQlU1MWw32VGUgKGxsIX90S32M7",
                        "prev_cursor": null
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "datetime": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "charge_id": {
                            "type": ["string", "null"]
                          },
                          "order_id": {
                            "type": ["string", "null"]
                          },
                          "payout_id": {
                            "type": ["string", "null"]
                          },
                          "transfer_id": {
                            "type": "string"
                          },
                          "debit": {
                            "type": "number"
                          },
                          "credit": {
                            "type": ["number", "null"]
                          },
                          "currency": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "datetime",
                          "description",
                          "charge_id",
                          "order_id",
                          "transfer_id",
                          "currency"
                        ]
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "per_page": {
                          "type": "string"
                        },
                        "next_cursor": {
                          "type": "string"
                        },
                        "prev_cursor": {}
                      },
                      "required": ["per_page", "next_cursor", "prev_cursor"]
                    }
                  },
                  "required": ["data", "meta"]
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "The created at from does not match the format Y-m-d. (and 1 more error)",
                      "errors": {
                        "created_at_from": [
                          "The created at from does not match the format Y-m-d."
                        ],
                        "created_at_to": [
                          "The created at to must be a date after or equal to created at from."
                        ]
                      }
                    }
                  }
                },
                "schema": {}
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/v1/balances/{balance_provider}/transactions/export": {
      "post": {
        "summary": "Export Balance Breakdown",
        "description": "Export Balance Breakdown and the exported file will be included in attachment of sending email to the business's admin email. Currenly, we only support `Adyen` provider.",
        "operationId": "export-transactions",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "balance_provider",
            "in": "path",
            "description": "The balance provider. It only supports Adyen now.",
            "schema": {
              "type": "string",
              "example": "adyen"
            },
            "required": true
          },
          {
            "name": "created_at_from",
            "description": "The start day of Adyen transaction in range.",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "2025-05-21"
            }
          },
          {
            "name": "created_at_to",
            "description": "The end day of Adyen transaction in range. Note: `created_at_to >= created_at_from`",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "2025-05-21"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "success": true
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "The created at from does not match the format Y-m-d. (and 1 more error)",
                      "errors": {
                        "created_at_from": [
                          "The created at from does not match the format Y-m-d."
                        ],
                        "created_at_to": [
                          "The created at to must be a date after or equal to created at from."
                        ]
                      }
                    }
                  }
                },
                "schema": {}
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/v1/beneficiaries/schema": {
      "post": {
        "summary": "Get the API schema",
        "description": "This API returns a dynamic schema that depends on the values of certain parameters. The schema contains the fields and validation rules for each payment scenario. A payment scenario is a combination of these parameters:country, transfer_method,transfer_type, currency, holder_type and bank_swift_code. To get the final schema, you need to submit the field values and re-render the form multiple times until all the fields are completed. For example, if you submit only the country parameter, the API will return a schema with the fields for country and transfer_method. If you submit the country and transfer_method parameters, the API will return a schema with the fields for country, transfer_method, currency, and so on.",
        "operationId": "get-schema",
        "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",
                "properties": {
                  "country": {
                    "type": "string",
                    "pattern": "^([a-z]{2})$",
                    "minLength": 2,
                    "maxLength": 2,
                    "description": "2-letter ISO 3166-1 country code",
                    "example": "sg"
                  },
                  "transfer_method": {
                    "type": "string",
                    "description": "The transfer method needs to be specified to ensure that accurate banking details are captured and validated for the specified transfer method. This is required for timely and accurate delivery of funds to the beneficiary account",
                    "example": "bank_transfer"
                  },
                  "transfer_type": {
                    "type": "string",
                    "description": "The transfer type needs to be specified to ensure that accurate banking details are captured and validated for the specified transfer method. This is required for timely and accurate delivery of funds to the beneficiary account",
                    "example": "local"
                  },
                  "currency": {
                    "type": "string",
                    "description": "It is beneficiary bank account currency",
                    "example": "sgd"
                  },
                  "holder_type": {
                    "type": "string",
                    "enum": ["individual", "company"],
                    "description": "The type of the account holder. Individual is for personal accounts, and company is for business accounts.",
                    "example": "company"
                  },
                  "bank_swift_code": {
                    "type": "string",
                    "description": "The bank swift code is a unique identifier for a specific bank.",
                    "example": "AEIBSGSXXXX"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": [
                      {
                        "key": "country",
                        "placeholder": null,
                        "title": "Country",
                        "required": true,
                        "type": "select",
                        "force_display": true,
                        "options": [
                          {
                            "value": "au",
                            "label": "Australia"
                          },
                          {
                            "value": "bd",
                            "label": "Bangladesh"
                          },
                          {
                            "value": "my",
                            "label": "Malaysia"
                          },
                          {
                            "value": "ph",
                            "label": "Philippines"
                          },
                          {
                            "value": "sg",
                            "label": "Singapore"
                          },
                          {
                            "value": "vn",
                            "label": "Vietnam"
                          }
                        ],
                        "value": "sg"
                      },
                      {
                        "key": "transfer_method",
                        "placeholder": null,
                        "title": "Transfer Method",
                        "required": true,
                        "type": "select",
                        "force_display": true,
                        "options": [
                          {
                            "value": "bank_transfer",
                            "label": "Bank Transfer"
                          }
                        ],
                        "value": "bank_transfer"
                      },
                      {
                        "key": "transfer_type",
                        "placeholder": null,
                        "title": "Transfer Type",
                        "required": false,
                        "type": "select",
                        "force_display": false,
                        "options": [
                          {
                            "value": "local",
                            "label": "FAST"
                          }
                        ],
                        "value": "local"
                      },
                      {
                        "key": "currency",
                        "placeholder": "Select one",
                        "title": "Currency",
                        "required": true,
                        "type": "select",
                        "force_display": true,
                        "options": [
                          {
                            "value": "sgd",
                            "label": "Singapore Dollar ($)"
                          },
                          {
                            "value": "usd",
                            "label": "US Dollar ($)"
                          }
                        ],
                        "value": "sgd"
                      },
                      {
                        "key": "holder_type",
                        "placeholder": null,
                        "title": "Entity Type",
                        "required": true,
                        "type": "select",
                        "force_display": true,
                        "options": [
                          {
                            "value": "company",
                            "label": "Company"
                          },
                          {
                            "value": "individual",
                            "label": "Individual"
                          }
                        ],
                        "value": "company"
                      },
                      {
                        "key": "holder_name",
                        "placeholder": "John Doe",
                        "title": "Account Holder Name",
                        "required": true,
                        "type": "input"
                      },
                      {
                        "key": "bank_swift_code",
                        "placeholder": null,
                        "type": "select",
                        "title": "Bank Name",
                        "required": true,
                        "force_display": true,
                        "options": [
                          {
                            "value": "ABNASG2AXXX",
                            "label": "ABN AMRO BANK NV"
                          },
                          {
                            "value": "AEIBSGSXXXX",
                            "label": "AMERICAN EXPRESS BANK LTD"
                          },
                          {
                            "value": "ANZBSGSXXXX",
                            "label": "ANZ SINGAPORE"
                          },
                          {
                            "value": "BKKBSGSGXXX",
                            "label": "BANGKOK BANK PUBLIC COMPANY"
                          },
                          {
                            "value": "BOFASG2XXXX",
                            "label": "BANK OF AMERICA"
                          },
                          {
                            "value": "BKCHSGSGXXX",
                            "label": "BANK OF CHINA"
                          },
                          {
                            "value": "BKIDSGSGXXX",
                            "label": "BANK OF INDIA"
                          },
                          {
                            "value": "BKNZSGSGXXX",
                            "label": "BANK OF NEW ZEALAND"
                          },
                          {
                            "value": "BOTKSGSXXXX",
                            "label": "BANK OF TOKYO-MITSUBISHI"
                          },
                          {
                            "value": "BNPASGSGXXX",
                            "label": "BNP PARIBAS"
                          },
                          {
                            "value": "CRLYSGSGXXX",
                            "label": "CALYON"
                          },
                          {
                            "value": "CTCBSGSGXXX",
                            "label": "CHINATRUST COMMERCIAL BANK CO., LTD"
                          },
                          {
                            "value": "CIBBSGSGXXX",
                            "label": "CIMB BANK BERHAD"
                          },
                          {
                            "value": "CITISGSGXXX",
                            "label": "CITIBANK NA"
                          },
                          {
                            "value": "CITISGSLXXX",
                            "label": "CITIBANK SINGAPORE"
                          },
                          {
                            "value": "KWHKSGSGXXX",
                            "label": "CITIC Bank International Ltd"
                          },
                          {
                            "value": "COBASGSXXXX",
                            "label": "COMMERZBANK SG"
                          },
                          {
                            "value": "DBSSSGSGXXX",
                            "label": "DBS Bank/POSB"
                          },
                          {
                            "value": "DEUTSGSGXXX",
                            "label": "DEUTSCHE BANK"
                          },
                          {
                            "value": "DNBASGSGXXX",
                            "label": "DnB NOR Bank ASA"
                          },
                          {
                            "value": "FAEASGSGXXX",
                            "label": "FAR EASTERN BANK"
                          },
                          {
                            "value": "FCBKSGSGXXX",
                            "label": "FIRST COMMERCIAL BANK"
                          },
                          {
                            "value": "HABBSGSGXXX",
                            "label": "HABIB BANK LIMITED"
                          },
                          {
                            "value": "HLBBSGSGXXX",
                            "label": "HL BANK"
                          },
                          {
                            "value": "HSBCSGS2",
                            "label": "HONGKONG & SHANGHAI BANKING CORPORATION (HSBC)"
                          },
                          {
                            "value": "HSBCSGS2XXX",
                            "label": "HONGKONG & SHANGHAI BANKING CORPORATION (HSBC)"
                          },
                          {
                            "value": "HSBCSGSGXXX",
                            "label": "HONGKONG & SHANGHAI BANKING CORPORATION (HSBC)"
                          },
                          {
                            "value": "ICICSGSGXXX",
                            "label": "ICICI BANK"
                          },
                          {
                            "value": "IDIBSGSGXXX",
                            "label": "INDIAN BANK"
                          },
                          {
                            "value": "IOBASGSGXXX",
                            "label": "INDIAN OVERSEAS BANK"
                          },
                          {
                            "value": "INGBSGSGXXX",
                            "label": "INTERNALTIONALE NEDERLANDEN BANK N.V."
                          },
                          {
                            "value": "BCITSGSGXXX",
                            "label": "INTESABCI S.P.A."
                          },
                          {
                            "value": "ICBKSGSGXXX",
                            "label": "Industrial & Commercial Bank of China"
                          },
                          {
                            "value": "CHASSGSGXXX",
                            "label": "JP MORGAN CHASE BANK, N.A."
                          },
                          {
                            "value": "KOEXSGSGXXX",
                            "label": "KEB HANA BANK"
                          },
                          {
                            "value": "MBBESGS2",
                            "label": "MALAYAN BANKING BERHAD"
                          },
                          {
                            "value": "MBBESGS2XXX",
                            "label": "MAYBANK SINGAPORE LIMITED"
                          },
                          {
                            "value": "MHCBSGSGXXX",
                            "label": "MIZUHO CORPORATE BANK, LTD"
                          },
                          {
                            "value": "NATASGSGXXX",
                            "label": "NATIONAL AUSTRALIA BANK LTD"
                          },
                          {
                            "value": "NBOKSGSGXXX",
                            "label": "NATIONAL BANK OF KUWAIT, SAK"
                          },
                          {
                            "value": "NDEASGSGXXX",
                            "label": "NORDEA BANK FINLAND PLC"
                          },
                          {
                            "value": "OCBCSGSGXXX",
                            "label": "OVERSEA-CHINESE BANKING CORPORATION LTD"
                          },
                          {
                            "value": "BNINSGSGXXX",
                            "label": "PT. BANK NEGARA INDONESIA"
                          },
                          {
                            "value": "RHBBSGSGXXX",
                            "label": "RHB BANK BERHAD"
                          },
                          {
                            "value": "BSGPSGSGXXX",
                            "label": "SINGAPORE ISLAND BANK"
                          },
                          {
                            "value": "ESSESGSGXXX",
                            "label": "SKANDINAVISKA ENSKILDA BANKEN"
                          },
                          {
                            "value": "SOGESGSGXXX",
                            "label": "SOCIETE GENERALE"
                          },
                          {
                            "value": "SCBLSG22XXX",
                            "label": "STANDARD CHARTERED BANK"
                          },
                          {
                            "value": "SCBLSGSGXXX",
                            "label": "STANDARD CHARTERED BANK"
                          },
                          {
                            "value": "SBINSGSGXXX",
                            "label": "STATE BANK OF INDIA"
                          },
                          {
                            "value": "SMBCSGSGXXX",
                            "label": "SUMITOMO MITSUI BANKING CORPORATION"
                          },
                          {
                            "value": "HANDSGSGXXX",
                            "label": "SVENSKA HANDELSBANKEN AB (PUBL)"
                          },
                          {
                            "value": "UBSWSGSGXXX",
                            "label": "SWISS BANK CORP"
                          },
                          {
                            "value": "BEASSGSGXXX",
                            "label": "THE BANK OF EAST ASIA"
                          },
                          {
                            "value": "NOSCSGSGXXX",
                            "label": "THE BANK OF NOVA SCOTIA"
                          },
                          {
                            "value": "UCBASGSGXXX",
                            "label": "UCO BANK"
                          },
                          {
                            "value": "UBAFSGSXXXX",
                            "label": "UNION DE BANQUES ARABES ET FRANCAISES"
                          },
                          {
                            "value": "UOVBSGSGXXX",
                            "label": "UNITED OVERSEAS BANK LTD"
                          },
                          {
                            "value": "TRWISGSGXXX",
                            "label": "Wise Asia-Pacific Pte Ltd"
                          }
                        ],
                        "value": "AEIBSGSXXXX"
                      },
                      {
                        "key": "account_number",
                        "placeholder": "140989",
                        "type": "input",
                        "title": "Account Number",
                        "required": true,
                        "validation": "/^\\d{4,32}$/"
                      },
                      {
                        "key": "nickname",
                        "placeholder": "John Doe",
                        "title": "Nickname",
                        "required": false,
                        "type": "input"
                      },
                      {
                        "key": "remark",
                        "placeholder": "Example: Test SGD transfer to US",
                        "title": "Remark",
                        "required": false,
                        "type": "input"
                      },
                      {
                        "key": "email",
                        "placeholder": null,
                        "title": "Email Address",
                        "required": false,
                        "type": "input",
                        "validation": "email"
                      },
                      {
                        "key": "is_favourite",
                        "placeholder": null,
                        "title": "Mark this beneficiary as favourite",
                        "required": false,
                        "type": "checkbox-boolean",
                        "value": false
                      }
                    ]
                  }
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "The given data was invalid. The selected Country is invalid.",
                      "errors": {
                        "country": ["The selected Country is invalid."],
                        "transfer_method": [
                          "The selected Transfer Method is invalid."
                        ],
                        "transfer_type": [
                          "The selected Transfer Type is invalid."
                        ],
                        "currency": ["The selected Currency is invalid."]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/v1/beneficiaries": {
      "post": {
        "summary": "Create a new beneficiary",
        "description": "A beneficiary is a person or business receiving the funds. HitPay currently supports local beneficiaries, enabling payouts within the same country and region.",
        "operationId": "create-beneficiary",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "title": "Singapore / SGD / FAST",
                    "$ref": "#/components/schemas/beneficiary-sqd-fast"
                  },
                  {
                    "title": "Bangladesh / BDT / Local bank transfer",
                    "$ref": "#/components/schemas/beneficiary-bd-local"
                  },
                  {
                    "title": "Bangladesh / BDT / Upay",
                    "$ref": "#/components/schemas/beneficiary-bd-upay"
                  },
                  {
                    "title": "Bangladesh / BDT / bKash",
                    "$ref": "#/components/schemas/beneficiary-bd-bkash"
                  },
                  {
                    "title": "Bangladesh / BDT / TAP",
                    "$ref": "#/components/schemas/beneficiary-bd-tap"
                  },
                  {
                    "title": "Philippines / PHP / Local bank transfer",
                    "$ref": "#/components/schemas/beneficiary-php-local"
                  }
                ]
              },
              "examples": {
                "Singapore / SGD / FAST": {
                  "value": {
                    "country": "sg",
                    "transfer_method": "bank_transfer",
                    "transfer_type": "local",
                    "currency": "sgd",
                    "holder_type": "individual",
                    "holder_name": "John Tan",
                    "bank_id": "BOFASG2XXXX[7065]",
                    "account_number": "1409827"
                  }
                },
                "Bangladesh / BDT / Local bank transfer": {
                  "value": {
                    "country": "bd",
                    "transfer_method": "bank_transfer",
                    "transfer_type": "local",
                    "currency": "bdt",
                    "holder_type": "individual",
                    "holder_name": "SHAH ALAM HERA",
                    "bank_id": "brc-20",
                    "bank_routing_number": "060261726",
                    "account_number": "1503201781283001"
                  }
                },
                "Bangladesh / BDT / Upay": {
                  "value": {
                    "country": "bd",
                    "transfer_method": "upay",
                    "currency": "bdt",
                    "holder_type": "individual",
                    "holder_name": "Moulude Hossain",
                    "district": "BD-03",
                    "account_number": "+8801914538413"
                  }
                },
                "Bangladesh / BDT / bKash": {
                  "value": {
                    "country": "bd",
                    "transfer_method": "bkash",
                    "currency": "bdt",
                    "holder_type": "individual",
                    "holder_name": "Rashid",
                    "district": "BD-03",
                    "account_number": "+8801721940130"
                  }
                },
                "Bangladesh / BDT / TAP": {
                  "value": {
                    "country": "bd",
                    "transfer_method": "tap",
                    "currency": "bdt",
                    "holder_type": "individual",
                    "holder_name": "Moulude Hossain",
                    "district": "BD-04",
                    "account_number": "+8801914538413"
                  }
                },
                "Philippines / PHP / Local bank transfer": {
                  "value": {
                    "country": "ph",
                    "transfer_method": "bank_transfer",
                    "transfer_type": "local",
                    "currency": "php",
                    "holder_type": "individual",
                    "holder_name": "Ben Yu",
                    "bank_id": "10419995",
                    "account_number": "14098377",
                    "address": {
                      "street": "Pedro Gil, cor Adriatico St",
                      "postcode": "1000",
                      "city": "Manila"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9ec01865-7af1-4937-813d-7801912d2cd1",
                      "status": "approved",
                      "country": "sg",
                      "currency": "sgd",
                      "transfer_method": "bank_transfer",
                      "transfer_type": "local",
                      "nickname": null,
                      "remark": null,
                      "holder_name": "John Test",
                      "holder_type": "individual",
                      "account_number": "1409828",
                      "bank_name": "BANK OF AMERICA",
                      "bank_id": "BOFASG2XXXX[7065]",
                      "email": null,
                      "bank_swift_code": "BOFASG2XXXX",
                      "is_favourite": false,
                      "created_by": {
                        "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                        "display_name": "TestingSG",
                        "first_name": "QA",
                        "last_name": "SG"
                      },
                      "created_at": "2025-04-24T15:13:22+08:00",
                      "updated_at": "2025-04-24T15:13:22+08:00",
                      "deleted_at": null
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "201",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "The Country field is required. (and 4 more errors)",
                      "errors": {
                        "country": ["The Country field is required."],
                        "transfer_method": [
                          "The Transfer Method field is required."
                        ],
                        "currency": ["The Currency field is required."],
                        "holder_type": ["The Entity Type field is required."],
                        "holder_name": [
                          "The Account Holder Name field is required."
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "get": {
        "summary": "Get list of beneficiaries",
        "description": "Get list of beneficiaries",
        "operationId": "get-all-beneficiary",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "Search by holder name / nickname",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "data": [
                        {
                          "id": "9eb3d3ff-3fb0-450e-bb61-7c0753974398",
                          "status": "approved",
                          "country": "sg",
                          "currency": "sgd",
                          "transfer_method": "bank_transfer",
                          "transfer_type": "local",
                          "nickname": "Test QA",
                          "remark": "Test QA",
                          "holder_name": "Test QA",
                          "holder_type": "individual",
                          "bank_branch_code": "001",
                          "account_number": "173737377",
                          "bank_name": "AMERICAN EXPRESS BANK LTD",
                          "bank_id": "AEIBSGSXXXX[7454]",
                          "email": "test@gmail.com",
                          "bank_swift_code": "AEIBSGSXXXX",
                          "is_favourite": true,
                          "created_by": {
                            "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                            "display_name": "TestingSG",
                            "first_name": "QA",
                            "last_name": "SG"
                          },
                          "created_at": "2025-04-18T12:52:10+08:00",
                          "updated_at": "2025-04-18T12:52:10+08:00",
                          "deleted_at": null
                        }
                      ],
                      "links": {
                        "first": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=1",
                        "last": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=23",
                        "prev": null,
                        "next": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=2"
                      },
                      "meta": {
                        "current_page": 1,
                        "from": 1,
                        "last_page": 23,
                        "links": [
                          {
                            "url": null,
                            "label": "&larr; Previous",
                            "active": false
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=1",
                            "label": "1",
                            "active": true
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=2",
                            "label": "2",
                            "active": false
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=3",
                            "label": "3",
                            "active": false
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=4",
                            "label": "4",
                            "active": false
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=5",
                            "label": "5",
                            "active": false
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=6",
                            "label": "6",
                            "active": false
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=7",
                            "label": "7",
                            "active": false
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=8",
                            "label": "8",
                            "active": false
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=9",
                            "label": "9",
                            "active": false
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=10",
                            "label": "10",
                            "active": false
                          },
                          {
                            "url": null,
                            "label": "...",
                            "active": false
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=22",
                            "label": "22",
                            "active": false
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=23",
                            "label": "23",
                            "active": false
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/beneficiaries?page=2",
                            "label": "Next &rarr;",
                            "active": false
                          }
                        ],
                        "path": "https://api.sandbox.hit-pay.com/v1/beneficiaries",
                        "per_page": 10,
                        "to": 1,
                        "total": 23
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "country": {
                            "type": "string"
                          },
                          "currency": {
                            "type": "string"
                          },
                          "transfer_method": {
                            "type": "string"
                          },
                          "transfer_type": {
                            "type": "string"
                          },
                          "nickname": {
                            "type": "string"
                          },
                          "remark": {
                            "type": ["string", "null"]
                          },
                          "holder_name": {
                            "type": "string"
                          },
                          "holder_type": {
                            "type": "string"
                          },
                          "bank_branch_code": {
                            "type": "string"
                          },
                          "account_number": {
                            "type": "string"
                          },
                          "bank_name": {
                            "type": "string"
                          },
                          "bank_id": {
                            "type": "string"
                          },
                          "email": {
                            "type": "string"
                          },
                          "bank_swift_code": {
                            "type": "string"
                          },
                          "is_favourite": {
                            "type": "boolean"
                          },
                          "created_by": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "display_name": {
                                "type": "string"
                              },
                              "first_name": {
                                "type": "string"
                              },
                              "last_name": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "id",
                              "display_name",
                              "first_name",
                              "last_name"
                            ]
                          },
                          "created_at": {
                            "type": "string"
                          },
                          "updated_at": {
                            "type": "string"
                          },
                          "deleted_at": {
                            "type": ["string", "null"]
                          }
                        },
                        "required": [
                          "id",
                          "status",
                          "country",
                          "currency",
                          "transfer_method",
                          "transfer_type",
                          "nickname",
                          "remark",
                          "holder_name",
                          "holder_type",
                          "bank_branch_code",
                          "account_number",
                          "bank_name",
                          "bank_id",
                          "email",
                          "bank_swift_code",
                          "is_favourite",
                          "created_by",
                          "created_at",
                          "updated_at",
                          "deleted_at"
                        ]
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": "string"
                        },
                        "last": {
                          "type": "string"
                        },
                        "prev": {},
                        "next": {
                          "type": "string"
                        }
                      },
                      "required": ["first", "last", "prev", "next"]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "number"
                        },
                        "from": {
                          "type": "number"
                        },
                        "last_page": {
                          "type": "number"
                        },
                        "links": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": "string"
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": ["label", "active"]
                          }
                        },
                        "path": {
                          "type": "string"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "to": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total"
                      ]
                    }
                  },
                  "required": ["data", "links", "meta"]
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/v1/beneficiaries/{beneficiary_id}": {
      "patch": {
        "summary": "Update existing beneficiary",
        "description": "we only accept to update nickname, remark and is_favourite fields",
        "operationId": "update-beneficiary",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "beneficiary_id",
            "in": "path",
            "description": "The Beneficiary id",
            "schema": {
              "type": "string",
              "format": "uuid",
              "example": "9b294222-3a53-427f-9393-95dc6d63ee6c"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "nickname": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "remark": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "is_favourite": {
                    "type": "boolean",
                    "description": "Set to true to mark this beneficiary as favourite",
                    "enum": [true, false]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9eb3d3ff-3fb0-450e-bb61-7c0753974398",
                      "status": "approved",
                      "country": "sg",
                      "currency": "sgd",
                      "transfer_method": "bank_transfer",
                      "transfer_type": "local",
                      "nickname": "Harry Satterfield",
                      "remark": "RemarkAnimi veniam recusandae nihil sapiente temporibus voluptas aliquam.",
                      "holder_name": "Test QA",
                      "holder_type": "individual",
                      "bank_branch_code": "001",
                      "account_number": "173737377",
                      "bank_name": "AMERICAN EXPRESS BANK LTD",
                      "bank_id": "AEIBSGSXXXX[7454]",
                      "email": "test@gmail.com",
                      "bank_swift_code": "AEIBSGSXXXX",
                      "is_favourite": false,
                      "created_by": {
                        "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                        "display_name": "TestingSG",
                        "first_name": "QA",
                        "last_name": "SG"
                      },
                      "created_at": "2025-04-18T12:52:10+08:00",
                      "updated_at": "2025-04-24T16:03:03+08:00",
                      "deleted_at": null
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "country": {
                      "type": "string"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "transfer_method": {
                      "type": "string"
                    },
                    "transfer_type": {
                      "type": "string"
                    },
                    "nickname": {
                      "type": "string"
                    },
                    "remark": {
                      "type": "string"
                    },
                    "holder_name": {
                      "type": "string"
                    },
                    "holder_type": {
                      "type": "string"
                    },
                    "bank_branch_code": {
                      "type": "string"
                    },
                    "account_number": {
                      "type": "string"
                    },
                    "bank_name": {
                      "type": "string"
                    },
                    "bank_id": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "bank_swift_code": {
                      "type": "string"
                    },
                    "is_favourite": {
                      "type": "boolean"
                    },
                    "created_by": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "display_name": {
                          "type": "string"
                        },
                        "first_name": {
                          "type": "string"
                        },
                        "last_name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "display_name",
                        "first_name",
                        "last_name"
                      ]
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "deleted_at": {
                      "type": ["string", "null"]
                    }
                  },
                  "required": [
                    "id",
                    "status",
                    "country",
                    "currency",
                    "transfer_method",
                    "transfer_type",
                    "nickname",
                    "remark",
                    "holder_name",
                    "holder_type",
                    "bank_branch_code",
                    "account_number",
                    "bank_name",
                    "bank_id",
                    "email",
                    "bank_swift_code",
                    "is_favourite",
                    "created_by",
                    "created_at",
                    "updated_at",
                    "deleted_at"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "The given data was invalid. The remark may not be greater than 255 characters.",
                      "errors": {
                        "remark": [
                          "The remark may not be greater than 255 characters."
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request PATCH 'https://api.sandbox.hit-pay.com/v1/beneficiaries/9a3d60cb-2c8d-4050-abd0-bbd6725acb3e' \\\n--header 'X-BUSINESS-API-KEY: apikey' \\\n--header 'X-Requested-With: XMLHttpRequest' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"is_external\": true,\n    \"country\": \"sg\",\n    \"currency\": \"sgd\",\n    \"nickname\": \"Paper Supplier 1695900354\",\n    \"remark\": \"Update remark 1695900354\",\n    \"holder_type\": \"company\",\n    \"holder_name\": \"Holder Name Update 1695900354\",\n    \"transfer_method\": \"local\",\n    \"bank_id\": \"ABNASG2AXXX[7010]\",\n    \"bank_branch_code\": \"050\",\n    \"account_number\": \"000123456\",\n    \"password\": \"xxx\"\n}'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "delete": {
        "summary": "Delete existing beneficiary",
        "description": "",
        "operationId": "delete-beneficiary",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "beneficiary_id",
            "in": "path",
            "description": "The Beneficiary id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "204",
            "content": {}
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request DELETE 'https://api.sandbox.hit-pay.com/v1/beneficiaries/9a3d60cb-2c8d-4050-abd0-bbd6725acb3e' \\\n--header 'X-BUSINESS-API-KEY: apikey' \\\n--header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "get": {
        "summary": "Get a beneficiary by ID",
        "description": "Get a beneficiary by ID",
        "operationId": "get-beneficiary-detail",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "beneficiary_id",
            "in": "path",
            "description": "The Beneficiary id",
            "schema": {
              "type": "string",
              "example": "9b294222-3a53-427f-9393-95dc6d63ee6c"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9eb3d3ff-3fb0-450e-bb61-7c0753974398",
                      "status": "approved",
                      "country": "sg",
                      "currency": "sgd",
                      "transfer_method": "bank_transfer",
                      "transfer_type": "local",
                      "nickname": "Test QA",
                      "remark": "Test QA",
                      "holder_name": "Test QA",
                      "holder_type": "individual",
                      "bank_branch_code": "001",
                      "account_number": "173737377",
                      "bank_name": "AMERICAN EXPRESS BANK LTD",
                      "bank_id": "AEIBSGSXXXX[7454]",
                      "email": "test@gmail.com",
                      "is_favourite": true,
                      "created_by": {
                        "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                        "display_name": "TestingSG",
                        "first_name": "QA",
                        "last_name": "SG"
                      },
                      "created_at": "2025-04-18T12:52:10+08:00",
                      "updated_at": "2025-04-18T12:52:10+08:00",
                      "deleted_at": null
                    }
                  }
                },
                "schema": {
                  "$schema": "http://json-schema.org/draft-07/schema#",
                  "title": "Generated schema for Root",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "country": {
                      "type": "string"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "transfer_method": {
                      "type": "string"
                    },
                    "transfer_type": {
                      "type": "string"
                    },
                    "nickname": {
                      "type": "string"
                    },
                    "remark": {
                      "type": "string"
                    },
                    "holder_name": {
                      "type": "string"
                    },
                    "holder_type": {
                      "type": "string"
                    },
                    "bank_branch_code": {
                      "type": "string"
                    },
                    "account_number": {
                      "type": "string"
                    },
                    "bank_name": {
                      "type": "string"
                    },
                    "bank_id": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "bank_swift_code": {
                      "type": "string"
                    },
                    "is_favourite": {
                      "type": "boolean"
                    },
                    "created_by": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "display_name": {
                          "type": "string"
                        },
                        "first_name": {
                          "type": "string"
                        },
                        "last_name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "display_name",
                        "first_name",
                        "last_name"
                      ]
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    },
                    "deleted_at": {
                      "type": ["string", "null"]
                    }
                  },
                  "required": [
                    "id",
                    "status",
                    "country",
                    "currency",
                    "transfer_method",
                    "transfer_type",
                    "nickname",
                    "remark",
                    "holder_name",
                    "holder_type",
                    "bank_branch_code",
                    "account_number",
                    "bank_name",
                    "bank_id",
                    "email",
                    "bank_swift_code",
                    "is_favourite",
                    "created_by",
                    "created_at",
                    "updated_at",
                    "deleted_at"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "No query results for model [App\\Models\\Business\\BankAccount] 9eb3d3ff-3fb0-450e-bb61-7c0753974392"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/v1/remitters": {
      "get": {
        "summary": "Get list of remitters",
        "description": "Get list of remitters",
        "operationId": "get-remitters",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "data": [
                        {
                          "id": "9f0083d4-7794-4c83-98a2-754244f0db85",
                          "status": "pending",
                          "entity_type": "individual",
                          "full_name": "Keith Abbott",
                          "email": null,
                          "address": {
                            "city": "Singapore",
                            "state": "Singapore",
                            "country": "sg",
                            "postal_code": "238888",
                            "street_address": "123 Orchard Rd"
                          },
                          "id_type": "driving_license",
                          "id_number": "A1748245605",
                          "nationality": "sg",
                          "company_name": "Cartwright Group",
                          "date_of_birth": "1990-01-01",
                          "contact_number": "+6591234567",
                          "place_of_birth": "Singapore",
                          "created_by": {
                            "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                            "display_name": "TestingSG",
                            "first_name": "QA",
                            "last_name": "SG"
                          },
                          "created_at": "2025-05-26T15:46:45+08:00",
                          "updated_at": "2025-05-26T15:46:45+08:00"
                        },
                        {
                          "id": "9f0083c8-6670-4421-8cde-bc770389b27a",
                          "status": "pending",
                          "entity_type": "individual",
                          "full_name": "Sharon Feil",
                          "email": null,
                          "address": {
                            "city": "Singapore",
                            "state": "Singapore",
                            "country": "sg",
                            "postal_code": "238888",
                            "street_address": "123 Orchard Rd"
                          },
                          "id_type": "passport",
                          "id_number": "A1748245597",
                          "nationality": "sg",
                          "company_name": "Zboncak - Windler",
                          "date_of_birth": "1990-01-01",
                          "contact_number": "+6591234567",
                          "place_of_birth": "Singapore",
                          "created_by": {
                            "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                            "display_name": "TestingSG",
                            "first_name": "QA",
                            "last_name": "SG"
                          },
                          "created_at": "2025-05-26T15:46:37+08:00",
                          "updated_at": "2025-05-26T15:46:37+08:00"
                        },
                        {
                          "id": "9f0083c0-2313-4a55-a2a1-ffd9de7f54b4",
                          "status": "pending",
                          "entity_type": "individual",
                          "full_name": "Guadalupe Prohaska",
                          "email": null,
                          "address": {
                            "city": "Singapore",
                            "state": "Singapore",
                            "country": "sg",
                            "postal_code": "238888",
                            "street_address": "123 Orchard Rd"
                          },
                          "id_type": "national_id",
                          "id_number": "A1748245592",
                          "nationality": "sg",
                          "company_name": "Robel LLC",
                          "date_of_birth": "1990-01-01",
                          "contact_number": "+6591234567",
                          "place_of_birth": "Singapore",
                          "created_by": {
                            "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                            "display_name": "TestingSG",
                            "first_name": "QA",
                            "last_name": "SG"
                          },
                          "created_at": "2025-05-26T15:46:32+08:00",
                          "updated_at": "2025-05-26T15:46:32+08:00"
                        },
                        {
                          "id": "9eba1413-09be-4893-a0f0-9acbbdf5ba6e",
                          "status": "pending",
                          "entity_type": "company",
                          "full_name": "Ms. Dana Abbott",
                          "email": null,
                          "address": {
                            "city": "Singapore",
                            "state": "Singapore",
                            "country": "sg",
                            "postal_code": "238888",
                            "street_address": "123 Orchard Rd"
                          },
                          "id_type": "national_id",
                          "id_number": "A1745220378",
                          "nationality": "sg",
                          "company_name": "Acme Corporation",
                          "date_of_birth": "1990-01-01",
                          "contact_number": "+6591234567",
                          "place_of_birth": "Singapore",
                          "created_by": {
                            "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                            "display_name": "TestingSG",
                            "first_name": "QA",
                            "last_name": "SG"
                          },
                          "created_at": "2025-04-21T15:26:18+08:00",
                          "updated_at": "2025-04-21T15:26:18+08:00"
                        },
                        {
                          "id": "9eb9b915-d16c-4458-b13a-b836693c55e2",
                          "status": "pending",
                          "entity_type": "individual",
                          "full_name": "Lyle Greenholt",
                          "email": null,
                          "address": {
                            "city": "Singapore",
                            "state": "Singapore",
                            "country": "sg",
                            "postal_code": "238888",
                            "street_address": "123 Orchard Rd"
                          },
                          "id_type": "national_id",
                          "id_number": "A1745205113",
                          "nationality": "sg",
                          "company_name": "Acme Corporation",
                          "date_of_birth": "1990-01-01",
                          "contact_number": "+6591234567",
                          "place_of_birth": "Singapore",
                          "created_by": {
                            "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                            "display_name": "TestingSG",
                            "first_name": "QA",
                            "last_name": "SG"
                          },
                          "created_at": "2025-04-21T11:11:53+08:00",
                          "updated_at": "2025-04-21T11:11:53+08:00"
                        },
                        {
                          "id": "9e74249c-5831-4f06-b5bf-bd466d85aeb6",
                          "status": "pending",
                          "entity_type": "company",
                          "full_name": "Emilio Yundt",
                          "email": "email@gmail.com",
                          "address": {
                            "city": "Singapore",
                            "state": "Singapore",
                            "country": "sg",
                            "postal_code": "089109",
                            "street_address": "1 Keong Saik Road"
                          },
                          "id_type": "passport",
                          "id_number": "FB123456",
                          "nationality": "sg",
                          "company_name": "HitPay",
                          "date_of_birth": "1990-10-28",
                          "contact_number": "+6598644718",
                          "place_of_birth": "Singapore",
                          "created_by": {
                            "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                            "display_name": "TestingSG",
                            "first_name": "QA",
                            "last_name": "SG"
                          },
                          "created_at": "2025-03-17T21:04:36+08:00",
                          "updated_at": "2025-03-17T21:04:36+08:00"
                        },
                        {
                          "id": "9e742406-edfd-4ba9-afc4-3f14f3abd41b",
                          "status": "pending",
                          "entity_type": "company",
                          "full_name": "Carolyn Barrows",
                          "email": "email@gmail.com",
                          "address": {
                            "city": "Singapore",
                            "state": "Singapore",
                            "country": "sg",
                            "postal_code": "089109111111111",
                            "street_address": "1 Keong Saik Road"
                          },
                          "id_type": "passport",
                          "id_number": "FB123456",
                          "nationality": "sg",
                          "company_name": "HitPay",
                          "date_of_birth": "1990-10-28",
                          "contact_number": "+6598644718",
                          "place_of_birth": "Singapore",
                          "created_by": {
                            "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                            "display_name": "TestingSG",
                            "first_name": "QA",
                            "last_name": "SG"
                          },
                          "created_at": "2025-03-17T21:02:58+08:00",
                          "updated_at": "2025-03-17T21:02:58+08:00"
                        },
                        {
                          "id": "9e7423d8-4304-447b-87a6-9c195a7cf443",
                          "status": "pending",
                          "entity_type": "company",
                          "full_name": "Connie Fahey",
                          "email": "email@gmail.com",
                          "address": {
                            "city": "Singapore",
                            "state": "Singapore",
                            "country": "sg",
                            "postal_code": "089109",
                            "street_address": "1 Keong Saik Road"
                          },
                          "id_type": "passport",
                          "id_number": "FB123456",
                          "nationality": "sg",
                          "company_name": "HitPay",
                          "date_of_birth": "1990-10-28",
                          "contact_number": "+659864471812444444",
                          "place_of_birth": "Singapore",
                          "created_by": {
                            "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                            "display_name": "TestingSG",
                            "first_name": "QA",
                            "last_name": "SG"
                          },
                          "created_at": "2025-03-17T21:02:27+08:00",
                          "updated_at": "2025-03-17T21:02:27+08:00"
                        },
                        {
                          "id": "9e7423b7-3650-4a78-a150-449735e435bf",
                          "status": "pending",
                          "entity_type": "company",
                          "full_name": "Phyllis Hessel Sr.",
                          "email": "email@gmail.com",
                          "address": {
                            "city": "Singapore",
                            "state": "Singapore",
                            "country": "sg",
                            "postal_code": "089109",
                            "street_address": "1 Keong Saik Road"
                          },
                          "id_type": "passport",
                          "id_number": "FB123456FB123456FB123456FB123456FB123456FB123456FB123456FB123456FB123456FB123456",
                          "nationality": "sg",
                          "company_name": "HitPay",
                          "date_of_birth": "1990-10-28",
                          "contact_number": "+6598644718",
                          "place_of_birth": "Singapore",
                          "created_by": {
                            "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                            "display_name": "TestingSG",
                            "first_name": "QA",
                            "last_name": "SG"
                          },
                          "created_at": "2025-03-17T21:02:06+08:00",
                          "updated_at": "2025-03-17T21:02:06+08:00"
                        },
                        {
                          "id": "9e7420f7-55f2-400d-ae8f-3db9f75b1f8f",
                          "status": "pending",
                          "entity_type": "company",
                          "full_name": "Test Sender",
                          "email": "email@gmail.com",
                          "address": {
                            "city": "Singapore",
                            "state": "Singapore",
                            "country": "sg",
                            "postal_code": "089109",
                            "street_address": "1 Keong Saik Road"
                          },
                          "id_type": "passport",
                          "id_number": "FB123456",
                          "nationality": "sg",
                          "company_name": "HitPay",
                          "date_of_birth": "1990-10-28",
                          "contact_number": "+6598644718",
                          "place_of_birth": "Singapore",
                          "created_by": {
                            "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                            "display_name": "TestingSG",
                            "first_name": "QA",
                            "last_name": "SG"
                          },
                          "created_at": "2025-03-17T20:54:24+08:00",
                          "updated_at": "2025-03-17T20:54:24+08:00"
                        }
                      ],
                      "links": {
                        "first": "https://api.sandbox.hit-pay.com/v1/remitters?page=1",
                        "last": "https://api.sandbox.hit-pay.com/v1/remitters?page=1",
                        "prev": null,
                        "next": null
                      },
                      "meta": {
                        "current_page": 1,
                        "from": 1,
                        "last_page": 1,
                        "links": [
                          {
                            "url": null,
                            "label": "&larr; Previous",
                            "active": false
                          },
                          {
                            "url": "https://api.sandbox.hit-pay.com/v1/remitters?page=1",
                            "label": "1",
                            "active": true
                          },
                          {
                            "url": null,
                            "label": "Next &rarr;",
                            "active": false
                          }
                        ],
                        "path": "https://api.sandbox.hit-pay.com/v1/remitters",
                        "per_page": 10,
                        "to": 10,
                        "total": 10
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "entity_type": {
                            "type": "string",
                            "enum": ["individual", "company"]
                          },
                          "full_name": {
                            "type": "string"
                          },
                          "email": {
                            "type": "string"
                          },
                          "address": {
                            "type": "object",
                            "properties": {
                              "city": {
                                "type": "string"
                              },
                              "state": {
                                "type": "string"
                              },
                              "country": {
                                "type": "string"
                              },
                              "postal_code": {
                                "type": "string"
                              },
                              "street_address": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "city",
                              "state",
                              "country",
                              "postal_code",
                              "street_address"
                            ]
                          },
                          "id_type": {
                            "type": "string",
                            "enum": [
                              "national_id",
                              "passport",
                              "driving_license"
                            ]
                          },
                          "id_number": {
                            "type": "string"
                          },
                          "nationality": {
                            "type": "string"
                          },
                          "company_name": {
                            "type": "string"
                          },
                          "date_of_birth": {
                            "type": "string"
                          },
                          "contact_number": {
                            "type": "string"
                          },
                          "place_of_birth": {
                            "type": "string"
                          },
                          "created_by": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "display_name": {
                                "type": "string"
                              },
                              "first_name": {
                                "type": "string"
                              },
                              "last_name": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "id",
                              "display_name",
                              "first_name",
                              "last_name"
                            ]
                          },
                          "created_at": {
                            "type": "string"
                          },
                          "updated_at": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "status",
                          "entity_type",
                          "full_name",
                          "address",
                          "id_type",
                          "id_number",
                          "nationality",
                          "company_name",
                          "date_of_birth",
                          "contact_number",
                          "place_of_birth",
                          "created_by",
                          "created_at",
                          "updated_at"
                        ]
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": "string"
                        },
                        "last": {
                          "type": "string"
                        },
                        "prev": {},
                        "next": {}
                      },
                      "required": ["first", "last", "prev", "next"]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "number"
                        },
                        "from": {
                          "type": "number"
                        },
                        "last_page": {
                          "type": "number"
                        },
                        "links": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": "string"
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": ["label", "active"]
                          }
                        },
                        "path": {
                          "type": "string"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "to": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total"
                      ]
                    }
                  },
                  "required": ["data", "links", "meta"]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/transfers?perPage=10' \\\n--header 'X-BUSINESS-API-KEY: apikey' \\\n--header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "post": {
        "summary": "Create new remitter",
        "description": "Create new remitter.",
        "operationId": "create-remitter",
        "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",
                "properties": {
                  "entity_type": {
                    "type": "string",
                    "enum": ["individual", "company"]
                  },
                  "full_name": {
                    "type": "string"
                  },
                  "id_number": {
                    "type": "string"
                  },
                  "id_type": {
                    "type": "string",
                    "enum": ["national_id", "passport", "driving_license"]
                  },
                  "date_of_birth": {
                    "type": "string",
                    "example": "1990-01-01"
                  },
                  "place_of_birth": {
                    "type": "string",
                    "example": "Singapore"
                  },
                  "nationality": {
                    "type": "string",
                    "example": "sg"
                  },
                  "contact_number": {
                    "type": "string",
                    "example": "+6591234567"
                  },
                  "email": {
                    "type": "string",
                    "format": "email"
                  },
                  "address": {
                    "type": "object",
                    "properties": {
                      "street_address": {
                        "type": "string",
                        "maxLength": 255
                      },
                      "city": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "state": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "postal_code": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "country": {
                        "type": "string",
                        "maxLength": 100
                      }
                    },
                    "required": [
                      "street_address",
                      "city",
                      "state",
                      "postal_code",
                      "country"
                    ]
                  },
                  "company_name": {
                    "type": "string",
                    "description": "It's required if entity_type is company."
                  }
                },
                "required": [
                  "entity_type",
                  "full_name",
                  "date_of_birth",
                  "address",
                  "nationality",
                  "contact_number"
                ]
              },
              "examples": {
                "Result": {
                  "value": {
                    "entity_type": "individual",
                    "full_name": "Saul Schumm",
                    "id_number": "A1748247986",
                    "id_type": "national_id",
                    "date_of_birth": "1990-01-01",
                    "place_of_birth": "Singapore",
                    "nationality": "sg",
                    "contact_number": "+6591234567",
                    "email": "test@gmail.com",
                    "address": {
                      "street_address": "123 Orchard Rd",
                      "city": "Singapore ",
                      "state": "Singapore",
                      "postal_code": "238888",
                      "country": "sg"
                    },
                    "company_name": "Ebert, Zulauf and Daugherty"
                  }
                }
              }
            }
          }
        },

        "responses": {
          "201": {
            "description": "201",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9f0092ca-4b7d-4e33-b503-9dd27b0807ba",
                      "status": "pending",
                      "entity_type": "individual",
                      "full_name": "Hilda Ferry",
                      "id_number": "A1748248115",
                      "id_type": "national_id",
                      "date_of_birth": "1990-01-01",
                      "place_of_birth": "Singapore",
                      "nationality": "sg",
                      "contact_number": "+6591234567",
                      "email": "test5@gmail.com",
                      "address": {
                        "street_address": "123 Orchard Rd",
                        "city": "Singapore",
                        "state": "Singapore",
                        "postal_code": "238888",
                        "country": "sg"
                      },
                      "company_name": "Abernathy Inc",
                      "created_by": {
                        "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                        "display_name": "TestingSG",
                        "first_name": "QA",
                        "last_name": "SG"
                      },
                      "created_at": "2025-05-26T16:28:35+08:00",
                      "updated_at": "2025-05-26T16:28:35+08:00"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "entity_type": {
                      "type": "string",
                      "enum": ["individual", "company"]
                    },
                    "full_name": {
                      "type": "string"
                    },
                    "id_number": {
                      "type": "string"
                    },
                    "id_type": {
                      "type": "string",
                      "enum": ["national_id", "passport", "driving_license"]
                    },
                    "date_of_birth": {
                      "type": "string"
                    },
                    "place_of_birth": {
                      "type": "string"
                    },
                    "nationality": {
                      "type": "string"
                    },
                    "contact_number": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "address": {
                      "type": "object",
                      "properties": {
                        "street_address": {
                          "type": "string"
                        },
                        "city": {
                          "type": "string"
                        },
                        "state": {
                          "type": "string"
                        },
                        "postal_code": {
                          "type": "string"
                        },
                        "country": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "street_address",
                        "city",
                        "state",
                        "postal_code",
                        "country"
                      ]
                    },
                    "company_name": {
                      "type": "string"
                    },
                    "created_by": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "display_name": {
                          "type": "string"
                        },
                        "first_name": {
                          "type": "string"
                        },
                        "last_name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "display_name",
                        "first_name",
                        "last_name"
                      ]
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "status",
                    "entity_type",
                    "full_name",
                    "id_number",
                    "id_type",
                    "date_of_birth",
                    "place_of_birth",
                    "nationality",
                    "contact_number",
                    "email",
                    "address",
                    "company_name",
                    "created_by",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "The entity type field is required. (and 10 more errors)",
                      "errors": {
                        "entity_type": ["The entity type field is required."],
                        "full_name": ["The full name field is required."],
                        "id_number": ["The id number field is required."],
                        "id_type": ["The id type field is required."],
                        "date_of_birth": [
                          "The date of birth field is required."
                        ],
                        "address": ["The address field is required."],
                        "address.street_address": [
                          "The address.street address field is required."
                        ],
                        "address.city": ["The address.city field is required."],
                        "address.state": [
                          "The address.state field is required."
                        ],
                        "address.postal_code": [
                          "The address.postal code field is required."
                        ],
                        "address.country": [
                          "The address.country field is required."
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/transfers' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest' \\\n --form ",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/remitters/{remitter_id}": {
      "get": {
        "summary": "Get remitter detail.",
        "description": "Get remitter detail",
        "operationId": "get-remitter",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "remitter_id",
            "in": "path",
            "description": "Remitter id",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "example": "9b294222-3a53-427f-9393-95dc6d63ee6c",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9f0092ca-4b7d-4e33-b503-9dd27b0807ba",
                      "status": "pending",
                      "entity_type": "individual",
                      "full_name": "Hilda Ferry",
                      "email": "test@gmail.com",
                      "address": {
                        "city": "Singapore",
                        "state": "Singapore",
                        "country": "sg",
                        "postal_code": "238888",
                        "street_address": "123 Orchard Rd"
                      },
                      "id_type": "national_id",
                      "id_number": "A1748248115",
                      "nationality": "sg",
                      "company_name": "Abernathy Inc",
                      "date_of_birth": "1990-01-01",
                      "contact_number": "+6591234567",
                      "place_of_birth": "Singapore",
                      "created_by": {
                        "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                        "display_name": "TestingSG",
                        "first_name": "QA",
                        "last_name": "SG"
                      },
                      "created_at": "2025-05-26T16:28:35+08:00",
                      "updated_at": "2025-05-26T16:28:35+08:00"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "entity_type": {
                      "type": "string",
                      "enum": ["individual", "company"]
                    },
                    "full_name": {
                      "type": "string"
                    },
                    "id_number": {
                      "type": "string"
                    },
                    "id_type": {
                      "type": "string",
                      "enum": ["national_id", "passport", "driving_license"]
                    },
                    "date_of_birth": {
                      "type": "string"
                    },
                    "place_of_birth": {
                      "type": "string"
                    },
                    "nationality": {
                      "type": "string"
                    },
                    "contact_number": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "address": {
                      "type": "object",
                      "properties": {
                        "street_address": {
                          "type": "string"
                        },
                        "city": {
                          "type": "string"
                        },
                        "state": {
                          "type": "string"
                        },
                        "postal_code": {
                          "type": "string"
                        },
                        "country": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "street_address",
                        "city",
                        "state",
                        "postal_code",
                        "country"
                      ]
                    },
                    "company_name": {
                      "type": "string"
                    },
                    "created_by": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "display_name": {
                          "type": "string"
                        },
                        "first_name": {
                          "type": "string"
                        },
                        "last_name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "display_name",
                        "first_name",
                        "last_name"
                      ]
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "status",
                    "entity_type",
                    "full_name",
                    "id_number",
                    "id_type",
                    "date_of_birth",
                    "place_of_birth",
                    "nationality",
                    "contact_number",
                    "email",
                    "address",
                    "company_name",
                    "created_by",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/transfers?perPage=10' \\\n--header 'X-BUSINESS-API-KEY: apikey' \\\n--header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "delete": {
        "summary": "Delete remitter",
        "description": "Delete remitter.",
        "operationId": "delete-remitter",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "remitter_id",
            "in": "path",
            "description": "Remitter id",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "example": "9b294222-3a53-427f-9393-95dc6d63ee6c",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "204",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9f0092ca-4b7d-4e33-b503-9dd27b0807ba",
                      "status": "pending",
                      "entity_type": "individual",
                      "full_name": "Hilda Ferry",
                      "id_number": "A1748248115",
                      "id_type": "national_id",
                      "date_of_birth": "1990-01-01",
                      "place_of_birth": "Singapore",
                      "nationality": "sg",
                      "contact_number": "+6591234567",
                      "email": "test5@gmail.com",
                      "address": {
                        "street_address": "123 Orchard Rd",
                        "city": "Singapore",
                        "state": "Singapore",
                        "postal_code": "238888",
                        "country": "sg"
                      },
                      "company_name": "Abernathy Inc",
                      "created_by": {
                        "id": "98566f58-1c76-4b8b-8f75-d20bba2bc7f8",
                        "display_name": "TestingSG",
                        "first_name": "QA",
                        "last_name": "SG"
                      },
                      "created_at": "2025-05-26T16:28:35+08:00",
                      "updated_at": "2025-05-26T16:28:35+08:00"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "No query results for model [App\\Business\\Remitter] 9f0092ca-4b7d-4e33-b503-9dd27b0807ba"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/transfers' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest' \\\n --form ",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/transfers": {
      "get": {
        "summary": "Get list of transfers",
        "description": "Get list of transfers",
        "operationId": "get-transfers",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "beneficiary_id",
            "in": "query",
            "description": "The Beneficiary id",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "keywords",
            "description": "The keywords to search by ID, beneficiary name and remark",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "description": "The status of the transfer",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": ["scheduled", "processing", "paid", "failed", "canceled"]
            }
          },

          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "data": [
                        {
                          "id": "9ec02ec7-a121-457f-9efc-1c4610fbe4e6",
                          "beneficiary": {
                            "id": "9ec01865-7af1-4937-813d-7801912d2cd1",
                            "status": "approved",
                            "country": "sg",
                            "currency": "sgd",
                            "transfer_method": "bank_transfer",
                            "transfer_type": "local",
                            "nickname": null,
                            "remark": null,
                            "holder_name": "John Test",
                            "holder_type": "individual",
                            "account_number": "1409828",
                            "bank_name": "BANK OF AMERICA",
                            "bank_id": "BOFASG2XXXX[7065]",
                            "email": null,
                            "bank_swift_code": "BOFASG2XXXX",
                            "is_favourite": false,
                            "created_at": "2025-04-24T15:13:22+08:00",
                            "updated_at": "2025-04-24T15:13:22+08:00",
                            "deleted_at": null
                          },
                          "payment_currency": "sgd",
                          "payment_amount": 20,
                          "source_currency": "usd",
                          "source_amount": 15.45,
                          "exchange_rate": "1.293876",
                          "fee": {
                            "amount": 0,
                            "currency": "usd",
                            "paid_by": "payer"
                          },
                          "remark": "Remark In deserunt voluptates aspernatur aut nisi occaecati.",
                          "reference": null,
                          "status": "scheduled",
                          "attachment": null,
                          "created_at": "2025-04-24T16:15:57+08:00"
                        },
                        {
                          "id": "9ec01866-a609-4ce4-a3d1-e3e230872509",
                          "beneficiary": {
                            "id": "9ec01865-7af1-4937-813d-7801912d2cd1",
                            "status": "approved",
                            "country": "sg",
                            "currency": "sgd",
                            "transfer_method": "bank_transfer",
                            "transfer_type": "local",
                            "nickname": null,
                            "remark": null,
                            "holder_name": "John Test",
                            "holder_type": "individual",
                            "account_number": "1409828",
                            "bank_name": "BANK OF AMERICA",
                            "bank_id": "BOFASG2XXXX[7065]",
                            "email": null,
                            "bank_swift_code": "BOFASG2XXXX",
                            "is_favourite": false,
                            "created_at": "2025-04-24T15:13:22+08:00",
                            "updated_at": "2025-04-24T15:13:22+08:00",
                            "deleted_at": null
                          },
                          "payment_currency": "sgd",
                          "payment_amount": 20,
                          "source_currency": "usd",
                          "source_amount": 15.45,
                          "exchange_rate": "1.293876",
                          "fee": {
                            "amount": 0,
                            "currency": "usd",
                            "paid_by": "payer"
                          },
                          "remark": "Remark Quia provident cumque molestiae corrupti molestiae.",
                          "reference": null,
                          "status": "scheduled",
                          "attachment": null,
                          "created_at": "2025-04-24T15:13:22+08:00"
                        }
                      ],
                      "links": {
                        "first": null,
                        "last": null,
                        "prev": null,
                        "next": null
                      },
                      "meta": {
                        "path": "https://api.sandbox.hit-pay.com/v1/transfers",
                        "per_page": 25,
                        "next_cursor": null,
                        "prev_cursor": null
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "beneficiary": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "status": {
                                "type": "string"
                              },
                              "country": {
                                "type": "string"
                              },
                              "currency": {
                                "type": "string"
                              },
                              "transfer_method": {
                                "type": "string"
                              },
                              "transfer_type": {
                                "type": "string"
                              },
                              "nickname": {
                                "type": "string"
                              },
                              "remark": {
                                "type": "string"
                              },
                              "holder_name": {
                                "type": "string"
                              },
                              "holder_type": {
                                "type": "string"
                              },

                              "bank_branch_code": {
                                "type": "string"
                              },
                              "bank_routing_number": {
                                "type": "string"
                              },
                              "account_number": {
                                "type": "string"
                              },
                              "bank_name": {
                                "type": "string"
                              },
                              "bank_id": {
                                "type": "string"
                              },
                              "email": {
                                "type": "string"
                              },
                              "is_favourite": {
                                "type": "boolean"
                              },
                              "created_at": {
                                "type": "string"
                              },
                              "updated_at": {
                                "type": "string"
                              },
                              "deleted_at": {}
                            },
                            "required": [
                              "id",
                              "is_external",
                              "country",
                              "currency",
                              "transfer_method",
                              "nickname",
                              "remark",
                              "holder_name",
                              "holder_type",
                              "email",
                              "bank_routing_number",
                              "account_number",
                              "is_favourite",
                              "created_at",
                              "updated_at",
                              "deleted_at"
                            ]
                          },
                          "payment_currency": {
                            "type": "string"
                          },
                          "payment_amount": {
                            "type": "number"
                          },
                          "source_currency": {
                            "type": "string"
                          },
                          "source_amount": {
                            "type": "number"
                          },
                          "exchange_rate": {
                            "type": "string"
                          },
                          "fee": {
                            "type": "object",
                            "properties": {
                              "paid_by": {
                                "type": "string",
                                "enum": ["payer", "beneficiary"]
                              },
                              "amount": {
                                "type": "number"
                              },
                              "currency": {
                                "type": "string"
                              }
                            }
                          },
                          "discount_fee_rate": {
                            "type": "number"
                          },
                          "fixed_fee": {
                            "type": "number"
                          },
                          "discount_fee": {
                            "type": "number"
                          },
                          "remark": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "scheduled",
                              "processing",
                              "paid",
                              "failed",
                              "canceled"
                            ]
                          },
                          "attachment": {
                            "type": "string"
                          },
                          "created_at": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "beneficiary",
                          "payment_currency",
                          "payment_amount",
                          "source_currency",
                          "source_amount",
                          "exchange_rate",
                          "fixed_fee",
                          "discount_fee",
                          "discount_fee_rate",
                          "fee",
                          "status",
                          "remark",
                          "status",
                          "source_type",
                          "attachment",
                          "created_at"
                        ]
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {},
                        "last": {},
                        "prev": {},
                        "next": {
                          "type": "string"
                        }
                      },
                      "required": ["first", "last", "prev", "next"]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "path": {
                          "type": "string"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "next_cursor": {
                          "type": "string"
                        },
                        "prev_cursor": {}
                      },
                      "required": [
                        "path",
                        "per_page",
                        "next_cursor",
                        "prev_cursor"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/transfers?perPage=10' \\\n--header 'X-BUSINESS-API-KEY: apikey' \\\n--header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "post": {
        "summary": "Create a new transfer",
        "description": "Create a new transfer",
        "operationId": "create-transfer",
        "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",
                "properties": {
                  "beneficiary": {
                    "type": "object",
                    "description": "The beneficiary information. Only required if 'beneficiary_id' is not set. The payload depends on the country and payment method. Please refer `Create Beneficiary` for addtional fields",
                    "externalDocs": {
                      "description": "More info here",
                      "url": "https://docs.hitpayapp.com/apis/payout/create-beneficiary"
                    },
                    "properties": {
                      "country": {
                        "type": "string",
                        "description": "The country code",
                        "enum": ["sg", "bd", "ph", "vn", "au"]
                      },
                      "currency": {
                        "type": "string",
                        "description": "The currency code",
                        "enum": ["sgd", "bdt", "php", "vnd", "aud"]
                      },
                      "transfer_method": {
                        "type": "string",
                        "description": "The transfer method"
                      },
                      "transfer_type": {
                        "type": "string",
                        "description": "The transfer type",
                        "enum": ["local"],
                        "example": "local"
                      },
                      "holder_type": {
                        "type": "string",
                        "description": "The Holder Type",
                        "enum": ["individual"],
                        "example": "individual"
                      },
                      "holder_name": {
                        "type": "string",
                        "required": true,
                        "description": "The Holder Name",
                        "example": "John Doe",
                        "maxLength": 255
                      }
                    }
                  },
                  "beneficiary_id": {
                    "type": "string",
                    "required": "true",
                    "format": "uuid",
                    "description": "The Beneficiary id. Only required if 'beneficiary' is not set."
                  },
                  "source_currency": {
                    "type": "string",
                    "example": "sgd",
                    "description": "It is beneficiary bank account currency."
                  },
                  "source_amount": {
                    "type": "number",
                    "minimum": 1,
                    "description": "The amount to be transferred. Only required if 'payment_amount' is not set.",
                    "example": 112.42,
                    "format": "double"
                  },
                  "payment_amount": {
                    "type": "number",
                    "minimum": 1,
                    "description": "The amount to be transferred. Only required if `source_amount` is not set.",
                    "example": 10000.5,
                    "format": "double"
                  },
                  "remitter_id": {
                    "type": "string",
                    "description": "The remitter id. Only pass either `remitter` or `remitter_id`.",
                    "example": "9b294222-3a53-427f-9393-95dc6d63ee6c"
                  },
                  "remitter": {
                    "type": "object",
                    "description": "The remitter information. Only pass either `remitter` or `remitter_id`.",
                    "properties": {
                      "entity_type": {
                        "type": "string",
                        "example": "individual",
                        "enum": ["individual", "company"]
                      },
                      "full_name": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "John Doe"
                      },
                      "id_number": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "FB123456"
                      },
                      "id_type": {
                        "type": "string",
                        "example": "passport",
                        "enum": ["passport", "national_id", "driving_license"]
                      },
                      "date_of_birth": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "1990-01-01",
                        "format": "date"
                      },
                      "place_of_birth": {
                        "type": "string",
                        "example": "Singapore"
                      },
                      "nationality": {
                        "type": "string",
                        "description": "2 letter code, lowercase",
                        "minLength": 2,
                        "maxLength": 2,
                        "example": "sg"
                      },
                      "contact_number": {
                        "type": "string",
                        "maxLength": 100,
                        "example": "+6598765432"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "abc@gmail.com"
                      },
                      "address": {
                        "type": "object",
                        "properties": {
                          "street_address": {
                            "type": "string",
                            "maxLength": 255,
                            "example": "1 Keong Saik Road"
                          },
                          "city": {
                            "type": "string",
                            "maxLength": 100,
                            "example": "Singapore"
                          },
                          "state": {
                            "type": "string",
                            "maxLength": 100,
                            "example": "SG"
                          },
                          "postal_code": {
                            "type": "string",
                            "maxLength": 30,
                            "example": "089109"
                          },
                          "country": {
                            "type": "string",
                            "description": "2 letter code, lowercase",
                            "minLength": 2,
                            "maxLength": 2,
                            "example": "sg"
                          }
                        },
                        "required": ["street", "city", "state", "postcode"]
                      },
                      "company_name": {
                        "type": "string",
                        "maxLength": 255,
                        "description": "Only required if entity_type is company",
                        "example": "HitPay Pte Ltd"
                      }
                    }
                  },
                  "remark": {
                    "type": "string",
                    "maxLength": 120,
                    "description": "Transfer note for internal use only"
                  },
                  "reference": {
                    "type": "string",
                    "maxLength": 120,
                    "description": "The reference for the transfer"
                  }
                }
              },
              "examples": {
                "Result": {
                  "value": {
                    "beneficiary_id": "9e64eb6c-90dd-45e0-afaf-bd9fa0253674",
                    "source_currency": "sgd",
                    "source_amount": 112.42,
                    "payment_amount": 10000.5,
                    "remitter": {
                      "entity_type": "company",
                      "full_name": "Test Sender",
                      "id_number": "FB123456",
                      "id_type": "passport",
                      "date_of_birth": "1990-10-28",
                      "place_of_birth": "Singapore",
                      "nationality": "sg",
                      "contact_number": "+6598644718",
                      "email": "email@gmail.com",
                      "address": {
                        "street_address": "1 Keong Saik Road",
                        "city": "Singapore",
                        "state": "Singapore",
                        "postal_code": "089109",
                        "country": "sg"
                      },
                      "company_name": "HitPay"
                    }
                  }
                }
              }
            }
          }
        },

        "responses": {
          "201": {
            "description": "201",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9e64f9b8-0039-4bc1-bb98-be1c88212a7e",
                      "beneficiary": {
                        "id": "9e64eb6c-90dd-45e0-afaf-bd9fa0253674",
                        "status": "approved",
                        "country": "bd",
                        "currency": "bdt",
                        "transfer_method": "local",
                        "holder_name": "SHAH ALAM HERA",
                        "holder_type": "individual",
                        "account_number": "1503201781283001",
                        "bank_name": "BRAC Bank Ltd.",
                        "bank_id": "brc-20",
                        "email": null,
                        "bank_routing_number": "060261726",
                        "created_at": "2025-03-10T07:27:16+08:00",
                        "updated_at": "2025-03-10T07:27:18+08:00"
                      },
                      "payment_currency": "bdt",
                      "payment_amount": 10000.5,
                      "source_currency": "sgd",
                      "source_amount": 112.42,
                      "exchange_rate": "88.949505",
                      "fee": {
                        "amount": 0,
                        "currency": "sgd",
                        "paid_by": "payer"
                      },
                      "status": "scheduled",
                      "created_at": "2025-03-10T08:07:15+08:00"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "beneficiary": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "country": {
                          "type": "string"
                        },
                        "currency": {
                          "type": "string"
                        },
                        "transfer_method": {
                          "type": "string"
                        },
                        "holder_name": {
                          "type": "string"
                        },
                        "holder_type": {
                          "type": "string"
                        },
                        "account_number": {
                          "type": "string"
                        },
                        "bank_name": {
                          "type": "string"
                        },
                        "bank_id": {
                          "type": "string"
                        },
                        "email": {
                          "type": ["string", "null"]
                        },
                        "bank_routing_number": {
                          "type": "string"
                        },
                        "created_at": {
                          "type": "string"
                        },
                        "updated_at": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "status",
                        "country",
                        "currency",
                        "transfer_method",
                        "holder_name",
                        "holder_type",
                        "account_number",
                        "bank_name",
                        "bank_id",
                        "email",
                        "bank_routing_number",
                        "created_at",
                        "updated_at"
                      ]
                    },
                    "payment_currency": {
                      "type": "string"
                    },
                    "payment_amount": {
                      "type": "number"
                    },
                    "source_currency": {
                      "type": "string"
                    },
                    "source_amount": {
                      "type": "number"
                    },
                    "exchange_rate": {
                      "type": "string"
                    },
                    "fee": {
                      "type": "object",
                      "properties": {
                        "amount": {
                          "type": "number"
                        },
                        "currency": {
                          "type": "string"
                        },
                        "paid_by": {
                          "type": "string",
                          "enum": ["payer", "beneficiary"]
                        }
                      },
                      "required": ["amount", "currency", "paid_by"]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "scheduled",
                        "processing",
                        "paid",
                        "failed",
                        "canceled"
                      ]
                    },
                    "created_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "beneficiary",
                    "payment_currency",
                    "payment_amount",
                    "source_currency",
                    "source_amount",
                    "exchange_rate",
                    "fee",
                    "status",
                    "created_at"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "The beneficiary id field is required when beneficiary is not present. (and 4 more errors)",
                      "errors": {
                        "beneficiary_id": [
                          "The beneficiary id field is required when beneficiary is not present."
                        ],
                        "beneficiary": [
                          "The beneficiary field is required when beneficiary id is not present."
                        ],
                        "source_currency": [
                          "The source currency field is required."
                        ],
                        "source_amount": [
                          "The source amount field is required when payment amount is not present."
                        ],
                        "payment_amount": [
                          "The payment amount field is required when source amount is not present."
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/transfers' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest' \\\n --form ",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/transfers/{transfer_id}": {
      "get": {
        "summary": "Get transfer by ID",
        "description": "Get transfer by ID",
        "operationId": "get-transfer-detail",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "transfer_id",
            "in": "path",
            "description": "The Beneficiary id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9eb3d44a-bb68-4107-b445-cc61cd27607c",
                      "beneficiary": {
                        "id": "9eb3d3ff-3fb0-450e-bb61-7c0753974398",
                        "status": "approved",
                        "country": "sg",
                        "currency": "sgd",
                        "transfer_method": "bank_transfer",
                        "transfer_type": "local",
                        "nickname": "Test QA",
                        "remark": "Test QA",
                        "holder_name": "Test QA",
                        "holder_type": "individual",
                        "bank_branch_code": "001",
                        "account_number": "173737377",
                        "bank_name": "AMERICAN EXPRESS BANK LTD",
                        "bank_id": "AEIBSGSXXXX[7454]",
                        "email": "test@gmail.com",
                        "is_favourite": true,
                        "created_at": "2025-04-18T12:52:10+08:00",
                        "updated_at": "2025-04-18T12:52:10+08:00",
                        "deleted_at": null
                      },
                      "payment_currency": "sgd",
                      "payment_amount": 100,
                      "source_currency": "sgd",
                      "source_amount": 100,
                      "exchange_rate": "1.00000",
                      "fee": {
                        "amount": 10,
                        "currency": "sgd",
                        "paid_by": "payer"
                      },
                      "discount_fee_rate": 0,
                      "fixed_fee": 0,
                      "discount_fee": 0,
                      "remark": "Tessting Remark",
                      "status": "scheduled",
                      "attachment": "https://hitpay-sandbox-public.s3.ap-southeast-1.amazonaws.com/transfer-attachments/9eb3d44a-bb68-4107-b445-cc61cd27607c/9eb3d44ae7034b2a9e6feb52d3da185d.jpg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAZ4FHSA4HSL4WZS7J%2F20250418%2Fap-southeast-1%2Fs3%2Faws4_request&X-Amz-Date=20250418T045412Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=c2057c3ce12abaf669effe9e685b8d1d082bb8b2ce64998bfa009fcd1151ff87",
                      "created_by": null,
                      "approved_by": null,
                      "rejected_by": null,
                      "created_at": "2025-04-18T12:53:00+08:00"
                    }
                  }
                },
                "schema": {
                  "$schema": "http://json-schema.org/draft-07/schema#",
                  "title": "Generated schema for Root",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "beneficiary": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "country": {
                          "type": "string"
                        },
                        "currency": {
                          "type": "string"
                        },
                        "transfer_method": {
                          "type": "string"
                        },
                        "transfer_type": {
                          "type": "string"
                        },
                        "nickname": {
                          "type": "string"
                        },
                        "remark": {
                          "type": ["string", "null"]
                        },
                        "holder_name": {
                          "type": "string"
                        },
                        "holder_type": {
                          "type": "string"
                        },
                        "bank_branch_code": {
                          "type": "string"
                        },
                        "account_number": {
                          "type": "string"
                        },
                        "bank_name": {
                          "type": "string"
                        },
                        "bank_id": {
                          "type": "string"
                        },
                        "email": {
                          "type": "string"
                        },
                        "is_favourite": {
                          "type": "boolean"
                        },
                        "created_at": {
                          "type": "string"
                        },
                        "updated_at": {
                          "type": "string"
                        },
                        "deleted_at": {
                          "type": ["string", "null"]
                        }
                      },
                      "required": [
                        "id",
                        "status",
                        "country",
                        "currency",
                        "transfer_method",
                        "transfer_type",
                        "nickname",
                        "remark",
                        "holder_name",
                        "holder_type",
                        "bank_branch_code",
                        "account_number",
                        "bank_name",
                        "bank_id",
                        "email",
                        "is_favourite",
                        "created_at",
                        "updated_at",
                        "deleted_at"
                      ]
                    },
                    "payment_currency": {
                      "type": "string"
                    },
                    "payment_amount": {
                      "type": "number"
                    },
                    "source_currency": {
                      "type": "string"
                    },
                    "source_amount": {
                      "type": "number"
                    },
                    "exchange_rate": {
                      "type": "string"
                    },
                    "fee": {
                      "type": "object",
                      "properties": {
                        "amount": {
                          "type": "number"
                        },
                        "currency": {
                          "type": "string"
                        },
                        "paid_by": {
                          "type": "string",
                          "enum": ["payer", "beneficiary"]
                        }
                      },
                      "required": ["amount", "currency", "paid_by"]
                    },
                    "discount_fee_rate": {
                      "type": "number"
                    },
                    "fixed_fee": {
                      "type": "number"
                    },
                    "discount_fee": {
                      "type": "number"
                    },

                    "remark": {
                      "type": ["string", "null"]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "scheduled",
                        "processing",
                        "paid",
                        "failed",
                        "canceled"
                      ]
                    },
                    "attachment": {
                      "type": ["string", "null"]
                    },
                    "created_by": {
                      "type": ["object", "null"]
                    },
                    "approved_by": {
                      "type": ["object", "null"]
                    },
                    "rejected_by": {
                      "type": ["object", "null"]
                    },
                    "created_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "beneficiary",
                    "payment_currency",
                    "payment_amount",
                    "source_currency",
                    "source_amount",
                    "exchange_rate",
                    "fee",
                    "discount_fee_rate",
                    "fixed_fee",
                    "discount_fee",
                    "remark",
                    "status",
                    "attachment",
                    "created_by",
                    "approved_by",
                    "rejected_by",
                    "created_at"
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/transfers/99f01cd1-b111-4ba5-8887-c89d7dffeaec' \\\n--header 'X-BUSINESS-API-KEY: apikey' \\\n--header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/transfers/estimate": {
      "post": {
        "summary": "Estimate transfer fees",
        "description": "",
        "operationId": "estimate-fee",
        "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": ["beneficiary_id", "source_currency"],
                "properties": {
                  "beneficiary_id": {
                    "type": "string",
                    "description": "The Beneficiary id",
                    "examples": "9ad4789a-c864-48a6-a657-7fdfc57ba1fc"
                  },
                  "source_currency": {
                    "type": "string",
                    "example": "sgd",
                    "description": "The supported currency. "
                  },
                  "source_amount": {
                    "type": "number",
                    "minimum": 1,
                    "description": "The amount to be transferred. Only required if 'payment_amount' is not set.",
                    "example": 112.42,
                    "format": "double"
                  },
                  "payment_amount": {
                    "type": "number",
                    "minimum": 1,
                    "description": "The amount to be transferred. Only required if 'source_amount' is not set.",
                    "example": 10000.5,
                    "format": "double"
                  }
                }
              },
              "examples": {
                "Result": {
                  "value": {
                    "beneficiary_id": "9e3320ed-a47b-495b-8e60-e1b1347eb3e8",
                    "source_currency": "sgd",
                    "source_amount": 100
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "source_amount": 100,
                      "source_amount_fees": 0,
                      "source_currency": "sgd",
                      "exchange_rate": "1",
                      "fx_pair": "sgdsgd",
                      "payment_amount": 100,
                      "payment_amount_fees": 0,
                      "payment_currency": "sgd",
                      "fee_payer": "beneficiary",
                      "fee_currency": "sgd"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "source_amount": {
                      "type": "number"
                    },
                    "source_amount_fees": {
                      "type": "number"
                    },
                    "source_currency": {
                      "type": "string"
                    },
                    "exchange_rate": {
                      "type": "string"
                    },
                    "fx_pair": {
                      "type": "string"
                    },
                    "payment_amount": {
                      "type": "number"
                    },
                    "payment_amount_fees": {
                      "type": "number"
                    },
                    "fee_payer": {
                      "type": "string",
                      "enum": ["payer", "beneficiary"]
                    },
                    "fee_currency": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "source_amount",
                    "source_amount_fees",
                    "source_currency",
                    "exchange_rate",
                    "payment_amount",
                    "payment_amount_fees",
                    "payment_currency"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "The beneficiary id field is required. (and 3 more errors)",
                      "errors": {
                        "beneficiary_id": [
                          "The beneficiary id field is required."
                        ],
                        "source_currency": [
                          "The source currency field is required."
                        ],
                        "source_amount": [
                          "The source amount field is required when payment amount is not present."
                        ],
                        "payment_amount": [
                          "The payment amount field is required when source amount is not present."
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/transfers/estimate' \\\n--header 'X-BUSINESS-API-KEY: apikey' \\\n--header 'X-Requested-With: XMLHttpRequest' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"beneficiary_id\": \"9a3d60cb-2c8d-4050-abd0-bbd6725acb3e\",\n    \"source_currency\": \"sgd\",\n    \"source_amount\": 129,\n    \"payment_amount\": 100\n}'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/customers": {
      "get": {
        "summary": "Get All Customers",
        "description": "This endpoint allows you to retrieve all customers",
        "operationId": "get-all-customers",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {}
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "birth_date": {
                            "type": "string"
                          },
                          "gender": {
                            "type": "string"
                          },
                          "email": {
                            "type": "string"
                          },
                          "phone_number": {
                            "type": "string"
                          },
                          "address": {
                            "type": "object",
                            "properties": {
                              "city": {
                                "type": "string"
                              },
                              "state": {
                                "type": "string"
                              },
                              "street": {
                                "type": "string"
                              },
                              "postal_code": {
                                "type": "string"
                              },
                              "country": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "city",
                              "state",
                              "street",
                              "postal_code"
                            ]
                          },
                          "remark": {
                            "type": "string"
                          },
                          "phone_number_country_code": {
                            "type": "string"
                          },
                          "created_at": {
                            "type": "string"
                          },
                          "updated_at": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "birth_date",
                          "gender",
                          "email",
                          "phone_number",
                          "address",
                          "remark",
                          "phone_number_country_code",
                          "created_at",
                          "updated_at"
                        ]
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {},
                        "last": {},
                        "prev": {},
                        "next": {
                          "type": "string"
                        }
                      },
                      "required": ["first", "last", "prev", "next"]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "path": {
                          "type": "string"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "next_cursor": {
                          "type": "string"
                        },
                        "prev_cursor": {}
                      },
                      "required": [
                        "path",
                        "per_page",
                        "next_cursor",
                        "prev_cursor"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/customers' \\\n--header 'X-BUSINESS-API-KEY: apikey' \\\n--header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "post": {
        "summary": "Create a customer",
        "description": "This endpoint allows you to create a customer. The customer will be created with the provided details and will be returned in the response.",
        "operationId": "create-customer",
        "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": ["email", "phone_number"],
                "properties": {
                  "name": {
                    "type": "string",
                    "examples": ["John Doe"],
                    "description": "The name of the customer"
                  },
                  "email": {
                    "type": "string",
                    "description": "The email of the customer",
                    "format": "email"
                  },
                  "phone_number": {
                    "type": "string",
                    "description": "The phone number of the customer"
                  },
                  "phone_number_country_code": {
                    "type": "string",
                    "description": "The country code of the phone number"
                  },
                  "remark": {
                    "type": "string",
                    "description": "The remark of the customer",
                    "maxLength": 255
                  },
                  "birth_date": {
                    "type": "string",
                    "format": "date",
                    "description": "The birth date of the customer"
                  },
                  "gender": {
                    "type": "string",
                    "description": "The gender of the customer"
                  },
                  "address": {
                    "type": "object",
                    "properties": {
                      "city": {
                        "type": "string"
                      },
                      "state": {
                        "type": "string"
                      },
                      "street": {
                        "type": "string"
                      },
                      "postal_code": {
                        "type": "string"
                      },
                      "country": {
                        "type": "string"
                      }
                    },
                    "required": ["city", "state", "street", "postal_code"]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9b2ada28-be3c-47ab-883f-ba72e5d8305d",
                      "name": "John Doe",
                      "birth_date": "<string>",
                      "email": "<string>",
                      "phone_number": "<string>",
                      "address": {
                        "city": "<string>",
                        "state": "<string>",
                        "street": "<string>",
                        "postal_code": "<string>",
                        "country": "<string>"
                      },
                      "gender": "<string>",
                      "remark": "<string>",
                      "phone_number_country_code": "<string>",
                      "created_at": "2024-01-24T16:05:10+08:00",
                      "updated_at": "2024-01-24T16:05:10+08:00"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "birth_date": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "phone_number": {
                      "type": "string"
                    },
                    "address": {
                      "type": "object",
                      "properties": {
                        "city": {
                          "type": "string"
                        },
                        "state": {
                          "type": "string"
                        },
                        "street": {
                          "type": "string"
                        },
                        "postal_code": {
                          "type": "string"
                        },
                        "country": {
                          "type": "string"
                        }
                      },
                      "required": ["city", "state", "street", "postal_code"]
                    },
                    "gender": {
                      "type": "string"
                    },
                    "remark": {
                      "type": "string"
                    },
                    "phone_number_country_code": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "birth_date",
                    "email",
                    "phone_number",
                    "address",
                    "gender",
                    "remark",
                    "phone_number_country_code",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/customer' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest' \\\n --form ",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/customers/{customer_id}": {
      "get": {
        "summary": "Get Customer Detail",
        "description": "A customer is a person or a company that is registered with HitPay. This endpoint allows you to retrieve a customer's details.",
        "operationId": "get-customer-details",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "customer_id",
            "in": "path",
            "description": "The Customer id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "201": {
            "description": "201",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9b2ada28-be3c-47ab-883f-ba72e5d8305d",
                      "name": "John Doe",
                      "birth_date": "<string>",
                      "email": "<string>",
                      "phone_number": "<string>",
                      "address": {
                        "city": "<string>",
                        "state": "<string>",
                        "street": "<string>",
                        "postal_code": "<string>",
                        "country": "<string>"
                      },
                      "gender": "<string>",
                      "remark": "<string>",
                      "phone_number_country_code": "<string>",
                      "created_at": "2024-01-24T16:05:10+08:00",
                      "updated_at": "2024-01-24T16:05:10+08:00"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "birth_date": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "phone_number": {
                      "type": "string"
                    },
                    "address": {
                      "type": "object",
                      "properties": {
                        "city": {
                          "type": "string"
                        },
                        "state": {
                          "type": "string"
                        },
                        "street": {
                          "type": "string"
                        },
                        "postal_code": {
                          "type": "string"
                        },
                        "country": {
                          "type": "string"
                        }
                      },
                      "required": ["city", "state", "street", "postal_code"]
                    },
                    "gender": {
                      "type": "string"
                    },
                    "remark": {
                      "type": "string"
                    },
                    "phone_number_country_code": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "birth_date",
                    "email",
                    "phone_number",
                    "address",
                    "gender",
                    "remark",
                    "phone_number_country_code",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\Customer] 973ee456-d28f-4418-93c5-d37e4b311685\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\Customer] 973ee456-d28f-4418-93c5-d37e4b311685"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/customers/9b29471a-17bf-4332-835b-a6af8e0cc430' \\\n--header 'X-BUSINESS-API-KEY: apikey' \\\n--header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "patch": {
        "summary": "Update Customer",
        "description": "This endpoint allows you to update a customer's details.",
        "operationId": "update-customer",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "customer_id",
            "in": "path",
            "description": "The Customer id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "examples": ["John Doe"],
                    "description": "The name of the customer"
                  },
                  "email": {
                    "type": "string",
                    "description": "The email of the customer"
                  },
                  "phone_number": {
                    "type": "string",
                    "description": "The phone number of the customer"
                  },
                  "phone_number_country_code": {
                    "type": "string",
                    "description": "The country code of the phone number"
                  },
                  "remark": {
                    "type": "string",
                    "description": "The remark of the customer"
                  },
                  "birth_date": {
                    "type": "string",
                    "format": "date",
                    "description": "The birth date of the customer"
                  },
                  "gender": {
                    "type": "string",
                    "description": "The gender of the customer"
                  },
                  "address": {
                    "type": "object",
                    "properties": {
                      "city": {
                        "type": "string"
                      },
                      "state": {
                        "type": "string"
                      },
                      "street": {
                        "type": "string"
                      },
                      "postal_code": {
                        "type": "string"
                      },
                      "country": {
                        "type": "string"
                      }
                    },
                    "required": ["city", "state", "street", "postal_code"]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9b2ada28-be3c-47ab-883f-ba72e5d8305d",
                      "name": "John Doe",
                      "birth_date": "<string>",
                      "email": "<string>",
                      "phone_number": "<string>",
                      "address": {
                        "city": "<string>",
                        "state": "<string>",
                        "street": "<string>",
                        "postal_code": "<string>",
                        "country": "<string>"
                      },
                      "gender": "<string>",
                      "remark": "<string>",
                      "phone_number_country_code": "<string>",
                      "created_at": "2024-01-24T16:05:10+08:00",
                      "updated_at": "2024-01-24T16:05:10+08:00"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "birth_date": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "phone_number": {
                      "type": "string"
                    },
                    "address": {
                      "type": "object",
                      "properties": {
                        "city": {
                          "type": "string"
                        },
                        "state": {
                          "type": "string"
                        },
                        "street": {
                          "type": "string"
                        },
                        "postal_code": {
                          "type": "string"
                        },
                        "country": {
                          "type": "string"
                        }
                      },
                      "required": ["city", "state", "street", "postal_code"]
                    },
                    "gender": {
                      "type": "string"
                    },
                    "remark": {
                      "type": "string"
                    },
                    "phone_number_country_code": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "birth_date",
                    "email",
                    "phone_number",
                    "address",
                    "gender",
                    "remark",
                    "phone_number_country_code",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\Customer] 973ee456-d28f-4418-93c5-d37e4b311685\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\Customer] 973ee456-d28f-4418-93c5-d37e4b311685"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/customer/9b2ada28-be3c-47ab-883f-ba72e5d8305d' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest' \\\n --form ",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "delete": {
        "summary": "Delete Customer",
        "description": "This endpoint allows you to delete a customer.",
        "operationId": "delete-customer",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "customer_id",
            "in": "path",
            "description": "The Customer id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "204",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "1"
                  }
                },
                "schema": {
                  "type": "integer",
                  "examples": [1],
                  "default": 0
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\Customer] 973ee456-d28f-4418-93c5-d37e4b311685\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\Customer] 973ee456-d28f-4418-93c5-d37e4b311685"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request DELETE 'https://api.sandbox.hit-pay.com/v1/customer/9b2ada28-be3c-47ab-883f-ba72e5d8305d' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/products": {
      "get": {
        "summary": "Get All Products",
        "description": "This endpoint allows you to retrieve all products. You can also filter the products by name, category, and status.",
        "operationId": "get-all-products",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": ["draft", "published"]
              }
            }
          },
          {
            "name": "categories",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid",
                "example": ["9bbbd5f4-8e48-45e3-bb24-cc3baa060793"]
              }
            }
          },
          {
            "name": "source",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": ["shopify", "wooCommerce"]
              }
            }
          },
          {
            "name": "inventory",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": ["in_stock", "out_of_stock"]
              }
            }
          },
          {
            "name": "location_ids",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid",
                "example": ["9bbbd5f4-8e48-45e3-bb24-cc3baa060793"]
              }
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": ["pos", "invoice", "online_store"]
              }
            }
          },
          {
            "name": "keywords",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "data": [
                        {
                          "id": "9a12fab4-d112-48af-9d6b-050d650b0a25",
                          "business_id": "9130c422-bf97-4bd1-b370-07a3a6f40708",
                          "category_id": [
                            "9a12fab0-d282-4437-9460-c3d26662d11a"
                          ],
                          "name": "Beanie",
                          "headline": null,
                          "description": "<p>Stylish hat suitable for the winter.</p>",
                          "currency": "SGD",
                          "price": 15,
                          "price_display": "SGD 15.00",
                          "price_stored": 1500,
                          "tax_id": null,
                          "is_manageable": 1,
                          "is_pinned": false,
                          "status": "published",
                          "product_weight": 250,
                          "delivery_method_required": true,
                          "has_variations": true,
                          "is_shopify": false,
                          "product_url": "<string>",
                          "variations_count": 2,
                          "variations": [
                            {
                              "id": "9a12fab4-d998-44ea-ad11-8753be88a1c9",
                              "stock_keeping_unit": null,
                              "description": "Medium",
                              "weight": null,
                              "length": null,
                              "width": null,
                              "depth": null,
                              "price": 18,
                              "price_display": "SGD 18.00",
                              "price_stored": 1800,
                              "quantity": 150,
                              "quantity_alert_level": 10,
                              "product_variation_weight": 250,
                              "variation_value_1": "Medium",
                              "variation_value_2": null,
                              "variation_value_3": null
                            },
                            {
                              "id": "9a12fab4-dd20-4f8f-9e74-de28629f863a",
                              "stock_keeping_unit": null,
                              "description": "Large",
                              "weight": null,
                              "length": null,
                              "width": null,
                              "depth": null,
                              "price": 20,
                              "price_display": "SGD 20.00",
                              "price_stored": 2000,
                              "quantity": 148,
                              "quantity_alert_level": 10,
                              "product_variation_weight": 255,
                              "variation_value_1": "Large",
                              "variation_value_2": null,
                              "variation_value_3": null
                            }
                          ],
                          "variation_key_1": "Size",
                          "variation_key_2": null,
                          "variation_key_3": null,
                          "images": [
                            {
                              "id": "9a12fab6-1e76-448e-8c45-e84e2e38f294",
                              "caption": "Beanie",
                              "url": "<string>",
                              "other_dimensions": [
                                {
                                  "size": "icon",
                                  "path": "<string>"
                                },
                                {
                                  "size": "large",
                                  "path": "<string>"
                                },
                                {
                                  "size": "small",
                                  "path": "<string>"
                                },
                                {
                                  "size": "medium",
                                  "path": "<string>"
                                },
                                {
                                  "size": "thumbnail",
                                  "path": "<string>"
                                }
                              ]
                            }
                          ],
                          "is_published": true,
                          "created_at": "2023-09-07T13:04:22+08:00",
                          "updated_at": "2023-09-18T14:36:54+08:00",
                          "starts_at": null,
                          "ends_at": null
                        }
                      ],
                      "links": {
                        "first": "<string>",
                        "last": "<string>",
                        "prev": null,
                        "next": "h<string>"
                      },
                      "meta": {
                        "current_page": 1,
                        "from": 1,
                        "last_page": 49,
                        "links": [],
                        "path": "<string>",
                        "per_page": 25,
                        "to": 25,
                        "total": 1214
                      }
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "business_id": {
                            "type": "string"
                          },
                          "category_id": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "name": {
                            "type": "string"
                          },
                          "headline": {
                            "type": "string",
                            "nullable": true
                          },
                          "description": {
                            "type": "string"
                          },
                          "currency": {
                            "type": "string"
                          },
                          "price": {
                            "type": "number"
                          },
                          "price_display": {
                            "type": "string"
                          },
                          "price_stored": {
                            "type": "integer"
                          },
                          "tax_id": {
                            "type": "string",
                            "nullable": true
                          },
                          "is_manageable": {
                            "type": "integer"
                          },
                          "is_pinned": {
                            "type": "boolean"
                          },
                          "status": {
                            "type": "string"
                          },
                          "product_weight": {
                            "type": "integer",
                            "description": "Weight in gram",
                            "nullable": true
                          },
                          "delivery_method_required": {
                            "type": "boolean"
                          },
                          "has_variations": {
                            "type": "boolean"
                          },
                          "is_shopify": {
                            "type": "boolean"
                          },
                          "product_url": {
                            "type": "string"
                          },
                          "variations_count": {
                            "type": "integer"
                          },
                          "variations": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "stock_keeping_unit": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "description": {
                                  "type": "string"
                                },
                                "weight": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "length": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "width": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "depth": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "price": {
                                  "type": "number"
                                },
                                "price_display": {
                                  "type": "string"
                                },
                                "price_stored": {
                                  "type": "integer"
                                },
                                "quantity": {
                                  "type": "integer"
                                },
                                "quantity_alert_level": {
                                  "type": "integer"
                                },
                                "product_variation_weight": {
                                  "type": "integer",
                                  "description": "Weight in gram",
                                  "nullable": true
                                },
                                "variation_value_1": {
                                  "type": "string"
                                },
                                "variation_value_2": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "variation_value_3": {
                                  "type": "string",
                                  "nullable": true
                                }
                              },
                              "required": [
                                "id",
                                "stock_keeping_unit",
                                "description",
                                "weight",
                                "length",
                                "width",
                                "depth",
                                "price",
                                "price_display",
                                "price_stored",
                                "quantity",
                                "quantity_alert_level",
                                "variation_value_1",
                                "variation_value_2",
                                "variation_value_3"
                              ]
                            }
                          },
                          "variation_key_1": {
                            "type": "string",
                            "nullable": true
                          },
                          "variation_key_2": {
                            "type": "string",
                            "nullable": true
                          },
                          "variation_key_3": {
                            "type": "string",
                            "nullable": true
                          },
                          "images": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string"
                                },
                                "caption": {
                                  "type": "string",
                                  "nullable": true
                                },
                                "url": {
                                  "type": "string"
                                },
                                "other_dimensions": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "size": {
                                        "type": "string"
                                      },
                                      "path": {
                                        "type": "string"
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "id",
                                "caption",
                                "url",
                                "other_dimensions"
                              ]
                            }
                          },
                          "is_published": {
                            "type": "boolean"
                          },
                          "created_at": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "updated_at": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "starts_at": {
                            "type": "string",
                            "format": "date-time",
                            "nullable": true
                          },
                          "ends_at": {
                            "type": "string",
                            "format": "date-time",
                            "nullable": true
                          }
                        },
                        "required": [
                          "id",
                          "business_id",
                          "category_id",
                          "name",
                          "description",
                          "currency",
                          "price",
                          "price_display",
                          "price_stored",
                          "is_manageable",
                          "is_pinned",
                          "status",
                          "has_variations",
                          "is_shopify",
                          "product_url",
                          "variations_count",
                          "variations",
                          "is_published",
                          "created_at",
                          "updated_at"
                        ]
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": "string"
                        },
                        "last": {
                          "type": "string"
                        },
                        "prev": {
                          "type": "string",
                          "nullable": true
                        },
                        "next": {
                          "type": "string",
                          "nullable": true
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer"
                        },
                        "from": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        },
                        "links": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": "string"
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            }
                          }
                        },
                        "path": {
                          "type": "string"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "to": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/products' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "post": {
        "summary": "Create a Product",
        "description": "This endpoint allows you to create a product.",
        "operationId": "create-product",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "Product Beanie",
                    "description": "The name of the product"
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of the product",
                    "example": "<p>Stylish hat suitable for the winter.</p>"
                  },
                  "barcode": {
                    "type": "string",
                    "description": "The barcode of the product",
                    "maxLength": 255,
                    "example": "1234567890123"
                  },
                  "headline": {
                    "type": "string",
                    "description": "The headline of the product",
                    "example": "Stylish hat suitable for the winter."
                  },
                  "stock_keeping_unit": {
                    "type": "string",
                    "description": "The stock keeping unit of the product",
                    "example": "SKU123456",
                    "maxLength": 255
                  },
                  "quantity": {
                    "type": "number",
                    "examples": 1,
                    "description": "The quantity of the product",
                    "minimum": 0
                  },
                  "quantity_alert_level": {
                    "type": "number",
                    "examples": 1,
                    "description": "The quantity alert level of the product. It is required when quantity alert level is present.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "The currency of the product",
                    "example": "sgd"
                  },
                  "price": {
                    "type": "number",
                    "description": "The price of the product",
                    "example": 15
                  },
                  "category_ids": {
                    "type": "array",
                    "description": "The list of business product category ids of the product",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "description": "The category ids of the product",
                      "example": "9a12fab0-d282-4437-9460-c3d26662d11a"
                    },
                    "example": ["9a12fab0-d282-4437-9460-c3d26662d11a"]
                  },
                  "channels": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": ["online_store", "pos", "invoice"],
                      "description": "The channels of the product"
                    }
                  },
                  "location_ids": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "description": "The location ids of the product",
                      "example": "9a12fab4-d112-48af-9d6b-050d650b0a25"
                    }
                  },
                  "locations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "description": "The location id of the product",
                          "example": "9a12fab4-d112-48af-9d6b-050d650b0a25"
                        },
                        "manage_inventory": {
                          "type": "string",
                          "description": "The manage inventory of the product",
                          "enum": ["1", "0"],
                          "default": "1"
                        },
                        "quantity": {
                          "type": "integer",
                          "description": "The quantity of the product",
                          "minimum": 0
                        },
                        "quantity_alert_level": {
                          "type": "integer",
                          "description": "The quantity alert level of the product",
                          "minimum": 0
                        }
                      }
                    }
                  },
                  "open_amount": {
                    "type": "string",
                    "description": "The open amount of the product",
                    "enum": ["1", "0"],
                    "default": "0"
                  },
                  "is_manageable": {
                    "type": "string",
                    "description": "The is manageable of the product",
                    "enum": ["1", "0"],
                    "default": "1"
                  },
                  "is_pinned": {
                    "type": "string",
                    "description": "The is pinned of the product",
                    "enum": ["1", "0"],
                    "default": "0"
                  },
                  "product_weight": {
                    "type": "integer",
                    "description": "Weight in gram",
                    "example": 250
                  },
                  "delivery_method_required": {
                    "type": "boolean",
                    "default": true
                  },
                  "variations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "image": {
                          "type": "string",
                          "format": "binary"
                        },
                        "price": {
                          "type": "number"
                        },
                        "quantity": {
                          "type": "integer"
                        },
                        "quantity_alert_level": {
                          "type": "integer"
                        },
                        "product_variation_weight": {
                          "type": "integer",
                          "description": "Weight in gram",
                          "nullable": true
                        },
                        "variation_value_1": {
                          "type": "string"
                        },
                        "variation_value_2": {
                          "type": "string",
                          "nullable": true
                        },
                        "variation_value_3": {
                          "type": "string",
                          "nullable": true
                        }
                      },
                      "required": ["price", "quantity", "quantity_alert_level"]
                    }
                  },
                  "image": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "image": {
                          "type": "string",
                          "format": "binary"
                        }
                      }
                    }
                  },
                  "publish": {
                    "type": "string",
                    "enum": ["1", "0"],
                    "default": "1"
                  }
                },
                "required": ["name", "price"]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9a12fab4-d112-48af-9d6b-050d650b0a25",
                      "business_id": "9130c422-bf97-4bd1-b370-07a3a6f40708",
                      "category_id": ["9a12fab0-d282-4437-9460-c3d26662d11a"],
                      "name": "Beanie",
                      "headline": null,
                      "description": "<p>Stylish hat suitable for the winter.</p>",
                      "currency": "SGD",
                      "price": 15,
                      "price_display": "SGD 15.00",
                      "price_stored": 1500,
                      "tax_id": null,
                      "is_manageable": 1,
                      "is_pinned": false,
                      "status": "published",
                      "product_weight": 250,
                      "delivery_method_required": true,
                      "has_variations": true,
                      "is_shopify": false,
                      "product_url": "<string>",
                      "variations_count": 2,
                      "variations": [
                        {
                          "id": "9a12fab4-d998-44ea-ad11-8753be88a1c9",
                          "stock_keeping_unit": null,
                          "description": "Medium",
                          "weight": null,
                          "length": null,
                          "width": null,
                          "depth": null,
                          "price": 18,
                          "price_display": "SGD 18.00",
                          "price_stored": 1800,
                          "quantity": 150,
                          "quantity_alert_level": 10,
                          "product_variation_weight": 250,
                          "variation_value_1": "Medium",
                          "variation_value_2": null,
                          "variation_value_3": null
                        },
                        {
                          "id": "9a12fab4-dd20-4f8f-9e74-de28629f863a",
                          "stock_keeping_unit": null,
                          "description": "Large",
                          "weight": null,
                          "length": null,
                          "width": null,
                          "depth": null,
                          "price": 20,
                          "price_display": "SGD 20.00",
                          "price_stored": 2000,
                          "quantity": 148,
                          "quantity_alert_level": 10,
                          "product_variation_weight": 255,
                          "variation_value_1": "Large",
                          "variation_value_2": null,
                          "variation_value_3": null
                        }
                      ],
                      "variation_key_1": "Size",
                      "variation_key_2": null,
                      "variation_key_3": null,
                      "images": [
                        {
                          "id": "9a12fab6-1e76-448e-8c45-e84e2e38f294",
                          "caption": "Beanie",
                          "url": "<string>",
                          "other_dimensions": [
                            {
                              "size": "icon",
                              "path": "<string>"
                            },
                            {
                              "size": "large",
                              "path": "<string>"
                            },
                            {
                              "size": "small",
                              "path": "<string>"
                            },
                            {
                              "size": "medium",
                              "path": "<string>"
                            },
                            {
                              "size": "thumbnail",
                              "path": "<string>"
                            }
                          ]
                        }
                      ],
                      "is_published": true,
                      "created_at": "2023-09-07T13:04:22+08:00",
                      "updated_at": "2023-09-18T14:36:54+08:00",
                      "starts_at": null,
                      "ends_at": null
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "business_id": {
                      "type": "string"
                    },
                    "category_id": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "name": {
                      "type": "string"
                    },
                    "headline": {
                      "type": "string",
                      "nullable": true
                    },
                    "description": {
                      "type": "string"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "price": {
                      "type": "number"
                    },
                    "price_display": {
                      "type": "string"
                    },
                    "price_stored": {
                      "type": "integer"
                    },
                    "tax_id": {
                      "type": "string",
                      "nullable": true
                    },
                    "is_manageable": {
                      "type": "integer"
                    },
                    "is_pinned": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": "string"
                    },
                    "product_weight": {
                      "type": "integer",
                      "description": "Weight in gram"
                    },
                    "delivery_method_required": {
                      "type": "boolean"
                    },
                    "has_variations": {
                      "type": "boolean"
                    },
                    "is_shopify": {
                      "type": "boolean"
                    },
                    "product_url": {
                      "type": "string"
                    },
                    "variations_count": {
                      "type": "integer"
                    },
                    "variations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "stock_keeping_unit": {
                            "type": "string",
                            "nullable": true
                          },
                          "description": {
                            "type": "string"
                          },
                          "weight": {
                            "type": "string",
                            "nullable": true
                          },
                          "length": {
                            "type": "string",
                            "nullable": true
                          },
                          "width": {
                            "type": "string",
                            "nullable": true
                          },
                          "depth": {
                            "type": "string",
                            "nullable": true
                          },
                          "price": {
                            "type": "number"
                          },
                          "price_display": {
                            "type": "string"
                          },
                          "price_stored": {
                            "type": "integer"
                          },
                          "quantity": {
                            "type": "integer"
                          },
                          "quantity_alert_level": {
                            "type": "integer"
                          },
                          "variation_value_1": {
                            "type": "string"
                          },
                          "product_variation_weight": {
                            "type": "integer",
                            "description": "Weight in gram"
                          },
                          "variation_value_2": {
                            "type": "string",
                            "nullable": true
                          },
                          "variation_value_3": {
                            "type": "string",
                            "nullable": true
                          }
                        },
                        "required": [
                          "id",
                          "stock_keeping_unit",
                          "description",
                          "weight",
                          "length",
                          "width",
                          "depth",
                          "price",
                          "price_display",
                          "price_stored",
                          "quantity",
                          "quantity_alert_level",
                          "variation_value_1",
                          "variation_value_2",
                          "variation_value_3"
                        ]
                      }
                    },
                    "variation_key_1": {
                      "type": "string",
                      "nullable": true
                    },
                    "variation_key_2": {
                      "type": "string",
                      "nullable": true
                    },
                    "variation_key_3": {
                      "type": "string",
                      "nullable": true
                    },
                    "images": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "caption": {
                            "type": "string",
                            "nullable": true
                          },
                          "url": {
                            "type": "string"
                          },
                          "other_dimensions": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "size": {
                                  "type": "string"
                                },
                                "path": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "required": ["id", "caption", "url", "other_dimensions"]
                      }
                    },
                    "is_published": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "starts_at": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "ends_at": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "business_id",
                    "category_id",
                    "name",
                    "description",
                    "currency",
                    "price",
                    "price_display",
                    "price_stored",
                    "is_manageable",
                    "is_pinned",
                    "status",
                    "has_variations",
                    "is_shopify",
                    "product_url",
                    "variations_count",
                    "variations",
                    "is_published",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\"message\":\"The given data was invalid.\",\"errors\":{\"name\":[\"The name field is required.\"]}}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request POST 'https://api.sandbox.hit-pay.com/v1/products' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\n--header 'X-Requested-With: XMLHttpRequest' \\n--header 'Content-Type: application/json' \\n--data-raw '{\"name\":\"Beanie\",\"headline\":\"\",\"description\":\"<p>Stylish hat suitable for the winter.</p>\",\"currency\":\"SGD\",\"price\":15,\"price_display\":\"SGD 15.00\",\"price_stored\":1500,\"tax_id\":null,\"is_manageable\":1,\"is_pinned\":false,\"status\":\"published\",\"has_variations\":true,\"is_shopify\":false,\"product_url\":\"<string>\",\"variations_count\":2,\"variations\":[{\"id\":\"9a12fab4-d998-44ea-ad11-8753be88a1c9\",\"stock_keeping_unit\":null,\"description\":\"Medium\",\"weight\":null,\"length\":null,\"width\":null,\"depth\":null,\"price\":18,\"price_display\":\"SGD 18.00\",\"price_stored\":1800,\"quantity\":150,\"quantity_alert_level\":10,\"variation_value_1\":\"Medium\",\"variation_value_2\":null,\"variation_value_3\":null},{\"id\":\"9a12fab4-dd20-4f8f-9e74-de28629f863a\",\"stock_keeping_unit\":null,\"description\":\"Large\",\"weight\":null,\"length\":null,\"width\":null,\"depth\":null,\"price\":20,\"price_display\":\"SGD 20.00\",\"price_stored\":2000,\"quantity\":148,\"quantity_alert_level\":10,\"variation_value_1\":\"Large\",\"variation_value_2\":null,\"variation_value_3\":null}],\"variation_key_1\":\"Size\",\"variation_key_2\":null,\"variation_key_3\":null,\"starts_at\":null,\"ends_at\":null}'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/products/{product_id}": {
      "get": {
        "summary": "Get Product Detail",
        "description": "This endpoint allows you to get a product detail.",
        "operationId": "get-product",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9a12fab4-d112-48af-9d6b-050d650b0a25",
                      "business_id": "9130c422-bf97-4bd1-b370-07a3a6f40708",
                      "category_id": ["9a12fab0-d282-4437-9460-c3d26662d11a"],
                      "name": "Beanie",
                      "headline": null,
                      "description": "<p>Stylish hat suitable for the winter.</p>",
                      "currency": "SGD",
                      "price": 15,
                      "price_display": "SGD 15.00",
                      "price_stored": 1500,
                      "tax_id": null,
                      "is_manageable": 1,
                      "is_pinned": false,
                      "status": "published",
                      "product_weight": 250,
                      "delivery_method_required": true,
                      "has_variations": true,
                      "is_shopify": false,
                      "product_url": "<string>",
                      "variations_count": 2,
                      "variations": [
                        {
                          "id": "9a12fab4-d998-44ea-ad11-8753be88a1c9",
                          "stock_keeping_unit": null,
                          "description": "Medium",
                          "weight": null,
                          "length": null,
                          "width": null,
                          "depth": null,
                          "price": 18,
                          "price_display": "SGD 18.00",
                          "price_stored": 1800,
                          "quantity": 150,
                          "quantity_alert_level": 10,
                          "product_variation_weight": 250,
                          "variation_value_1": "Medium",
                          "variation_value_2": null,
                          "variation_value_3": null
                        },
                        {
                          "id": "9a12fab4-dd20-4f8f-9e74-de28629f863a",
                          "stock_keeping_unit": null,
                          "description": "Large",
                          "weight": null,
                          "length": null,
                          "width": null,
                          "depth": null,
                          "price": 20,
                          "price_display": "SGD 20.00",
                          "price_stored": 2000,
                          "quantity": 148,
                          "quantity_alert_level": 10,
                          "product_variation_weight": 255,
                          "variation_value_1": "Large",
                          "variation_value_2": null,
                          "variation_value_3": null
                        }
                      ],
                      "variation_key_1": "Size",
                      "variation_key_2": null,
                      "variation_key_3": null,
                      "images": [
                        {
                          "id": "9a12fab6-1e76-448e-8c45-e84e2e38f294",
                          "caption": "Beanie",
                          "url": "<string>",
                          "other_dimensions": [
                            {
                              "size": "icon",
                              "path": "<string>"
                            },
                            {
                              "size": "large",
                              "path": "<string>"
                            },
                            {
                              "size": "small",
                              "path": "<string>"
                            },
                            {
                              "size": "medium",
                              "path": "<string>"
                            },
                            {
                              "size": "thumbnail",
                              "path": "<string>"
                            }
                          ]
                        }
                      ],
                      "is_published": true,
                      "created_at": "2023-09-07T13:04:22+08:00",
                      "updated_at": "2023-09-18T14:36:54+08:00",
                      "starts_at": null,
                      "ends_at": null
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "business_id": {
                      "type": "string"
                    },
                    "category_id": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "name": {
                      "type": "string"
                    },
                    "headline": {
                      "type": "string",
                      "nullable": true
                    },
                    "description": {
                      "type": "string"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "price": {
                      "type": "number"
                    },
                    "price_display": {
                      "type": "string"
                    },
                    "price_stored": {
                      "type": "integer"
                    },
                    "tax_id": {
                      "type": "string",
                      "nullable": true
                    },
                    "is_manageable": {
                      "type": "integer"
                    },
                    "is_pinned": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": "string"
                    },
                    "product_weight": {
                      "type": "integer",
                      "description": "Weight in gram",
                      "nullable": true
                    },
                    "delivery_method_required": {
                      "type": "boolean",
                      "nullable": true
                    },
                    "has_variations": {
                      "type": "boolean"
                    },
                    "is_shopify": {
                      "type": "boolean"
                    },
                    "product_url": {
                      "type": "string"
                    },
                    "variations_count": {
                      "type": "integer"
                    },
                    "variations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "stock_keeping_unit": {
                            "type": "string",
                            "nullable": true
                          },
                          "description": {
                            "type": "string"
                          },
                          "weight": {
                            "type": "string",
                            "nullable": true
                          },
                          "length": {
                            "type": "string",
                            "nullable": true
                          },
                          "width": {
                            "type": "string",
                            "nullable": true
                          },
                          "depth": {
                            "type": "string",
                            "nullable": true
                          },
                          "price": {
                            "type": "number"
                          },
                          "price_display": {
                            "type": "string"
                          },
                          "price_stored": {
                            "type": "integer"
                          },
                          "quantity": {
                            "type": "integer"
                          },
                          "quantity_alert_level": {
                            "type": "integer"
                          },
                          "product_variation_weight": {
                            "type": "integer",
                            "description": "Weight in gram",
                            "nullable": true
                          },
                          "variation_value_1": {
                            "type": "string"
                          },
                          "variation_value_2": {
                            "type": "string",
                            "nullable": true
                          },
                          "variation_value_3": {
                            "type": "string",
                            "nullable": true
                          }
                        },
                        "required": [
                          "id",
                          "stock_keeping_unit",
                          "description",
                          "weight",
                          "length",
                          "width",
                          "depth",
                          "price",
                          "price_display",
                          "price_stored",
                          "quantity",
                          "quantity_alert_level",
                          "variation_value_1",
                          "variation_value_2",
                          "variation_value_3"
                        ]
                      }
                    },
                    "variation_key_1": {
                      "type": "string",
                      "nullable": true
                    },
                    "variation_key_2": {
                      "type": "string",
                      "nullable": true
                    },
                    "variation_key_3": {
                      "type": "string",
                      "nullable": true
                    },
                    "images": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "caption": {
                            "type": "string",
                            "nullable": true
                          },
                          "url": {
                            "type": "string"
                          },
                          "other_dimensions": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "size": {
                                  "type": "string"
                                },
                                "path": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "required": ["id", "caption", "url", "other_dimensions"]
                      }
                    },
                    "is_published": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "starts_at": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "ends_at": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "business_id",
                    "category_id",
                    "name",
                    "description",
                    "currency",
                    "price",
                    "price_display",
                    "price_stored",
                    "is_manageable",
                    "is_pinned",
                    "status",
                    "has_variations",
                    "is_shopify",
                    "product_url",
                    "variations_count",
                    "variations",
                    "is_published",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\Product].\" 973ee456-d28f-4418-93c5-d37e4b311685\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request GET 'https://api.sandbox.hit-pay.com/v1/products/9a12fab4-d112-48af-9d6b-050d650b0a25' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\n--header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "post": {
        "summary": "Update the product",
        "description": "This endpoint allows you to update the product.",
        "operationId": "update-product",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "examples": ["Product Beanie"],
                    "description": "The name of the product"
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of the product"
                  },
                  "headline": {
                    "type": "string",
                    "description": "The headline of the product"
                  },
                  "quantity": {
                    "type": "number",
                    "examples": [1],
                    "description": "The quantity of the product",
                    "minimum": 0
                  },
                  "quantity_alert_level": {
                    "type": "number",
                    "examples": [1],
                    "description": "The quantity alert level of the product. It is required when quantity alert level is present.",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "description": "The currency of the product",
                    "example": "sgd"
                  },
                  "price": {
                    "type": "number",
                    "description": "The price of the product"
                  },
                  "category_ids": {
                    "type": "array",
                    "description": "The list of business product category ids of the product",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "description": "The category ids of the product",
                      "example": "9a12fab0-d282-4437-9460-c3d26662d11a"
                    },
                    "example": ["9a12fab0-d282-4437-9460-c3d26662d11a"]
                  },
                  "is_manageable": {
                    "type": "string",
                    "description": "The is manageable of the product",
                    "enum": ["1", "0"],
                    "default": "1"
                  },
                  "is_pinned": {
                    "type": "string",
                    "description": "The is pinned of the product",
                    "enum": ["1", "0"],
                    "default": "0"
                  },
                  "product_weight": {
                    "type": "integer",
                    "description": "Weight in gram",
                    "nullable": true
                  },
                  "delivery_method_required": {
                    "type": "boolean",
                    "nullable": true
                  },
                  "existing_variation": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "image": {
                          "type": "string",
                          "format": "binary"
                        },
                        "price": {
                          "type": "number"
                        },
                        "quantity": {
                          "type": "integer"
                        },
                        "quantity_alert_level": {
                          "type": "integer"
                        },
                        "product_variation_weight": {
                          "type": "integer",
                          "description": "Weight in gram",
                          "nullable": true
                        },
                        "variation_value_1": {
                          "type": "string"
                        },
                        "variation_value_2": {
                          "type": "string",
                          "nullable": true
                        },
                        "variation_value_3": {
                          "type": "string",
                          "nullable": true
                        }
                      },
                      "required": [
                        "id",
                        "price",
                        "quantity",
                        "quantity_alert_level"
                      ]
                    }
                  },
                  "images": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "image": {
                          "type": "string",
                          "format": "binary"
                        }
                      }
                    }
                  },
                  "publish": {
                    "type": "string",
                    "enum": ["1", "0"],
                    "default": "1"
                  },
                  "_method": {
                    "type": "string",
                    "default": "PATCH",
                    "value": "PATCH"
                  }
                },
                "required": ["name", "price"]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9a12fab4-d112-48af-9d6b-050d650b0a25",
                      "business_id": "9130c422-bf97-4bd1-b370-07a3a6f40708",
                      "category_id": ["9a12fab0-d282-4437-9460-c3d26662d11a"],
                      "name": "Beanie",
                      "headline": null,
                      "description": "<p>Stylish hat suitable for the winter.</p>",
                      "currency": "SGD",
                      "price": 15,
                      "price_display": "SGD 15.00",
                      "price_stored": 1500,
                      "tax_id": null,
                      "is_manageable": 1,
                      "is_pinned": false,
                      "status": "published",
                      "product_weight": 250,
                      "delivery_method_required": true,
                      "has_variations": true,
                      "is_shopify": false,
                      "product_url": "<string>",
                      "variations_count": 2,
                      "variations": [
                        {
                          "id": "9a12fab4-d998-44ea-ad11-8753be88a1c9",
                          "stock_keeping_unit": null,
                          "description": "Medium",
                          "weight": null,
                          "length": null,
                          "width": null,
                          "depth": null,
                          "price": 18,
                          "price_display": "SGD 18.00",
                          "price_stored": 1800,
                          "quantity": 150,
                          "quantity_alert_level": 10,
                          "product_variation_weight": 250,
                          "variation_value_1": "Medium",
                          "variation_value_2": null,
                          "variation_value_3": null
                        },
                        {
                          "id": "9a12fab4-dd20-4f8f-9e74-de28629f863a",
                          "stock_keeping_unit": null,
                          "description": "Large",
                          "weight": null,
                          "length": null,
                          "width": null,
                          "depth": null,
                          "price": 20,
                          "price_display": "SGD 20.00",
                          "price_stored": 2000,
                          "quantity": 148,
                          "quantity_alert_level": 10,
                          "product_variation_weight": 255,
                          "variation_value_1": "Large",
                          "variation_value_2": null,
                          "variation_value_3": null
                        }
                      ],
                      "variation_key_1": "Size",
                      "variation_key_2": null,
                      "variation_key_3": null,
                      "images": [
                        {
                          "id": "9a12fab6-1e76-448e-8c45-e84e2e38f294",
                          "caption": "Beanie",
                          "url": "<string>",
                          "other_dimensions": [
                            {
                              "size": "icon",
                              "path": "<string>"
                            },
                            {
                              "size": "large",
                              "path": "<string>"
                            },
                            {
                              "size": "small",
                              "path": "<string>"
                            },
                            {
                              "size": "medium",
                              "path": "<string>"
                            },
                            {
                              "size": "thumbnail",
                              "path": "<string>"
                            }
                          ]
                        }
                      ],
                      "is_published": true,
                      "created_at": "2023-09-07T13:04:22+08:00",
                      "updated_at": "2023-09-18T14:36:54+08:00",
                      "starts_at": null,
                      "ends_at": null
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "business_id": {
                      "type": "string"
                    },
                    "category_id": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "name": {
                      "type": "string"
                    },
                    "headline": {
                      "type": "string",
                      "nullable": true
                    },
                    "description": {
                      "type": "string"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "price": {
                      "type": "number"
                    },
                    "price_display": {
                      "type": "string"
                    },
                    "price_stored": {
                      "type": "integer"
                    },
                    "tax_id": {
                      "type": "string",
                      "nullable": true
                    },
                    "is_manageable": {
                      "type": "integer"
                    },
                    "is_pinned": {
                      "type": "boolean"
                    },
                    "status": {
                      "type": "string"
                    },
                    "has_variations": {
                      "type": "boolean"
                    },
                    "is_shopify": {
                      "type": "boolean"
                    },
                    "product_url": {
                      "type": "string"
                    },
                    "variations_count": {
                      "type": "integer"
                    },
                    "variations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "stock_keeping_unit": {
                            "type": "string",
                            "nullable": true
                          },
                          "description": {
                            "type": "string"
                          },
                          "weight": {
                            "type": "string",
                            "nullable": true
                          },
                          "length": {
                            "type": "string",
                            "nullable": true
                          },
                          "width": {
                            "type": "string",
                            "nullable": true
                          },
                          "depth": {
                            "type": "string",
                            "nullable": true
                          },
                          "price": {
                            "type": "number"
                          },
                          "price_display": {
                            "type": "string"
                          },
                          "price_stored": {
                            "type": "integer"
                          },
                          "quantity": {
                            "type": "integer"
                          },
                          "quantity_alert_level": {
                            "type": "integer"
                          },
                          "variation_value_1": {
                            "type": "string"
                          },
                          "variation_value_2": {
                            "type": "string",
                            "nullable": true
                          },
                          "variation_value_3": {
                            "type": "string",
                            "nullable": true
                          }
                        },
                        "required": [
                          "id",
                          "stock_keeping_unit",
                          "description",
                          "weight",
                          "length",
                          "width",
                          "depth",
                          "price",
                          "price_display",
                          "price_stored",
                          "quantity",
                          "quantity_alert_level",
                          "variation_value_1",
                          "variation_value_2",
                          "variation_value_3"
                        ]
                      }
                    },
                    "variation_key_1": {
                      "type": "string",
                      "nullable": true
                    },
                    "variation_key_2": {
                      "type": "string",
                      "nullable": true
                    },
                    "variation_key_3": {
                      "type": "string",
                      "nullable": true
                    },
                    "images": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "caption": {
                            "type": "string",
                            "nullable": true
                          },
                          "url": {
                            "type": "string"
                          },
                          "other_dimensions": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "size": {
                                  "type": "string"
                                },
                                "path": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        },
                        "required": ["id", "caption", "url", "other_dimensions"]
                      }
                    },
                    "is_published": {
                      "type": "boolean"
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "starts_at": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "ends_at": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "business_id",
                    "category_id",
                    "name",
                    "description",
                    "currency",
                    "price",
                    "price_display",
                    "price_stored",
                    "is_manageable",
                    "is_pinned",
                    "status",
                    "has_variations",
                    "is_shopify",
                    "product_url",
                    "variations_count",
                    "variations",
                    "is_published",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\"message\":\"The given data was invalid.\",\"errors\":{\"name\":[\"The name field is required.\"]}}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "errors": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request PATCH 'https://api.sandbox.hit-pay.com/v1/products/9a12fab4-d112-48af-9d6b-050d650b0a25' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\n--header 'X-Requested-With: XMLHttpRequest' \\n--header 'Content-Type: application/json' \\n--data-raw '{\"name\":\"Beanie\",\"headline\":\"\",\"description\":\"<p>Stylish hat suitable for the winter.</p>\",\"currency\":\"SGD\",\"price\":15,\"price_display\":\"SGD 15.00\",\"price_stored\":1500,\"tax_id\":null,\"is_manageable\":1,\"is_pinned\":false,\"status\":\"published\",\"has_variations\":true,\"is_shopify\":false,\"product_url\":\"<string>\",\"variations_count\":2,\"variations\":[{\"id\":\"9a12fab4-d998-44ea-ad11-8753be88a1c9\",\"stock_keeping_unit\":null,\"description\":\"Medium\",\"weight\":null,\"length\":null,\"width\":null,\"depth\":null,\"price\":18,\"price_display\":\"SGD 18.00\",\"price_stored\":1800,\"quantity\":150,\"quantity_alert_level\":10,\"variation_value_1\":\"Medium\",\"variation_value_2\":null,\"variation_value_3\":null},{\"id\":\"9a12fab4-dd20-4f8f-9e74-de28629f863a\",\"stock_keeping_unit\":null,\"description\":\"Large\",\"weight\":null,\"length\":null,\"width\":null,\"depth\":null,\"price\":20,\"price_display\":\"SGD 20.00\",\"price_stored\":2000,\"quantity\":148,\"quantity_alert_level\":10,\"variation_value_1\":\"Large\",\"variation_value_2\":null,\"variation_value_3\":null}],\"variation_key_1\":\"Size\",\"variation_key_2\":null,\"variation_key_3\":null,\"starts_at\":null\"}"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "delete": {
        "summary": "Delete a Product",
        "description": "This endpoint allows you to delete a product.",
        "operationId": "delete-product",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "204",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "1"
                  }
                },
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request DELETE 'https://api.sandbox.hit-pay.com/v1/products/9a12fab4-d112-48af-9d6b-050d650b0a25' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\n--header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/product-category": {
      "get": {
        "summary": "Get All Product Category",
        "description": "Use this API to get all product category",
        "operationId": "get-all-product-category",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 20,
              "example": 20
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1,
              "example": 1
            }
          },
          {
            "name": "active",
            "in": "query",
            "required": false,
            "description": "Filter by active status",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "name": "parent_id",
            "in": "query",
            "required": false,
            "description": "The parent category id, to list all subcategories of a parent category",
            "schema": {
              "type": "string",
              "example": "9a12fab0-d282-4437-9460-c3d26662d11a"
            }
          },
          {
            "name": "keywords",
            "in": "query",
            "required": false,
            "description": "Filter by keywords, name",
            "schema": {
              "type": "string",
              "example": "Beanie"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "example": "9d8cbab5-13fe-4102-8bf5-3b13668ab811"
                          },
                          "name": {
                            "type": "string",
                            "example": "mens hat example"
                          },
                          "description": {
                            "type": "string",
                            "nullable": true,
                            "example": "mens hat example"
                          },
                          "is_active": {
                            "type": "boolean",
                            "example": true
                          },
                          "order": {
                            "type": "integer",
                            "example": 1
                          },
                          "children": {
                            "type": "array",
                            "items": {
                              "type": "object"
                            },
                            "example": []
                          },
                          "is_parent": {
                            "type": "boolean",
                            "example": true
                          },
                          "image": {
                            "type": "object",
                            "nullable": true,
                            "properties": {
                              "id": {
                                "type": "string",
                                "format": "uuid"
                              },
                              "caption": {
                                "type": "string"
                              },
                              "alt_text": {
                                "type": "string",
                                "nullable": true
                              },
                              "group": {
                                "type": "string"
                              },
                              "order": {
                                "type": "integer"
                              },
                              "extension": {
                                "type": "string"
                              },
                              "status": {
                                "type": "string",
                                "nullable": true
                              },
                              "disk": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string"
                              },
                              "other_dimensions": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "size": {
                                      "type": "string"
                                    },
                                    "path": {
                                      "type": "string"
                                    }
                                  }
                                }
                              },
                              "urls": {
                                "type": "object",
                                "properties": {
                                  "icon": {
                                    "type": "string"
                                  },
                                  "large": {
                                    "type": "string"
                                  },
                                  "small": {
                                    "type": "string"
                                  },
                                  "medium": {
                                    "type": "string"
                                  },
                                  "thumbnail": {
                                    "type": "string"
                                  }
                                }
                              }
                            }
                          },
                          "emoji": {
                            "type": "string",
                            "nullable": true,
                            "example": "?"
                          },
                          "pos_color": {
                            "type": "string",
                            "nullable": true,
                            "example": "#4C689C"
                          }
                        }
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": "string",
                          "example": "https://api.sandbox.hit-pay.com/v1/product-category?page=1"
                        },
                        "last": {
                          "type": "string",
                          "example": "https://api.sandbox.hit-pay.com/v1/product-category?page=4"
                        },
                        "prev": {
                          "type": "string",
                          "nullable": true,
                          "example": null
                        },
                        "next": {
                          "type": "string",
                          "example": "https://api.sandbox.hit-pay.com/v1/product-category?page=2"
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "example": 1
                        },
                        "from": {
                          "type": "integer",
                          "example": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "example": 4
                        },
                        "links": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": "string",
                                "nullable": true
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            }
                          }
                        },
                        "path": {
                          "type": "string",
                          "example": "https://api.sandbox.hit-pay.com/v1/product-category"
                        },
                        "per_page": {
                          "type": "integer",
                          "example": 20
                        },
                        "to": {
                          "type": "integer",
                          "example": 20
                        },
                        "total": {
                          "type": "integer",
                          "example": 66
                        }
                      }
                    }
                  }
                },
                "example": {
                  "data": [
                    {
                      "id": "9d8cbab5-13fe-4102-8bf5-3b13668ab811",
                      "name": "mens hat example",
                      "description": "mens hat example",
                      "is_active": true,
                      "order": 1,
                      "children": [],
                      "is_parent": true,
                      "image": null,
                      "emoji": null,
                      "pos_color": null
                    }
                  ],
                  "links": {
                    "first": "https://api.sandbox.hit-pay.com/v1/product-category?page=1",
                    "last": "https://api.sandbox.hit-pay.com/v1/product-category?page=4",
                    "prev": null,
                    "next": "https://api.sandbox.hit-pay.com/v1/product-category?page=2"
                  },
                  "meta": {
                    "current_page": 1,
                    "from": 1,
                    "last_page": 4,
                    "links": [
                      {
                        "url": null,
                        "label": "&larr; Previous",
                        "active": false
                      },
                      {
                        "url": "https://api.sandbox.hit-pay.com/v1/product-category?page=2",
                        "label": "Next &rarr;",
                        "active": false
                      }
                    ],
                    "path": "https://api.sandbox.hit-pay.com/v1/product-category",
                    "per_page": 20,
                    "to": 20,
                    "total": 66
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/notifications": {
      "get": {
        "summary": "Get Notifications Setting",
        "description": "Use this API to get the notification setting",
        "operationId": "get-notification-setting",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": [
                      {
                        "event": "customer_receipt",
                        "channel": "email"
                      },
                      {
                        "event": "daily_collection",
                        "channel": "email"
                      },
                      {
                        "event": "daily_collection",
                        "channel": "push_notification"
                      },
                      {
                        "event": "daily_payout",
                        "channel": "email"
                      },
                      {
                        "event": "incoming_payment",
                        "channel": "email"
                      },
                      {
                        "event": "incoming_payment",
                        "channel": "push_notification"
                      },
                      {
                        "event": "new_order",
                        "channel": "email"
                      },
                      {
                        "event": "new_order",
                        "channel": "push_notification"
                      },
                      {
                        "event": "mall_gto_sync",
                        "channel": "email"
                      }
                    ]
                  }
                },
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "event": {
                        "type": "string"
                      },
                      "channel": {
                        "type": "string"
                      }
                    },
                    "required": ["event", "channel"]
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      },
      "put": {
        "summary": "Update Notifications Setting",
        "description": "Use this API to update the notification setting",
        "operationId": "update-notification-setting",
        "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",
                "properties": {
                  "customer_receipt@email": {
                    "type": "boolean",
                    "examples": [true]
                  },
                  "daily_collection@email": {
                    "type": "boolean",
                    "examples": [true]
                  },
                  "daily_collection@push_notification": {
                    "type": "boolean",
                    "examples": [true]
                  },
                  "daily_payout@email": {
                    "type": "boolean",
                    "examples": [true]
                  },
                  "incoming_payment@email": {
                    "type": "boolean",
                    "examples": [true]
                  },
                  "incoming_payment@push_notification": {
                    "type": "boolean",
                    "examples": [true]
                  },
                  "new_order@email": {
                    "type": "boolean",
                    "examples": [true]
                  },
                  "new_order@push_notification": {
                    "type": "boolean",
                    "examples": [true]
                  },
                  "pending_order@email": {
                    "type": "boolean",
                    "examples": [true]
                  },
                  "mall_gto_sync@email": {
                    "type": "boolean",
                    "examples": [true]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": [
                      {
                        "event": "customer_receipt",
                        "channel": "email"
                      },
                      {
                        "event": "daily_collection",
                        "channel": "email"
                      },
                      {
                        "event": "daily_collection",
                        "channel": "push_notification"
                      },
                      {
                        "event": "daily_payout",
                        "channel": "email"
                      },
                      {
                        "event": "incoming_payment",
                        "channel": "email"
                      },
                      {
                        "event": "incoming_payment",
                        "channel": "push_notification"
                      },
                      {
                        "event": "new_order",
                        "channel": "email"
                      },
                      {
                        "event": "new_order",
                        "channel": "push_notification"
                      }
                    ]
                  }
                },
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "event": {
                        "type": "string"
                      },
                      "channel": {
                        "type": "string"
                      }
                    },
                    "required": ["event", "channel"]
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      }
    },
    "/v1/webhook-events": {
      "get": {
        "summary": "Get All Webhook Events",
        "description": "This endpoint allows you to get all webhook events. The webhook event will listen to the event types that you specify and send a POST request to the URL that you specify.",
        "operationId": "get-webhook-events-list",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "business_id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "url": {
                        "type": "string"
                      },
                      "event_types": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "created_at": {
                        "type": "string"
                      },
                      "updated_at": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "business_id",
                      "name",
                      "url",
                      "event_types",
                      "created_at",
                      "updated_at"
                    ]
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/webhook-events' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest' \\\n --form ",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "post": {
        "summary": "Create a Webhook Event",
        "description": "This endpoint allows you to create a webhook event. The webhook event will listen to the event types that you specify and send a POST request to the URL that you specify.",
        "operationId": "create-webhook-event",
        "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": ["name", "url", "event_types"],
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 255,
                    "examples": ["Test Webhook Event"],
                    "description": "The name of the webhook event."
                  },
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "description": "The URL of the webhook, must be a valid URL with `https` protocol"
                  },
                  "event_types": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "charge.created",
                        "charge.updated",
                        "payout.created",
                        "order.created",
                        "order.updated",
                        "invoice.created",
                        "invoice.updated",
                        "transfer.created",
                        "transfer.updated"
                      ]
                    },
                    "description": "The event types that the webhook will listen to. The available events: charge.created, charge.updated, payout.created, order.created, order.updated, invoice.created, transfer.created, transfer.updated",
                    "examples": [
                      "charge.created",
                      "charge.updated",
                      "payout.created",
                      "order.created",
                      "order.updated",
                      "invoice.created",
                      "invoice.updated",
                      "transfer.created",
                      "transfer.updated",
                      "transfer.scheduled",
                      "transfer.processing",
                      "transfer.paid",
                      "transfer.failed",
                      "transfer.canceled"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9b2ada28-be3c-47ab-883f-ba72e5d8305d",
                      "business_id": "9b294222-3a53-427f-9393-95dc6d63ee6c",
                      "name": "Test Webhook Event",
                      "url": "https://google.com",
                      "event_types": ["transfer.created", "transfer.updated"],
                      "created_at": "2024-01-24T16:05:10+08:00",
                      "updated_at": "2024-01-24T16:05:10+08:00"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "business_id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "event_types": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "business_id",
                    "name",
                    "url",
                    "event_types",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/webhook-events' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest' \\\n --form ",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/webhook-events/{webhook_event_id}": {
      "get": {
        "summary": "Get Webhook Event Detail",
        "description": "This endpoint allows you to get a webhook event's details. You can use the `webhook_event_id` to get the webhook event's details.",
        "operationId": "get-webhook-event",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "webhook_event_id",
            "in": "path",
            "description": "The Webhook Event id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9b29471a-17bf-4332-835b-a6af8e0cc430",
                      "business_id": "9b294222-3a53-427f-9393-95dc6d63ee6c",
                      "name": "Test Webhook Event",
                      "url": "https://google.com",
                      "event_types": ["transfer.created", "transfer.updated"],
                      "created_at": "2024-01-24T16:05:10+08:00",
                      "updated_at": "2024-01-24T16:05:10+08:00"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "business_id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "event_types": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "business_id",
                    "name",
                    "url",
                    "event_types",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\Webhook] 973ee456-d28f-4418-93c5-d37e4b311685\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\Webhook] 973ee456-d28f-4418-93c5-d37e4b311685"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/webhook-events/9b29471a-17bf-4332-835b-a6af8e0cc430' \\\n--header 'X-BUSINESS-API-KEY: apikey' \\\n--header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "put": {
        "summary": "Update Webhook Event",
        "description": "This endpoint allows you to update a webhook event. You can use the `webhook_event_id` to update the webhook event's details.",
        "operationId": "update-webhook-event",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "webhook_event_id",
            "in": "path",
            "description": "The Webhook Event id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "examples": ["Test Webhook Event"],
                    "description": "The name of the webhook event. It is a required field."
                  },
                  "url": {
                    "type": "string",
                    "description": "The URL of the webhook, must be a valid URL with `https` protocol. This is the URL that the webhook will send the event data to. It is a required field."
                  },
                  "event_types": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "charge.created",
                        "charge.updated",
                        "payout.created",
                        "order.created",
                        "order.updated",
                        "invoice.created",
                        "invoice.updated",
                        "transfer.created",
                        "transfer.updated",
                        "transfer.scheduled",
                        "transfer.processing",
                        "transfer.paid",
                        "transfer.failed",
                        "transfer.canceled"
                      ]
                    },
                    "description": "The event types that the webhook will listen to. It is a required field.",
                    "examples": ["transfer.created", "transfer.updated"]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "id": "9b2ada28-be3c-47ab-883f-ba72e5d8305d",
                      "business_id": "9b294222-3a53-427f-9393-95dc6d63ee6c",
                      "name": "Test Webhook Event",
                      "url": "https://google.com",
                      "event_types": ["transfer.created", "transfer.updated"],
                      "created_at": "2024-01-24T16:05:10+08:00",
                      "updated_at": "2024-01-24T16:05:10+08:00"
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "business_id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "event_types": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "business_id",
                    "name",
                    "url",
                    "event_types",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\Webhook] 973ee456-d28f-4418-93c5-d37e4b311685\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\Webhook] 973ee456-d28f-4418-93c5-d37e4b311685"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/webhook-events/9b2ada28-be3c-47ab-883f-ba72e5d8305d' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest' \\\n --form ",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "delete": {
        "summary": "Delete Webhook Event",
        "description": "This endpoint allows you to delete a webhook event. You can use the `webhook_event_id` to delete the webhook event.",
        "operationId": "delete-webhook-event",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "webhook_event_id",
            "in": "path",
            "description": "The Webhook Event id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "204",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "1"
                  }
                },
                "schema": {
                  "type": "integer",
                  "examples": [1],
                  "default": 0
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"message\": \"No query results for model [App\\\\Business\\\\Webhook] 973ee456-d28f-4418-93c5-d37e4b311685\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "No query results for model [App\\Business\\Webhook] 973ee456-d28f-4418-93c5-d37e4b311685"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request DELETE 'https://api.sandbox.hit-pay.com/v1/webhook-events/9b2ada28-be3c-47ab-883f-ba72e5d8305d' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/static_qr": {
      "get": {
        "summary": "Get All Static QRs",
        "description": "This endpoint allows you to get all static QR codes. The static QR codes are the QR codes that you can use to receive payments.",
        "operationId": "get-static-qr",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "reference": {
                            "type": "string"
                          },
                          "payment_provider": {
                            "type": "string"
                          },
                          "payment_provider_method": {
                            "type": "string"
                          },
                          "amount": {
                            "type": "number"
                          },
                          "currency": {
                            "type": "string"
                          },
                          "payment_provider_method_logos": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "sm": {
                                  "type": "string"
                                },
                                "md": {
                                  "type": "string"
                                },
                                "lg": {
                                  "type": "string"
                                },
                                "svg": {
                                  "type": "string"
                                },
                                "svg_square": {
                                  "type": "string"
                                },
                                "png_square": {
                                  "type": "string"
                                },
                                "method": {
                                  "type": "string"
                                },
                                "iconName": {
                                  "type": "string"
                                },
                                "displayName": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "sm",
                                "md",
                                "lg",
                                "svg",
                                "svg_square",
                                "png_square",
                                "method",
                                "iconName",
                                "displayName"
                              ]
                            }
                          },
                          "payment_provider_method_main_logo": {
                            "type": "object",
                            "properties": {
                              "sm": {
                                "type": "string"
                              },
                              "md": {
                                "type": "string"
                              },
                              "lg": {
                                "type": "string"
                              },
                              "svg": {
                                "type": "string"
                              },
                              "svg_square": {
                                "type": "string"
                              },
                              "png_square": {
                                "type": "string"
                              },
                              "method": {
                                "type": "string"
                              },
                              "iconName": {
                                "type": "string"
                              },
                              "displayName": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "sm",
                              "md",
                              "lg",
                              "svg",
                              "svg_square",
                              "png_square",
                              "method",
                              "iconName",
                              "displayName"
                            ]
                          },
                          "created_by": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "display_name": {
                                "type": "string"
                              },
                              "first_name": {
                                "type": "string"
                              },
                              "last_name": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "id",
                              "display_name",
                              "first_name",
                              "last_name"
                            ]
                          },
                          "location_id": {
                            "type": "string"
                          },
                          "location": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "address": {
                                "type": "string"
                              }
                            },
                            "required": ["name", "address"]
                          },
                          "device_id": {
                            "type": "string"
                          },
                          "device": {
                            "type": "object",
                            "properties": {
                              "label": {
                                "type": "string"
                              }
                            },
                            "required": ["label"]
                          },
                          "qr_value": {
                            "type": "string"
                          },
                          "created_at": {
                            "type": "string"
                          },
                          "updated_at": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "reference",
                          "payment_provider",
                          "amount",
                          "currency",
                          "payment_provider_method",
                          "payment_provider_method_logos",
                          "payment_provider_method_main_logo",
                          "created_by",
                          "location_id",
                          "location",
                          "qr_value",
                          "created_at",
                          "updated_at"
                        ]
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {},
                        "last": {},
                        "prev": {},
                        "next": {}
                      },
                      "required": ["first", "last", "prev", "next"]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "path": {
                          "type": "string"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "next_cursor": {},
                        "prev_cursor": {}
                      },
                      "required": [
                        "path",
                        "per_page",
                        "next_cursor",
                        "prev_cursor"
                      ]
                    }
                  },
                  "required": ["data", "links", "meta"]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/static_qr' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest' \\\n --form ",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "post": {
        "summary": "Create a Static QR",
        "description": "This endpoint allows you to create static QR.",
        "operationId": "create-static-qr",
        "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": ["name", "payment_provider_method"],
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Static QR name"
                  },
                  "payment_provider_method": {
                    "type": "string",
                    "enum": ["paynow_online", "upi_qr", "qrph_netbank"],
                    "description": "The payment provider method that the static QR will use. The available methods: `paynow_online`, `upi_qr`, `qrph_netbank`"
                  },
                  "device_id": {
                    "type": "string",
                    "format": "uuid",
                    "description": "The device id that the static QR will use."
                  },
                  "location_id": {
                    "type": "string",
                    "format": "uuid",
                    "description": "The active location id that the static QR will use."
                  },
                  "amount": {
                    "type": "number",
                    "minimum": 0,
                    "description": "The amount for static QR.",
                    "example": 10.99
                  },
                  "currency": {
                    "type": "string",
                    "maxLength": 3,
                    "description": "The currency for static QR. It's required field if the amount is present.",
                    "example": "sgd"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "reference": {
                      "type": "string"
                    },
                    "payment_provider": {
                      "type": "string"
                    },
                    "payment_provider_method": {
                      "type": "string"
                    },
                    "amount": {
                      "type": "number"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "payment_provider_method_logos": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "sm": {
                            "type": "string"
                          },
                          "md": {
                            "type": "string"
                          },
                          "lg": {
                            "type": "string"
                          },
                          "svg": {
                            "type": "string"
                          },
                          "svg_square": {
                            "type": "string"
                          },
                          "png_square": {
                            "type": "string"
                          },
                          "method": {
                            "type": "string"
                          },
                          "iconName": {
                            "type": "string"
                          },
                          "displayName": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "sm",
                          "md",
                          "lg",
                          "svg",
                          "svg_square",
                          "png_square",
                          "method",
                          "iconName",
                          "displayName"
                        ]
                      }
                    },
                    "payment_provider_method_main_logo": {
                      "type": "object",
                      "properties": {
                        "sm": {
                          "type": "string"
                        },
                        "md": {
                          "type": "string"
                        },
                        "lg": {
                          "type": "string"
                        },
                        "svg": {
                          "type": "string"
                        },
                        "svg_square": {
                          "type": "string"
                        },
                        "png_square": {
                          "type": "string"
                        },
                        "method": {
                          "type": "string"
                        },
                        "iconName": {
                          "type": "string"
                        },
                        "displayName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "sm",
                        "md",
                        "lg",
                        "svg",
                        "svg_square",
                        "png_square",
                        "method",
                        "iconName",
                        "displayName"
                      ]
                    },
                    "created_by": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "display_name": {
                          "type": "string"
                        },
                        "first_name": {
                          "type": "string"
                        },
                        "last_name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "display_name",
                        "first_name",
                        "last_name"
                      ]
                    },
                    "location_id": {
                      "type": ["string", "null"]
                    },
                    "location": {
                      "type": ["object", "null"],
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "address": {
                          "type": "string"
                        }
                      },
                      "required": ["name", "address"]
                    },
                    "device_id": {},
                    "device": {},
                    "qr_value": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "reference",
                    "payment_provider",
                    "payment_provider_method",
                    "amount",
                    "currency",
                    "payment_provider_method_logos",
                    "payment_provider_method_main_logo",
                    "created_by",
                    "location_id",
                    "location",
                    "device_id",
                    "device",
                    "qr_value",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/static_qr' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest' \\\n --form ",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/static_qr/{static_qr_id}": {
      "get": {
        "summary": "Get Static QR Detail",
        "description": "This endpoint allows you to get a static QR details.",
        "operationId": "get-static-qr-details",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "static_qr_id",
            "in": "path",
            "description": "Static QR id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "reference": {
                      "type": "string"
                    },
                    "payment_provider": {
                      "type": "string"
                    },
                    "payment_provider_method": {
                      "type": "string"
                    },
                    "amount": {
                      "type": "number"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "payment_provider_method_logos": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "sm": {
                            "type": "string"
                          },
                          "md": {
                            "type": "string"
                          },
                          "lg": {
                            "type": "string"
                          },
                          "svg": {
                            "type": "string"
                          },
                          "svg_square": {
                            "type": "string"
                          },
                          "png_square": {
                            "type": "string"
                          },
                          "method": {
                            "type": "string"
                          },
                          "iconName": {
                            "type": "string"
                          },
                          "displayName": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "sm",
                          "md",
                          "lg",
                          "svg",
                          "svg_square",
                          "png_square",
                          "method",
                          "iconName",
                          "displayName"
                        ]
                      }
                    },
                    "payment_provider_method_main_logo": {
                      "type": "object",
                      "properties": {
                        "sm": {
                          "type": "string"
                        },
                        "md": {
                          "type": "string"
                        },
                        "lg": {
                          "type": "string"
                        },
                        "svg": {
                          "type": "string"
                        },
                        "svg_square": {
                          "type": "string"
                        },
                        "png_square": {
                          "type": "string"
                        },
                        "method": {
                          "type": "string"
                        },
                        "iconName": {
                          "type": "string"
                        },
                        "displayName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "sm",
                        "md",
                        "lg",
                        "svg",
                        "svg_square",
                        "png_square",
                        "method",
                        "iconName",
                        "displayName"
                      ]
                    },
                    "created_by": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "display_name": {
                          "type": "string"
                        },
                        "first_name": {
                          "type": "string"
                        },
                        "last_name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "display_name",
                        "first_name",
                        "last_name"
                      ]
                    },
                    "location_id": {
                      "type": ["string", "null"]
                    },
                    "location": {
                      "type": ["object", "null"],
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "address": {
                          "type": "string"
                        }
                      },
                      "required": ["name", "address"]
                    },
                    "device_id": {},
                    "device": {},
                    "qr_value": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "reference",
                    "payment_provider",
                    "payment_provider_method",
                    "amount",
                    "currency",
                    "payment_provider_method_logos",
                    "payment_provider_method_main_logo",
                    "created_by",
                    "location_id",
                    "location",
                    "device_id",
                    "device",
                    "qr_value",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/static_qr/9b29471a-17bf-4332-835b-a6af8e0cc430' \\\n--header 'X-BUSINESS-API-KEY: apikey' \\\n--header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "put": {
        "summary": "Update Static QR",
        "description": "This endpoint allows you to update a static QR.",
        "operationId": "update-static-qr",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "static_qr_id",
            "in": "path",
            "description": "The static QR id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Static QR name"
                  },
                  "location_id": {
                    "type": "string",
                    "format": "uuid",
                    "example": "9cc4aee8-c1b4-4401-af57-aea884c780cb",
                    "description": "The active location id that the static QR will use."
                  },
                  "amount": {
                    "type": "number",
                    "minimum": 0,
                    "description": "The amount for static QR.",
                    "example": 10.99
                  },
                  "currency": {
                    "type": "string",
                    "maxLength": 3,
                    "description": "The currency for static QR. It's required field if the amount is present.",
                    "example": "sgd"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "reference": {
                      "type": "string"
                    },
                    "payment_provider": {
                      "type": "string"
                    },
                    "payment_provider_method": {
                      "type": "string"
                    },
                    "amount": {
                      "type": "number"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "payment_provider_method_logos": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "sm": {
                            "type": "string"
                          },
                          "md": {
                            "type": "string"
                          },
                          "lg": {
                            "type": "string"
                          },
                          "svg": {
                            "type": "string"
                          },
                          "svg_square": {
                            "type": "string"
                          },
                          "png_square": {
                            "type": "string"
                          },
                          "method": {
                            "type": "string"
                          },
                          "iconName": {
                            "type": "string"
                          },
                          "displayName": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "sm",
                          "md",
                          "lg",
                          "svg",
                          "svg_square",
                          "png_square",
                          "method",
                          "iconName",
                          "displayName"
                        ]
                      }
                    },
                    "payment_provider_method_main_logo": {
                      "type": "object",
                      "properties": {
                        "sm": {
                          "type": "string"
                        },
                        "md": {
                          "type": "string"
                        },
                        "lg": {
                          "type": "string"
                        },
                        "svg": {
                          "type": "string"
                        },
                        "svg_square": {
                          "type": "string"
                        },
                        "png_square": {
                          "type": "string"
                        },
                        "method": {
                          "type": "string"
                        },
                        "iconName": {
                          "type": "string"
                        },
                        "displayName": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "sm",
                        "md",
                        "lg",
                        "svg",
                        "svg_square",
                        "png_square",
                        "method",
                        "iconName",
                        "displayName"
                      ]
                    },
                    "created_by": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "display_name": {
                          "type": "string"
                        },
                        "first_name": {
                          "type": "string"
                        },
                        "last_name": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "display_name",
                        "first_name",
                        "last_name"
                      ]
                    },
                    "location_id": {
                      "type": ["string", "null"]
                    },
                    "location": {
                      "type": ["object", "null"],
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "address": {
                          "type": "string"
                        }
                      },
                      "required": ["name", "address"]
                    },
                    "device_id": {},
                    "device": {},
                    "qr_value": {
                      "type": "string"
                    },
                    "created_at": {
                      "type": "string"
                    },
                    "updated_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "reference",
                    "payment_provider",
                    "payment_provider_method",
                    "amount",
                    "currency",
                    "payment_provider_method_logos",
                    "payment_provider_method_main_logo",
                    "created_by",
                    "location_id",
                    "location",
                    "device_id",
                    "device",
                    "qr_value",
                    "created_at",
                    "updated_at"
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/static_qr/9b2ada28-be3c-47ab-883f-ba72e5d8305d' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest' \\\n --form ",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      },
      "delete": {
        "summary": "Delete the static QR",
        "description": "This endpoint allows you to delete the static QR",
        "operationId": "delete-static-qr",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "static_qr_id",
            "in": "path",
            "description": "The Static QR id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "Static QR deleted successfully."
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": ["message"]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location --request DELETE 'https://api.sandbox.hit-pay.com/v1/static_qr/9b2ada28-be3c-47ab-883f-ba72e5d8305d' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/readers": {
      "get": {
        "summary": "Get all card readers",
        "description": "Get all card readers",
        "operationId": "get-card-reader",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": " The number of items in page.",
            "schema": {
              "type": "number",
              "default": 10,
              "maximum": 100
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "device_type": {
                            "type": "string"
                          },
                          "details": {
                            "type": "object",
                            "properties": {
                              "title": {
                                "type": "string"
                              },
                              "image": {
                                "type": "string"
                              }
                            },
                            "required": ["title", "image"]
                          },
                          "data": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "serial_number": {
                                "type": "string"
                              }
                            },
                            "required": ["id", "serial_number"]
                          },
                          "created_at": {
                            "type": "string"
                          },
                          "updated_at": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "device_type",
                          "details",
                          "data",
                          "created_at",
                          "updated_at"
                        ]
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": "string"
                        },
                        "last": {
                          "type": "string"
                        },
                        "prev": {},
                        "next": {}
                      },
                      "required": ["first", "last", "prev", "next"]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "number"
                        },
                        "from": {
                          "type": "number"
                        },
                        "last_page": {
                          "type": "number"
                        },
                        "links": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": "string"
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": ["label", "active"]
                          }
                        },
                        "path": {
                          "type": "string"
                        },
                        "per_page": {
                          "type": "number"
                        },
                        "to": {
                          "type": "number"
                        },
                        "total": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total"
                      ]
                    }
                  },
                  "required": ["data", "links", "meta"]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl --location 'https://api.sandbox.hit-pay.com/v1/readers' \\n--header 'X-BUSINESS-API-KEY: 9011d0e1e03c1e2d79cdcf1fd7147eaa6d339e4ba5e42df38d8b495e7ed8e9fc' \\\n --header 'X-Requested-With: XMLHttpRequest'",
              "name": "Example request"
            }
          ],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/readers/cancel": {
      "post": {
        "summary": "Cancel the terminal reader",
        "description": "Cancel the terminal reader.",
        "operationId": "cancel-reader",
        "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": ["reader_id"],
                "properties": {
                  "reader_id": {
                    "type": "string",
                    "example": "tmr_FTQMPAL1boM2kE",
                    "description": "The reader id"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "204",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": 1
                  }
                },
                "schema": {
                  "type": "integer",
                  "example": 1
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": {
                      "message": "This terminal is not connected to your business. Please go to Settings > Check Reader Connection > Select a terminal, or contact support@hit-pay.com if you face any issues."
                    }
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": ["message"]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [{}],
          "samples-languages": ["curl"]
        }
      }
    },
    "/v1/virtual-accounts": {
      "get": {
        "tags": ["Virtual Accounts"],
        "summary": "Get virtual accounts",
        "description": "Retrieve the list of virtual accounts for a business. Results are paginated using cursor-based pagination\nand ordered by creation date (newest first).\n",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": ["string", "null"]
            },
            "description": "Cursor for pagination"
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "enum": [5, 10, 20, 25, 50, 100],
              "default": 25
            },
            "description": "Number of results per page"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "name": {
                            "type": "string",
                            "description": "Display name of the virtual account"
                          },
                          "reference": {
                            "type": "string",
                            "description": "Virtual account reference number"
                          },
                          "payment_provider": {
                            "type": "string",
                            "description": "Payment provider identifier (e.g., dbs_sg)"
                          },
                          "payment_provider_method": {
                            "type": "string",
                            "description": "Payment provider method identifier (e.g., dbs_sg_virtual_account)"
                          },
                          "payment_provider_method_logos": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "method": {
                                  "type": "string",
                                  "description": "Payment method identifier"
                                },
                                "iconName": {
                                  "type": "string",
                                  "description": "Icon file name"
                                },
                                "displayName": {
                                  "type": "string",
                                  "description": "Human-readable method name"
                                },
                                "description": {
                                  "type": "string",
                                  "description": "Method description"
                                },
                                "sm": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "Small PNG logo URL"
                                },
                                "md": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "Medium PNG logo URL"
                                },
                                "lg": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "Large PNG logo URL"
                                },
                                "svg": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "SVG logo URL"
                                },
                                "svg_square": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "Square SVG logo URL"
                                }
                              }
                            },
                            "description": "Array of logo objects for the payment method"
                          },
                          "payment_provider_method_main_logo": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "method": {
                                    "type": "string",
                                    "description": "Payment method identifier"
                                  },
                                  "iconName": {
                                    "type": "string",
                                    "description": "Icon file name"
                                  },
                                  "displayName": {
                                    "type": "string",
                                    "description": "Human-readable method name"
                                  },
                                  "description": {
                                    "type": "string",
                                    "description": "Method description"
                                  },
                                  "sm": {
                                    "type": "string",
                                    "format": "uri",
                                    "description": "Small PNG logo URL"
                                  },
                                  "md": {
                                    "type": "string",
                                    "format": "uri",
                                    "description": "Medium PNG logo URL"
                                  },
                                  "lg": {
                                    "type": "string",
                                    "format": "uri",
                                    "description": "Large PNG logo URL"
                                  },
                                  "svg": {
                                    "type": "string",
                                    "format": "uri",
                                    "description": "SVG logo URL"
                                  },
                                  "svg_square": {
                                    "type": "string",
                                    "format": "uri",
                                    "description": "Square SVG logo URL"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "Main logo object for the payment method, or null"
                          },
                          "supported_currencies": {
                            "type": ["array", "null"],
                            "items": {
                              "type": "string"
                            },
                            "description": "List of supported currency codes"
                          },
                          "transfer_types": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "Supported transfer types for this virtual account"
                          },
                          "address": {
                            "type": "string",
                            "description": "Business address"
                          },
                          "status": {
                            "type": ["string", "null"],
                            "description": "Current status of the virtual account"
                          },
                          "created_by": {
                            "oneOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "format": "uuid"
                                  },
                                  "display_name": {
                                    "type": "string"
                                  },
                                  "first_name": {
                                    "type": "string"
                                  },
                                  "last_name": {
                                    "type": "string"
                                  }
                                }
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "User who created the virtual account, or null"
                          },
                          "created_at": {
                            "type": "string",
                            "format": "date-time",
                            "description": "Creation timestamp (Atom format)"
                          },
                          "updated_at": {
                            "type": "string",
                            "format": "date-time",
                            "description": "Last update timestamp (Atom format)"
                          }
                        }
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": ["string", "null"]
                        },
                        "last": {
                          "type": ["string", "null"]
                        },
                        "prev": {
                          "type": ["string", "null"]
                        },
                        "next": {
                          "type": ["string", "null"]
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "path": {
                          "type": "string"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "next_cursor": {
                          "type": ["string", "null"]
                        },
                        "prev_cursor": {
                          "type": ["string", "null"]
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Virtual Accounts"],
        "summary": "Create a virtual account",
        "description": "Create a new virtual account for the business. The payment provider and method are automatically\ndetermined based on the business configuration.\n\nA business can only have one virtual account per payment provider method. If a virtual account\nalready exists for the same provider method, a 409 Conflict error is returned.\n\nThe business must have payments enabled to create a virtual account.\n",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Virtual account created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "name": {
                          "type": "string",
                          "description": "Display name of the virtual account"
                        },
                        "reference": {
                          "type": "string",
                          "description": "Virtual account reference number"
                        },
                        "payment_provider": {
                          "type": "string",
                          "description": "Payment provider identifier (e.g., dbs_sg)"
                        },
                        "payment_provider_method": {
                          "type": "string",
                          "description": "Payment provider method identifier (e.g., dbs_sg_virtual_account)"
                        },
                        "payment_provider_method_logos": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "method": {
                                "type": "string",
                                "description": "Payment method identifier"
                              },
                              "iconName": {
                                "type": "string",
                                "description": "Icon file name"
                              },
                              "displayName": {
                                "type": "string",
                                "description": "Human-readable method name"
                              },
                              "description": {
                                "type": "string",
                                "description": "Method description"
                              },
                              "sm": {
                                "type": "string",
                                "format": "uri",
                                "description": "Small PNG logo URL"
                              },
                              "md": {
                                "type": "string",
                                "format": "uri",
                                "description": "Medium PNG logo URL"
                              },
                              "lg": {
                                "type": "string",
                                "format": "uri",
                                "description": "Large PNG logo URL"
                              },
                              "svg": {
                                "type": "string",
                                "format": "uri",
                                "description": "SVG logo URL"
                              },
                              "svg_square": {
                                "type": "string",
                                "format": "uri",
                                "description": "Square SVG logo URL"
                              }
                            }
                          },
                          "description": "Array of logo objects for the payment method"
                        },
                        "payment_provider_method_main_logo": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "method": {
                                  "type": "string",
                                  "description": "Payment method identifier"
                                },
                                "iconName": {
                                  "type": "string",
                                  "description": "Icon file name"
                                },
                                "displayName": {
                                  "type": "string",
                                  "description": "Human-readable method name"
                                },
                                "description": {
                                  "type": "string",
                                  "description": "Method description"
                                },
                                "sm": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "Small PNG logo URL"
                                },
                                "md": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "Medium PNG logo URL"
                                },
                                "lg": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "Large PNG logo URL"
                                },
                                "svg": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "SVG logo URL"
                                },
                                "svg_square": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "Square SVG logo URL"
                                }
                              }
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Main logo object for the payment method, or null"
                        },
                        "supported_currencies": {
                          "type": ["array", "null"],
                          "items": {
                            "type": "string"
                          },
                          "description": "List of supported currency codes"
                        },
                        "transfer_types": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Supported transfer types for this virtual account"
                        },
                        "address": {
                          "type": "string",
                          "description": "Business address"
                        },
                        "status": {
                          "type": ["string", "null"],
                          "description": "Current status of the virtual account"
                        },
                        "created_by": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "display_name": {
                                  "type": "string"
                                },
                                "first_name": {
                                  "type": "string"
                                },
                                "last_name": {
                                  "type": "string"
                                }
                              }
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "User who created the virtual account, or null"
                        },
                        "created_at": {
                          "type": "string",
                          "format": "date-time",
                          "description": "Creation timestamp (Atom format)"
                        },
                        "updated_at": {
                          "type": "string",
                          "format": "date-time",
                          "description": "Last update timestamp (Atom format)"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden — business does not have payments enabled",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict — a virtual account already exists for this provider method",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/virtual-accounts/{virtual_account_id}": {
      "get": {
        "tags": ["Virtual Accounts"],
        "summary": "Get virtual account details",
        "description": "Retrieve detailed information about a specific virtual account.\n",
        "parameters": [
          {
            "name": "X-BUSINESS-API-KEY",
            "in": "header",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string",
              "example": "b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d"
            }
          },
          {
            "name": "virtual_account_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The virtual account ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "name": {
                          "type": "string",
                          "description": "Display name of the virtual account"
                        },
                        "reference": {
                          "type": "string",
                          "description": "Virtual account reference number"
                        },
                        "payment_provider": {
                          "type": "string",
                          "description": "Payment provider identifier (e.g., dbs_sg)"
                        },
                        "payment_provider_method": {
                          "type": "string",
                          "description": "Payment provider method identifier (e.g., dbs_sg_virtual_account)"
                        },
                        "payment_provider_method_logos": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "method": {
                                "type": "string",
                                "description": "Payment method identifier"
                              },
                              "iconName": {
                                "type": "string",
                                "description": "Icon file name"
                              },
                              "displayName": {
                                "type": "string",
                                "description": "Human-readable method name"
                              },
                              "description": {
                                "type": "string",
                                "description": "Method description"
                              },
                              "sm": {
                                "type": "string",
                                "format": "uri",
                                "description": "Small PNG logo URL"
                              },
                              "md": {
                                "type": "string",
                                "format": "uri",
                                "description": "Medium PNG logo URL"
                              },
                              "lg": {
                                "type": "string",
                                "format": "uri",
                                "description": "Large PNG logo URL"
                              },
                              "svg": {
                                "type": "string",
                                "format": "uri",
                                "description": "SVG logo URL"
                              },
                              "svg_square": {
                                "type": "string",
                                "format": "uri",
                                "description": "Square SVG logo URL"
                              }
                            }
                          },
                          "description": "Array of logo objects for the payment method"
                        },
                        "payment_provider_method_main_logo": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "method": {
                                  "type": "string",
                                  "description": "Payment method identifier"
                                },
                                "iconName": {
                                  "type": "string",
                                  "description": "Icon file name"
                                },
                                "displayName": {
                                  "type": "string",
                                  "description": "Human-readable method name"
                                },
                                "description": {
                                  "type": "string",
                                  "description": "Method description"
                                },
                                "sm": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "Small PNG logo URL"
                                },
                                "md": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "Medium PNG logo URL"
                                },
                                "lg": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "Large PNG logo URL"
                                },
                                "svg": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "SVG logo URL"
                                },
                                "svg_square": {
                                  "type": "string",
                                  "format": "uri",
                                  "description": "Square SVG logo URL"
                                }
                              }
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Main logo object for the payment method, or null"
                        },
                        "supported_currencies": {
                          "type": ["array", "null"],
                          "items": {
                            "type": "string"
                          },
                          "description": "List of supported currency codes"
                        },
                        "transfer_types": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Supported transfer types for this virtual account"
                        },
                        "address": {
                          "type": "string",
                          "description": "Business address"
                        },
                        "status": {
                          "type": ["string", "null"],
                          "description": "Current status of the virtual account"
                        },
                        "created_by": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "format": "uuid"
                                },
                                "display_name": {
                                  "type": "string"
                                },
                                "first_name": {
                                  "type": "string"
                                },
                                "last_name": {
                                  "type": "string"
                                }
                              }
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "User who created the virtual account, or null"
                        },
                        "created_at": {
                          "type": "string",
                          "format": "date-time",
                          "description": "Creation timestamp (Atom format)"
                        },
                        "updated_at": {
                          "type": "string",
                          "format": "date-time",
                          "description": "Last update timestamp (Atom format)"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error message"
                    },
                    "errors": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "beneficiary-sqd-fast": {
        "type": "object",
        "required": [
          "country",
          "transfer_method",
          "currency",
          "transfer_type",
          "holder_type",
          "holder_name",
          "account_number"
        ],
        "properties": {
          "country": {
            "type": "string",
            "description": "Beneficiary bank country/region",
            "example": "sg",
            "enum": ["sg"]
          },
          "transfer_method": {
            "type": "string",
            "description": "The transfer method needs to be specified to ensure that accurate banking details are captured and validated for the specified transfer method. This is required for timely and accurate delivery of funds to the beneficiary account",
            "enum": ["bank_transfer"],
            "example": "bank_transfer"
          },
          "transfer_type": {
            "type": "string",
            "enum": ["local"],
            "example": "local"
          },
          "currency": {
            "type": "string",
            "enum": ["sgd"],
            "example": "sgd",
            "description": "It is beneficiary bank account currency."
          },
          "holder_type": {
            "type": "string",
            "description": "The Holder Type",
            "enum": ["individual"],
            "example": "individual"
          },
          "holder_name": {
            "type": "string",
            "required": true,
            "description": "The Holder Name",
            "example": "John Doe",
            "maxLength": 255
          },
          "bank_swift_code": {
            "type": "string",
            "required": true,
            "description": "It's bank swift code. To obtain a list of supported SWIFT codes, call `Get the API schema` API with the following parameters: `country: sg`, currency: `sgd`,transfer_method: `bank_transfer`, transfer_type: `local` and holder_type: `individual`.",
            "maxLength": 255,
            "example": "BOFASG2XXXX"
          },
          "account_number": {
            "type": "string",
            "required": true,
            "description": "The account number",
            "maxLength": 255,
            "example": "1409827"
          },
          "nickname": {
            "type": "string",
            "description": "Nickname",
            "maxLength": 255
          },
          "remark": {
            "type": "string",
            "description": "Remark",
            "maxLength": 255,
            "example": "This is a remark"
          },
          "is_favourite": {
            "type": "boolean"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Email address",
            "example": "abc@gmail.com"
          }
        },
        "example": {
          "country": "sg",
          "transfer_method": "bank_transfer",
          "transfer_type": "local",
          "currency": "sgd",
          "holder_type": "individual",
          "holder_name": "John Tan",
          "bank_id": "BOFASG2XXXX[7065]",
          "account_number": "1409827"
        }
      },
      "beneficiary-bd-local": {
        "type": "object",
        "required": [
          "country",
          "transfer_method",
          "currency",
          "transfer_type",
          "holder_type",
          "holder_name",
          "bank_id",
          "bank_routing_number",
          "account_number"
        ],
        "properties": {
          "country": {
            "type": "string",
            "required": true,
            "description": "Beneficiary bank country/region",
            "enum": ["bd"]
          },
          "transfer_method": {
            "type": "string",
            "required": true,
            "description": "The transfer method needs to be specified to ensure that accurate banking details are captured and validated for the specified transfer method. This is required for timely and accurate delivery of funds to the beneficiary account",
            "enum": ["bank_transfer"],
            "example": "bank_transfer"
          },
          "transfer_type": {
            "type": "string",
            "required": true,
            "enum": ["local"],
            "value": "local"
          },
          "currency": {
            "type": "string",
            "required": true,
            "enum": ["bdt"],
            "value": "bdt",
            "description": "It is beneficiary bank account currency."
          },
          "holder_type": {
            "type": "string",
            "required": true,
            "enum": ["individual"],
            "example": "individual",
            "description": "The Holder Type"
          },
          "holder_name": {
            "type": "string",
            "required": true,
            "example": "John Doe",
            "description": "The Holder Name",
            "maxLength": 255
          },
          "bank_id": {
            "type": "string",
            "required": true,
            "description": "It's bank id. To obtain a list of supported values for `bank_id`, call `Get the API schema` API with the following parameters: `country: bd`, currency: `bdt`,transfer_method: `bank_transfer`, transfer_type: `local` and holder_type: `individual` to get the the correct supported bank id.",
            "example": "brc-20",
            "maxLength": 255
          },
          "bank_routing_number": {
            "type": "string",
            "required": true,
            "description": "Bank Rounting Number",
            "maxLength": 255,
            "example": "060261726"
          },
          "account_number": {
            "type": "string",
            "required": true,
            "description": "The account number",
            "maxLength": 255,
            "example": "1503201781283001"
          },
          "nickname": {
            "type": "string",
            "description": "Nickname",
            "maxLength": 255
          },
          "remark": {
            "type": "string",
            "description": "Remark",
            "maxLength": 255,
            "example": "This is a remark"
          },
          "is_favourite": {
            "type": "boolean",
            "description": "Remark"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Email address",
            "example": "abc@gmail.com"
          }
        },
        "example": {
          "country": "bd",
          "transfer_method": "bank_transfer",
          "transfer_type": "local",
          "currency": "bdt",
          "holder_type": "individual",
          "holder_name": "SHAH ALAM HERA",
          "bank_id": "brc-20",
          "bank_routing_number": "060261726",
          "account_number": "1503201781283001"
        }
      },
      "beneficiary-bd-upay": {
        "type": "object",
        "required": [
          "country",
          "transfer_method",
          "currency",
          "holder_type",
          "holder_name",
          "district",
          "account_number"
        ],
        "properties": {
          "country": {
            "type": "string",
            "required": true,
            "description": "Beneficiary bank country/region",
            "enum": ["bd"]
          },
          "transfer_method": {
            "type": "string",
            "required": true,
            "description": "The transfer method needs to be specified to ensure that accurate banking details are captured and validated for the specified transfer method. This is required for timely and accurate delivery of funds to the beneficiary account",
            "enum": ["upay"],
            "example": "upay"
          },
          "currency": {
            "type": "string",
            "required": true,
            "enum": ["bdt"],
            "example": "bdt",
            "description": "It is beneficiary bank account currency."
          },
          "holder_type": {
            "type": "string",
            "required": true,
            "enum": ["individual"],
            "example": "individual",
            "description": "The Holder Type"
          },
          "holder_name": {
            "type": "string",
            "required": true,
            "example": "John Doe",
            "description": "The Holder Name",
            "maxLength": 255
          },
          "district": {
            "type": "string",
            "required": true,
            "description": "District",
            "maxLength": 255,
            "example": "BD-03"
          },
          "account_number": {
            "type": "string",
            "required": true,
            "description": "The account number",
            "maxLength": 255,
            "example": "+8801914538413"
          },
          "nickname": {
            "type": "string",
            "example": "John",
            "description": "Nickname",
            "maxLength": 255
          },
          "remark": {
            "type": "string",
            "description": "Remark",
            "maxLength": 255,
            "example": "This is a remark"
          },
          "is_favourite": {
            "type": "boolean",
            "description": "Remark"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Email address",
            "example": "abc@gmail.com"
          }
        },
        "example": {
          "country": "bd",
          "transfer_method": "upay",
          "currency": "bdt",
          "holder_type": "individual",
          "holder_name": "Moulude Hossain",
          "district": "BD-03",
          "account_number": "+8801914538413"
        }
      },
      "beneficiary-bd-bkash": {
        "type": "object",
        "required": [
          "country",
          "transfer_method",
          "currency",
          "holder_type",
          "holder_name",
          "district",
          "account_number"
        ],
        "properties": {
          "country": {
            "type": "string",
            "required": true,
            "description": "Beneficiary bank country/region",
            "enum": ["bd"]
          },
          "transfer_method": {
            "type": "string",
            "required": true,
            "description": "The transfer method needs to be specified to ensure that accurate banking details are captured and validated for the specified transfer method. This is required for timely and accurate delivery of funds to the beneficiary account",
            "enum": ["bkash"],
            "example": "bkash"
          },
          "currency": {
            "type": "string",
            "required": true,
            "emum": ["bdt"],
            "example": "bdt",
            "description": "It is beneficiary bank account currency."
          },
          "holder_type": {
            "type": "string",
            "required": true,
            "enum": ["individual"],
            "example": "individual",
            "description": "The Holder Type"
          },
          "holder_name": {
            "type": "string",
            "required": true,
            "example": "Rashid",
            "description": "The Holder Name",
            "maxLength": 255
          },
          "district": {
            "type": "string",
            "required": true,
            "example": "BD-03",
            "description": "District",
            "maxLength": 255
          },
          "account_number": {
            "type": "string",
            "required": true,
            "example": "+8801721940130",
            "description": "The account number",
            "maxLength": 255
          },
          "nickname": {
            "type": "string",
            "example": "John",
            "description": "Nickname",
            "maxLength": 255
          },
          "remark": {
            "type": "string",
            "description": "Remark",
            "maxLength": 255,
            "example": "This is a remark"
          },
          "is_favourite": {
            "type": "boolean",
            "description": "Remark"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Email address",
            "example": "abc@gmail.com"
          }
        },
        "example": {
          "country": "bd",
          "transfer_method": "bkash",
          "currency": "bdt",
          "holder_type": "individual",
          "holder_name": "Rashid",
          "district": "BD-03",
          "account_number": "+8801721940130"
        }
      },
      "beneficiary-bd-tap": {
        "type": "object",
        "required": [
          "country",
          "transfer_method",
          "currency",
          "holder_type",
          "holder_name",
          "district",
          "account_number"
        ],
        "properties": {
          "country": {
            "type": "string",
            "required": true,
            "description": "Beneficiary bank country/region",
            "enum": ["bd"]
          },
          "transfer_method": {
            "type": "string",
            "required": true,
            "description": "The transfer method needs to be specified to ensure that accurate banking details are captured and validated for the specified transfer method. This is required for timely and accurate delivery of funds to the beneficiary account",
            "enum": ["tap"],
            "example": "tap"
          },
          "currency": {
            "type": "string",
            "required": true,
            "emum": ["bdt"],
            "example": "bdt",
            "description": "It is beneficiary bank account currency."
          },
          "holder_type": {
            "type": "string",
            "required": true,
            "enum": ["individual"],
            "example": "individual",
            "description": "The Holder Type"
          },
          "holder_name": {
            "type": "string",
            "required": true,
            "example": "Rashid",
            "description": "The Holder Name",
            "maxLength": 255
          },
          "district": {
            "type": "string",
            "required": true,
            "example": "BD-03",
            "description": "District",
            "maxLength": 255
          },
          "account_number": {
            "type": "string",
            "required": true,
            "example": "+8801721940130",
            "description": "The account number",
            "maxLength": 255
          },
          "nickname": {
            "type": "string",
            "example": "John",
            "description": "Nickname",
            "maxLength": 255
          },
          "remark": {
            "type": "string",
            "description": "Remark",
            "maxLength": 255,
            "example": "This is a remark"
          },
          "is_favourite": {
            "type": "boolean",
            "description": "Remark"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Email address",
            "example": "abc@gmail.com"
          }
        },
        "example": {
          "country": "bd",
          "transfer_method": "tap",
          "currency": "bdt",
          "holder_type": "individual",
          "holder_name": "Moulude Hossain",
          "district": "BD-04",
          "account_number": "+8801914538413"
        }
      },
      "beneficiary-php-local": {
        "type": "object",
        "required": [
          "country",
          "transfer_method",
          "currency",
          "holder_type",
          "holder_name",
          "bank_id",
          "account_number",
          "address"
        ],
        "properties": {
          "country": {
            "type": "string",
            "required": true,
            "description": "Beneficiary bank country/region",
            "enum": ["ph"]
          },
          "transfer_method": {
            "type": "string",
            "required": true,
            "description": "The transfer method needs to be specified to ensure that accurate banking details are captured and validated for the specified transfer method. This is required for timely and accurate delivery of funds to the beneficiary account",
            "enum": ["bank_transfer"],
            "example": "bank_transfer"
          },
          "transfer_type": {
            "type": "string",
            "required": true,
            "enum": ["local"],
            "example": "local"
          },
          "currency": {
            "type": "string",
            "required": true,
            "enum": ["php"],
            "description": "It is beneficiary bank account currency."
          },
          "holder_type": {
            "type": "string",
            "required": true,
            "enum": ["individual"],
            "example": "individual",
            "description": "The Holder Type"
          },
          "holder_name": {
            "type": "string",
            "required": true,
            "example": "John Doe",
            "description": "The Holder Name",
            "maxLength": 255
          },

          "bank_id": {
            "type": "string",
            "required": true,
            "description": "It's bank id. To obtain a list of supported values for `bank_id`, call `Get the API schema` API with the following parameters: `country: ph`, currency: `php`,transfer_method: `bank_transfer`, transfer_type: `local` and holder_type: `individual` to get the the correct supported bank id.",
            "example": "10419995",
            "maxLength": 255
          },
          "account_number": {
            "type": "string",
            "required": true,
            "example": "14098377",
            "description": "The account number",
            "maxLength": 255
          },
          "address": {
            "type": "object",
            "required": ["street", "postcode", "city"],
            "properties": {
              "street": {
                "type": "string",
                "example": "Pedro Gil, cor Adriatico St"
              },
              "postcode": {
                "type": "string",
                "example": "1000"
              },
              "city": {
                "type": "string",
                "example": "Manila"
              }
            }
          },
          "nickname": {
            "type": "string",
            "example": "John",
            "description": "Nickname",
            "maxLength": 255
          },
          "remark": {
            "type": "string",
            "description": "Remark",
            "maxLength": 255,
            "example": "This is a remark"
          },
          "is_favourite": {
            "type": "boolean"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Email address",
            "example": "abc@gmail.com"
          }
        },
        "example": {
          "country": "ph",
          "transfer_method": "bank_transfer",
          "transfer_type": "local",
          "currency": "php",
          "holder_type": "individual",
          "holder_name": "Ben Yu",
          "bank_id": "10419995",
          "account_number": "14098377",
          "address": {
            "street": "Pedro Gil, cor Adriatico St",
            "postcode": "1000",
            "city": "Manila"
          }
        }
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": true,
    "proxy-enabled": true,
    "samples-enabled": true
  },
  "x-readme-fauxas": true
}
