Skip to content
tsubotitsch edited this page Apr 12, 2026 · 4 revisions

SendDrop - A PowerShell Module for SendDrop.com API

PowerShell Gallery Version PowerShell Gallery Downloads Platform GitHub Issues

SendDrop SendDrop is an Austrian provider offering online retailers an easy-to-integrate platform for automated shipping processes, with transparent pricing and competitive rates—especially for shipments within Austria and to Germany.

This PowerShell module provides a comprehensive set of functions to automate interactions with SendDrop using the SendDrop API.

For detailed API reference, see the SendDrop API documentation.

Functions

Brands Shipments Common
Get-SendDropBrand Add-SendDropShipmentDocument Connect-SendDrop
Get-SendDropBrandLogo Copy-SendDropShipment Disconnect-SendDrop
Get-SendDropShipment
New-SendDropShipment
New-SendDropShipmentLabel
New-SendDropShipmentReturn
Update-SendDropShipment
Update-SendDropShipmentBrand
Update-SendDropShipmentComment

First Steps

Getting an API Key

First, you'll need an API key from SendDrop:

  1. Log in to SendDrop.com or register for a free account and complete the On-Boarding
  2. Navigate to My Profile > Settings > Generate new Token
  3. Select the authorizations the key should have
  4. Click Create and copy the generated token

Connecting to SendDrop

The module supports multiple ways to authenticate:

# PowerShellGet 2.x
#Install-Module -Name SendDrop -Repository PSGallery

# PowerShellGet 3.x
Install-PSResource -Name SendDrop

Import-Module SendDrop

# List all available cmdlets provided by the module
Get-Command -Module SendDrop

# Method 1: Direct token (recommended for scripts)
$token = "your-api-token-here"
Connect-SendDrop -Token $token

# Method 2: Secure credential storage (recommended for interactive use)
# Store securely:
$credential = Get-Credential -Message "Enter your SendDrop API token (username doesn't matter)"
$credential | Export-Clixml -Path "$env:USERPROFILE\SendDrop-Token.xml"

# Connect using stored credentials:
$credential = Import-Clixml -Path "$env:USERPROFILE\SendDrop-Token.xml"
Connect-SendDrop -Token $credential

# Method 3: Interactive prompt (if no token provided)
Connect-SendDrop
# This will prompt you to enter your token securely

# Method 4: Custom API endpoint (if using a different environment)
Connect-SendDrop -Token $token -APIuri "https://custom-api.senddrop.dev/api/v1"

Verifying Connection

After connecting, you can verify your connection by retrieving your account information or testing with a simple API call:

# Test connection by getting available brands
Get-SendDropBrand

# Or check if you're connected by trying to get shipments
Get-SendDropShipment -Page 1 -PageSize 1

Disconnecting

When you're done, you can disconnect:

Disconnect-SendDrop

Retrieving Data

Getting Shipments

Retrieve shipments with various filtering and sorting options:

# Get all active shipments (default view)
Get-SendDropShipment

# Get shipments with pagination
Get-SendDropShipment -Page 1 -PageSize 50

# Get shipments by status
Get-SendDropShipment -Status "pending"
Get-SendDropShipment -Status "shipped"
Get-SendDropShipment -Status "delivered"

# Get shipments by tab/category
Get-SendDropShipment -Tab "active"
Get-SendDropShipment -Tab "completed"
Get-SendDropShipment -Tab "returns"

# Get a specific shipment by ID
Get-SendDropShipment -Id "550e8400-e29b-41d4-a716-446655440000"

# Filter by date range
Get-SendDropShipment -CreatedAfter "2024-01-01" -CreatedBefore "2024-12-31"

# Filter by tracking number
Get-SendDropShipment -TrackingNumber "SD123456789"

# Sort results
Get-SendDropShipment -SortBy "createdAt" -SortOrder "desc"
Get-SendDropShipment -SortBy "updatedAt" -SortOrder "asc"

Working with Brands

Retrieve available shipping brands and their logos:

# Get all available brands
Get-SendDropBrand

# Get a specific brand by ID
Get-SendDropBrand -Id "550e8400-e29b-41d4-a716-446655440001"

# Get brand logo (returns image data)
Get-SendDropBrandLogo -Id "550e8400-e29b-41d4-a716-446655440001"

Creating Shipments

Create new shipments with detailed recipient and parcel information:

# Basic shipment creation
$shipmentData = @{
    recipient = @{
        name = "John Doe"
        address = @{
            street = "123 Main Street"
            city = "Vienna"
            postalCode = "1010"
            country = "AT"
        }
        email = "john.doe@example.com"
        phone = "+43 1 2345678"
    }
    parcels = @(
        @{
            weight = 1.5  # kg
            dimensions = @{
                length = 30  # cm
                width = 20   # cm
                height = 10  # cm
            }
        }
    )
    service = "standard"  # or "express", "pickup", etc.
}

New-SendDropShipment -ShipmentData $shipmentData

# Shipment with multiple parcels
$multiParcelShipment = @{
    recipient = @{
        name = "Jane Smith"
        address = @{
            street = "456 Oak Avenue"
            city = "Berlin"
            postalCode = "10117"
            country = "DE"
        }
    }
    parcels = @(
        @{
            weight = 2.0
            dimensions = @{
                length = 40
                width = 30
                height = 15
            }
        },
        @{
            weight = 1.0
            dimensions = @{
                length = 25
                width = 15
                height = 8
            }
        }
    )
}

New-SendDropShipment -ShipmentData $multiParcelShipment -Confirm:$false

Managing Existing Shipments

Update and manage existing shipments:

# Update shipment brand
Update-SendDropShipmentBrand -ShipmentId "550e8400-e29b-41d4-a716-446655440000" -BrandId "new-brand-id"

# Add a comment to a shipment
Update-SendDropShipmentComment -ShipmentId "550e8400-e29b-41d4-a716-446655440000" -Comment "Urgent delivery requested"

# Copy an existing shipment (useful for recurring orders)
Copy-SendDropShipment -ShipmentId "550e8400-e29b-41d4-a716-446655440000"

# Generate shipping labels
$labelData = @{
    shipmentId = "550e8400-e29b-41d4-a716-446655440000"
    format = "PDF"
    size = "A6"
}
New-SendDropShipmentLabel -LabelData $labelData

# Create return shipments
$returnData = @{
    originalShipmentId = "550e8400-e29b-41d4-a716-446655440000"
    returnReason = "Damaged item"
    recipient = @{
        name = "John Doe"
        address = @{
            street = "123 Main Street"
            city = "Vienna"
            postalCode = "1010"
            country = "AT"
        }
    }
    parcels = @(
        @{
            weight = 1.2
            dimensions = @{
                length = 25
                width = 15
                height = 8
            }
        }
    )
}
New-SendDropShipmentReturn -ReturnData $returnData

Working with Documents

Add and retrieve shipment documents:

# Add a document to a shipment (invoice, packing slip, etc.)
Add-SendDropShipmentDocument -ShipmentId "550e8400-e29b-41d4-a716-446655440000" -FilePath "C:\invoices\invoice.pdf" -DocumentType "invoice"

# Get shipment documents
Get-SendDropShipmentDocument -ShipmentId "550e8400-e29b-41d4-a716-446655440000" -DocumentId "660e8400-e29b-41d4-a716-446655440000"

Clone this wiki locally