diff --git a/CHANGELOG.md b/CHANGELOG.md index e8767b02..421318a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Next Release +- Adds new `shipment.recommendShipDate`, `smartrate.recommendShipDate`, and `smartrate.estimateDeliveryDate` functions - Routes `UpsAccount`, `UpsMailInnovationsAccount`, and `UpsSurepostAccount` create/update requests to the new `/ups_oauth_registrations` endpoint - Starting `2024-08-05`, UPS accounts will require a new payload to register or update. See [UPS OAuth 2.0 Update](https://support.easypost.com/hc/en-us/articles/26635027512717-UPS-OAuth-2-0-Update?utm_medium=email&_hsenc=p2ANqtz-96MmFtWICOzy9sKRbbcZSiMovZSrY3MSX1_bgY9N3f9yLVfWQdLhjAGq-SmNcOnDIS6GYhZ0OApjDBrGkKyLLMx1z6_TFOVp6-wllhEFQINrkuRuc&_hsmi=313130292&utm_content=313130292&utm_source=hs_email) for more details diff --git a/lib/EasyPost/EasyPostClient.php b/lib/EasyPost/EasyPostClient.php index 8cbc295f..35eb0d68 100644 --- a/lib/EasyPost/EasyPostClient.php +++ b/lib/EasyPost/EasyPostClient.php @@ -29,6 +29,7 @@ use EasyPost\Service\ReportService; use EasyPost\Service\ScanFormService; use EasyPost\Service\ShipmentService; +use EasyPost\Service\SmartRateService; use EasyPost\Service\TrackerService; use EasyPost\Service\UserService; use EasyPost\Service\WebhookService; @@ -60,6 +61,7 @@ * @property ReportService $report * @property ScanFormService $scanForm * @property ShipmentService $shipment + * @property SmartRateService $smartRate * @property TrackerService $tracker * @property UserService $user * @property WebhookService $webhook @@ -131,6 +133,7 @@ public function __get(string $serviceName) 'report' => ReportService::class, 'scanForm' => ScanFormService::class, 'shipment' => ShipmentService::class, + 'smartRate' => SmartRateService::class, 'tracker' => TrackerService::class, 'user' => UserService::class, 'webhook' => WebhookService::class, diff --git a/lib/EasyPost/Service/ShipmentService.php b/lib/EasyPost/Service/ShipmentService.php index ebc5bab3..fa37d00b 100644 --- a/lib/EasyPost/Service/ShipmentService.php +++ b/lib/EasyPost/Service/ShipmentService.php @@ -234,4 +234,24 @@ public function retrieveEstimatedDeliveryDate(string $id, string $plannedShipDat return InternalUtil::convertToEasyPostObject($this->client, $response['rates'] ?? []); } + + /** + * Retrieve a recommended ship date for an existing Shipment via the Precision Shipping API, + * based on a specific desired delivery date. + * + * @param string $id + * @param string $desiredDeliveryDate + * @return mixed + */ + public function recommendShipDate(string $id, string $desiredDeliveryDate): mixed + { + $params = [ + 'desired_delivery_date' => $desiredDeliveryDate, + ]; + + $url = $this->instanceUrl(self::serviceModelClassName(self::class), $id) . '/smartrate/precision_shipping'; + $response = Requestor::request($this->client, 'get', $url, $params); + + return InternalUtil::convertToEasyPostObject($this->client, $response['rates'] ?? []); + } } diff --git a/lib/EasyPost/Service/SmartRateService.php b/lib/EasyPost/Service/SmartRateService.php new file mode 100644 index 00000000..8ee394a7 --- /dev/null +++ b/lib/EasyPost/Service/SmartRateService.php @@ -0,0 +1,41 @@ +client, 'post', '/smartrate/deliver_on', $params); + + return InternalUtil::convertToEasyPostObject($this->client, $response); + } + + /** + * Retrieve the estimated delivery date of each carrier-service level combination via the + * Smart Deliver By API, based on a specific ship date and origin-destination postal code pair. + * + * @param mixed $params + * @return mixed + */ + public function estimateDeliveryDate(mixed $params = null): mixed + { + $response = Requestor::request($this->client, 'post', '/smartrate/deliver_by', $params); + + return InternalUtil::convertToEasyPostObject($this->client, $response); + } +} diff --git a/lib/easypost.php b/lib/easypost.php index e10bb736..772276d6 100644 --- a/lib/easypost.php +++ b/lib/easypost.php @@ -110,6 +110,7 @@ require_once(dirname(__FILE__) . '/EasyPost/Service/ReportService.php'); require_once(dirname(__FILE__) . '/EasyPost/Service/ScanFormService.php'); require_once(dirname(__FILE__) . '/EasyPost/Service/ShipmentService.php'); +require_once(dirname(__FILE__) . '/EasyPost/Service/SmartRateService.php'); require_once(dirname(__FILE__) . '/EasyPost/Service/TrackerService.php'); require_once(dirname(__FILE__) . '/EasyPost/Service/UserService.php'); require_once(dirname(__FILE__) . '/EasyPost/Service/WebhookService.php'); diff --git a/test/EasyPost/Fixture.php b/test/EasyPost/Fixture.php index fbc4921f..c30300da 100644 --- a/test/EasyPost/Fixture.php +++ b/test/EasyPost/Fixture.php @@ -231,6 +231,11 @@ public static function rmaFormOtions(): array public static function plannedShipDate(): string { - return '2023-11-24'; + return '2024-07-16'; + } + + public static function desiredDeliveryDate(): string + { + return '2024-07-16'; } } diff --git a/test/EasyPost/ShipmentTest.php b/test/EasyPost/ShipmentTest.php index 6601274d..b68e534e 100644 --- a/test/EasyPost/ShipmentTest.php +++ b/test/EasyPost/ShipmentTest.php @@ -516,4 +516,23 @@ public function testRetrieveEstimatedDeliveryDate(): void $this->assertNotNull($entry->easypost_time_in_transit_data); } } + + /** + * Tests that we retrieve the recommend ship date of a Shipment. + */ + public function testRetrieveRecommendDate(): void + { + TestUtil::setupCassette('shipments/recommendShipDate.yml'); + + $shipment = self::$client->shipment->create(Fixture::basicShipment()); + + $rates = self::$client->shipment->recommendShipDate( + $shipment->id, + Fixture::desiredDeliveryDate(), + ); + + foreach ($rates as $entry) { + $this->assertNotNull($entry->easypost_time_in_transit_data); + } + } } diff --git a/test/EasyPost/SmartRateTest.php b/test/EasyPost/SmartRateTest.php new file mode 100644 index 00000000..adc63d56 --- /dev/null +++ b/test/EasyPost/SmartRateTest.php @@ -0,0 +1,77 @@ + Fixture::caAddress1()['zip'], + 'to_zip' => Fixture::caAddress2()['zip'], + 'desired_delivery_date' => Fixture::desiredDeliveryDate(), + 'carriers' => [Fixture::usps()], + ]; + + $rates = self::$client->smartRate->recommendShipDate($params); + + foreach ($rates['results'] as $entry) { + $this->assertTrue( + isset($entry['easypost_time_in_transit_data']), + 'Assertion failed: easypost_time_in_transit_data is not set.' + ); + } + } + + /** + * Test that we retrieve SmartRates when provided a from/to zip and planned ship date. + */ + public function testRetrieveEstimatedDeliveryDate(): void + { + TestUtil::setupCassette('smartrate/estimatedDeliveryDate.yml'); + + $params = [ + 'from_zip' => Fixture::caAddress1()['zip'], + 'to_zip' => Fixture::caAddress2()['zip'], + 'planned_ship_date' => Fixture::plannedShipDate(), + 'carriers' => [Fixture::usps()], + ]; + + $rates = self::$client->smartRate->estimateDeliveryDate($params); + + foreach ($rates['results'] as $entry) { + $this->assertTrue( + isset($entry['easypost_time_in_transit_data']), + 'Assertion failed: easypost_time_in_transit_data is not set.' + ); + } + } +} diff --git a/test/cassettes/shipments/recommendShipDate.yml b/test/cassettes/shipments/recommendShipDate.yml new file mode 100644 index 00000000..afc73de9 --- /dev/null +++ b/test/cassettes/shipments/recommendShipDate.yml @@ -0,0 +1,160 @@ + +- + request: + method: POST + url: 'https://api.easypost.com/v2/shipments' + headers: + Host: api.easypost.com + Expect: '' + Accept-Encoding: '' + Accept: application/json + Authorization: '' + Content-Type: application/json + User-Agent: '' + body: '{"shipment":{"from_address":{"name":"Jack Sparrow","street1":"388 Townsend St","street2":"Apt 20","city":"San Francisco","state":"CA","zip":"94107","country":"US","email":"test@example.com","phone":"5555555555"},"to_address":{"name":"Elizabeth Swan","street1":"179 N Harbor Dr","city":"Redondo Beach","state":"CA","zip":"90277","country":"US","email":"test@example.com","phone":"5555555555"},"parcel":{"length":"10","width":"8","height":"4","weight":"15.4"}}}' + response: + status: + code: 201 + message: Created + headers: + x-frame-options: SAMEORIGIN + x-xss-protection: '1; mode=block' + x-content-type-options: nosniff + x-download-options: noopen + x-permitted-cross-domain-policies: none + referrer-policy: strict-origin-when-cross-origin + x-ep-request-uuid: b8e53c20669041f6e798cd230027aa64 + cache-control: 'private, no-cache, no-store' + pragma: no-cache + expires: '0' + location: /api/v2/shipments/shp_449052bb390640bea509210fef92eb0a + content-type: 'application/json; charset=utf-8' + content-length: '6335' + x-runtime: '0.768374' + x-node: bigweb32nuq + x-version-label: easypost-202407111940-3cb16a3462-master + x-backend: easypost + x-canary: direct + x-proxied: ['intlb3nuq fa152d4755', 'extlb2nuq fa152d4755'] + strict-transport-security: 'max-age=31536000; includeSubDomains; preload' + body: '{"created_at":"2024-07-11T20:35:02Z","is_return":false,"messages":[{"carrier":"UPS","carrier_account_id":"ca_533ac39596fc45809cf6685bbe55523a","type":"rate_error","message":"Invalid Access License number"},{"carrier":"UPS","carrier_account_id":"ca_d05aecc4f5c9412283e2fdc65d117692","type":"rate_error","message":"Invalid Access License number"},{"carrier":"DhlEcs","carrier_account_id":"ca_b3781a40f76d4b94a70d2258e6d318c2","type":"rate_error","message":"Invalid credentials"},{"carrier":"DhlEcs","carrier_account_id":"ca_91ae96a5fc1f4cf4aa4b69067df5686b","type":"rate_error","message":"Invalid credentials"},{"carrier":"DhlEcs","carrier_account_id":"ca_c02da7bfb4264ea3bcb85c0f760d4a6e","type":"rate_error","message":"Invalid credentials"},{"carrier":"DhlEcs","carrier_account_id":"ca_b437adf5f4c64f3d8823d5ffa776a158","type":"rate_error","message":"Invalid credentials"},{"carrier":"DhlEcs","carrier_account_id":"ca_e94e4fa45aba4058809c9246a48712b3","type":"rate_error","message":"Invalid credentials"}],"mode":"test","options":{"currency":"USD","payment":{"type":"SENDER"},"date_advance":0},"reference":null,"status":"unknown","tracking_code":null,"updated_at":"2024-07-11T20:35:03Z","batch_id":null,"batch_status":null,"batch_message":null,"customs_info":null,"from_address":{"id":"adr_0cb085bd3fc511ef9f4dac1f6bc539aa","object":"Address","created_at":"2024-07-11T20:35:02+00:00","updated_at":"2024-07-11T20:35:02+00:00","name":"Jack Sparrow","company":null,"street1":"388 Townsend St","street2":"Apt 20","city":"San Francisco","state":"CA","zip":"94107","country":"US","phone":"","email":"","mode":"test","carrier_facility":null,"residential":null,"federal_tax_id":null,"state_tax_id":null,"verifications":[]},"insurance":null,"order_id":null,"parcel":{"id":"prcl_80c59c7121cf452d89e202b242dea88b","object":"Parcel","created_at":"2024-07-11T20:35:02Z","updated_at":"2024-07-11T20:35:02Z","length":10,"width":8,"height":4,"predefined_package":null,"weight":15.4,"mode":"test"},"postage_label":null,"rates":[{"id":"rate_1c86295b13b644e5a0ecb14312c545e1","object":"Rate","created_at":"2024-07-11T20:35:03Z","updated_at":"2024-07-11T20:35:03Z","mode":"test","service":"Priority","carrier":"USPS","rate":"6.90","currency":"USD","retail_rate":"9.80","retail_currency":"USD","list_rate":"8.25","list_currency":"USD","billing_type":"easypost","delivery_days":2,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":2,"shipment_id":"shp_449052bb390640bea509210fef92eb0a","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b"},{"id":"rate_4f7d526d65724547b72a61caa9730821","object":"Rate","created_at":"2024-07-11T20:35:03Z","updated_at":"2024-07-11T20:35:03Z","mode":"test","service":"GroundAdvantage","carrier":"USPS","rate":"5.93","currency":"USD","retail_rate":"8.45","retail_currency":"USD","list_rate":"6.40","list_currency":"USD","billing_type":"easypost","delivery_days":3,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":3,"shipment_id":"shp_449052bb390640bea509210fef92eb0a","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b"},{"id":"rate_e57c56562118427f8811fa941ddaf42a","object":"Rate","created_at":"2024-07-11T20:35:03Z","updated_at":"2024-07-11T20:35:03Z","mode":"test","service":"First","carrier":"USPS","rate":"5.93","currency":"USD","retail_rate":"8.45","retail_currency":"USD","list_rate":"6.40","list_currency":"USD","billing_type":"easypost","delivery_days":3,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":3,"shipment_id":"shp_449052bb390640bea509210fef92eb0a","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b"},{"id":"rate_ee7e69da162948a0909520923cb360d1","object":"Rate","created_at":"2024-07-11T20:35:03Z","updated_at":"2024-07-11T20:35:03Z","mode":"test","service":"ParcelSelect","carrier":"USPS","rate":"5.93","currency":"USD","retail_rate":"8.45","retail_currency":"USD","list_rate":"6.40","list_currency":"USD","billing_type":"easypost","delivery_days":3,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":3,"shipment_id":"shp_449052bb390640bea509210fef92eb0a","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b"},{"id":"rate_9a6737cb2e8f486db5546be3e1632cf4","object":"Rate","created_at":"2024-07-11T20:35:03Z","updated_at":"2024-07-11T20:35:03Z","mode":"test","service":"Express","carrier":"USPS","rate":"33.10","currency":"USD","retail_rate":"37.90","retail_currency":"USD","list_rate":"33.10","list_currency":"USD","billing_type":"easypost","delivery_days":2,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":2,"shipment_id":"shp_449052bb390640bea509210fef92eb0a","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b"}],"refund_status":null,"scan_form":null,"selected_rate":null,"tracker":null,"to_address":{"id":"adr_0cad956d3fc511efacb1ac1f6bc53342","object":"Address","created_at":"2024-07-11T20:35:02+00:00","updated_at":"2024-07-11T20:35:02+00:00","name":"Elizabeth Swan","company":null,"street1":"179 N Harbor Dr","street2":null,"city":"Redondo Beach","state":"CA","zip":"90277","country":"US","phone":"","email":"","mode":"test","carrier_facility":null,"residential":null,"federal_tax_id":null,"state_tax_id":null,"verifications":[]},"usps_zone":4,"return_address":{"id":"adr_0cb085bd3fc511ef9f4dac1f6bc539aa","object":"Address","created_at":"2024-07-11T20:35:02+00:00","updated_at":"2024-07-11T20:35:02+00:00","name":"Jack Sparrow","company":null,"street1":"388 Townsend St","street2":"Apt 20","city":"San Francisco","state":"CA","zip":"94107","country":"US","phone":"","email":"","mode":"test","carrier_facility":null,"residential":null,"federal_tax_id":null,"state_tax_id":null,"verifications":[]},"buyer_address":{"id":"adr_0cad956d3fc511efacb1ac1f6bc53342","object":"Address","created_at":"2024-07-11T20:35:02+00:00","updated_at":"2024-07-11T20:35:02+00:00","name":"Elizabeth Swan","company":null,"street1":"179 N Harbor Dr","street2":null,"city":"Redondo Beach","state":"CA","zip":"90277","country":"US","phone":"","email":"","mode":"test","carrier_facility":null,"residential":null,"federal_tax_id":null,"state_tax_id":null,"verifications":[]},"forms":[],"fees":[],"id":"shp_449052bb390640bea509210fef92eb0a","object":"Shipment"}' + curl_info: + url: 'https://api.easypost.com/v2/shipments' + content_type: 'application/json; charset=utf-8' + http_code: 201 + header_size: 778 + request_size: 767 + filetime: -1 + ssl_verify_result: 0 + redirect_count: 0 + total_time: 1.195488 + namelookup_time: 0.002895 + connect_time: 0.151394 + pretransfer_time: 0.291628 + size_upload: 459.0 + size_download: 6335.0 + speed_download: 5299.0 + speed_upload: 383.0 + download_content_length: 6335.0 + upload_content_length: 459.0 + starttransfer_time: 1.19544 + redirect_time: 0.0 + redirect_url: '' + primary_ip: 169.62.110.130 + certinfo: { } + primary_port: 443 + local_ip: 10.130.6.29 + local_port: 60484 + http_version: 2 + protocol: 2 + ssl_verifyresult: 0 + scheme: HTTPS + appconnect_time_us: 291551 + connect_time_us: 151394 + namelookup_time_us: 2895 + pretransfer_time_us: 291628 + redirect_time_us: 0 + starttransfer_time_us: 1195440 + total_time_us: 1195488 + effective_method: POST + capath: '' + cainfo: '' + index: 0 +- + request: + method: GET + url: 'https://api.easypost.com/v2/shipments/shp_449052bb390640bea509210fef92eb0a/smartrate/precision_shipping?desired_delivery_date=2024-07-16' + headers: + Host: api.easypost.com + Accept-Encoding: '' + Accept: application/json + Authorization: '' + Content-Type: application/json + User-Agent: '' + response: + status: + code: 200 + message: OK + headers: + x-frame-options: SAMEORIGIN + x-xss-protection: '1; mode=block' + x-content-type-options: nosniff + x-download-options: noopen + x-permitted-cross-domain-policies: none + referrer-policy: strict-origin-when-cross-origin + x-ep-request-uuid: b8e53c22669041f7e798cd400027ac0e + cache-control: 'private, no-cache, no-store' + pragma: no-cache + expires: '0' + content-type: 'application/json; charset=utf-8' + content-length: '4098' + x-runtime: '0.132513' + x-node: bigweb43nuq + x-version-label: easypost-202407111940-3cb16a3462-master + x-backend: easypost + x-canary: direct + x-proxied: ['intlb4nuq fa152d4755', 'extlb2nuq fa152d4755'] + strict-transport-security: 'max-age=31536000; includeSubDomains; preload' + body: '{"rates":[{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":4,"percentile_90":4,"percentile_95":5,"percentile_97":5,"percentile_99":7},"delivery_date_confidence":0.19,"desired_delivery_date":"2024-07-16","estimated_transit_days":3,"ship_on_date":"2024-07-13"},"rate":{"carrier":"USPS","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b","created_at":"2024-07-11T20:35:03Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":2,"est_delivery_days":2,"id":"rate_1c86295b13b644e5a0ecb14312c545e1","list_currency":"USD","list_rate":8.25,"mode":"test","object":"Rate","rate":6.9,"retail_currency":"USD","retail_rate":9.8,"service":"Priority","shipment_id":"shp_449052bb390640bea509210fef92eb0a","updated_at":"2024-07-11T20:35:03Z"}},{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":4,"percentile_90":4,"percentile_95":5,"percentile_97":5,"percentile_99":9},"delivery_date_confidence":0.21,"desired_delivery_date":"2024-07-16","estimated_transit_days":3,"ship_on_date":"2024-07-13"},"rate":{"carrier":"USPS","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b","created_at":"2024-07-11T20:35:03Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":3,"est_delivery_days":3,"id":"rate_4f7d526d65724547b72a61caa9730821","list_currency":"USD","list_rate":6.4,"mode":"test","object":"Rate","rate":5.93,"retail_currency":"USD","retail_rate":8.45,"service":"GroundAdvantage","shipment_id":"shp_449052bb390640bea509210fef92eb0a","updated_at":"2024-07-11T20:35:03Z"}},{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":4,"percentile_90":4,"percentile_95":5,"percentile_97":5,"percentile_99":9},"delivery_date_confidence":0.21,"desired_delivery_date":"2024-07-16","estimated_transit_days":3,"ship_on_date":"2024-07-13"},"rate":{"carrier":"USPS","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b","created_at":"2024-07-11T20:35:03Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":3,"est_delivery_days":3,"id":"rate_e57c56562118427f8811fa941ddaf42a","list_currency":"USD","list_rate":6.4,"mode":"test","object":"Rate","rate":5.93,"retail_currency":"USD","retail_rate":8.45,"service":"First","shipment_id":"shp_449052bb390640bea509210fef92eb0a","updated_at":"2024-07-11T20:35:03Z"}},{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":4,"percentile_90":4,"percentile_95":5,"percentile_97":5,"percentile_99":9},"delivery_date_confidence":0.21,"desired_delivery_date":"2024-07-16","estimated_transit_days":3,"ship_on_date":"2024-07-13"},"rate":{"carrier":"USPS","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b","created_at":"2024-07-11T20:35:03Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":3,"est_delivery_days":3,"id":"rate_ee7e69da162948a0909520923cb360d1","list_currency":"USD","list_rate":6.4,"mode":"test","object":"Rate","rate":5.93,"retail_currency":"USD","retail_rate":8.45,"service":"ParcelSelect","shipment_id":"shp_449052bb390640bea509210fef92eb0a","updated_at":"2024-07-11T20:35:03Z"}},{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":2,"percentile_85":2,"percentile_90":3,"percentile_95":3,"percentile_97":4,"percentile_99":7},"delivery_date_confidence":0.47,"desired_delivery_date":"2024-07-16","estimated_transit_days":1,"ship_on_date":"2024-07-15"},"rate":{"carrier":"USPS","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b","created_at":"2024-07-11T20:35:03Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":2,"est_delivery_days":2,"id":"rate_9a6737cb2e8f486db5546be3e1632cf4","list_currency":"USD","list_rate":33.1,"mode":"test","object":"Rate","rate":33.1,"retail_currency":"USD","retail_rate":37.9,"service":"Express","shipment_id":"shp_449052bb390640bea509210fef92eb0a","updated_at":"2024-07-11T20:35:03Z"}}]}' + curl_info: + url: 'https://api.easypost.com/v2/shipments/shp_449052bb390640bea509210fef92eb0a/smartrate/precision_shipping?desired_delivery_date=2024-07-16' + content_type: 'application/json; charset=utf-8' + http_code: 200 + header_size: 707 + request_size: 385 + filetime: -1 + ssl_verify_result: 0 + redirect_count: 0 + total_time: 0.539185 + namelookup_time: 0.001221 + connect_time: 0.136901 + pretransfer_time: 0.262583 + size_upload: 0.0 + size_download: 4098.0 + speed_download: 7600.0 + speed_upload: 0.0 + download_content_length: 4098.0 + upload_content_length: 0.0 + starttransfer_time: 0.53711 + redirect_time: 0.0 + redirect_url: '' + primary_ip: 169.62.110.130 + certinfo: { } + primary_port: 443 + local_ip: 10.130.6.29 + local_port: 60490 + http_version: 2 + protocol: 2 + ssl_verifyresult: 0 + scheme: HTTPS + appconnect_time_us: 262522 + connect_time_us: 136901 + namelookup_time_us: 1221 + pretransfer_time_us: 262583 + redirect_time_us: 0 + starttransfer_time_us: 537110 + total_time_us: 539185 + effective_method: GET + capath: '' + cainfo: '' + index: 0 diff --git a/test/cassettes/shipments/retrieveEstimatedDeliveryDate.yml b/test/cassettes/shipments/retrieveEstimatedDeliveryDate.yml index ebd1c928..bacdcec1 100644 --- a/test/cassettes/shipments/retrieveEstimatedDeliveryDate.yml +++ b/test/cassettes/shipments/retrieveEstimatedDeliveryDate.yml @@ -14,8 +14,7 @@ body: '{"shipment":{"from_address":{"name":"Jack Sparrow","street1":"388 Townsend St","street2":"Apt 20","city":"San Francisco","state":"CA","zip":"94107","country":"US","email":"test@example.com","phone":"5555555555"},"to_address":{"name":"Elizabeth Swan","street1":"179 N Harbor Dr","city":"Redondo Beach","state":"CA","zip":"90277","country":"US","email":"test@example.com","phone":"5555555555"},"parcel":{"length":"10","width":"8","height":"4","weight":"15.4"}}}' response: status: - http_version: '1.1' - code: '201' + code: 201 message: Created headers: x-frame-options: SAMEORIGIN @@ -24,20 +23,20 @@ x-download-options: noopen x-permitted-cross-domain-policies: none referrer-policy: strict-origin-when-cross-origin - x-ep-request-uuid: 71ef911d655e66e6e78861a70021bace + x-ep-request-uuid: b8e53c1e669041e4e798cc1d002795bd cache-control: 'private, no-cache, no-store' pragma: no-cache expires: '0' - location: /api/v2/shipments/shp_097bd5085ef74deeb2a8914311215c7a + location: /api/v2/shipments/shp_788aa30b53e04545b4f416af4425c5cd content-type: 'application/json; charset=utf-8' - content-length: '6229' - x-runtime: '1.040287' - x-node: bigweb33nuq - x-version-label: easypost-202311212221-a0f06fbc2c-master + content-length: '6335' + x-runtime: '1.532754' + x-node: bigweb41nuq + x-version-label: easypost-202407111940-3cb16a3462-master x-backend: easypost - x-proxied: ['intlb2nuq b3de2c47ef', 'extlb2nuq 003ad9bca0'] + x-proxied: ['intlb4nuq fa152d4755', 'extlb2nuq fa152d4755'] strict-transport-security: 'max-age=31536000; includeSubDomains; preload' - body: '{"created_at":"2023-11-22T20:39:03Z","is_return":false,"messages":[{"carrier":"DhlEcs","carrier_account_id":"ca_cd846680a6f74c23891086de730769d6","type":"rate_error","message":"Unauthorized. Please check credentials and try again"},{"carrier":"DhlEcs","carrier_account_id":"ca_5e8c4f41363b432594441dbf98e4032e","type":"rate_error","message":"Unauthorized. Please check credentials and try again"},{"carrier":"DhlEcs","carrier_account_id":"ca_23d193562e8e459bbd937c2aad3dd092","type":"rate_error","message":"Unauthorized. Please check credentials and try again"},{"carrier":"DhlEcs","carrier_account_id":"ca_91e6857e8cb6455180f8ef8a3db8baaa","type":"rate_error","message":"Unauthorized. Please check credentials and try again"},{"carrier":"DhlEcs","carrier_account_id":"ca_cb65fc8581184ea38a3108f9e9d1e81c","type":"rate_error","message":"Unauthorized. Please check credentials and try again"}],"mode":"test","options":{"currency":"USD","payment":{"type":"SENDER"},"date_advance":0},"reference":null,"status":"unknown","tracking_code":null,"updated_at":"2023-11-22T20:39:03Z","batch_id":null,"batch_status":null,"batch_message":null,"customs_info":null,"from_address":{"id":"adr_2c291517897711ee9ca03cecef1b359e","object":"Address","created_at":"2023-11-22T20:39:03+00:00","updated_at":"2023-11-22T20:39:03+00:00","name":"Jack Sparrow","company":null,"street1":"388 Townsend St","street2":"Apt 20","city":"San Francisco","state":"CA","zip":"94107","country":"US","phone":"","email":"","mode":"test","carrier_facility":null,"residential":null,"federal_tax_id":null,"state_tax_id":null,"verifications":[]},"insurance":null,"order_id":null,"parcel":{"id":"prcl_f478830d24314c0ca2ea712882495b30","object":"Parcel","created_at":"2023-11-22T20:39:03Z","updated_at":"2023-11-22T20:39:03Z","length":10,"width":8,"height":4,"predefined_package":null,"weight":15.4,"mode":"test"},"postage_label":null,"rates":[{"id":"rate_552cb073b62e4e96897cda4ba9dd474c","object":"Rate","created_at":"2023-11-22T20:39:03Z","updated_at":"2023-11-22T20:39:03Z","mode":"test","service":"Express","carrier":"USPS","rate":"31.25","currency":"USD","retail_rate":"35.80","retail_currency":"USD","list_rate":"31.25","list_currency":"USD","billing_type":"easypost","delivery_days":null,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":null,"shipment_id":"shp_097bd5085ef74deeb2a8914311215c7a","carrier_account_id":"ca_8dc116debcdb49b5a66a2ddee4612600"},{"id":"rate_3cc6ca52721e401d94ad16c19610e786","object":"Rate","created_at":"2023-11-22T20:39:03Z","updated_at":"2023-11-22T20:39:03Z","mode":"test","service":"Priority","carrier":"USPS","rate":"6.95","currency":"USD","retail_rate":"10.20","retail_currency":"USD","list_rate":"8.24","list_currency":"USD","billing_type":"easypost","delivery_days":2,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":2,"shipment_id":"shp_097bd5085ef74deeb2a8914311215c7a","carrier_account_id":"ca_8dc116debcdb49b5a66a2ddee4612600"},{"id":"rate_eb81455a063343e88f400ca44bda630e","object":"Rate","created_at":"2023-11-22T20:39:03Z","updated_at":"2023-11-22T20:39:03Z","mode":"test","service":"GroundAdvantage","carrier":"USPS","rate":"5.93","currency":"USD","retail_rate":"8.00","retail_currency":"USD","list_rate":"6.07","list_currency":"USD","billing_type":"easypost","delivery_days":3,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":3,"shipment_id":"shp_097bd5085ef74deeb2a8914311215c7a","carrier_account_id":"ca_8dc116debcdb49b5a66a2ddee4612600"},{"id":"rate_3e4257d201224a16aa6063a8312266a5","object":"Rate","created_at":"2023-11-22T20:39:03Z","updated_at":"2023-11-22T20:39:03Z","mode":"test","service":"First","carrier":"USPS","rate":"5.93","currency":"USD","retail_rate":"8.00","retail_currency":"USD","list_rate":"6.07","list_currency":"USD","billing_type":"easypost","delivery_days":3,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":3,"shipment_id":"shp_097bd5085ef74deeb2a8914311215c7a","carrier_account_id":"ca_8dc116debcdb49b5a66a2ddee4612600"},{"id":"rate_43dda47b6bf84c28a60e25009dca351c","object":"Rate","created_at":"2023-11-22T20:39:03Z","updated_at":"2023-11-22T20:39:03Z","mode":"test","service":"ParcelSelect","carrier":"USPS","rate":"5.93","currency":"USD","retail_rate":"8.00","retail_currency":"USD","list_rate":"6.07","list_currency":"USD","billing_type":"easypost","delivery_days":3,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":3,"shipment_id":"shp_097bd5085ef74deeb2a8914311215c7a","carrier_account_id":"ca_8dc116debcdb49b5a66a2ddee4612600"}],"refund_status":null,"scan_form":null,"selected_rate":null,"tracker":null,"to_address":{"id":"adr_2c2629c8897711ee9c9d3cecef1b359e","object":"Address","created_at":"2023-11-22T20:39:02+00:00","updated_at":"2023-11-22T20:39:02+00:00","name":"Elizabeth Swan","company":null,"street1":"179 N Harbor Dr","street2":null,"city":"Redondo Beach","state":"CA","zip":"90277","country":"US","phone":"","email":"","mode":"test","carrier_facility":null,"residential":null,"federal_tax_id":null,"state_tax_id":null,"verifications":[]},"usps_zone":4,"return_address":{"id":"adr_2c291517897711ee9ca03cecef1b359e","object":"Address","created_at":"2023-11-22T20:39:03+00:00","updated_at":"2023-11-22T20:39:03+00:00","name":"Jack Sparrow","company":null,"street1":"388 Townsend St","street2":"Apt 20","city":"San Francisco","state":"CA","zip":"94107","country":"US","phone":"","email":"","mode":"test","carrier_facility":null,"residential":null,"federal_tax_id":null,"state_tax_id":null,"verifications":[]},"buyer_address":{"id":"adr_2c2629c8897711ee9c9d3cecef1b359e","object":"Address","created_at":"2023-11-22T20:39:02+00:00","updated_at":"2023-11-22T20:39:02+00:00","name":"Elizabeth Swan","company":null,"street1":"179 N Harbor Dr","street2":null,"city":"Redondo Beach","state":"CA","zip":"90277","country":"US","phone":"","email":"","mode":"test","carrier_facility":null,"residential":null,"federal_tax_id":null,"state_tax_id":null,"verifications":[]},"forms":[],"fees":[],"id":"shp_097bd5085ef74deeb2a8914311215c7a","object":"Shipment"}' + body: '{"created_at":"2024-07-11T20:34:44Z","is_return":false,"messages":[{"carrier":"UPS","carrier_account_id":"ca_d05aecc4f5c9412283e2fdc65d117692","type":"rate_error","message":"Invalid Access License number"},{"carrier":"UPS","carrier_account_id":"ca_533ac39596fc45809cf6685bbe55523a","type":"rate_error","message":"Invalid Access License number"},{"carrier":"DhlEcs","carrier_account_id":"ca_e94e4fa45aba4058809c9246a48712b3","type":"rate_error","message":"Invalid credentials"},{"carrier":"DhlEcs","carrier_account_id":"ca_b3781a40f76d4b94a70d2258e6d318c2","type":"rate_error","message":"Invalid credentials"},{"carrier":"DhlEcs","carrier_account_id":"ca_c02da7bfb4264ea3bcb85c0f760d4a6e","type":"rate_error","message":"Invalid credentials"},{"carrier":"DhlEcs","carrier_account_id":"ca_91ae96a5fc1f4cf4aa4b69067df5686b","type":"rate_error","message":"Invalid credentials"},{"carrier":"DhlEcs","carrier_account_id":"ca_b437adf5f4c64f3d8823d5ffa776a158","type":"rate_error","message":"Invalid credentials"}],"mode":"test","options":{"currency":"USD","payment":{"type":"SENDER"},"date_advance":0},"reference":null,"status":"unknown","tracking_code":null,"updated_at":"2024-07-11T20:34:45Z","batch_id":null,"batch_status":null,"batch_message":null,"customs_info":null,"from_address":{"id":"adr_01dc18393fc511ef9cc5ac1f6bc539ae","object":"Address","created_at":"2024-07-11T20:34:44+00:00","updated_at":"2024-07-11T20:34:44+00:00","name":"Jack Sparrow","company":null,"street1":"388 Townsend St","street2":"Apt 20","city":"San Francisco","state":"CA","zip":"94107","country":"US","phone":"","email":"","mode":"test","carrier_facility":null,"residential":null,"federal_tax_id":null,"state_tax_id":null,"verifications":[]},"insurance":null,"order_id":null,"parcel":{"id":"prcl_5e8b756c481c4c2ca44c15212d61d99f","object":"Parcel","created_at":"2024-07-11T20:34:44Z","updated_at":"2024-07-11T20:34:44Z","length":10,"width":8,"height":4,"predefined_package":null,"weight":15.4,"mode":"test"},"postage_label":null,"rates":[{"id":"rate_3a1bf63590db49f0968fe801aa6326d8","object":"Rate","created_at":"2024-07-11T20:34:45Z","updated_at":"2024-07-11T20:34:45Z","mode":"test","service":"Express","carrier":"USPS","rate":"33.10","currency":"USD","retail_rate":"37.90","retail_currency":"USD","list_rate":"33.10","list_currency":"USD","billing_type":"easypost","delivery_days":2,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":2,"shipment_id":"shp_788aa30b53e04545b4f416af4425c5cd","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b"},{"id":"rate_cbfc5676bd4d40fc86ac1dba2d97f73b","object":"Rate","created_at":"2024-07-11T20:34:45Z","updated_at":"2024-07-11T20:34:45Z","mode":"test","service":"Priority","carrier":"USPS","rate":"6.90","currency":"USD","retail_rate":"9.80","retail_currency":"USD","list_rate":"8.25","list_currency":"USD","billing_type":"easypost","delivery_days":2,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":2,"shipment_id":"shp_788aa30b53e04545b4f416af4425c5cd","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b"},{"id":"rate_c60caf762e754ae5b0ed7b93e9eee607","object":"Rate","created_at":"2024-07-11T20:34:45Z","updated_at":"2024-07-11T20:34:45Z","mode":"test","service":"GroundAdvantage","carrier":"USPS","rate":"5.93","currency":"USD","retail_rate":"8.45","retail_currency":"USD","list_rate":"6.40","list_currency":"USD","billing_type":"easypost","delivery_days":3,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":3,"shipment_id":"shp_788aa30b53e04545b4f416af4425c5cd","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b"},{"id":"rate_470d1af4732c40198803905b989655e8","object":"Rate","created_at":"2024-07-11T20:34:45Z","updated_at":"2024-07-11T20:34:45Z","mode":"test","service":"First","carrier":"USPS","rate":"5.93","currency":"USD","retail_rate":"8.45","retail_currency":"USD","list_rate":"6.40","list_currency":"USD","billing_type":"easypost","delivery_days":3,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":3,"shipment_id":"shp_788aa30b53e04545b4f416af4425c5cd","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b"},{"id":"rate_b2bb88b794cc4f8ebe7a341c1cdba683","object":"Rate","created_at":"2024-07-11T20:34:45Z","updated_at":"2024-07-11T20:34:45Z","mode":"test","service":"ParcelSelect","carrier":"USPS","rate":"5.93","currency":"USD","retail_rate":"8.45","retail_currency":"USD","list_rate":"6.40","list_currency":"USD","billing_type":"easypost","delivery_days":3,"delivery_date":null,"delivery_date_guaranteed":false,"est_delivery_days":3,"shipment_id":"shp_788aa30b53e04545b4f416af4425c5cd","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b"}],"refund_status":null,"scan_form":null,"selected_rate":null,"tracker":null,"to_address":{"id":"adr_01d8e1cf3fc511ef94e43cecef1b359e","object":"Address","created_at":"2024-07-11T20:34:44+00:00","updated_at":"2024-07-11T20:34:44+00:00","name":"Elizabeth Swan","company":null,"street1":"179 N Harbor Dr","street2":null,"city":"Redondo Beach","state":"CA","zip":"90277","country":"US","phone":"","email":"","mode":"test","carrier_facility":null,"residential":null,"federal_tax_id":null,"state_tax_id":null,"verifications":[]},"usps_zone":4,"return_address":{"id":"adr_01dc18393fc511ef9cc5ac1f6bc539ae","object":"Address","created_at":"2024-07-11T20:34:44+00:00","updated_at":"2024-07-11T20:34:44+00:00","name":"Jack Sparrow","company":null,"street1":"388 Townsend St","street2":"Apt 20","city":"San Francisco","state":"CA","zip":"94107","country":"US","phone":"","email":"","mode":"test","carrier_facility":null,"residential":null,"federal_tax_id":null,"state_tax_id":null,"verifications":[]},"buyer_address":{"id":"adr_01d8e1cf3fc511ef94e43cecef1b359e","object":"Address","created_at":"2024-07-11T20:34:44+00:00","updated_at":"2024-07-11T20:34:44+00:00","name":"Elizabeth Swan","company":null,"street1":"179 N Harbor Dr","street2":null,"city":"Redondo Beach","state":"CA","zip":"90277","country":"US","phone":"","email":"","mode":"test","carrier_facility":null,"residential":null,"federal_tax_id":null,"state_tax_id":null,"verifications":[]},"forms":[],"fees":[],"id":"shp_788aa30b53e04545b4f416af4425c5cd","object":"Shipment"}' curl_info: url: 'https://api.easypost.com/v2/shipments' content_type: 'application/json; charset=utf-8' @@ -47,40 +46,43 @@ filetime: -1 ssl_verify_result: 0 redirect_count: 0 - total_time: 1.27355 - namelookup_time: 0.029998 - connect_time: 0.095506 - pretransfer_time: 0.167186 + total_time: 2.017483 + namelookup_time: 0.00294 + connect_time: 0.141606 + pretransfer_time: 0.275798 size_upload: 459.0 - size_download: 6229.0 - speed_download: 4891.0 - speed_upload: 360.0 - download_content_length: 6229.0 + size_download: 6335.0 + speed_download: 3140.0 + speed_upload: 227.0 + download_content_length: 6335.0 upload_content_length: 459.0 - starttransfer_time: 1.273523 + starttransfer_time: 2.017423 redirect_time: 0.0 redirect_url: '' primary_ip: 169.62.110.130 certinfo: { } primary_port: 443 - local_ip: 10.130.6.39 - local_port: 53639 + local_ip: 10.130.6.29 + local_port: 60406 http_version: 2 protocol: 2 ssl_verifyresult: 0 scheme: HTTPS - appconnect_time_us: 166931 - connect_time_us: 95506 - namelookup_time_us: 29998 - pretransfer_time_us: 167186 + appconnect_time_us: 275706 + connect_time_us: 141606 + namelookup_time_us: 2940 + pretransfer_time_us: 275798 redirect_time_us: 0 - starttransfer_time_us: 1273523 - total_time_us: 1273550 + starttransfer_time_us: 2017423 + total_time_us: 2017483 + effective_method: POST + capath: '' + cainfo: '' index: 0 - request: method: GET - url: 'https://api.easypost.com/v2/shipments/shp_097bd5085ef74deeb2a8914311215c7a/smartrate/delivery_date?planned_ship_date=2023-11-24' + url: 'https://api.easypost.com/v2/shipments/shp_788aa30b53e04545b4f416af4425c5cd/smartrate/delivery_date?planned_ship_date=2024-07-16' headers: Host: api.easypost.com Accept-Encoding: '' @@ -90,8 +92,7 @@ User-Agent: '' response: status: - http_version: '1.1' - code: '200' + code: 200 message: OK headers: x-frame-options: SAMEORIGIN @@ -100,56 +101,58 @@ x-download-options: noopen x-permitted-cross-domain-policies: none referrer-policy: strict-origin-when-cross-origin - x-ep-request-uuid: 71ef911f655e66e8e78861bf0021bbd7 + x-ep-request-uuid: b8e53c23669041e6e798cc3d0027980a cache-control: 'private, no-cache, no-store' pragma: no-cache expires: '0' content-type: 'application/json; charset=utf-8' - content-length: '3893' - x-runtime: '0.168070' - x-node: bigweb32nuq - x-version-label: easypost-202311212221-a0f06fbc2c-master + content-length: '3883' + x-runtime: '0.108990' + x-node: bigweb39nuq + x-version-label: easypost-202407111940-3cb16a3462-master x-backend: easypost - x-canary: direct - x-proxied: ['intlb2nuq b3de2c47ef', 'extlb2nuq 003ad9bca0'] + x-proxied: ['intlb3nuq fa152d4755', 'extlb2nuq fa152d4755'] strict-transport-security: 'max-age=31536000; includeSubDomains; preload' - body: '{"rates":[{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":3,"percentile_75":3,"percentile_85":3,"percentile_90":3,"percentile_95":4,"percentile_97":4,"percentile_99":5},"easypost_estimated_delivery_date":"2023-11-27","planned_ship_date":"2023-11-24"},"rate":{"carrier":"USPS","carrier_account_id":"ca_8dc116debcdb49b5a66a2ddee4612600","created_at":"2023-11-22T20:39:03Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":null,"est_delivery_days":null,"id":"rate_552cb073b62e4e96897cda4ba9dd474c","list_currency":"USD","list_rate":31.25,"mode":"test","object":"Rate","rate":31.25,"retail_currency":"USD","retail_rate":35.8,"service":"Express","shipment_id":"shp_097bd5085ef74deeb2a8914311215c7a","updated_at":"2023-11-22T20:39:03Z"}},{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":3,"percentile_75":3,"percentile_85":3,"percentile_90":3,"percentile_95":3,"percentile_97":4,"percentile_99":5},"easypost_estimated_delivery_date":"2023-11-27","planned_ship_date":"2023-11-24"},"rate":{"carrier":"USPS","carrier_account_id":"ca_8dc116debcdb49b5a66a2ddee4612600","created_at":"2023-11-22T20:39:03Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":2,"est_delivery_days":2,"id":"rate_3cc6ca52721e401d94ad16c19610e786","list_currency":"USD","list_rate":8.24,"mode":"test","object":"Rate","rate":6.95,"retail_currency":"USD","retail_rate":10.2,"service":"Priority","shipment_id":"shp_097bd5085ef74deeb2a8914311215c7a","updated_at":"2023-11-22T20:39:03Z"}},{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":3,"percentile_75":3,"percentile_85":3,"percentile_90":3,"percentile_95":3,"percentile_97":4,"percentile_99":6},"easypost_estimated_delivery_date":"2023-11-27","planned_ship_date":"2023-11-24"},"rate":{"carrier":"USPS","carrier_account_id":"ca_8dc116debcdb49b5a66a2ddee4612600","created_at":"2023-11-22T20:39:03Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":3,"est_delivery_days":3,"id":"rate_eb81455a063343e88f400ca44bda630e","list_currency":"USD","list_rate":6.07,"mode":"test","object":"Rate","rate":5.93,"retail_currency":"USD","retail_rate":8,"service":"GroundAdvantage","shipment_id":"shp_097bd5085ef74deeb2a8914311215c7a","updated_at":"2023-11-22T20:39:03Z"}},{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":3,"percentile_75":3,"percentile_85":3,"percentile_90":3,"percentile_95":3,"percentile_97":4,"percentile_99":6},"easypost_estimated_delivery_date":"2023-11-27","planned_ship_date":"2023-11-24"},"rate":{"carrier":"USPS","carrier_account_id":"ca_8dc116debcdb49b5a66a2ddee4612600","created_at":"2023-11-22T20:39:03Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":3,"est_delivery_days":3,"id":"rate_3e4257d201224a16aa6063a8312266a5","list_currency":"USD","list_rate":6.07,"mode":"test","object":"Rate","rate":5.93,"retail_currency":"USD","retail_rate":8,"service":"First","shipment_id":"shp_097bd5085ef74deeb2a8914311215c7a","updated_at":"2023-11-22T20:39:03Z"}},{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":3,"percentile_75":3,"percentile_85":3,"percentile_90":3,"percentile_95":3,"percentile_97":4,"percentile_99":6},"easypost_estimated_delivery_date":"2023-11-27","planned_ship_date":"2023-11-24"},"rate":{"carrier":"USPS","carrier_account_id":"ca_8dc116debcdb49b5a66a2ddee4612600","created_at":"2023-11-22T20:39:03Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":3,"est_delivery_days":3,"id":"rate_43dda47b6bf84c28a60e25009dca351c","list_currency":"USD","list_rate":6.07,"mode":"test","object":"Rate","rate":5.93,"retail_currency":"USD","retail_rate":8,"service":"ParcelSelect","shipment_id":"shp_097bd5085ef74deeb2a8914311215c7a","updated_at":"2023-11-22T20:39:03Z"}}]}' + body: '{"rates":[{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":1,"percentile_75":2,"percentile_85":2,"percentile_90":3,"percentile_95":3,"percentile_97":4,"percentile_99":6},"easypost_estimated_delivery_date":"2024-07-17","planned_ship_date":"2024-07-16"},"rate":{"carrier":"USPS","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b","created_at":"2024-07-11T20:34:45Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":2,"est_delivery_days":2,"id":"rate_3a1bf63590db49f0968fe801aa6326d8","list_currency":"USD","list_rate":33.1,"mode":"test","object":"Rate","rate":33.1,"retail_currency":"USD","retail_rate":37.9,"service":"Express","shipment_id":"shp_788aa30b53e04545b4f416af4425c5cd","updated_at":"2024-07-11T20:34:45Z"}},{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":3,"percentile_90":3,"percentile_95":4,"percentile_97":6,"percentile_99":7},"easypost_estimated_delivery_date":"2024-07-18","planned_ship_date":"2024-07-16"},"rate":{"carrier":"USPS","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b","created_at":"2024-07-11T20:34:45Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":2,"est_delivery_days":2,"id":"rate_cbfc5676bd4d40fc86ac1dba2d97f73b","list_currency":"USD","list_rate":8.25,"mode":"test","object":"Rate","rate":6.9,"retail_currency":"USD","retail_rate":9.8,"service":"Priority","shipment_id":"shp_788aa30b53e04545b4f416af4425c5cd","updated_at":"2024-07-11T20:34:45Z"}},{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":3,"percentile_90":4,"percentile_95":6,"percentile_97":6,"percentile_99":9},"easypost_estimated_delivery_date":"2024-07-18","planned_ship_date":"2024-07-16"},"rate":{"carrier":"USPS","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b","created_at":"2024-07-11T20:34:45Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":3,"est_delivery_days":3,"id":"rate_c60caf762e754ae5b0ed7b93e9eee607","list_currency":"USD","list_rate":6.4,"mode":"test","object":"Rate","rate":5.93,"retail_currency":"USD","retail_rate":8.45,"service":"GroundAdvantage","shipment_id":"shp_788aa30b53e04545b4f416af4425c5cd","updated_at":"2024-07-11T20:34:45Z"}},{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":3,"percentile_90":4,"percentile_95":6,"percentile_97":6,"percentile_99":9},"easypost_estimated_delivery_date":"2024-07-18","planned_ship_date":"2024-07-16"},"rate":{"carrier":"USPS","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b","created_at":"2024-07-11T20:34:45Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":3,"est_delivery_days":3,"id":"rate_470d1af4732c40198803905b989655e8","list_currency":"USD","list_rate":6.4,"mode":"test","object":"Rate","rate":5.93,"retail_currency":"USD","retail_rate":8.45,"service":"First","shipment_id":"shp_788aa30b53e04545b4f416af4425c5cd","updated_at":"2024-07-11T20:34:45Z"}},{"easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":3,"percentile_90":4,"percentile_95":6,"percentile_97":6,"percentile_99":9},"easypost_estimated_delivery_date":"2024-07-18","planned_ship_date":"2024-07-16"},"rate":{"carrier":"USPS","carrier_account_id":"ca_716f33fd9fd348238b85c2922237f98b","created_at":"2024-07-11T20:34:45Z","currency":"USD","delivery_date":null,"delivery_date_guaranteed":false,"delivery_days":3,"est_delivery_days":3,"id":"rate_b2bb88b794cc4f8ebe7a341c1cdba683","list_currency":"USD","list_rate":6.4,"mode":"test","object":"Rate","rate":5.93,"retail_currency":"USD","retail_rate":8.45,"service":"ParcelSelect","shipment_id":"shp_788aa30b53e04545b4f416af4425c5cd","updated_at":"2024-07-11T20:34:45Z"}}]}' curl_info: - url: 'https://api.easypost.com/v2/shipments/shp_097bd5085ef74deeb2a8914311215c7a/smartrate/delivery_date?planned_ship_date=2023-11-24' + url: 'https://api.easypost.com/v2/shipments/shp_788aa30b53e04545b4f416af4425c5cd/smartrate/delivery_date?planned_ship_date=2024-07-16' content_type: 'application/json; charset=utf-8' http_code: 200 - header_size: 707 + header_size: 689 request_size: 376 filetime: -1 ssl_verify_result: 0 redirect_count: 0 - total_time: 0.3666 - namelookup_time: 0.001943 - connect_time: 0.065165 - pretransfer_time: 0.131496 + total_time: 0.542043 + namelookup_time: 0.025327 + connect_time: 0.167585 + pretransfer_time: 0.303692 size_upload: 0.0 - size_download: 3893.0 - speed_download: 10619.0 + size_download: 3883.0 + speed_download: 7163.0 speed_upload: 0.0 - download_content_length: 3893.0 + download_content_length: 3883.0 upload_content_length: 0.0 - starttransfer_time: 0.366528 + starttransfer_time: 0.54202 redirect_time: 0.0 redirect_url: '' primary_ip: 169.62.110.130 certinfo: { } primary_port: 443 - local_ip: 10.130.6.39 - local_port: 53640 + local_ip: 10.130.6.29 + local_port: 60415 http_version: 2 protocol: 2 ssl_verifyresult: 0 scheme: HTTPS - appconnect_time_us: 131350 - connect_time_us: 65165 - namelookup_time_us: 1943 - pretransfer_time_us: 131496 + appconnect_time_us: 303584 + connect_time_us: 167585 + namelookup_time_us: 25327 + pretransfer_time_us: 303692 redirect_time_us: 0 - starttransfer_time_us: 366528 - total_time_us: 366600 + starttransfer_time_us: 542020 + total_time_us: 542043 + effective_method: GET + capath: '' + cainfo: '' index: 0 diff --git a/test/cassettes/smartrate/estimatedDeliveryDate.yml b/test/cassettes/smartrate/estimatedDeliveryDate.yml new file mode 100644 index 00000000..c348694a --- /dev/null +++ b/test/cassettes/smartrate/estimatedDeliveryDate.yml @@ -0,0 +1,81 @@ + +- + request: + method: POST + url: 'https://api.easypost.com/v2/smartrate/deliver_by' + headers: + Host: api.easypost.com + Expect: '' + Accept-Encoding: '' + Accept: application/json + Authorization: '' + Content-Type: application/json + User-Agent: '' + body: '{"from_zip":"94107","to_zip":"90277","planned_ship_date":"2024-07-16","carriers":["USPS"]}' + response: + status: + code: 200 + message: OK + headers: + x-frame-options: SAMEORIGIN + x-xss-protection: '1; mode=block' + x-content-type-options: nosniff + x-download-options: noopen + x-permitted-cross-domain-policies: none + referrer-policy: strict-origin-when-cross-origin + x-ep-request-uuid: 39ae9bff66905363e79a830d003fe457 + cache-control: 'private, no-cache, no-store' + pragma: no-cache + expires: '0' + content-type: 'application/json; charset=utf-8' + content-length: '1496' + x-runtime: '0.088010' + x-node: bigweb32nuq + x-version-label: easypost-202407111940-3cb16a3462-master + x-backend: easypost + x-canary: direct + x-proxied: ['intlb3nuq fa152d4755', 'extlb1nuq fa152d4755'] + strict-transport-security: 'max-age=31536000; includeSubDomains; preload' + body: '{"carriers_without_tint_estimates":null,"from_zip":"94107","planned_ship_date":"2024-07-16","results":[{"carrier":"USPS","easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":1,"percentile_75":2,"percentile_85":2,"percentile_90":3,"percentile_95":3,"percentile_97":4,"percentile_99":6},"easypost_estimated_delivery_date":"2024-07-17"},"service":"express"},{"carrier":"USPS","easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":3,"percentile_90":4,"percentile_95":6,"percentile_97":6,"percentile_99":9},"easypost_estimated_delivery_date":"2024-07-18"},"service":"groundadvantage"},{"carrier":"USPS","easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":3,"percentile_75":3,"percentile_85":3,"percentile_90":6,"percentile_95":6,"percentile_97":6,"percentile_99":9},"easypost_estimated_delivery_date":"2024-07-18"},"service":"librarymail"},{"carrier":"USPS","easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":3,"percentile_75":3,"percentile_85":3,"percentile_90":4,"percentile_95":6,"percentile_97":6,"percentile_99":9},"easypost_estimated_delivery_date":"2024-07-18"},"service":"mediamail"},{"carrier":"USPS","easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":3,"percentile_90":3,"percentile_95":4,"percentile_97":6,"percentile_99":7},"easypost_estimated_delivery_date":"2024-07-18"},"service":"priority"}],"saturday_delivery":null,"to_zip":"90277"}' + curl_info: + url: 'https://api.easypost.com/v2/smartrate/deliver_by' + content_type: 'application/json; charset=utf-8' + http_code: 200 + header_size: 707 + request_size: 408 + filetime: -1 + ssl_verify_result: 0 + redirect_count: 0 + total_time: 0.483989 + namelookup_time: 0.003915 + connect_time: 0.128845 + pretransfer_time: 0.264145 + size_upload: 90.0 + size_download: 1496.0 + speed_download: 3090.0 + speed_upload: 185.0 + download_content_length: 1496.0 + upload_content_length: 90.0 + starttransfer_time: 0.483954 + redirect_time: 0.0 + redirect_url: '' + primary_ip: 169.62.110.131 + certinfo: { } + primary_port: 443 + local_ip: 10.130.6.29 + local_port: 63869 + http_version: 2 + protocol: 2 + ssl_verifyresult: 0 + scheme: HTTPS + appconnect_time_us: 264070 + connect_time_us: 128845 + namelookup_time_us: 3915 + pretransfer_time_us: 264145 + redirect_time_us: 0 + starttransfer_time_us: 483954 + total_time_us: 483989 + effective_method: POST + capath: '' + cainfo: '' + index: 0 diff --git a/test/cassettes/smartrate/recommendShipDate.yml b/test/cassettes/smartrate/recommendShipDate.yml new file mode 100644 index 00000000..d487c4d1 --- /dev/null +++ b/test/cassettes/smartrate/recommendShipDate.yml @@ -0,0 +1,81 @@ + +- + request: + method: POST + url: 'https://api.easypost.com/v2/smartrate/deliver_on' + headers: + Host: api.easypost.com + Expect: '' + Accept-Encoding: '' + Accept: application/json + Authorization: '' + Content-Type: application/json + User-Agent: '' + body: '{"from_zip":"94107","to_zip":"90277","desired_delivery_date":"2024-07-16","carriers":["USPS"]}' + response: + status: + code: 200 + message: OK + headers: + x-frame-options: SAMEORIGIN + x-xss-protection: '1; mode=block' + x-content-type-options: nosniff + x-download-options: noopen + x-permitted-cross-domain-policies: none + referrer-policy: strict-origin-when-cross-origin + x-ep-request-uuid: b8e53c21669051a4e7996dc6003bb7d5 + cache-control: 'private, no-cache, no-store' + pragma: no-cache + expires: '0' + content-type: 'application/json; charset=utf-8' + content-length: '1695' + x-runtime: '0.073877' + x-node: bigweb43nuq + x-version-label: easypost-202407111940-3cb16a3462-master + x-backend: easypost + x-canary: direct + x-proxied: ['intlb3nuq fa152d4755', 'extlb2nuq fa152d4755'] + strict-transport-security: 'max-age=31536000; includeSubDomains; preload' + body: '{"carriers_without_tint_estimates":null,"desired_delivery_date":"2024-07-16","from_zip":"94107","results":[{"carrier":"USPS","easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":2,"percentile_85":2,"percentile_90":3,"percentile_95":3,"percentile_97":4,"percentile_99":7},"delivery_date_confidence":0.47,"estimated_transit_days":1,"ship_on_date":"2024-07-15"},"service":"express"},{"carrier":"USPS","easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":4,"percentile_90":4,"percentile_95":5,"percentile_97":5,"percentile_99":9},"delivery_date_confidence":0.21,"estimated_transit_days":3,"ship_on_date":"2024-07-13"},"service":"groundadvantage"},{"carrier":"USPS","easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":4,"percentile_90":4,"percentile_95":5,"percentile_97":6,"percentile_99":9},"delivery_date_confidence":0.25,"estimated_transit_days":3,"ship_on_date":"2024-07-13"},"service":"librarymail"},{"carrier":"USPS","easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":3,"percentile_90":4,"percentile_95":5,"percentile_97":5,"percentile_99":7},"delivery_date_confidence":0.24,"estimated_transit_days":3,"ship_on_date":"2024-07-13"},"service":"mediamail"},{"carrier":"USPS","easypost_time_in_transit_data":{"days_in_transit":{"percentile_50":2,"percentile_75":3,"percentile_85":4,"percentile_90":4,"percentile_95":5,"percentile_97":5,"percentile_99":7},"delivery_date_confidence":0.19,"estimated_transit_days":3,"ship_on_date":"2024-07-13"},"service":"priority"}],"saturday_delivery":null,"to_zip":"90277"}' + curl_info: + url: 'https://api.easypost.com/v2/smartrate/deliver_on' + content_type: 'application/json; charset=utf-8' + http_code: 200 + header_size: 707 + request_size: 412 + filetime: -1 + ssl_verify_result: 0 + redirect_count: 0 + total_time: 0.515128 + namelookup_time: 0.036003 + connect_time: 0.170411 + pretransfer_time: 0.309447 + size_upload: 94.0 + size_download: 1695.0 + speed_download: 3290.0 + speed_upload: 182.0 + download_content_length: 1695.0 + upload_content_length: 94.0 + starttransfer_time: 0.515087 + redirect_time: 0.0 + redirect_url: '' + primary_ip: 169.62.110.130 + certinfo: { } + primary_port: 443 + local_ip: 10.130.6.29 + local_port: 61909 + http_version: 2 + protocol: 2 + ssl_verifyresult: 0 + scheme: HTTPS + appconnect_time_us: 309372 + connect_time_us: 170411 + namelookup_time_us: 36003 + pretransfer_time_us: 309447 + redirect_time_us: 0 + starttransfer_time_us: 515087 + total_time_us: 515128 + effective_method: POST + capath: '' + cainfo: '' + index: 0