Skip to main content
Early Access - The Dcycle CLI is currently available for enterprise customers. Contact us to learn more about access.

Overview

The purchase command tracks goods and services purchased from suppliers, covering GHG Protocol Scope 3 Category 1 (Purchased Goods & Services) and Category 2 (Capital Goods).
dcy purchase <subcommand> [flags]

Available Commands

CommandDescription
listList purchases
showShow purchase details
editEdit a purchase
uploadUpload purchases from CSV
purge-orphan-suppliersRemove suppliers with no associated purchases
supplier-specific upload-suppliersUpload supplier-specific emission factors
supplier-specific upload-purchasesUpload purchases linked to supplier-specific factors

List Purchases

dcy purchase list [flags]

# Aliases
dcy purchase ls

Examples

# List all purchases
dcy purchase list

# Search by description or supplier
dcy purchase list --search "steel"

# Filter by exact description
dcy purchase list --description "Steel beams"

# Filter by status (repeatable for multiple values)
dcy purchase list --status validated
dcy purchase list --status validated --status uploaded

# Filter by purchase type (repeatable)
dcy purchase list --purchase-type goods
dcy purchase list --purchase-type spend_based

# Filter by expense type (repeatable)
dcy purchase list --expense-type capital_goods
dcy purchase list --expense-type capex

# Pagination
dcy purchase list --page 2 --size 100

# JSON output for scripting
dcy purchase list --format json

Flags

FlagDefaultDescription
--searchSearch by description or supplier name
--descriptionFilter by exact description
--statusFilter by status (repeatable)
--purchase-typeFilter by purchase type (repeatable)
--expense-typeFilter by expense type (repeatable)
--page1Page number
--size50Page size
--orgOrganization ID override

Output

Showing 3 of 42 purchases in Acme Corp
abc123-... | Steel Beams    | 500.00 kg  | capex     | validated | SupplierCo
def456-... | Office Paper   |  20.00 EUR | opex      | uploaded  | PaperInc
ghi789-... | IT Equipment   | 3 units    | capex     | active    | TechSupply
Columns: ID, product name, quantity, expense type, status, supplier.

Show Purchase

Display full details for a single purchase.
dcy purchase show <purchase-id>

Examples

dcy purchase show 00000000-0000-0000-0000-000000000000

# JSON output
dcy purchase show <purchase-id> --format json

Flags

FlagDescription
--orgOrganization ID override

Output Fields

ID, product name, description, purchase date, quantity, expense type, purchase type, status, sector, unit, supplier, recycled value, CO2e, and file information.

Edit Purchase

Update metadata on a single purchase.
dcy purchase edit <purchase-id> [flags]

Examples

dcy purchase edit <purchase-id> --description "Updated description"
dcy purchase edit <purchase-id> --quantity 500 --unit-id <unit-uuid>
dcy purchase edit <purchase-id> --purchase-date 2024-06-15
dcy purchase edit <purchase-id> --expense-type capital_goods

Flags

FlagDescription
--descriptionPurchase description
--quantityQuantity
--purchase-datePurchase date (YYYY-MM-DD)
--recycledRecycled value
--product-nameProduct name
--unit-idUnit ID
--expense-typeExpense type
--orgOrganization ID override

Upload Purchases

Bulk upload purchases from a CSV file.
dcy purchase upload <file.csv> [flags]

Examples

# Upload with validation (default)
dcy purchase upload purchases.csv

# Skip validation
dcy purchase upload purchases.csv --skip-validation

Flags

FlagDefaultDescription
--skip-validationfalseSkip validation step
--orgOrganization ID override

Purge Orphan Suppliers

Remove suppliers that have no associated purchases. Useful for cleanup after bulk delete operations.
dcy purchase purge-orphan-suppliers [flags]

Examples

# With confirmation prompt
dcy purchase purge-orphan-suppliers

# Skip confirmation
dcy purchase purge-orphan-suppliers --yes

Flags

FlagShortDefaultDescription
--yes-yfalseSkip confirmation prompt
--orgOrganization ID override

Supplier-Specific Operations

Upload custom emission factors from specific suppliers, then upload purchases linked to those factors. This improves accuracy over generic spend-based calculations.

Upload Supplier Emission Factors

dcy purchase supplier-specific upload-suppliers [file.csv] [flags]

Examples

# Generate CSV template
dcy purchase supplier-specific upload-suppliers --template

# Validate without uploading
dcy purchase supplier-specific upload-suppliers factors.csv --dry-run

# Upload emission factors
dcy purchase supplier-specific upload-suppliers factors.csv

Flags

FlagDefaultDescription
--templatefalsePrint CSV template to stdout
--dry-runfalseValidate without uploading
--orgOrganization ID override

Upload Supplier-Specific Purchases

dcy purchase supplier-specific upload-purchases [file.csv] [flags]

Examples

# Generate CSV template
dcy purchase supplier-specific upload-purchases --template

# Validate without uploading
dcy purchase supplier-specific upload-purchases purchases.csv --dry-run

# Upload
dcy purchase supplier-specific upload-purchases purchases.csv

Flags

FlagDefaultDescription
--templatefalsePrint CSV template to stdout
--dry-runfalseValidate without uploading
--orgOrganization ID override
Supplier-specific emission factors improve accuracy over generic spend-based factors. Request real data from your suppliers’ environmental reports.

Common Options

All purchase commands support:
FlagDescription
--format jsonJSON output (default: text)
--verboseShow HTTP request/response details
--timeoutRequest timeout in seconds

Workflows

Bulk Upload Pipeline

# 1. Upload purchases CSV (validates first by default)
dcy purchase upload purchases.csv

# 2. If validation passes, upload for real
dcy purchase upload purchases.csv --skip-validation

# 3. Verify uploaded data
dcy purchase list --status uploaded

Supplier-Specific Factors Pipeline

# 1. Generate and fill supplier emission factor template
dcy purchase supplier-specific upload-suppliers --template > suppliers.csv
# (edit suppliers.csv with your data)

# 2. Validate
dcy purchase supplier-specific upload-suppliers suppliers.csv --dry-run

# 3. Upload factors
dcy purchase supplier-specific upload-suppliers suppliers.csv

# 4. Generate and fill purchases template
dcy purchase supplier-specific upload-purchases --template > purchases.csv
# (edit purchases.csv with your data)

# 5. Upload purchases
dcy purchase supplier-specific upload-purchases purchases.csv

Piping with jq

# List purchases by expense type
dcy purchase list --format json | jq 'group_by(.expense_type) | map({type: .[0].expense_type, count: length})'

# Find purchases without emissions
dcy purchase list --format json | jq '[.[] | select(.co2e == null)] | length'

# Export supplier names
dcy purchase list --format json | jq '[.[].supplier.business_name // "N/A"] | unique'