EasyPost is a simple shipping API. You can sign up for an account at https://easypost.com
Install the gem:
gem install easypost
Import the EasyPost client in your application:
require 'easypost'
require 'easypost'
EasyPost.api_key = 'cueqNZUb3ldeWTNX7MU3Mel8UXtaAMUi'
to_address = EasyPost::Address.create(
:name => 'Dr. Steve Brule',
:street1 => '179 N Harbor Dr',
:city => 'Redondo Beach',
:state => 'CA',
:zip => '90277',
:country => 'US',
:phone => '310-808-5243'
)
from_address = EasyPost::Address.create(
:company => 'EasyPost',
:street1 => '118 2nd Street',
:street2 => '4th Floor',
:city => 'San Francisco',
:state => 'CA',
:zip => '94105',
:phone => '415-456-7890'
)
parcel = EasyPost::Parcel.create(
:width => 15.2,
:length => 18,
:height => 9.5,
:weight => 35.1
)
customs_item = EasyPost::CustomsItem.create(
:description => 'EasyPost T-shirts',
:quantity => 2,
:value => 23.56,
:weight => 33,
:origin_country => 'us',
:hs_tariff_number => 123456
)
customs_info = EasyPost::CustomsInfo.create(
:integrated_form_type => 'form_2976',
:customs_certify => true,
:customs_signer => 'Dr. Pepper',
:contents_type => 'gift',
:contents_explanation => '', # only required when contents_type => 'other'
:eel_pfc => 'NOEEI 30.37(a)',
:non_delivery_option => 'abandon',
:restriction_type => 'none',
:restriction_comments => '',
:customs_items => [customs_item]
)
shipment = EasyPost::Shipment.create(
:to_address => to_address,
:from_address => from_address,
:parcel => parcel,
:customs_info => customs_info
)
shipment.buy(
:rate => shipment.lowest_rate
)
shipment.insure(amount: 100)
puts shipment.insurance
puts shipment.postage_label.label_url
Up-to-date documentation at: https://easypost.com/docs
rspec spec