diff --git a/CHANGELOG.md b/CHANGELOG.md index 0573c9836..d53833368 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,10 @@ # CHANGELOG -## Next Release +## v8.3.0 (2025-11-10) - Adds support for `UspsShipAccount` - Adds `Tracker.retrieveBatch` function +- Adds `verify_carrier` address param ## v8.2.0 (2025-06-18) diff --git a/package-lock.json b/package-lock.json index a2a2f187d..eb38f07f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@easypost/api", - "version": "8.2.0", + "version": "8.3.0", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package.json b/package.json index 32673b330..38d17d422 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@easypost/api", "description": "EasyPost Node Client Library", - "version": "8.2.0", + "version": "8.3.0", "author": "Easypost Engineering ", "homepage": "https://easypost.com", "exports": { diff --git a/src/services/address_service.js b/src/services/address_service.js index 1b859eb44..7d17e7425 100644 --- a/src/services/address_service.js +++ b/src/services/address_service.js @@ -15,22 +15,25 @@ export default (easypostClient) => static async create(params) { const url = 'addresses'; - const wrappedParams = { - address: params, - }; + const wrappedParams = {}; if (params.verify) { - const clone = params; wrappedParams.verify = params.verify; - delete clone.verify; + delete params.verify; } if (params.verify_strict) { - const clone = params; wrappedParams.verify_strict = params.verify_strict; - delete clone.verify_strict; + delete params.verify_strict; } + if (params.verify_carrier) { + wrappedParams.verify_carrier = params.verify_carrier; + delete params.verify_carrier; + } + + wrappedParams['address'] = params; + return this._create(url, wrappedParams); } @@ -42,7 +45,15 @@ export default (easypostClient) => */ static async createAndVerify(params) { const url = `addresses/create_and_verify`; - const wrappedParams = { address: params }; + + const wrappedParams = {}; + + if (params.verify_carrier) { + wrappedParams.verify_carrier = params.verify_carrier; + delete params.verify_carrier; + } + + wrappedParams['address'] = params; try { const response = await easypostClient._post(url, wrappedParams); diff --git a/test/cassettes/Address-Service_1115845720/creates-a-verified-address_2691107999/recording.har b/test/cassettes/Address-Service_1115845720/creates-a-verified-address_2691107999/recording.har index 8dfbcdb82..78ebb8cf9 100644 --- a/test/cassettes/Address-Service_1115845720/creates-a-verified-address_2691107999/recording.har +++ b/test/cassettes/Address-Service_1115845720/creates-a-verified-address_2691107999/recording.har @@ -4,7 +4,7 @@ "creator": { "comment": "persister:fs", "name": "Polly.JS", - "version": "6.0.5" + "version": "6.0.6" }, "entries": [ { @@ -48,12 +48,12 @@ "url": "https://api.easypost.com/v2/addresses/create_and_verify" }, "response": { - "bodySize": 572, + "bodySize": 568, "content": { "encoding": "base64", "mimeType": "application/json; charset=utf-8", - "size": 572, - "text": "{\"address\":{\"id\":\"adr_3ca869d84e8e11efaaab3cecef1b359e\",\"object\":\"Address\",\"created_at\":\"2024-07-30T16:10:28+00:00\",\"updated_at\":\"2024-07-30T16:10:28+00:00\",\"name\":\"ELIZABETH SWAN\",\"company\":null,\"street1\":\"179 N HARBOR DR\",\"street2\":\"\",\"city\":\"REDONDO BEACH\",\"state\":\"CA\",\"zip\":\"90277-2506\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":false,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{\"zip4\":{\"success\":true,\"errors\":[],\"details\":null},\"delivery\":{\"success\":true,\"errors\":[],\"details\":{\"latitude\":33.8436,\"longitude\":-118.39177,\"time_zone\":\"America/Los_Angeles\"}}}}}" + "size": 568, + "text": "{\"address\":{\"id\":\"adr_281ebe36bc0611f08296ac1f6bc539aa\",\"object\":\"Address\",\"created_at\":\"2025-11-07T18:18:27Z\",\"updated_at\":\"2025-11-07T18:18:27Z\",\"name\":\"ELIZABETH SWAN\",\"company\":null,\"street1\":\"179 N HARBOR DR\",\"street2\":\"\",\"city\":\"REDONDO BEACH\",\"state\":\"CA\",\"zip\":\"90277-2506\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":false,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{\"zip4\":{\"success\":true,\"errors\":[],\"details\":null},\"delivery\":{\"success\":true,\"errors\":[],\"details\":{\"latitude\":33.8436,\"longitude\":-118.39177,\"time_zone\":\"America/Los_Angeles\"}}}}}" }, "cookies": [], "headers": [ @@ -83,7 +83,7 @@ }, { "name": "x-ep-request-uuid", - "value": "6107a17166a91074e2b873570035021f" + "value": "bcd4371f690e37f3e786b39e02a82bd6" }, { "name": "cache-control", @@ -99,7 +99,7 @@ }, { "name": "location", - "value": "/api/v2/addresses/adr_3ca869d84e8e11efaaab3cecef1b359e" + "value": "/api/v2/addresses/adr_281ebe36bc0611f08296ac1f6bc539aa" }, { "name": "content-type", @@ -107,7 +107,7 @@ }, { "name": "x-runtime", - "value": "0.076594" + "value": "0.045941" }, { "name": "content-encoding", @@ -119,11 +119,11 @@ }, { "name": "x-node", - "value": "bigweb38nuq" + "value": "bigweb35nuq" }, { "name": "x-version-label", - "value": "easypost-202407300015-6e288fe720-master" + "value": "easypost-202511071754-85836cab32-master" }, { "name": "x-backend", @@ -131,7 +131,7 @@ }, { "name": "x-proxied", - "value": "intlb4nuq c0f5e722d1, extlb2nuq fa152d4755" + "value": "intlb4nuq c0061e0a2e, extlb2nuq cbbd141214" }, { "name": "strict-transport-security", @@ -144,12 +144,12 @@ ], "headersSize": 776, "httpVersion": "HTTP/1.1", - "redirectURL": "/api/v2/addresses/adr_3ca869d84e8e11efaaab3cecef1b359e", + "redirectURL": "/api/v2/addresses/adr_281ebe36bc0611f08296ac1f6bc539aa", "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-07-30T16:10:28.001Z", - "time": 179, + "startedDateTime": "2025-11-07T18:18:27.461Z", + "time": 224, "timings": { "blocked": -1, "connect": -1, @@ -157,7 +157,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 179 + "wait": 224 } } ], diff --git a/test/cassettes/Address-Service_1115845720/creates-an-address-with-an-array-verify-param_1154761701/recording.har b/test/cassettes/Address-Service_1115845720/creates-an-address-with-an-array-verify-param_1154761701/recording.har index 24ec56a75..2d4cb6e9d 100644 --- a/test/cassettes/Address-Service_1115845720/creates-an-address-with-an-array-verify-param_1154761701/recording.har +++ b/test/cassettes/Address-Service_1115845720/creates-an-address-with-an-array-verify-param_1154761701/recording.har @@ -4,7 +4,7 @@ "creator": { "comment": "persister:fs", "name": "Polly.JS", - "version": "6.0.5" + "version": "6.0.6" }, "entries": [ { @@ -48,12 +48,12 @@ "url": "https://api.easypost.com/v2/addresses" }, "response": { - "bodySize": 400, + "bodySize": 399, "content": { "encoding": "base64", "mimeType": "application/json; charset=utf-8", - "size": 400, - "text": "{\"id\":\"adr_3be1aad24e8e11efae9fac1f6bc539ae\",\"object\":\"Address\",\"created_at\":\"2024-07-30T16:10:26+00:00\",\"updated_at\":\"2024-07-30T16:10:26+00:00\",\"name\":null,\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"street2\":null,\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":null,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{}}" + "size": 399, + "text": "{\"id\":\"adr_27922971bc0611f0ad833cecef1b359e\",\"object\":\"Address\",\"created_at\":\"2025-11-07T18:18:26Z\",\"updated_at\":\"2025-11-07T18:18:26Z\",\"name\":null,\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"street2\":null,\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":null,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{}}" }, "cookies": [], "headers": [ @@ -83,7 +83,7 @@ }, { "name": "x-ep-request-uuid", - "value": "6107a17066a91072e2b87339003500e7" + "value": "bcd43720690e37f2e786b39c02a82a10" }, { "name": "cache-control", @@ -99,7 +99,7 @@ }, { "name": "location", - "value": "/api/v2/addresses/adr_3be1aad24e8e11efae9fac1f6bc539ae" + "value": "/api/v2/addresses/adr_27922971bc0611f0ad833cecef1b359e" }, { "name": "content-type", @@ -107,7 +107,7 @@ }, { "name": "x-runtime", - "value": "0.040539" + "value": "0.362865" }, { "name": "content-encoding", @@ -119,11 +119,11 @@ }, { "name": "x-node", - "value": "bigweb39nuq" + "value": "bigweb58nuq" }, { "name": "x-version-label", - "value": "easypost-202407300015-6e288fe720-master" + "value": "easypost-202511071754-85836cab32-master" }, { "name": "x-backend", @@ -131,7 +131,7 @@ }, { "name": "x-proxied", - "value": "intlb4nuq c0f5e722d1, extlb2nuq fa152d4755" + "value": "intlb3nuq c0061e0a2e, extlb2nuq cbbd141214" }, { "name": "strict-transport-security", @@ -144,12 +144,12 @@ ], "headersSize": 776, "httpVersion": "HTTP/1.1", - "redirectURL": "/api/v2/addresses/adr_3be1aad24e8e11efae9fac1f6bc539ae", + "redirectURL": "/api/v2/addresses/adr_27922971bc0611f0ad833cecef1b359e", "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-07-30T16:10:26.710Z", - "time": 150, + "startedDateTime": "2025-11-07T18:18:26.263Z", + "time": 923, "timings": { "blocked": -1, "connect": -1, @@ -157,11 +157,11 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 150 + "wait": 923 } }, { - "_id": "f95960685b21c81e01d6b8b1a49c204f", + "_id": "54ac43ea33387e04e4be32a3e56f2d9d", "_order": 0, "cache": {}, "request": { @@ -195,18 +195,18 @@ "postData": { "mimeType": "application/json", "params": [], - "text": "{\"address\":{\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"email\":\"test@example.com\",\"phone\":\"5555555555\"},\"verify\":[true]}" + "text": "{\"verify\":[true],\"address\":{\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"email\":\"test@example.com\",\"phone\":\"5555555555\"}}" }, "queryString": [], "url": "https://api.easypost.com/v2/addresses" }, "response": { - "bodySize": 532, + "bodySize": 520, "content": { "encoding": "base64", "mimeType": "application/json; charset=utf-8", - "size": 532, - "text": "{\"id\":\"adr_3c0b17794e8e11efaeb2ac1f6bc539ae\",\"object\":\"Address\",\"created_at\":\"2024-07-30T16:10:27+00:00\",\"updated_at\":\"2024-07-30T16:10:27+00:00\",\"name\":null,\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"street2\":null,\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":null,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{\"zip4\":{\"success\":false,\"errors\":[{\"code\":\"E.ADDRESS.NOT_FOUND\",\"field\":\"address\",\"message\":\"Address not found\",\"suggestion\":null}],\"details\":null},\"delivery\":{\"success\":false,\"errors\":[{\"code\":\"E.ADDRESS.NOT_FOUND\",\"field\":\"address\",\"message\":\"Address not found\",\"suggestion\":null}],\"details\":{}}}}" + "size": 520, + "text": "{\"id\":\"adr_27f735eebc0611f0ae023cecef1b359e\",\"object\":\"Address\",\"created_at\":\"2025-11-07T18:18:27Z\",\"updated_at\":\"2025-11-07T18:18:27Z\",\"name\":null,\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"street2\":null,\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":null,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{\"zip4\":{\"success\":false,\"errors\":[{\"code\":\"E.ADDRESS.NOT_FOUND\",\"field\":\"address\",\"message\":\"Address not found\",\"suggestion\":null}],\"details\":null},\"delivery\":{\"success\":false,\"errors\":[{\"code\":\"E.ADDRESS.NOT_FOUND\",\"field\":\"address\",\"message\":\"Address not found\",\"suggestion\":null}],\"details\":{}}}}" }, "cookies": [], "headers": [ @@ -236,7 +236,7 @@ }, { "name": "x-ep-request-uuid", - "value": "6107a17366a91072e2b8735100350101" + "value": "bcd43723690e37f3e786b39d02a82b6c" }, { "name": "cache-control", @@ -252,7 +252,7 @@ }, { "name": "location", - "value": "/api/v2/addresses/adr_3c0b17794e8e11efaeb2ac1f6bc539ae" + "value": "/api/v2/addresses/adr_27f735eebc0611f0ae023cecef1b359e" }, { "name": "content-type", @@ -260,7 +260,7 @@ }, { "name": "x-runtime", - "value": "0.172333" + "value": "0.054862" }, { "name": "content-encoding", @@ -272,11 +272,11 @@ }, { "name": "x-node", - "value": "bigweb39nuq" + "value": "bigweb56nuq" }, { "name": "x-version-label", - "value": "easypost-202407300015-6e288fe720-master" + "value": "easypost-202511071655-85836cab32-master" }, { "name": "x-backend", @@ -284,7 +284,7 @@ }, { "name": "x-proxied", - "value": "intlb4nuq c0f5e722d1, extlb2nuq fa152d4755" + "value": "intlb6nuq c0061e0a2e, extlb2nuq cbbd141214" }, { "name": "strict-transport-security", @@ -297,12 +297,12 @@ ], "headersSize": 776, "httpVersion": "HTTP/1.1", - "redirectURL": "/api/v2/addresses/adr_3c0b17794e8e11efaeb2ac1f6bc539ae", + "redirectURL": "/api/v2/addresses/adr_27f735eebc0611f0ae023cecef1b359e", "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-07-30T16:10:26.864Z", - "time": 271, + "startedDateTime": "2025-11-07T18:18:27.190Z", + "time": 240, "timings": { "blocked": -1, "connect": -1, @@ -310,7 +310,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 271 + "wait": 240 } } ], diff --git a/test/cassettes/Address-Service_1115845720/creates-an-address-with-verify-param_348500273/recording.har b/test/cassettes/Address-Service_1115845720/creates-an-address-with-verify-param_348500273/recording.har index a576c02f0..2eebcf795 100644 --- a/test/cassettes/Address-Service_1115845720/creates-an-address-with-verify-param_348500273/recording.har +++ b/test/cassettes/Address-Service_1115845720/creates-an-address-with-verify-param_348500273/recording.har @@ -4,7 +4,7 @@ "creator": { "comment": "persister:fs", "name": "Polly.JS", - "version": "6.0.5" + "version": "6.0.6" }, "entries": [ { @@ -48,12 +48,12 @@ "url": "https://api.easypost.com/v2/addresses" }, "response": { - "bodySize": 400, + "bodySize": 396, "content": { "encoding": "base64", "mimeType": "application/json; charset=utf-8", - "size": 400, - "text": "{\"id\":\"adr_3b92da4b4e8e11ef9140ac1f6bc53342\",\"object\":\"Address\",\"created_at\":\"2024-07-30T16:10:26+00:00\",\"updated_at\":\"2024-07-30T16:10:26+00:00\",\"name\":null,\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"street2\":null,\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":null,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{}}" + "size": 396, + "text": "{\"id\":\"adr_26f7b896bc0611f0815cac1f6bc539aa\",\"object\":\"Address\",\"created_at\":\"2025-11-07T18:18:25Z\",\"updated_at\":\"2025-11-07T18:18:25Z\",\"name\":null,\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"street2\":null,\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":null,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{}}" }, "cookies": [], "headers": [ @@ -83,7 +83,7 @@ }, { "name": "x-ep-request-uuid", - "value": "6107a17366a91072e2b8733600350074" + "value": "bcd43720690e37f1e786b39902a828ef" }, { "name": "cache-control", @@ -99,7 +99,7 @@ }, { "name": "location", - "value": "/api/v2/addresses/adr_3b92da4b4e8e11ef9140ac1f6bc53342" + "value": "/api/v2/addresses/adr_26f7b896bc0611f0815cac1f6bc539aa" }, { "name": "content-type", @@ -107,7 +107,7 @@ }, { "name": "x-runtime", - "value": "0.046461" + "value": "0.039020" }, { "name": "content-encoding", @@ -119,23 +119,19 @@ }, { "name": "x-node", - "value": "bigweb32nuq" + "value": "bigweb56nuq" }, { "name": "x-version-label", - "value": "easypost-202407300015-6e288fe720-master" + "value": "easypost-202511071655-85836cab32-master" }, { "name": "x-backend", "value": "easypost" }, - { - "name": "x-canary", - "value": "direct" - }, { "name": "x-proxied", - "value": "intlb4nuq c0f5e722d1, extlb2nuq fa152d4755" + "value": "intlb4nuq c0061e0a2e, extlb2nuq cbbd141214" }, { "name": "strict-transport-security", @@ -146,14 +142,14 @@ "value": "close" } ], - "headersSize": 794, + "headersSize": 776, "httpVersion": "HTTP/1.1", - "redirectURL": "/api/v2/addresses/adr_3b92da4b4e8e11ef9140ac1f6bc53342", + "redirectURL": "/api/v2/addresses/adr_26f7b896bc0611f0815cac1f6bc539aa", "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-07-30T16:10:26.188Z", - "time": 158, + "startedDateTime": "2025-11-07T18:18:25.457Z", + "time": 295, "timings": { "blocked": -1, "connect": -1, @@ -161,11 +157,11 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 158 + "wait": 295 } }, { - "_id": "c3e0e1f0cb882294f8a37b62871cf701", + "_id": "d679a2160a9a61627941da5a2d70e9c3", "_order": 0, "cache": {}, "request": { @@ -199,18 +195,18 @@ "postData": { "mimeType": "application/json", "params": [], - "text": "{\"address\":{\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"email\":\"test@example.com\",\"phone\":\"5555555555\"},\"verify\":true}" + "text": "{\"verify\":true,\"address\":{\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"email\":\"test@example.com\",\"phone\":\"5555555555\"}}" }, "queryString": [], "url": "https://api.easypost.com/v2/addresses" }, "response": { - "bodySize": 532, + "bodySize": 524, "content": { "encoding": "base64", "mimeType": "application/json; charset=utf-8", - "size": 532, - "text": "{\"id\":\"adr_3bac3d134e8e11efa716ac1f6bc539aa\",\"object\":\"Address\",\"created_at\":\"2024-07-30T16:10:26+00:00\",\"updated_at\":\"2024-07-30T16:10:26+00:00\",\"name\":null,\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"street2\":null,\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":null,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{\"zip4\":{\"success\":false,\"errors\":[{\"code\":\"E.ADDRESS.NOT_FOUND\",\"field\":\"address\",\"message\":\"Address not found\",\"suggestion\":null}],\"details\":null},\"delivery\":{\"success\":false,\"errors\":[{\"code\":\"E.ADDRESS.NOT_FOUND\",\"field\":\"address\",\"message\":\"Address not found\",\"suggestion\":null}],\"details\":{}}}}" + "size": 524, + "text": "{\"id\":\"adr_271c8206bc0611f0ad1c3cecef1b359e\",\"object\":\"Address\",\"created_at\":\"2025-11-07T18:18:26Z\",\"updated_at\":\"2025-11-07T18:18:26Z\",\"name\":null,\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"street2\":null,\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":null,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{\"zip4\":{\"success\":false,\"errors\":[{\"code\":\"E.ADDRESS.NOT_FOUND\",\"field\":\"address\",\"message\":\"Address not found\",\"suggestion\":null}],\"details\":null},\"delivery\":{\"success\":false,\"errors\":[{\"code\":\"E.ADDRESS.NOT_FOUND\",\"field\":\"address\",\"message\":\"Address not found\",\"suggestion\":null}],\"details\":{}}}}" }, "cookies": [], "headers": [ @@ -240,7 +236,7 @@ }, { "name": "x-ep-request-uuid", - "value": "6107a17266a91072e2b873370035009e" + "value": "bcd43720690e37f2e786b39a02a8294a" }, { "name": "cache-control", @@ -256,7 +252,7 @@ }, { "name": "location", - "value": "/api/v2/addresses/adr_3bac3d134e8e11efa716ac1f6bc539aa" + "value": "/api/v2/addresses/adr_271c8206bc0611f0ad1c3cecef1b359e" }, { "name": "content-type", @@ -264,7 +260,7 @@ }, { "name": "x-runtime", - "value": "0.053469" + "value": "0.049249" }, { "name": "content-encoding", @@ -276,19 +272,23 @@ }, { "name": "x-node", - "value": "bigweb35nuq" + "value": "bigweb43nuq" }, { "name": "x-version-label", - "value": "easypost-202407300015-6e288fe720-master" + "value": "easypost-202511071754-85836cab32-master" }, { "name": "x-backend", "value": "easypost" }, + { + "name": "x-canary", + "value": "direct" + }, { "name": "x-proxied", - "value": "intlb4nuq c0f5e722d1, extlb2nuq fa152d4755" + "value": "intlb4nuq c0061e0a2e, extlb2nuq cbbd141214" }, { "name": "strict-transport-security", @@ -299,14 +299,14 @@ "value": "close" } ], - "headersSize": 776, + "headersSize": 794, "httpVersion": "HTTP/1.1", - "redirectURL": "/api/v2/addresses/adr_3bac3d134e8e11efa716ac1f6bc539aa", + "redirectURL": "/api/v2/addresses/adr_271c8206bc0611f0ad1c3cecef1b359e", "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-07-30T16:10:26.351Z", - "time": 165, + "startedDateTime": "2025-11-07T18:18:25.755Z", + "time": 242, "timings": { "blocked": -1, "connect": -1, @@ -314,7 +314,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 165 + "wait": 242 } } ], diff --git a/test/cassettes/Address-Service_1115845720/creates-an-address-with-verify_carrier-param_2019924026/recording.har b/test/cassettes/Address-Service_1115845720/creates-an-address-with-verify_carrier-param_2019924026/recording.har new file mode 100644 index 000000000..22a41662b --- /dev/null +++ b/test/cassettes/Address-Service_1115845720/creates-an-address-with-verify_carrier-param_2019924026/recording.har @@ -0,0 +1,167 @@ +{ + "log": { + "_recordingName": "Address Service/creates an address with verify_carrier param", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "5209807d548ad84eb9c196cf08a24b13", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 212, + "cookies": [], + "headers": [ + { + "name": "accept-encoding", + "value": "gzip, deflate" + }, + { + "name": "accept", + "value": "application/json" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "content-length", + "value": 212 + }, + { + "name": "host", + "value": "api.easypost.com" + } + ], + "headersSize": 391, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"verify\":true,\"verify_carrier\":\"UPS\",\"address\":{\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"email\":\"test@example.com\",\"phone\":\"5555555555\"}}" + }, + "queryString": [], + "url": "https://api.easypost.com/v2/addresses" + }, + "response": { + "bodySize": 588, + "content": { + "encoding": "base64", + "mimeType": "application/json; charset=utf-8", + "size": 588, + "text": "{\"id\":\"adr_78c37e14bc0611f0861fac1f6bc539ae\",\"object\":\"Address\",\"created_at\":\"2025-11-07T18:20:43Z\",\"updated_at\":\"2025-11-07T18:20:43Z\",\"name\":null,\"company\":\"EASYPOST\",\"street1\":\"000 UNKNOWN STREET\",\"street2\":\"\",\"city\":\"NOT A CITY\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":null,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{\"zip4\":{\"success\":true,\"errors\":[{\"code\":\"E.ADDRESS.NOT_FOUND\",\"field\":\"address\",\"message\":\"Address not found\",\"suggestion\":null}],\"details\":null},\"delivery\":{\"success\":true,\"errors\":[{\"code\":\"E.ADDRESS.NOT_FOUND\",\"field\":\"address\",\"message\":\"Address not found\",\"suggestion\":null}],\"details\":{\"latitude\":null,\"longitude\":null,\"time_zone\":null}},\"verify_carrier\":\"ups\"}}" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-xss-protection", + "value": "1; mode=block" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-download-options", + "value": "noopen" + }, + { + "name": "x-permitted-cross-domain-policies", + "value": "none" + }, + { + "name": "referrer-policy", + "value": "strict-origin-when-cross-origin" + }, + { + "name": "x-ep-request-uuid", + "value": "e4553704690e387ae786b3da011dff25" + }, + { + "name": "cache-control", + "value": "private, no-cache, no-store" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "location", + "value": "/api/v2/addresses/adr_78c37e14bc0611f0861fac1f6bc539ae" + }, + { + "name": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "name": "x-runtime", + "value": "0.406145" + }, + { + "name": "content-encoding", + "value": "gzip" + }, + { + "name": "transfer-encoding", + "value": "chunked" + }, + { + "name": "x-node", + "value": "bigweb36nuq" + }, + { + "name": "x-version-label", + "value": "easypost-202511071754-85836cab32-master" + }, + { + "name": "x-backend", + "value": "easypost" + }, + { + "name": "x-proxied", + "value": "intlb4nuq c0061e0a2e, extlb1nuq cbbd141214" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload" + }, + { + "name": "connection", + "value": "close" + } + ], + "headersSize": 776, + "httpVersion": "HTTP/1.1", + "redirectURL": "/api/v2/addresses/adr_78c37e14bc0611f0861fac1f6bc539ae", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-07T18:20:42.200Z", + "time": 799, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 799 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/cassettes/Address-Service_1115845720/creates-an-address-with-verify_strict-param_3337987013/recording.har b/test/cassettes/Address-Service_1115845720/creates-an-address-with-verify_strict-param_3337987013/recording.har index 922225ae9..6859ae1a9 100644 --- a/test/cassettes/Address-Service_1115845720/creates-an-address-with-verify_strict-param_3337987013/recording.har +++ b/test/cassettes/Address-Service_1115845720/creates-an-address-with-verify_strict-param_3337987013/recording.har @@ -4,11 +4,11 @@ "creator": { "comment": "persister:fs", "name": "Polly.JS", - "version": "6.0.5" + "version": "6.0.6" }, "entries": [ { - "_id": "409dc1626ab79a7c1af3533376ef22a1", + "_id": "dd1cfb17f3cff46a89c25b053eeabfd0", "_order": 0, "cache": {}, "request": { @@ -42,18 +42,18 @@ "postData": { "mimeType": "application/json", "params": [], - "text": "{\"address\":{\"name\":\"Elizabeth Swan\",\"street1\":\"179 N Harbor Dr\",\"city\":\"Redondo Beach\",\"state\":\"CA\",\"zip\":\"90277\",\"country\":\"US\",\"email\":\"test@example.com\",\"phone\":\"5555555555\"},\"verify_strict\":true}" + "text": "{\"verify_strict\":true,\"address\":{\"name\":\"Elizabeth Swan\",\"street1\":\"179 N Harbor Dr\",\"city\":\"Redondo Beach\",\"state\":\"CA\",\"zip\":\"90277\",\"country\":\"US\",\"email\":\"test@example.com\",\"phone\":\"5555555555\"}}" }, "queryString": [], "url": "https://api.easypost.com/v2/addresses" }, "response": { - "bodySize": 568, + "bodySize": 564, "content": { "encoding": "base64", "mimeType": "application/json; charset=utf-8", - "size": 568, - "text": "{\"id\":\"adr_3bc942824e8e11efa723ac1f6bc539aa\",\"object\":\"Address\",\"created_at\":\"2024-07-30T16:10:26+00:00\",\"updated_at\":\"2024-07-30T16:10:26+00:00\",\"name\":\"ELIZABETH SWAN\",\"company\":null,\"street1\":\"179 N HARBOR DR\",\"street2\":\"\",\"city\":\"REDONDO BEACH\",\"state\":\"CA\",\"zip\":\"90277-2506\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":false,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{\"zip4\":{\"success\":true,\"errors\":[],\"details\":null},\"delivery\":{\"success\":true,\"errors\":[],\"details\":{\"latitude\":33.8436,\"longitude\":-118.39177,\"time_zone\":\"America/Los_Angeles\"}}}}" + "size": 564, + "text": "{\"id\":\"adr_27439c4bbc0611f0ad3c3cecef1b359e\",\"object\":\"Address\",\"created_at\":\"2025-11-07T18:18:26Z\",\"updated_at\":\"2025-11-07T18:18:26Z\",\"name\":\"ELIZABETH SWAN\",\"company\":null,\"street1\":\"179 N HARBOR DR\",\"street2\":\"\",\"city\":\"REDONDO BEACH\",\"state\":\"CA\",\"zip\":\"90277-2506\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":false,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{\"zip4\":{\"success\":true,\"errors\":[],\"details\":null},\"delivery\":{\"success\":true,\"errors\":[],\"details\":{\"latitude\":33.8436,\"longitude\":-118.39177,\"time_zone\":\"America/Los_Angeles\"}}}}" }, "cookies": [], "headers": [ @@ -83,7 +83,7 @@ }, { "name": "x-ep-request-uuid", - "value": "6107a16e66a91072e2b87338003500c6" + "value": "bcd43724690e37f2e786b39b02a829ad" }, { "name": "cache-control", @@ -99,7 +99,7 @@ }, { "name": "location", - "value": "/api/v2/addresses/adr_3bc942824e8e11efa723ac1f6bc539aa" + "value": "/api/v2/addresses/adr_27439c4bbc0611f0ad3c3cecef1b359e" }, { "name": "content-type", @@ -107,7 +107,7 @@ }, { "name": "x-runtime", - "value": "0.065015" + "value": "0.052724" }, { "name": "content-encoding", @@ -119,11 +119,11 @@ }, { "name": "x-node", - "value": "bigweb36nuq" + "value": "bigweb65nuq" }, { "name": "x-version-label", - "value": "easypost-202407300015-6e288fe720-master" + "value": "easypost-202511071754-85836cab32-master" }, { "name": "x-backend", @@ -131,7 +131,7 @@ }, { "name": "x-proxied", - "value": "intlb3nuq c0f5e722d1, extlb2nuq fa152d4755" + "value": "intlb3nuq c0061e0a2e, extlb2nuq cbbd141214" }, { "name": "strict-transport-security", @@ -144,12 +144,12 @@ ], "headersSize": 776, "httpVersion": "HTTP/1.1", - "redirectURL": "/api/v2/addresses/adr_3bc942824e8e11efa723ac1f6bc539aa", + "redirectURL": "/api/v2/addresses/adr_27439c4bbc0611f0ad3c3cecef1b359e", "status": 201, "statusText": "Created" }, - "startedDateTime": "2024-07-30T16:10:26.530Z", - "time": 174, + "startedDateTime": "2025-11-07T18:18:26.009Z", + "time": 246, "timings": { "blocked": -1, "connect": -1, @@ -157,7 +157,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 174 + "wait": 246 } } ], diff --git a/test/cassettes/Address-Service_1115845720/creates-and-verifies-address-with-verify_carrier-param_3335734155/recording.har b/test/cassettes/Address-Service_1115845720/creates-and-verifies-address-with-verify_carrier-param_3335734155/recording.har new file mode 100644 index 000000000..645483b28 --- /dev/null +++ b/test/cassettes/Address-Service_1115845720/creates-and-verifies-address-with-verify_carrier-param_3335734155/recording.har @@ -0,0 +1,167 @@ +{ + "log": { + "_recordingName": "Address Service/creates and verifies address with verify_carrier param", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.6" + }, + "entries": [ + { + "_id": "2a3e653ebc55b2e2d950d77129ba2897", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 198, + "cookies": [], + "headers": [ + { + "name": "accept-encoding", + "value": "gzip, deflate" + }, + { + "name": "accept", + "value": "application/json" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "content-length", + "value": 198 + }, + { + "name": "host", + "value": "api.easypost.com" + } + ], + "headersSize": 409, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"verify_carrier\":\"UPS\",\"address\":{\"company\":\"EasyPost\",\"street1\":\"000 unknown street\",\"city\":\"Not A City\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"email\":\"test@example.com\",\"phone\":\"5555555555\"}}" + }, + "queryString": [], + "url": "https://api.easypost.com/v2/addresses/create_and_verify" + }, + "response": { + "bodySize": 596, + "content": { + "encoding": "base64", + "mimeType": "application/json; charset=utf-8", + "size": 596, + "text": "{\"address\":{\"id\":\"adr_793e897dbc0611f08682ac1f6bc539ae\",\"object\":\"Address\",\"created_at\":\"2025-11-07T18:20:43Z\",\"updated_at\":\"2025-11-07T18:20:43Z\",\"name\":null,\"company\":\"EASYPOST\",\"street1\":\"000 UNKNOWN STREET\",\"street2\":\"\",\"city\":\"NOT A CITY\",\"state\":\"ZZ\",\"zip\":\"00001\",\"country\":\"US\",\"phone\":\"\",\"email\":\"\",\"mode\":\"test\",\"carrier_facility\":null,\"residential\":null,\"federal_tax_id\":null,\"state_tax_id\":null,\"verifications\":{\"zip4\":{\"success\":true,\"errors\":[{\"code\":\"E.ADDRESS.NOT_FOUND\",\"field\":\"address\",\"message\":\"Address not found\",\"suggestion\":null}],\"details\":null},\"delivery\":{\"success\":true,\"errors\":[{\"code\":\"E.ADDRESS.NOT_FOUND\",\"field\":\"address\",\"message\":\"Address not found\",\"suggestion\":null}],\"details\":{\"latitude\":null,\"longitude\":null,\"time_zone\":null}},\"verify_carrier\":\"ups\"}}}" + }, + "cookies": [], + "headers": [ + { + "name": "x-frame-options", + "value": "SAMEORIGIN" + }, + { + "name": "x-xss-protection", + "value": "1; mode=block" + }, + { + "name": "x-content-type-options", + "value": "nosniff" + }, + { + "name": "x-download-options", + "value": "noopen" + }, + { + "name": "x-permitted-cross-domain-policies", + "value": "none" + }, + { + "name": "referrer-policy", + "value": "strict-origin-when-cross-origin" + }, + { + "name": "x-ep-request-uuid", + "value": "e4553701690e387be786b3db011dffdc" + }, + { + "name": "cache-control", + "value": "private, no-cache, no-store" + }, + { + "name": "pragma", + "value": "no-cache" + }, + { + "name": "expires", + "value": "0" + }, + { + "name": "location", + "value": "/api/v2/addresses/adr_793e897dbc0611f08682ac1f6bc539ae" + }, + { + "name": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "name": "x-runtime", + "value": "0.582027" + }, + { + "name": "content-encoding", + "value": "gzip" + }, + { + "name": "transfer-encoding", + "value": "chunked" + }, + { + "name": "x-node", + "value": "bigweb59nuq" + }, + { + "name": "x-version-label", + "value": "easypost-202511071754-85836cab32-master" + }, + { + "name": "x-backend", + "value": "easypost" + }, + { + "name": "x-proxied", + "value": "intlb3nuq c0061e0a2e, extlb1nuq cbbd141214" + }, + { + "name": "strict-transport-security", + "value": "max-age=31536000; includeSubDomains; preload" + }, + { + "name": "connection", + "value": "close" + } + ], + "headersSize": 776, + "httpVersion": "HTTP/1.1", + "redirectURL": "/api/v2/addresses/adr_793e897dbc0611f08682ac1f6bc539ae", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-11-07T18:20:43.007Z", + "time": 788, + "timings": { + "blocked": -1, + "connect": -1, + "dns": -1, + "receive": 0, + "send": 0, + "ssl": -1, + "wait": 788 + } + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/test/services/address.test.js b/test/services/address.test.js index 64aa430c3..b4b7fcba8 100644 --- a/test/services/address.test.js +++ b/test/services/address.test.js @@ -161,4 +161,29 @@ describe('Address Service', function () { expect(err).to.be.an.instanceOf(InvalidRequestError), ); }); + + it('creates an address with verify_carrier param', async function () { + const addressData = Fixture.incorrectAddress(); + + addressData.verify = true; + addressData.verify_carrier = 'UPS'; + const address = await client.Address.create(addressData); + + expect(address).to.be.an.instanceOf(Address); + + expect(address.verifications.delivery.errors[0].message).to.equal('Address not found'); + expect(address.verifications.zip4.errors[0].message).to.equal('Address not found'); + }); + + it('creates and verifies address with verify_carrier param', async function () { + const addressData = Fixture.incorrectAddress(); + + addressData.verify_carrier = 'UPS'; + const address = await client.Address.createAndVerify(addressData); + + expect(address).to.be.an.instanceOf(Address); + + expect(address.verifications.delivery.errors[0].message).to.equal('Address not found'); + expect(address.verifications.zip4.errors[0].message).to.equal('Address not found'); + }); }); diff --git a/types/Address/AddressCreateParameters.d.ts b/types/Address/AddressCreateParameters.d.ts index 0468dcc06..2b393263a 100644 --- a/types/Address/AddressCreateParameters.d.ts +++ b/types/Address/AddressCreateParameters.d.ts @@ -19,4 +19,10 @@ export declare interface IAddressCreateParameters * true will perform both delivery and zip code. */ verify_strict?: boolean | null; + + /** + * The verifications to perform when creating. + * Define either UPS or FedEx as the carrier to verify against. + */ + verify_carrier?: string | null; }