# Create Invoice with Quaderno API

## Pipedream makes it easy to connect APIs for Quaderno and 3,000+ other apps remarkably fast.

Trigger workflow on

HTTP requests, schedules and app events

Next, do this

Create Invoice with the Quaderno API

▶

Watch us build a workflow

8 min

### Trusted by 1,000,000+ developers from startups to Fortune 500 companies

## Developers ♥ Pipedream

### Getting Started

Create a workflow to Create Invoice with the Quaderno API. When you configure and deploy the workflow, it will run on Pipedream's servers 24x7 for free.

1. **Configure** the Create Invoice action
   1. Connect your `Quaderno` account
   2. Configure `First Name`
   3. Optional- Configure `Last Name`
   4. Optional- Configure `Due Date`
   5. Optional- Configure `Currency`
   6. Optional- Select a `Recurring Period`
   7. Optional- Configure `Recurring Frequency`
   8. Optional- Configure `Country`
   9. Optional- Configure `Postal Code`
   10. Optional- Configure `Region`
   11. Optional- Configure `Street Line 1`
   12. Optional- Configure `Subject`
   13. Configure `How Many Items`
2. **Select a trigger** to run your workflow on HTTP requests, schedules or app events
3. **Deploy** the workflow
4. **Send a test event** to validate your setup
5. **Turn on** the trigger

### Details

This is a pre-built, source-available component from Pipedream's GitHub repo. The component is developed by Pipedream and the community, and verified and maintained by Pipedream.

Create Invoice on Quaderno

Description: Generate a new invoice in Quaderno.

Version: 0.0.2

Key: quaderno-create-invoice

### Code

```javascript
import common from "../common/invoice.mjs";

export default {
  ...common,
  key: "quaderno-create-invoice",
  name: "Create Invoice",
  description: "Generate a new invoice in Quaderno.",
  type: "action",
  version: "0.0.2",
  annotations: {
    destructiveHint: false,
    openWorldHint: true,
    readOnlyHint: false,
  },
  methods: {
    ...common.methods,
    createInvoice(args = {}) {
      return this.app.post({
        path: "/invoices",
        ...args,
      });
    },
  },
  async run({ $: step }) {
    const {
      firstName,
      lastName,
      dueDate,
      currency,
      recurringPeriod,
      recurringFrequency,
      country,
      postalCode,
      region,
      streetLine1,
      howManyItems,
    } = this;

const response = await this.createInvoice({
      step,
      data: {
        contact: {
          first_name: firstName,
          last_name: lastName,
        },
        due_date: dueDate,
        currency,
        recurring_period: recurringPeriod,
        recurring_frequency: recurringFrequency,
        country,
        postal_code: postalCode,
        region,
        street_line_1: streetLine1,
        items_attributes: this.getItems(howManyItems),
      },
    });

step.export("$summary", `Successfully created invoice with ID ${response.id}`);

return response;
  },
};
```

### Configuration

| Label | Prop | Type | Description |
| --- | --- | --- | --- |
| Quaderno | `app` | `app` | This component uses the Quaderno app. |
| First Name | `firstName` | `string` | The customer's first name who will be billed. |
| Last Name | `lastName` | `string` | The customer's last name who will be billed. |
| Due Date | `dueDate` | `string` | The date on which payment for this invoice is due. Must be in `YYYY-MM-DD` format. |
| Currency | `currency` | `string` | Three-letter ISO currency code, in uppercase. |
| Recurring Period | `recurringPeriod` | `string` | Select a value from the drop down menu: `days`, `weeks`, `months`, `years`. |
| Recurring Frequency | `recurringFrequency` | `integer` | The number of periods between each invoice. |
| Country | `country` | `string` | 2-letter ISO country code. |
| Postal Code | `postalCode` | `string` | ZIP or postal code. |
| Region | `region` | `string` | State/Province/Region. |
| Street Line 1 | `streetLine1` | `string` | Address line 1 (Street address/PO Box). |
| Subject | `subject` | `string` | The subject of the invoice. |
| How Many Items | `howManyItems` | `integer` | The number of line items to add to the invoice. |

### Authentication

Quaderno uses API keys for authentication. When you connect your Quaderno account, Pipedream securely stores the keys so you can easily authenticate to Quaderno APIs in both code and no-code steps.

Your account name is `1234` if your Quaderno URL is `https://1234.quadernoapp.com`

### About Quaderno

Automate tax compliance worldwide with one click. Quaderno handles sales tax so savvy entrepreneurs don’t have to.

### More Ways to Use Quaderno

#### Triggers

New Invoice Created from the Quaderno API

Emit new event when a new invoice is generated in Quaderno.

New Payment Received from the Quaderno API

Emit new event when a payment is successfully processed in Quaderno.

#### Actions

Create Contact with the Quaderno API

Add a new contact to Quaderno.

Update Invoice with the Quaderno API

Modify an existing invoice's details in Quaderno.
