wave-api 0.1.0

Typed Rust client for the Wave Accounting GraphQL API
Documentation
# Mutation: Create product/service

Create a product (or service) under a business.

Inputs required `name` and `unitPrice` along with optional `description`.

To indicate you are selling the product, provide an `incomeAccountId`. Valid income accounts can be found by [filtering accounts](360033063891) by subtypes `INCOME`, `DISCOUNTS`, `OTHER_INCOME`.

To indicate you are buying the product, provide an `expenseAccountId`. This can be instead of, or in addition to `incomeAccountId`. Valid expense accounts can be found by [filtering accounts](360033063891) by subtypes `EXPENSE`, `COST_OF_GOODS_SOLD`, `PAYMENT_PROCESSING_FEES`, `PAYROLL_EXPENSES`.

Replace `<BUSINESS_ID>` with a real business id and `<ACCOUNT_ID>` with a real account id.

Find Valid Income Accounts
:   ```graphql
    query {
      business(id: "<BUSINESS_ID>") {
        id
        accounts(subtypes: [INCOME, DISCOUNTS, OTHER_INCOME]) {
          edges {
            node {
              id
              name
              subtype {
                name
                value
              }
            }
          }
        }
      }
    }
    ```

Create Operation
:   ```graphql
    mutation ($input: ProductCreateInput!) {
      productCreate(input: $input) {
        didSucceed
        inputErrors {
          code
          message
          path
        }
        product {
          id
          name
          description
          unitPrice
          incomeAccount {
            id
            name
          }
          expenseAccount {
            id
            name
          }
          isSold
          isBought
          isArchived
          createdAt
          modifiedAt
        }
      }
    }
    ```

Operation Variables
:   ```graphql
    {
      "input": {
        "businessId": "<BUSINESS_ID>",
        "name": "LED Bulb",
        "description": "5 Watt C7 light bulb",
        "unitPrice": "2.0625",
        "incomeAccountId": "<ACCOUNT_ID>"
      }
    }
    ```