{
  "service": "loyverse",
  "displayName": "Loyverse",
  "categories": [
    "Finance",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Personal Access Token",
      "placeholder": "LOYVERSE_PERSONAL_ACCESS_TOKEN",
      "description": "Loyverse personal access token sent as Authorization: Bearer <token>. Create one in Loyverse Back Office integrations at https://r.loyverse.com/dashboard/#/integrations/tokens.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://loyverse.com/",
  "actions": [
    {
      "id": "loyverse.get_category",
      "service": "loyverse",
      "name": "get_category",
      "description": "Get one Loyverse category by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Loyverse category ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for reading one Loyverse resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Loyverse API object returned without reshaping."
          }
        },
        "additionalProperties": false,
        "description": "The Loyverse category response."
      }
    },
    {
      "id": "loyverse.get_customer",
      "service": "loyverse",
      "name": "get_customer",
      "description": "Get one Loyverse customer by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Loyverse customer ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for reading one Loyverse resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "customer": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Loyverse API object returned without reshaping."
          }
        },
        "additionalProperties": false,
        "description": "The Loyverse customer response."
      }
    },
    {
      "id": "loyverse.get_item",
      "service": "loyverse",
      "name": "get_item",
      "description": "Get one Loyverse item by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Loyverse item ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for reading one Loyverse resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "item": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Loyverse API object returned without reshaping."
          }
        },
        "additionalProperties": false,
        "description": "The Loyverse item response."
      }
    },
    {
      "id": "loyverse.get_merchant",
      "service": "loyverse",
      "name": "get_merchant",
      "description": "Get merchant profile information for the connected Loyverse account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "This action does not require any input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "merchant": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Loyverse API object returned without reshaping."
          }
        },
        "additionalProperties": false,
        "description": "The Loyverse merchant profile response."
      }
    },
    {
      "id": "loyverse.get_receipt",
      "service": "loyverse",
      "name": "get_receipt",
      "description": "Get one Loyverse receipt by receipt number.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "receiptNumber": {
            "type": "string",
            "minLength": 1,
            "description": "The Loyverse receipt number."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for reading one Loyverse receipt."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "receipt": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Loyverse API object returned without reshaping."
          }
        },
        "additionalProperties": false,
        "description": "The Loyverse receipt response."
      }
    },
    {
      "id": "loyverse.get_store",
      "service": "loyverse",
      "name": "get_store",
      "description": "Get one Loyverse store by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Loyverse store ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for reading one Loyverse resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "store": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Loyverse API object returned without reshaping."
          }
        },
        "additionalProperties": false,
        "description": "The Loyverse store response."
      }
    },
    {
      "id": "loyverse.list_categories",
      "service": "loyverse",
      "name": "list_categories",
      "description": "List item categories in the connected Loyverse account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Loyverse resource ID."
            },
            "description": "Limit results to these Loyverse category IDs.",
            "minItems": 1
          },
          "createdAtMin": {
            "type": "string",
            "description": "Only include resources created at or after this timestamp.",
            "format": "date-time"
          },
          "createdAtMax": {
            "type": "string",
            "description": "Only include resources created at or before this timestamp.",
            "format": "date-time"
          },
          "updatedAtMin": {
            "type": "string",
            "description": "Only include resources updated at or after this timestamp.",
            "format": "date-time"
          },
          "updatedAtMax": {
            "type": "string",
            "description": "Only include resources updated at or before this timestamp.",
            "format": "date-time"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 250,
            "description": "The maximum number of records to return. Loyverse allows up to 250.",
            "default": 50
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination cursor returned by a previous Loyverse list call."
          },
          "showDeleted": {
            "type": "boolean",
            "description": "Whether to include soft-deleted Loyverse records."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Loyverse categories."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Loyverse API object returned without reshaping."
            },
            "description": "The Loyverse categories returned by the API."
          },
          "cursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "The cursor to pass to the next list request, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Loyverse response payload."
          }
        },
        "additionalProperties": false,
        "description": "The Loyverse categories list response."
      }
    },
    {
      "id": "loyverse.list_customers",
      "service": "loyverse",
      "name": "list_customers",
      "description": "List customers in the connected Loyverse account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Loyverse resource ID."
            },
            "description": "Limit results to these Loyverse customer IDs.",
            "minItems": 1
          },
          "email": {
            "type": "string",
            "description": "Filter customers by email address.",
            "format": "email"
          },
          "createdAtMin": {
            "type": "string",
            "description": "Only include resources created at or after this timestamp.",
            "format": "date-time"
          },
          "createdAtMax": {
            "type": "string",
            "description": "Only include resources created at or before this timestamp.",
            "format": "date-time"
          },
          "updatedAtMin": {
            "type": "string",
            "description": "Only include resources updated at or after this timestamp.",
            "format": "date-time"
          },
          "updatedAtMax": {
            "type": "string",
            "description": "Only include resources updated at or before this timestamp.",
            "format": "date-time"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 250,
            "description": "The maximum number of records to return. Loyverse allows up to 250.",
            "default": 50
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination cursor returned by a previous Loyverse list call."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Loyverse customers."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "customers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Loyverse API object returned without reshaping."
            },
            "description": "The Loyverse customers returned by the API."
          },
          "cursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "The cursor to pass to the next list request, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Loyverse response payload."
          }
        },
        "additionalProperties": false,
        "description": "The Loyverse customers list response."
      }
    },
    {
      "id": "loyverse.list_items",
      "service": "loyverse",
      "name": "list_items",
      "description": "List items in the connected Loyverse account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Loyverse resource ID."
            },
            "description": "Limit results to these Loyverse item IDs.",
            "minItems": 1
          },
          "createdAtMin": {
            "type": "string",
            "description": "Only include resources created at or after this timestamp.",
            "format": "date-time"
          },
          "createdAtMax": {
            "type": "string",
            "description": "Only include resources created at or before this timestamp.",
            "format": "date-time"
          },
          "updatedAtMin": {
            "type": "string",
            "description": "Only include resources updated at or after this timestamp.",
            "format": "date-time"
          },
          "updatedAtMax": {
            "type": "string",
            "description": "Only include resources updated at or before this timestamp.",
            "format": "date-time"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 250,
            "description": "The maximum number of records to return. Loyverse allows up to 250.",
            "default": 50
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination cursor returned by a previous Loyverse list call."
          },
          "showDeleted": {
            "type": "boolean",
            "description": "Whether to include soft-deleted Loyverse records."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Loyverse items."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Loyverse API object returned without reshaping."
            },
            "description": "The Loyverse items returned by the API."
          },
          "cursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "The cursor to pass to the next list request, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Loyverse response payload."
          }
        },
        "additionalProperties": false,
        "description": "The Loyverse items list response."
      }
    },
    {
      "id": "loyverse.list_receipts",
      "service": "loyverse",
      "name": "list_receipts",
      "description": "List receipts in the connected Loyverse account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "receiptNumbers": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Loyverse receipt number."
            },
            "description": "Receipt numbers used to filter Loyverse receipt results.",
            "minItems": 1
          },
          "sinceReceiptNumber": {
            "type": "string",
            "minLength": 1,
            "description": "Show receipts after the receipt with this number."
          },
          "beforeReceiptNumber": {
            "type": "string",
            "minLength": 1,
            "description": "Show receipts before the receipt with this number."
          },
          "storeId": {
            "type": "string",
            "minLength": 1,
            "description": "Filter receipts to one Loyverse store ID."
          },
          "order": {
            "type": "string",
            "minLength": 1,
            "description": "Filter receipts by Loyverse order value."
          },
          "source": {
            "type": "string",
            "minLength": 1,
            "description": "Filter receipts by source name."
          },
          "createdAtMin": {
            "type": "string",
            "description": "Only include resources created at or after this timestamp.",
            "format": "date-time"
          },
          "createdAtMax": {
            "type": "string",
            "description": "Only include resources created at or before this timestamp.",
            "format": "date-time"
          },
          "updatedAtMin": {
            "type": "string",
            "description": "Only include resources updated at or after this timestamp.",
            "format": "date-time"
          },
          "updatedAtMax": {
            "type": "string",
            "description": "Only include resources updated at or before this timestamp.",
            "format": "date-time"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 250,
            "description": "The maximum number of records to return. Loyverse allows up to 250.",
            "default": 50
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination cursor returned by a previous Loyverse list call."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Loyverse receipts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "receipts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Loyverse API object returned without reshaping."
            },
            "description": "The Loyverse receipts returned by the API."
          },
          "cursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "The cursor to pass to the next list request, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Loyverse response payload."
          }
        },
        "additionalProperties": false,
        "description": "The Loyverse receipts list response."
      }
    },
    {
      "id": "loyverse.list_stores",
      "service": "loyverse",
      "name": "list_stores",
      "description": "List stores in the connected Loyverse account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Loyverse resource ID."
            },
            "description": "Limit results to these Loyverse store IDs.",
            "minItems": 1
          },
          "createdAtMin": {
            "type": "string",
            "description": "Only include resources created at or after this timestamp.",
            "format": "date-time"
          },
          "createdAtMax": {
            "type": "string",
            "description": "Only include resources created at or before this timestamp.",
            "format": "date-time"
          },
          "updatedAtMin": {
            "type": "string",
            "description": "Only include resources updated at or after this timestamp.",
            "format": "date-time"
          },
          "updatedAtMax": {
            "type": "string",
            "description": "Only include resources updated at or before this timestamp.",
            "format": "date-time"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 250,
            "description": "The maximum number of records to return. Loyverse allows up to 250.",
            "default": 50
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination cursor returned by a previous Loyverse list call."
          },
          "showDeleted": {
            "type": "boolean",
            "description": "Whether to include soft-deleted Loyverse records."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Loyverse stores."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "stores": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Loyverse API object returned without reshaping."
            },
            "description": "The Loyverse stores returned by the API."
          },
          "cursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "The cursor to pass to the next list request, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Loyverse response payload."
          }
        },
        "additionalProperties": false,
        "description": "The Loyverse stores list response."
      }
    }
  ]
}
