> ## Documentation Index
> Fetch the complete documentation index at: https://docs.b3os.org/llms.txt
> Use this file to discover all available pages before exploring further.

# QuickBooks Sandbox: Create Purchase

Creates a purchase transaction in QuickBooks Sandbox to record expenses (testing). Supports Cash, Check, and CreditCard payment types. Records expenses with account references, line items, and amounts. Ideal for: automated bookkeeping, expense tracking, contractor payments, transaction logs.

![QuickBooks Sandbox: Create Purchase logo](https://ai-icon.b3.fun/logo/quickbooks)
Catalog action Integrations pipedream:quickbooks_sandbox

Creates a purchase transaction in QuickBooks Sandbox to record expenses (testing). Supports Cash, Check, and CreditCard payment types. Records expenses with account references, line items, and amounts. Ideal for: automated bookkeeping, expense tracking, contractor payments, transaction logs.


## At a Glance

| Field | Value |
| --- | --- |
| Action ID | `quickbooks-sandbox-create-purchase` |
| Category | Integrations |
| Connector | `pipedream:quickbooks_sandbox` |
| Requires gas | No |
| Funds movement | None declared |
| Tags | `pipedream`, `integration`, `oauth`, `quickbooks`, `accounting`, `bookkeeping`, `expense`, `finance`, `tracking`, `sandbox`, `testing` |

## Payload Schema

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `accountId` | `string` | Yes | QuickBooks account ID \(bank account for Check, credit card for CreditCard payment type\) |
| `accountName` | `string` | No | Optional: Account name for the payment account \(e.g., 'Checking Account'\). Helps with debugging. |
| `paymentType` | `string` | Yes | Payment type for the purchase |
| `expenseAccountId` | `string` | No | QuickBooks expense account ID where this expense should be categorized \(e.g., '80' for Expenses account\). If not provided, uses the payment accountId. |
| `expenseAccountName` | `string` | No | Optional: Name for the expense account \(e.g., 'Office Supplies'\). Helps with debugging. |
| `description` | `string` | Yes | Expense description \(line item description\) |
| `amount` | `string \| number` | Yes | Expense amount \(can be string or number\) |
| `currency` | `string` | No | Currency code \(e.g., 'USD'\). Defaults to company currency if not provided. |
| `metadata` | `object` | No | Additional metadata \(e.g., transaction hash, AI classification\) |

## Result Schema

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `success` | `boolean` | Yes | Whether the purchase was created successfully |
| `data` | `object` | No | QuickBooks Purchase API response |
| `exports` | `object` | No | Pipedream exports \(if any\) |

## Examples

**Workflow node**

```json
{
  "type": "quickbooks-sandbox-create-purchase",
  "payload": {
    "accountId": "example-accountId",
    "paymentType": "Cash",
    "description": "example-description",
    "amount": "1000000"
  },
  "children": [],
  "connector": {
    "type": "pipedream:quickbooks_sandbox",
    "id": "conn_pipedream_quickbooks_sandbox"
  }
}
```
  **Test with API**

```bash
curl -X POST "https://api.b3os.org/v1/actions/quickbooks-sandbox-create-purchase/test" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "inputs": {
    "accountId": "example-accountId",
    "paymentType": "Cash",
    "description": "example-description",
    "amount": "1000000"
  }
}'
```

**Use expressions for dynamic values**

Payload fields can use workflow expressions such as `{{$trigger.body.amount}}`, `{{$nodes.fetch.result.price}}`, and `{{$props.asset}}` when the value should come from a trigger, prior node, or reusable workflow prop.