Skip to main content

EasyPost Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow data flow that sends data to an EasyPost location.
easypost_api.png

EasyPost

Create an EasyPost Destination

  1. Click the + icon on the Nexset that will be sent to the EasyPost destination, and select the Send to Destination option from the menu.

  2. Select the EasyPost connector from the list of available destination connectors. Then, select the credential that will be used to connect to the EasyPost organization, and click Next; or, create a new EasyPost credential for use in this flow.

  3. In Nexla, EasyPost destinations can be created using pre-built endpoint templates, which expedite destination setup for common EasyPost endpoints. Each template is designed specifically for the corresponding EasyPost endpoint, making destination configuration easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    EasyPost destinations can also be configured manually, allowing you to send data to EasyPost endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common EasyPost endpoints. Each template is designed specifically for the corresponding EasyPost endpoint, making destination setup easy and efficient.

  • To configure this destination using a template, select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

    Create Address

    Creates a new address record in the EasyPost system. Use this endpoint to store shipping origin or destination addresses for use in future shipments. EasyPost can also optionally verify addresses during creation to improve deliverability.

    • No additional URL parameters are required. The address data is supplied in the request body via the Nexset record fields. Ensure your Nexset includes the relevant address fields such as name, street1, city, state, zip, and country.
    • To trigger EasyPost address verification during creation, include verify or verify_strict in the request body with a value of true.

    For additional information about the EasyPost Create Address API, refer to the EasyPost Addresses documentation.

    Create Parcel

    Creates a new parcel record in EasyPost with the specified dimensions and weight. Parcels define the physical characteristics of the package being shipped and are required when creating shipments in EasyPost.

    • No additional URL parameters are required. Parcel data is supplied through the Nexset record. Ensure your Nexset includes the required parcel fields: length, width, height (in inches), and weight (in ounces).
    • Alternatively, you can specify a predefined_package value (such as FlatRateBox for USPS Flat Rate packaging) instead of explicit dimensions.

    For additional information about the EasyPost Create Parcel API, refer to the EasyPost Parcels documentation.

    One-Call Buy Shipment

    Creates and immediately purchases a shipping label for a shipment in a single API call, with EasyPost automatically selecting a rate based on your account's default carrier and service settings. This is the most efficient way to generate a shipping label when you do not need to compare rates before purchasing.

    • No additional URL parameters are required. The complete shipment object—including to_address, from_address, parcel, and any options—is provided via the Nexset record in the request body.
    • To trigger the one-call buy behavior, include a service and carrier field in the shipment body, or configure a default carrier service in your EasyPost account settings.
    • The response includes the purchased label URL, tracking code, selected rate, and complete shipment details.

    For additional information about the EasyPost One-Call Buy Shipment API, refer to the EasyPost Shipments documentation.

    Buy Shipment

    Purchases a shipping label for an existing EasyPost shipment that has already been created and rated. Use this endpoint when you have previously created a shipment, reviewed the available rates, and are now ready to purchase a label using a specific rate ID.

    • Enter the unique identifier of the shipment for which to purchase a label in the Shipment ID field. EasyPost shipment IDs follow the format shp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX and can be found from the response of a previous Create Shipment API call or within the EasyPost Dashboard.

    • The request body must include the rate object specifying which rate to purchase. At minimum, include the id field containing the rate ID (e.g., rate_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX).
    • Optionally, include an end_shipper_id in the request body to purchase the label on behalf of a third-party shipper configured as an End Shipper in your EasyPost account.

    For additional information about the EasyPost Buy Shipment API, refer to the EasyPost Shipments documentation.

    Refund Shipment

    Requests a postage refund for a previously purchased shipment label. Use this endpoint when a shipment label is no longer needed—for example, when an order is cancelled after a label has been generated. Refund eligibility is subject to the carrier's policies.

    • Enter the unique identifier of the shipment to refund in the Shipment Id field. EasyPost shipment IDs follow the format shp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.

    • No request body is required for this endpoint.

    Refund processing times vary by carrier. Not all carriers support automated refunds through the EasyPost API. For additional information, refer to the EasyPost Shipments documentation.

    Insure Shipment

    Adds EasyPost insurance to an already-purchased shipment. EasyPost insurance provides coverage for lost or damaged packages across all carriers and service levels. Use this endpoint when you want to insure a shipment after purchase rather than during the initial shipment creation.

    • Enter the unique identifier of the shipment to insure in the Shipment ID field. EasyPost shipment IDs follow the format shp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.

    • The request body must include an amount field specifying the insured value of the shipment in USD (e.g., 100.00).

    For additional information about EasyPost shipment insurance, refer to the EasyPost Insurance documentation.

    Create Order

    Creates a new EasyPost Order, which represents a collection of shipments grouped together for multi-package or multi-carrier ordering. Use this endpoint when you need to create and rate an order containing multiple shipments before purchasing labels.

    • No additional URL parameters are required. The complete order object—including to_address, from_address, and a shipments array—is provided via the Nexset record in the request body.
    • The response includes the created order ID and a list of available rates for each shipment within the order, which can then be used with the Buy Order endpoint to purchase labels.

    For additional information about the EasyPost Orders API, refer to the EasyPost Orders documentation.

    Buy Order

    Purchases shipping labels for all shipments in an existing EasyPost Order in a single API call. Use this endpoint after creating an order and selecting the desired carrier and service level to purchase all labels at once.

    • Enter the unique identifier of the order for which to purchase labels in the Order ID field. EasyPost order IDs follow the format order_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.

    • The request body must include the carrier and service fields specifying which carrier service to use for all shipments in the order.

    For additional information about the EasyPost Buy Order API, refer to the EasyPost Orders documentation.

    Create Batch

    Creates a new EasyPost Batch for multi-shipment label generation. Batches allow you to group many shipments together and purchase or generate labels for all of them in coordinated operations, which is useful for high-volume shipping scenarios.

    • No additional URL parameters are required. The batch object—including an optional shipments array containing shipment references—is provided via the Nexset record in the request body. Shipments can also be added to the batch after creation using the Add Shipments to Batch endpoint.
    • The response includes the created batch ID, which is required for subsequent Buy Batch, Add Shipments to Batch, and Create Batch Label operations.

    For additional information about the EasyPost Batches API, refer to the EasyPost Batches documentation.

    Add Shipments to Batch

    Adds one or more existing shipments to an existing EasyPost Batch. Use this endpoint to build up a batch incrementally before purchasing all labels at once with the Buy Batch endpoint.

    • Enter the unique identifier of the batch to which shipments will be added in the Batch ID field. EasyPost batch IDs follow the format batch_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.

    • The request body must include a shipments array containing objects with the id field for each shipment to add (e.g., [{"id": "shp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}]).

    For additional information about the EasyPost Batches API, refer to the EasyPost Batches documentation.

    Buy Batch

    Purchases shipping labels for all shipments in an existing EasyPost Batch. After all shipments have been added to the batch, use this endpoint to trigger the bulk label purchase operation.

    • Enter the unique identifier of the batch to purchase in the Batch Id field. EasyPost batch IDs follow the format batch_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.

    • No request body is required. EasyPost will process label purchases for all shipments in the batch asynchronously. Monitor the batch status via the EasyPost Dashboard or webhook events to confirm when all labels have been purchased.

    Batch label purchases are processed asynchronously by EasyPost. For additional information about batch processing and status tracking, refer to the EasyPost Batches documentation.

    Create Batch Label

    Generates a combined label file (PDF or ZPL) containing all individual shipment labels in a purchased batch. Use this endpoint after all batch shipments have been purchased to produce a single downloadable label file for printing.

    • Enter the unique identifier of the purchased batch in the Batch ID field. EasyPost batch IDs follow the format batch_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.

    • The request body must include the file_format field specifying the label output format. Supported values are:

      • PDF: Standard document format, suitable for most printers.
      • ZPL: Zebra Programming Language format, used for thermal/label printers.

    The batch must be in a purchased state before generating a batch label. For additional information, refer to the EasyPost Batches documentation.

    Create Insurance

    Creates a standalone EasyPost insurance record for a shipment. Use this endpoint to purchase EasyPost insurance for a shipment that was created or purchased outside of EasyPost, such as a shipment made directly through a carrier portal.

    • No additional URL parameters are required. The insurance object—including to_address, from_address, tracker (with tracking code and carrier), amount (insured value in USD), and optional reference—is provided via the Nexset record in the request body.

    For additional information about EasyPost standalone insurance, refer to the EasyPost Insurance documentation.

    Refund Insurance

    Requests a refund for an existing EasyPost insurance policy by its insurance ID. Use this endpoint when a shipment covered by standalone EasyPost insurance is no longer being shipped and the insurance premium should be returned.

    • Enter the unique identifier of the insurance record to refund in the Insurance Id field. EasyPost insurance IDs follow the format ins_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.

    • No request body is required for this endpoint.

    For additional information about EasyPost insurance refunds, refer to the EasyPost Insurance documentation.

    Create Claim

    Files a new insurance claim for a lost or damaged shipment covered by EasyPost insurance. Use this endpoint to initiate the claims process when a package has not arrived or has arrived in a damaged condition.

    • No additional URL parameters are required. The claim object—including the tracking_code, amount (claimed value in USD), type (e.g., loss or damage), and email_evidence_attachments or other supporting fields—is provided via the Nexset record in the request body.
    • EasyPost will review and process the claim. Monitor the claim status using the Retrieve Claim endpoint or EasyPost Dashboard.

    For additional information about the EasyPost Claims API, refer to the EasyPost Claims documentation.

    Create Tracker

    Creates a standalone EasyPost Tracker for any carrier tracking number, enabling real-time package status monitoring without requiring the shipment to have been created through EasyPost. Use this endpoint to track packages shipped via carrier portals or other systems.

    • No additional URL parameters are required. The tracker object—including the tracking_code and optionally a carrier name—is provided via the Nexset record in the request body. If no carrier is specified, EasyPost will attempt to automatically detect the carrier from the tracking code format.
    • The response includes the created tracker ID and any currently available tracking events from the carrier.

    For additional information about the EasyPost Trackers API, refer to the EasyPost Trackers documentation.

    Create Webhook

    Creates a webhook subscription to receive EasyPost event notifications at a specified URL. EasyPost webhooks deliver real-time event updates for tracking status changes, batch processing completions, refund outcomes, and other shipping lifecycle events.

    • No additional URL parameters are required. The webhook object—including the url field specifying the endpoint that will receive event payloads—is provided via the Nexset record in the request body.
    • Optionally include a custom_headers array in the request body to add authentication or routing headers to webhook deliveries.

    For additional information about EasyPost Webhooks, refer to the EasyPost Webhooks documentation.

    Create Scan Form

    Creates a USPS scan form (also known as a manifest) for batch carrier drop-offs. A scan form consolidates multiple shipment barcodes onto a single document that a carrier pickup agent can scan at once, streamlining the handoff process for high-volume USPS drop-offs.

    • No additional URL parameters are required. The scan form object—including a shipments array containing the IDs of all shipments to include on the form—is provided via the Nexset record in the request body.
    • All shipments included in the scan form must have purchased USPS labels and must share the same from_address.
    • The response includes the scan form ID and a URL to download the generated PDF document.

    Scan forms are specific to USPS. For additional information, refer to the EasyPost Scan Forms documentation.

    Create Carrier Account

    Creates a new Carrier Account in your EasyPost account, connecting your own negotiated carrier credentials to enable rate shopping and label purchasing through your preferred carriers. Use this endpoint to programmatically register carrier accounts rather than configuring them through the EasyPost Dashboard.

    • No additional URL parameters are required. The carrier account object—including the type field specifying the carrier (e.g., FedExAccount, UPSAccount) and a credentials object containing carrier-specific authentication fields—is provided via the Nexset record in the request body.
    • Required credential fields vary by carrier. Refer to the EasyPost carrier accounts documentation for the specific fields required for each supported carrier.

    For additional information about connecting carrier accounts to EasyPost, refer to the EasyPost Carrier Accounts documentation.

    Update Carrier Account

    Updates the credentials or settings of an existing Carrier Account in your EasyPost account. Use this endpoint when a carrier's authentication credentials change or when you need to update account configuration details.

    • Enter the unique identifier of the carrier account to update in the Carrier Account ID field. EasyPost carrier account IDs follow the format ca_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.

    • The request body should include only the fields to be updated, such as credentials or description. Fields not included in the request will not be changed.

    For additional information about managing carrier accounts in EasyPost, refer to the EasyPost Carrier Accounts documentation.

    Create End Shipper

    Creates an End Shipper record in EasyPost, representing a third-party entity on whose behalf shipments are purchased. End Shippers are used by platforms and marketplaces that need to purchase labels on behalf of their own seller or merchant customers while complying with carrier regulations.

    • No additional URL parameters are required. The End Shipper object—containing the third-party's name, company, street1, city, state, zip, country, phone, and email—is provided via the Nexset record in the request body.
    • Once created, the End Shipper ID can be referenced in future Buy Shipment calls using the end_shipper_id field.

    For additional information about EasyPost End Shippers, refer to the EasyPost End Shippers documentation.

    Update End Shipper

    Updates the address or contact details of an existing End Shipper record in your EasyPost account. Use this endpoint when a third-party shipper's contact information or address has changed and needs to be reflected in future label purchases.

    • Enter the unique identifier of the End Shipper to update in the End Shipper ID field. EasyPost End Shipper IDs follow the format es_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.

    • The request body should include the updated address or contact fields. Note that all address fields are required even for partial updates—supply the complete updated address object.

    For additional information about EasyPost End Shippers, refer to the EasyPost End Shippers documentation.

Configure Manually

EasyPost destinations can be manually configured to send data to any valid EasyPost API endpoint.

Using manual configuration, you can also configure Nexla to automatically send the response received from the EasyPost API after each call to a new Nexla webhook data source.

API Method

  1. To manually configure this destination, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the EasyPost API from the Method pulldown menu. Most EasyPost write operations use POST to create new resources, while update operations use PUT.

Data Format

  1. Select the format in which the Nexset data will be sent to the EasyPost API from the Content Format pulldown menu. EasyPost accepts JSON (application/json) for all API requests. Nexla will automatically convert the data to the selected format for each API call.

API Endpoint URL

  1. Enter the URL of the EasyPost API endpoint to which you want to send the Nexset data in the URL field. All EasyPost API endpoints use the base URL https://api.easypost.com/v2 followed by the resource path. For update operations that target a specific resource, append the resource ID to the URL path.

    Some commonly used EasyPost destination endpoints include:

    • https://api.easypost.com/v2/shipments — Create shipments
    • https://api.easypost.com/v2/addresses — Create addresses
    • https://api.easypost.com/v2/trackers — Create trackers
    • https://api.easypost.com/v2/batches — Create batches

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2).

    You do not need to include any headers already present in the credentials. The EasyPost Authorization and Content-Type headers are automatically handled by Nexla based on your credential and data format configuration.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this EasyPost destination, select the attributes from the Exclude Attributes pulldown menu.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional
  1. If records should be sent to this destination in batched API calls, check the box next to Would you like to batch your records together? to enable record batching.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings. Some algorithms require additional settings—click on an algorithm listed below to view instructions for configuring these settings.

Property Inside JSON Object

  1. Enter the name of the JSON property that should contain the batched records in the Property Name field.
  2. If any additional properties should be included in the request, enter the properties in the Other Props field in JSON format.

Code

  1. Enter the code that will be used to create the batched request in the code editor below the Grouping Algorithm field.

Response Webhook

Optional

Nexla can automatically send the response received from the EasyPost API after each call to a new Nexla webhook data source. This option allows you to keep track of the status of each API call and any additional information returned after each call—such as the created resource ID, tracking codes, or label URLs returned by EasyPost.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the EasyPost API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.
  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing (Manual Configuration)

After all endpoint settings have been configured, Nexla can send a test payload to the EasyPost API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the EasyPost API using the current settings.

Save & Activate the Destination

  • Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured EasyPost endpoint, open the destination resource menu, and select Activate.

    The Nexset data will not be sent to the EasyPost API until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.