From 263cf4cfd6c27c613310cf0ab2d3fffa66287bfa Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Mon, 13 Nov 2023 16:42:41 -0600 Subject: [PATCH 01/19] FASCSA changes --- _apidocs/exclusions-api.md | 545 +++++++++++++++++----------- _apidocs/sam-entity-extracts-api.md | 36 +- 2 files changed, 373 insertions(+), 208 deletions(-) diff --git a/_apidocs/exclusions-api.md b/_apidocs/exclusions-api.md index 36cd57733..f0c0b4e25 100644 --- a/_apidocs/exclusions-api.md +++ b/_apidocs/exclusions-api.md @@ -4,7 +4,7 @@ banner-heading: SAM.gov Exclusions API --- ## Overview -The Exclusions API will allow users to request Public Exclusion Information based on various optional request parameters. +The Exclusions API will allow users to request Public Exclusion Information based on various optional request parameters. The response will be provided in the JSON format in a paginated manner. **Key Features of the Exclusion API:** @@ -33,12 +33,15 @@ Exclusions API can be accessed from Production or Alpha via the following versio * Alpha Version 1: https://api-alpha.sam.gov/entity-information/v1/exclusions?api_key=< value > * Alpha Version 2: https://api-alpha.sam.gov/entity-information/v2/exclusions?api_key=< value > * Alpha Version 3: https://api-alpha.sam.gov/entity-information/v3/exclusions?api_key=< value >

+* COMING SOON A new version 4 of the Exclusions API is coming soon:
+        * Production Version 4: https://api.sam.gov/entity-information/v4/exclusions?api_key=< value >
+        * Alpha Version 4: https://api-alpha.sam.gov/entity-information/v4/exclusions?api_key=< value > Generating a personal API Key: * Registered users can request for a public API on 'Account Details' page. This page can be accessed here: Account Details page on sam.gov -* Users must enter their password on ‘Account Details’ page to view the API Key information. If an incorrect password is entered, an error will be returned. -* After the API Key is generated on ‘Account Details’ page, the API Key can be viewed on the Account Details page immediately. The API Key is visible until users navigate to a different page. +* Users must enter their password on ‘Account Details’ page to view the API Key information. If an incorrect password is entered, an error will be returned. +* After the API Key is generated on ‘Account Details’ page, the API Key can be viewed on the Account Details page immediately. The API Key is visible until users navigate to a different page. * If an error is encountered during the API Key generation/retrieval, then users will receive an error message and they can try again. Generating a System Account API Key: @@ -99,34 +102,35 @@ Utilizing the Exclusion API as an extract: **Query String Parameters** -| Parameter Name | Description | Applicable Versions | -| ---- | ----------- | ----------- | -| classification | Allows a partial text or a complete text (Individual, Firm, Vessel, Special Entity Designation).

This parameter can be used inside the 'q' parameter.

Example: 'classification=Firm', 'classification=!INDIVIDUAL', 'classification=[Vessel~Special]', 'q=((classification:Vessel) OR (classification:Special))' | v1
v2
v3 | -| exclusionName | Allows a partial text or a complete text.

This parameter must not be used inside the 'q' parameter.

This parameter accepts multi-text values in any order and in any case, and will apply the AND operator between the texts.

Examples: 'exclusionName=J Roy', 'exclusionName=ROY j' | v1
v2
v3 | -| exclusionType | Allows a partial text or a complete text (a string).

Allowable values are: Ineligible (Proceedings Pending), Ineligible (Proceedings Completed), Prohibition/Restriction and Voluntary Exclusion.

This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case.

Examples: 'q=exclusionType:Ineligible (Proceedings Pending)', 'exclusionType=Ineligible PENDING', 'exclusionType=[Pending~Voluntary]' | v1
v2
v3 | -| exclusionProgram | Allows a complete text (a string).

Allowable values are: Reciprocal, NonProcurement and Procurement.

This parameter can be used inside the 'q' parameter.

Examples: 'q=((exclusionProgram:Reciprocal) OR (exclusionProgram:Procurement))', 'exclusionProgram=[NonProcurement~RECIPROCAL]', 'exclusionProgram=!NonProcurement'| v1
v2
v3 | -| addressLine1 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

This parameter must not be used inside the 'q' parameter.

Examples: 'addressLine1=""', 'addressLine1="7th Floor, Buraengdang Building 530-14"'

NOTE: If addressLine1 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v1
v2
v3 | -| addressLine2 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

This parameter must not be used inside the 'q' parameter.

Examples: 'addressLine2=""', 'addressLine2="Dapsipri, 5 Dong, Dongdaemun-K"'

NOTE: If addressLine2 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v1
v2
v3 | -| stateProvince | Allows 2-character codes for the USA, names for foreign countries and null (a string).

Examples: 'stateProvince=AR', 'stateProvince=[VA~MICHOACÁN]', 'stateProvince=""' | v1
v2
v3 | -| country | Allows 3-character codes, numerical values and null (a string).

Examples: 'country=USA' 'country=[RUS~292~mex]', 'country=!""', 'q=((country:RUS) OR (country:292) OR (country:mex))' | v1
v2
v3 | -| zipCode | Allows 5-digit values for the USA, any value as it was provided for foreign countries and null (a string).

Example: 'zipCode=20171', 'zipCode=[901-2132~V3M 5P8~C.P. 44890]', 'zipCode=""', 'q=((zipCode:901-2132) OR (zipCode:20147))' | v1
v2
v3 | -| ueiSAM | Denotes Unique Entity Identifier SAM.

Allows 12-character values, null and also wildcard searches.

Examples: 'ueiSAM=""', 'ueiSAM=!""', 'ueiSAM=P*X*1', 'q=((ueiSAM:PMC9YQMXJZU1) OR (ueiSAM:PG4XZ77WRC21))' | v1
v2
v3 | -| excludingAgencyCode | Allows a partial text, a complete text and null (a string).

Examples: 'excludingAgencyCode=ICE', 'excludingAgencyCode=DHS-ICE', 'excludingAgencyCode=[AF~HUD~""]', 'q=((excludingAgencyCode:AF) OR (excludingAgencyCode:HUD))' | v1
v2
v3 | -| excludingAgencyName | Allows a partial text, a complete text and null (a string).

This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case

Examples: 'excludingAgencyName=Of URBAN housing', 'excludingAgencyName=[Geological~Navy]', q=((excludingAgencyName:Geological) OR (excludingAgencyName:Navy)) | v1
v2
v3 | -| ctCode | Allows a complete text, null and also wild card searches (a string).

Examples: 'ctCode=*SDN*', 'ctCode=[AA~""], 'q=((ctCode:AA) OR (ctCode:03-SDN-01))' | v1
v2
v3 | -| activationDate | Allows a single Date or Date range.
Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

Examples: 'activationDate=01/01/2019', 'activationDate=[01/01/2019,05/29/2019]' | v1
v2
v3 | -| creationDate | Allows a single Date or Date range.
Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

Examples: 'creationDate=01/01/2019', 'creationDate=[01/01/2019,05/29/2019]' | v1
v2
v3 | -| updateDate | Allows a single Date or Date range.
Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

Examples: 'updateDate=01/01/2019', 'updateDate=[01/01/2019,05/29/2019]'' | v1
v2
v3 | -| terminationDate | Allows a single Date or Date range.
Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

Examples: 'terminationDate=01/01/2019', 'terminationDate=[01/01/2019,05/29/2019]' | v1
v2
v3 | -| cageCode | Allows a complete value, null and also wild card searches (a string).

Examples: 'cageCode=0*0', 'cageCode=[0XLE0~1CM51~""]', 'q=((cageCode:0XLE0) OR (cageCode:1CM51))' | v1
v2
v3 | -| npi | Allows 1234567890 (this is masked data) and null (a string).

Examples: 'npi=1234567890', 'npi=""', 'npi=!""' | v1
v2
v3 | -| recordStatus | The API returns only Active records.

Allows a complete text (a string).

Allowable value is: Active, active

Example: 'recordStatus=active' | v1
v2
v3 | -| page | Denotes a page number.

Allowable values are 0 to 999.

Example: 'page=0' | v1
v2
v3 | -| size | Denotes the number of records returned per page.

Allowable values are 1 to 10.

Example: 'size=1' | v1
v2
v3 | -| includeSections | Allows to filter data by sections, exclusionDetails, exclusionIdentification, exclusionActions, exclusionAddress, exclusionOtherInformation and vesselDetails.

Example: 'includeSections=exclusionOtherInformation,exclusionDetails' | v1
v2
v3 | -| format | Allows user to download different file formats(csv and json are allowable values) .

Example: 'format=csv' | v1
v2
v3 | -| emailId | Allows user to get file download links sent to the email address associated to the API key used in the request. Email ID must be provided in conjunction with the format parameter.
Example: emailId= Yes
Applicable to non-SAM registrants. | v1
v2
v3 | -| ssnOrTinOrEin | Allows a 9-digit value or null.

This parameter must not be used inside the 'q' parameter.

This parameter must be used in conjunction with the exclusionName parameter.

Example: 'ssnOrTinOrEin=123456789' | v1
v2
v3 | +| Parameter Name | Description | Applicable Versions | +|-----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------| +| classification | Allows a partial text or a complete text (Individual, Firm, Vessel, Special Entity Designation).

This parameter can be used inside the 'q' parameter.

Example: 'classification=Firm', 'classification=!INDIVIDUAL', 'classification=[Vessel~Special]', 'q=((classification:Vessel) OR (classification:Special))' | v1
v2
v3 | +| exclusionName | Allows a partial text or a complete text.

This parameter must not be used inside the 'q' parameter.

This parameter accepts multi-text values in any order and in any case, and will apply the AND operator between the texts.

Examples: 'exclusionName=J Roy', 'exclusionName=ROY j' | v1
v2
v3 | +| exclusionType | Allows a partial text or a complete text (a string).

Allowable values are: Ineligible (Proceedings Pending), Ineligible (Proceedings Completed), Prohibition/Restriction and Voluntary Exclusion.

This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case.

Examples: 'q=exclusionType:Ineligible (Proceedings Pending)', 'exclusionType=Ineligible PENDING', 'exclusionType=[Pending~Voluntary]' | v1
v2
v3 | +| exclusionProgram | Allows a complete text (a string).

Allowable values are: Reciprocal, NonProcurement and Procurement.

This parameter can be used inside the 'q' parameter.

Examples: 'q=((exclusionProgram:Reciprocal) OR (exclusionProgram:Procurement))', 'exclusionProgram=[NonProcurement~RECIPROCAL]', 'exclusionProgram=!NonProcurement' | v1
v2
v3 | +| addressLine1 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

This parameter must not be used inside the 'q' parameter.

Examples: 'addressLine1=""', 'addressLine1="7th Floor, Buraengdang Building 530-14"'

NOTE: If addressLine1 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v1
v2
v3 | +| addressLine2 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

This parameter must not be used inside the 'q' parameter.

Examples: 'addressLine2=""', 'addressLine2="Dapsipri, 5 Dong, Dongdaemun-K"'

NOTE: If addressLine2 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v1
v2
v3 | +| stateProvince | Allows 2-character codes for the USA, names for foreign countries and null (a string).

Examples: 'stateProvince=AR', 'stateProvince=[VA~MICHOACÁN]', 'stateProvince=""' | v1
v2
v3 | +| country | Allows 3-character codes, numerical values and null (a string).

Examples: 'country=USA' 'country=[RUS~292~mex]', 'country=!""', 'q=((country:RUS) OR (country:292) OR (country:mex))' | v1
v2
v3 | +| zipCode | Allows 5-digit values for the USA, any value as it was provided for foreign countries and null (a string).

Example: 'zipCode=20171', 'zipCode=[901-2132~V3M 5P8~C.P. 44890]', 'zipCode=""', 'q=((zipCode:901-2132) OR (zipCode:20147))' | v1
v2
v3 | +| ueiSAM | Denotes Unique Entity Identifier SAM.

Allows 12-character values, null and also wildcard searches.

Examples: 'ueiSAM=""', 'ueiSAM=!""', 'ueiSAM=P*X*1', 'q=((ueiSAM:PMC9YQMXJZU1) OR (ueiSAM:PG4XZ77WRC21))' | v1
v2
v3 | +| excludingAgencyCode | Allows a partial text, a complete text and null (a string).

Examples: 'excludingAgencyCode=ICE', 'excludingAgencyCode=DHS-ICE', 'excludingAgencyCode=[AF~HUD~""]', 'q=((excludingAgencyCode:AF) OR (excludingAgencyCode:HUD))' | v1
v2
v3 | +| excludingAgencyName | Allows a partial text, a complete text and null (a string).

This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case

Examples: 'excludingAgencyName=Of URBAN housing', 'excludingAgencyName=[Geological~Navy]', q=((excludingAgencyName:Geological) OR (excludingAgencyName:Navy)) | v1
v2
v3 | +| ctCode | Allows a complete text, null and also wild card searches (a string).

Examples: 'ctCode=*SDN*', 'ctCode=[AA~""], 'q=((ctCode:AA) OR (ctCode:03-SDN-01))' | v1
v2
v3 | +| activationDate | Allows a single Date or Date range.
Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

Examples: 'activationDate=01/01/2019', 'activationDate=[01/01/2019,05/29/2019]' | v1
v2
v3 | +| creationDate | Allows a single Date or Date range.
Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

Examples: 'creationDate=01/01/2019', 'creationDate=[01/01/2019,05/29/2019]' | v1
v2
v3 | +| updateDate | Allows a single Date or Date range.
Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

Examples: 'updateDate=01/01/2019', 'updateDate=[01/01/2019,05/29/2019]'' | v1
v2
v3 | +| terminationDate | Allows a single Date or Date range.
Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

Examples: 'terminationDate=01/01/2019', 'terminationDate=[01/01/2019,05/29/2019]' | v1
v2
v3 | +| cageCode | Allows a complete value, null and also wild card searches (a string).

Examples: 'cageCode=0*0', 'cageCode=[0XLE0~1CM51~""]', 'q=((cageCode:0XLE0) OR (cageCode:1CM51))' | v1
v2
v3 | +| npi | Allows 1234567890 (this is masked data) and null (a string).

Examples: 'npi=1234567890', 'npi=""', 'npi=!""' | v1
v2
v3 | +| recordStatus | The API returns only Active records.

Allows a complete text (a string).

Allowable value is: Active, active

Example: 'recordStatus=active' | v1
v2
v3 | +| page | Denotes a page number.

Allowable values are 0 to 999.

Example: 'page=0' | v1
v2
v3 | +| size | Denotes the number of records returned per page.

Allowable values are 1 to 10.

Example: 'size=1' | v1
v2
v3 | +| includeSections | Allows to filter data by sections, exclusionDetails, exclusionIdentification, exclusionActions, exclusionAddress, exclusionOtherInformation and vesselDetails.

Example: 'includeSections=exclusionOtherInformation,exclusionDetails' | v1
v2
v3 | +| format | Allows user to download different file formats(csv and json are allowable values) .

Example: 'format=csv' | v1
v2
v3 | +| emailId | Allows user to get file download links sent to the email address associated to the API key used in the request. Email ID must be provided in conjunction with the format parameter.
Example: emailId= Yes
Applicable to non-SAM registrants. | v1
v2
v3 | +| ssnOrTinOrEin | Allows a 9-digit value or null.

This parameter must not be used inside the 'q' parameter.

This parameter must be used in conjunction with the exclusionName parameter.

Example: 'ssnOrTinOrEin=123456789' | v1
v2
v3 | +| COMING SOON
----
fascsaOrder | Allows Yes and No.

This parameter accepts either value, in any case.

Examples: fascsaOrder=Yes, fascsaOrder=yes, fascsaOrder=No, fascsaOrder=no | v4 | **Expected Result** @@ -175,6 +179,7 @@ API response consists of Sections, Sub-sections and Tags underneath each of the | zipCodePlus4 | string | Address Zip Plus 4 | v2
v3 | | countryCode | string | Country Code | v2
v3 | | **exclusionOtherInformation** | +| COMING SOON
----
isFASCSAOrder | string | FASCSA Order Exclusion Indicator | v4 | | additionalComments | string | Additional Comments | v1
v2
v3 | | ctCode | string | CT Code | v1
v2
v3 | | dnbInvestigationStatus/evsInvestigationStatus | string | EVS Investigation Status

NOTE: This parameter is being renamed. dnbInvestigationStatus is in V1 and evsInvestigationStatus will be V2. | v1
v2
v3 | @@ -183,7 +188,7 @@ API response consists of Sections, Sub-sections and Tags underneath each of the | type | string | Type | v1
v2
v3 | | **exclusionOtherInformation --> moreLocations** | | exclusionName | string | Exclusion Name | v2
v3 | -| duns | string | DUNS | v2 | +| duns | string | DUNS | v2 | | ueiSAM | string | ueiSAM | v3 | | cageCode | string | CAGE Code | v2
v3 | | npi | string | NPI | v2
v3 | @@ -221,7 +226,7 @@ API response consists of Sections, Sub-sections and Tags underneath each of the

Back to top

-## OpenAPI Specification File +## OpenAPI Specification File You can view the full details of this API in the OpenAPI Specification file available here: Open API specification file for the Exclusion API @@ -526,104 +531,104 @@ Note: Public Response for one record is provided as an example
A sample record is provided here: - "excludedEntity": [ - { - "exclusionDetails": { - "classificationType": "Individual", - "exclusionType": "Ineligible (Proceedings Completed)", - "exclusionProgram": "Reciprocal", - "excludingAgencyCode": "ARMY", - "excludingAgencyName": "DEPT OF THE ARMY" - }, - "exclusionIdentification": { - "ueiSAM": null, - "cageCode": null, - "npi": null, - "prefix": "Ms.", - "firstName": "Chong", - "middleName": "Sun", - "lastName": "Hwang", - "suffix": null, - "entityName": "Ms. Chong Sun Hwang", - "dnbOpenData": null - }, - "exclusionActions": { - "listOfActions": [ - { - "createDate": "07-27-2012", - "updateDate": "07-27-2012", - "activateDate": "12-12-2011", - "terminationDate": "11-08-2029", - "terminationType": "Definite", - "recordStatus": "Active" - } - ] - }, - "exclusionPrimaryAddress": { - "addressLine1": null, - "addressLine2": null, - "city": "Dongjak-gu, Seoul", - "stateOrProvinceCode": null, - "zipCode": null, - "zipCodePlus4": null, - "countryCode": "KOR" - }, - "exclusionSecondaryAddress": [], - "exclusionOtherInformation": { - "additionalComments": null, - "ctCode": "A", - "evsInvestigationStatus": null, - "references": { - "referencesList": [ - { - "exclusionName": null, - "type": null - } - ] - }, - "moreLocations": [ - { - "exclusionName": null, - "duns": null, - "cageCode": null, - "npi": null, - "primaryAddress": { - "addressLine1": null, - "addressLine2": null, - "city": null, - "stateOrProvinceCode": null, - "zipCode": null, - "zipCodePlus4": null, - "countryCode": null - }, - "secondaryAddress": [ - { - "addressLine1": null, - "addressLine2": null, - "city": null, - "stateOrProvinceCode": null, - "zipCode": null, - "zipCodePlus4": null, - "countryCode": null - } - ] - } - ] - }, - "vesselDetails": { - "callSign": null, - "type": null, - "tonnage": null, - "grt": null, - "flag": null, - "owner": null - } - }, - - "links": { - "selfLink": "https://api.sam.gov/entity-information/v2/exclusions?api_key=REPLACE_WITH_API_KEY&classification=[Individual~Special%20Entity%20Designation&excludingAgencyCode=!DOJ&country=KOR&q=CHONG&page=0&size=10", - - } +"excludedEntity": [ +{ +"exclusionDetails": { +"classificationType": "Individual", +"exclusionType": "Ineligible (Proceedings Completed)", +"exclusionProgram": "Reciprocal", +"excludingAgencyCode": "ARMY", +"excludingAgencyName": "DEPT OF THE ARMY" +}, +"exclusionIdentification": { +"ueiSAM": null, +"cageCode": null, +"npi": null, +"prefix": "Ms.", +"firstName": "Chong", +"middleName": "Sun", +"lastName": "Hwang", +"suffix": null, +"entityName": "Ms. Chong Sun Hwang", +"dnbOpenData": null +}, +"exclusionActions": { +"listOfActions": [ +{ +"createDate": "07-27-2012", +"updateDate": "07-27-2012", +"activateDate": "12-12-2011", +"terminationDate": "11-08-2029", +"terminationType": "Definite", +"recordStatus": "Active" +} +] +}, +"exclusionPrimaryAddress": { +"addressLine1": null, +"addressLine2": null, +"city": "Dongjak-gu, Seoul", +"stateOrProvinceCode": null, +"zipCode": null, +"zipCodePlus4": null, +"countryCode": "KOR" +}, +"exclusionSecondaryAddress": [], +"exclusionOtherInformation": { +"additionalComments": null, +"ctCode": "A", +"evsInvestigationStatus": null, +"references": { +"referencesList": [ +{ +"exclusionName": null, +"type": null +} +] +}, +"moreLocations": [ +{ +"exclusionName": null, +"duns": null, +"cageCode": null, +"npi": null, +"primaryAddress": { +"addressLine1": null, +"addressLine2": null, +"city": null, +"stateOrProvinceCode": null, +"zipCode": null, +"zipCodePlus4": null, +"countryCode": null +}, +"secondaryAddress": [ +{ +"addressLine1": null, +"addressLine2": null, +"city": null, +"stateOrProvinceCode": null, +"zipCode": null, +"zipCodePlus4": null, +"countryCode": null +} +] +} +] +}, +"vesselDetails": { +"callSign": null, +"type": null, +"tonnage": null, +"grt": null, +"flag": null, +"owner": null +} +}, + +"links": { +"selfLink": "https://api.sam.gov/entity-information/v2/exclusions?api_key=REPLACE_WITH_API_KEY&classification=[Individual~Special%20Entity%20Designation&excludingAgencyCode=!DOJ&country=KOR&q=CHONG&page=0&size=10", + +}

@@ -649,50 +654,175 @@ Note: Public Response for one record is provided as an example
A sample record is provided here: - "excludedEntity": [ - { - "exclusionDetails": { - "classificationType": "Firm", - "exclusionType": "Ineligible (Proceedings Completed)", - "exclusionProgram": "Reciprocal", - "excludingAgencyCode": "AF", - "excludingAgencyName": "DEPT OF THE AIR FORCE" - }, - "exclusionIdentification": { - "ueiSAM": "H2XFNNKK2NZ9", - "cageCode": null, - "npi": null, - "prefix": null, - "firstName": null, - "middleName": null, - "lastName": null, - "suffix": null, - "entityName": "Shenzhen Hongdark Electronics Co., Ltd.", - "dnbOpenData": null - }, - "exclusionPrimaryAddress": { - "addressLine1": null, - "addressLine2": null, - "city": "Shenzhen", - "stateOrProvinceCode": null, - "zipCode": null, - "zipCodePlus4": null, - "countryCode": "CHN" - }, - "exclusionSecondaryAddress": [] - }, +"excludedEntity": [ +{ +"exclusionDetails": { +"classificationType": "Firm", +"exclusionType": "Ineligible (Proceedings Completed)", +"exclusionProgram": "Reciprocal", +"excludingAgencyCode": "AF", +"excludingAgencyName": "DEPT OF THE AIR FORCE" +}, +"exclusionIdentification": { +"ueiSAM": "H2XFNNKK2NZ9", +"cageCode": null, +"npi": null, +"prefix": null, +"firstName": null, +"middleName": null, +"lastName": null, +"suffix": null, +"entityName": "Shenzhen Hongdark Electronics Co., Ltd.", +"dnbOpenData": null +}, +"exclusionPrimaryAddress": { +"addressLine1": null, +"addressLine2": null, +"city": "Shenzhen", +"stateOrProvinceCode": null, +"zipCode": null, +"zipCodePlus4": null, +"countryCode": "CHN" +}, +"exclusionSecondaryAddress": [] +}, "links": { - "selfLink": "https://api.sam.gov/entity-information/v2/exclusions?api_key=REPLACE_WITH_API_KEY&q=(country=KOR%20OR%20country=CHN%20OR%20country=DEU)&classification=Firm&exclusionType=[Ineligible%20(Proceedings%20Completed)~Prohibition/Restriction&includeSections=exclusionDetails,exclusionIdentification,exclusionAddress&page=0&size=10", - "nextLink": "https://api.sam.gov/entity-information/v2/exclusions?api_key=REPLACE_WITH_API_KEY&q=(country=KOR%20OR%20country=CHN%20OR%20country=DEU)&classification=Firm&exclusionType=[Ineligible%20(Proceedings%20Completed)~Prohibition/Restriction&includeSections=exclusionDetails,exclusionIdentification,exclusionAddress&page=1&size=10" - } +"selfLink": "https://api.sam.gov/entity-information/v2/exclusions?api_key=REPLACE_WITH_API_KEY&q=(country=KOR%20OR%20country=CHN%20OR%20country=DEU)&classification=Firm&exclusionType=[Ineligible%20(Proceedings%20Completed)~Prohibition/Restriction&includeSections=exclusionDetails,exclusionIdentification,exclusionAddress&page=0&size=10", +"nextLink": "https://api.sam.gov/entity-information/v2/exclusions?api_key=REPLACE_WITH_API_KEY&q=(country=KOR%20OR%20country=CHN%20OR%20country=DEU)&classification=Firm&exclusionType=[Ineligible%20(Proceedings%20Completed)~Prohibition/Restriction&includeSections=exclusionDetails,exclusionIdentification,exclusionAddress&page=1&size=10" +} +} + + +

+ + +### Example 5: Get details for FASCSA Order Exclusion records only. + +
+Request URL +v4 Production URL: https://api.sam.gov/entity-information/v4/exclusions?api_key=< a valid Public API Key >&fascsaOrder=Yes
+
+v4 Alpha URL: https://api-alpha.sam.gov/entity-information/v4/exclusions?api_key=< a valid Public API Key >&fascsaOrder=Yes
+
+
+ +
+Response (JSON Output) +Note: Public Response for one record is provided as an example
+

+ +

+{
+    "totalRecords": 16,
+
+A sample record is provided here:
+
+        {
+            "exclusionDetails": {
+                "classificationType": "Firm",
+                "exclusionType": "Prohibition/Restriction",
+                "exclusionProgram": "Reciprocal",
+                "excludingAgencyCode": "AF",
+                "excludingAgencyName": "DEPT OF THE AIR FORCE"
+            },
+            "exclusionIdentification": {
+                "ueiSAM": "J27QHBBBL1V3",
+                "cageCode": null,
+                "npi": null,
+                "prefix": null,
+                "firstName": null,
+                "middleName": null,
+                "lastName": null,
+                "suffix": null,
+                "entityName": "Foxtrot Research Corp",
+                "dnbOpenData": null
+            },
+            "exclusionActions": {
+                "listOfActions": [
+                    {
+                        "createDate": "10-31-2023",
+                        "updateDate": "10-31-2023",
+                        "activateDate": "10-30-2023",
+                        "terminationDate": null,
+                        "terminationType": "Indefinite",
+                        "recordStatus": "Active"
+                    }
+                ]
+            },
+            "exclusionPrimaryAddress": {
+                "addressLine1": null,
+                "addressLine2": null,
+                "city": null,
+                "stateOrProvinceCode": "FL",
+                "zipCode": null,
+                "zipCodePlus4": null,
+                "countryCode": "USA"
+            },
+            "exclusionSecondaryAddress": [],
+            "exclusionOtherInformation": {
+                "isFASCSAOrder": "Yes",
+                "additionalComments": null,
+                "ctCode": null,
+                "evsInvestigationStatus": null,
+                "references": {
+                    "referencesList": [
+                        {
+                            "exclusionName": null,
+                            "type": null
+                        }
+                    ]
+                },
+                "moreLocations": [
+                    {
+                        "exclusionName": null,
+                        "ueiSAM": null,
+                        "cageCode": null,
+                        "npi": null,
+                        "primaryAddress": {
+                            "addressLine1": null,
+                            "addressLine2": null,
+                            "city": null,
+                            "stateOrProvinceCode": null,
+                            "zipCode": null,
+                            "zipCodePlus4": null,
+                            "countryCode": null
+                        },
+                        "secondaryAddress": [
+                            {
+                                "addressLine1": null,
+                                "addressLine2": null,
+                                "city": null,
+                                "stateOrProvinceCode": null,
+                                "zipCode": null,
+                                "zipCodePlus4": null,
+                                "countryCode": null
+                            }
+                        ]
+                    }
+                ]
+            },
+            "vesselDetails": {
+                "callSign": null,
+                "type": null,
+                "tonnage": null,
+                "grt": null,
+                "flag": null,
+                "owner": null
+            }
+        },
+    ],
+    "links": {
+        "selfLink": "https://api-alpha.sam.gov/entity-information/v4/exclusions?api_key=REPLACE_WITH_API_KEY&fascsaOrder=Yes&page=0&size=10",
+        "nextLink": "https://api-alpha.sam.gov/entity-information/v4/exclusions?api_key=REPLACE_WITH_API_KEY&fascsaOrder=Yes&page=1&size=10"
+    }
 }
 

-### Example 5: To receive a file downloadable link in the email for the requested CSV results. +### Example 6: To receive a file downloadable link in the email for the requested CSV results.
Request URL Production URL: https://api.sam.gov/entity-information/v2/exclusions?api_key=< a valid Public API Key >&q=(country=KOR OR country=CHN OR country=DEU)&classification=Firm&exclusionType=[Ineligible (Proceedings Completed)~Prohibition/Restriction]&includeSections=exclusionDetails,exclusionIdentification,exclusionAddress&format=CSV&emailId=Y
@@ -709,7 +839,7 @@ Click to view CSV Response for one record Back to top

## Additional Information -You can view the full details of the differences between the SAM legacy API and SAM.gov API +You can view the full details of the differences between the SAM legacy API and SAM.gov API
available here: Variance Document
Disclaimer: @@ -724,46 +854,46 @@ Disclaimer: ## Contact Us * Reach out to the SAM.gov team at www.fsd.gov for inquiries and help desk support. - * Before contacting the help desk, conduct your own initial troubleshooting - * Conduct a recent review of the open.gsa.gov/api specifications - * Confirm you are using an API tool, not a browser to send the request. (FOUO & Sensitive Calls) - * Confirm you are using the username/password for the system account that created the API key in the authentication header. (Sensitive Calls) - * Confirm you used POST and not GET for this request (Sensitive Calls) - * Confirm that the API key is from a system account (FOUO & Sensitive Calls) - * Confirm that the API key being used is still active - * Confirm that the system account you are using has “read fouo” or “read sensitive” permissions as applicable (FOUO & Sensitive Calls) - * Confirm that the IP addresses registered with your system account are current - * When submitting help desk tickets for API or system connection issues, provide the following: - * The exact API requests that you were trying to send - * The exact error messages that you were receiving - * The exact dates and times when you received the errors - * Screenshots (with the actual API request and the error) [Attach to the ticket] - * The System Account ID/Name that was trying to make API calls - * Screenshots of the parameters used for API call [Attach to the ticket] - * Screenshots of the Headers used for the API call [Attach to the ticket] + * Before contacting the help desk, conduct your own initial troubleshooting + * Conduct a recent review of the open.gsa.gov/api specifications + * Confirm you are using an API tool, not a browser to send the request. (FOUO & Sensitive Calls) + * Confirm you are using the username/password for the system account that created the API key in the authentication header. (Sensitive Calls) + * Confirm you used POST and not GET for this request (Sensitive Calls) + * Confirm that the API key is from a system account (FOUO & Sensitive Calls) + * Confirm that the API key being used is still active + * Confirm that the system account you are using has “read fouo” or “read sensitive” permissions as applicable (FOUO & Sensitive Calls) + * Confirm that the IP addresses registered with your system account are current + * When submitting help desk tickets for API or system connection issues, provide the following: + * The exact API requests that you were trying to send + * The exact error messages that you were receiving + * The exact dates and times when you received the errors + * Screenshots (with the actual API request and the error) [Attach to the ticket] + * The System Account ID/Name that was trying to make API calls + * Screenshots of the parameters used for API call [Attach to the ticket] + * Screenshots of the Headers used for the API call [Attach to the ticket] * Users requesting access to the test site (alpha.sam.gov) should follow the below steps. These steps ONLY apply to alpha.sam.gov access requests. - 1. Navigate to www.fsd.gov - 2. Sign into the FSD platform using your FSD credentials - 3. Select "Create an Incident" - 4. Create an Incident -
    -
  1. System Name: System for Award Management (SAM)
  2. -
  3. Is this related to the American Rescue Plan Act?: No
  4. -
  5. Issue Type: Other
  6. -
  7. Business Type: Other
  8. -
  9. Subject (select 1): -
      -
    1. Option A: I need a role to test in alpha.sam.gov.
    2. -
    3. Option B: System account approval in alpha.sam.gov
    4. -
    -
  10. -
  11. Please describe the issue: (Copy and paste the below information into the ticket, filling in your information within the brackets) -
      -
    1. Option A: I have already navigated to alpha.sam.gov and created a user account, following the same steps for creating an account in sam.gov. I would like to conduct testing but do not have the necessary role(s) in alpha.sam.gov. The account that needs role assignment is associated with [EMAIL ADDRESS]. I request a [ROLE] role for the [DOMAIN] domain in alpha.sam.gov.
    2. -
    3. Option B: I am creating/editing a system account and have submitted my account in alpha.sam.gov for approval. I would like to request alpha.sam.gov system account review and approval for [Name of the alpha.sam.gov system account].
    4. -
    -
  12. -
+ 1. Navigate to www.fsd.gov + 2. Sign into the FSD platform using your FSD credentials + 3. Select "Create an Incident" + 4. Create an Incident +
    +
  1. System Name: System for Award Management (SAM)
  2. +
  3. Is this related to the American Rescue Plan Act?: No
  4. +
  5. Issue Type: Other
  6. +
  7. Business Type: Other
  8. +
  9. Subject (select 1): +
      +
    1. Option A: I need a role to test in alpha.sam.gov.
    2. +
    3. Option B: System account approval in alpha.sam.gov
    4. +
    +
  10. +
  11. Please describe the issue: (Copy and paste the below information into the ticket, filling in your information within the brackets) +
      +
    1. Option A: I have already navigated to alpha.sam.gov and created a user account, following the same steps for creating an account in sam.gov. I would like to conduct testing but do not have the necessary role(s) in alpha.sam.gov. The account that needs role assignment is associated with [EMAIL ADDRESS]. I request a [ROLE] role for the [DOMAIN] domain in alpha.sam.gov.
    2. +
    3. Option B: I am creating/editing a system account and have submitted my account in alpha.sam.gov for approval. I would like to request alpha.sam.gov system account review and approval for [Name of the alpha.sam.gov system account].
    4. +
    +
  12. +

Back to top

@@ -792,5 +922,6 @@ Date | Version | Description 10/21/2021 | v2.8 | * Updated Examples - Added Example 1 and Example 2 to indicate the post April 3rd, 2022 behavior.

* Added notes in the Query String Parameters, Expected Result and HTTP Response Codes sections to highlight the until and after April 3rd, 2022 behavior. 02/01/2022 | v2.9 | * Added exclusions V3 endpoint information to the Getting Started section.

* Updated the Query String Parameters and Expected Results sections to reflect available parameters and response fields in V3.

* Updated the Example 1 and Example 2 to indicate the V3 behavior.

* Updated the section, "HTTP Response Codes" to indicate the v3 behavior.

* Update the OpenAPI Specification File to include the V3 endpoints. 04/04/2022 | v3.0 | * Provided the v3 end point for Production.

* Removed ueiDUNS occurrences from the sections, Query String Parameters, Expected Result, HTTP Response Codes and Examples. +11/14/2022 | v3.1 | * Added "COMING SOON" sections throughout page for an upcoming change to Exclusions API, enabling the search and response for FASCSA Order Exclusion records.

Back to top

diff --git a/_apidocs/sam-entity-extracts-api.md b/_apidocs/sam-entity-extracts-api.md index 5c07f6ebe..a0d0dc3e9 100644 --- a/_apidocs/sam-entity-extracts-api.md +++ b/_apidocs/sam-entity-extracts-api.md @@ -93,6 +93,25 @@ E.g.: The file generated on 04/05/2022 will show 2022095. E.g.: The file for 04/06/2022 would be SAM_Exclusions_Public_Extract_V2_22096.ZIP. + + +COMING SOON
------
Daily FASCSA Exclusion Extracts
+ + + + @@ -233,7 +252,9 @@ Curl request with username and password: curl -X POST "https://api.sam.gov/data- fileName This parameter must be used on its own. It allows users to provide the extract file name.
-Examples: fileName=SAM_PUBLIC_MONTHLY_V2_20220406.ZIP; fileName= SAM_Exclusions_Public_Extract_V2_22096.ZIP +Examples: fileName=SAM_PUBLIC_MONTHLY_V2_20220406.ZIP;
+fileName= SAM_Exclusions_Public_Extract_V2_22096.ZIP;
+COMING SOON - fileName= FASCSAOrders232777.CSV @@ -311,6 +332,10 @@ Permitted values: V2 for the Public, FOUO and Exclusion extracts; V3 for the Sen Exclusions Extract Layout
+
  • FASCSA Exclusions Public extract layout with the UEI data:
    +FASCSA Exclusions Extract Layout
    +
  • +
    @@ -343,6 +368,12 @@ Permitted values: V2 for the Public, FOUO and Exclusion extracts; V3 for the Sen + +
  • COMING SOON - FASCSA Exclusions files:
  • + @@ -367,6 +398,7 @@ Permitted values: V2 for the Public, FOUO and Exclusion extracts; V3 for the Sen
  • https://api.sam.gov/data-services/v1/extracts?fileType=ENTITY&sensitivity=SENSITIVE&frequency=MONTHLY&date=04/2022&charset=UTF8
  • https://api.sam.gov/data-services/v1/extracts?api_key={API KEY}&fileName=SAM_Exclusions_Public_Extract_V2_22097.ZIP
  • https://api.sam.gov/data-services/v1/extracts?api_key={API KEY}&fileType=EXCLUSION&date=04/07/2022
  • +
  • COMING SOON - https://api.sam.gov/data-services/v1/extracts?api_key={API KEY}&fileName=FASCSAOrders23306.CSV
  • @@ -386,6 +418,7 @@ Extract files with UEI Information: * Click to view FOUO Monthly V2 Extract File * Click to view Sensitive Monthly V3 Extract File * Click to view Exclusions Public V2 Extract File
    +* Click to view FASCSA Order Exclusions Public V2 Extract File

    Back to top

    @@ -477,5 +510,6 @@ Date | Version | Description 03/13/2023 | v3.2 | * Deleted the MPIN row from the "SAM Master Extract Mapping" file.

    * Updated row # 288 (which used to track MPIN) in the "Sensitive Extract Layout" file to indicate that the field is deprecated.

    * Removed the MPIN value from the sample "Sensitive Monthly V3 Extract File".

    06/27/2023 | v3.3 | * Updated "Effective April 2022" to "Effective June 2023".

    * Updated the "June 2023 release: SAM Master Extract Mapping" STRING Clarification tab to include the following updates:
     1. NAICS Exception String table updated to reflect January 2023
     changes
     2. SBA Business Types String table updated to include new value:
     "A4- SBA Certified Small Disadvantaged Business"

    09/11/2023 | v3.4 | * Removed "SAM Master Extract Mapping document".

    +11/14/2023 | v3.5 | * Added "COMING SOON" sections throughout page for an upcoming change to Extracts Download API enabling the download of FASCSA Order Exclusions Public Extract.

    Back to top

    From dbd81d75de1f985300c66e42950e10a05a98c7d4 Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Fri, 17 Nov 2023 18:32:44 -0600 Subject: [PATCH 02/19] FASCSA YAML Changes --- _apidocs/exclusions-api/v1/openapi.yaml | 288 ++++++++++++++++++++++++ 1 file changed, 288 insertions(+) diff --git a/_apidocs/exclusions-api/v1/openapi.yaml b/_apidocs/exclusions-api/v1/openapi.yaml index 7997b8065..4579a51c5 100644 --- a/_apidocs/exclusions-api/v1/openapi.yaml +++ b/_apidocs/exclusions-api/v1/openapi.yaml @@ -842,4 +842,292 @@ paths: description: The resource you were trying to reach is not found content: {} deprecated: false + /entity-information/v4/download-exclusions: + get: + tags: + - exclusions-api-controller-v-4 + summary: ' download V4 exclusion extract file' + operationId: getFileFromS3UsingGET + requestBody: + description: token to download specific file + content: + '*/*': + schema: + type: string + required: false + responses: + 200: + description: Successfully downloaded file + content: + application/hal+json: + 401: + description: You are not authorized to view the resource + content: {} + 403: + description: Accessing the resource you were trying to reach is forbidden + content: {} + 404: + description: The resource you were trying to reach is not found + content: {} + deprecated: false + x-codegen-request-body-name: token + /entity-information/v4/exclusions: + get: + tags: + - exclusions-api-controller-v-4 + summary: ' get Exclusions Details' + operationId: getExclusionsDataUsingGET_2 + parameters: + - name: activationDate + in: query + description: A single Date or Date range in the format MM/DD/YYYY + schema: + type: string + - name: activationDateFrom + in: query + schema: + type: string + - name: activationDateTo + in: query + schema: + type: string + - name: addressLine1 + in: query + description: A String (1234 test Dr) + schema: + type: string + - name: addressLine2 + in: query + description: A String (1234 test Dr) + schema: + type: string + - name: cageCode + in: query + description: A String (0Y5L9, null) + schema: + type: string + - name: city + in: query + schema: + type: string + - name: cityState + in: query + schema: + type: string + - name: cityStateZipCongFlag + in: query + schema: + type: boolean + - name: classification + in: query + description: A String (Individual, Firm, Vessel, Special Entity Designation, + null) + schema: + type: string + - name: country + in: query + description: A String (USA, CAN, ARE, null) + schema: + type: string + - name: createDateFrom + in: query + schema: + type: string + - name: createDateTo + in: query + schema: + type: string + - name: creationDate + in: query + description: A single Date or Date range in the format MM/DD/YYYY + schema: + type: string + - name: ctCode + in: query + description: A String (A, ZZ, XXX, 03-SDNTK-01, null) + schema: + type: string + - name: emailId + in: query + description: Email ID + schema: + type: string + - name: exactMatch + in: query + schema: + type: boolean + - name: excludedPartyName + in: query + schema: + type: string + - name: excludingAgencyCode + in: query + description: A String (AF, DOJ, FEMA-IOD, null) + schema: + type: string + - name: excludingAgencyName + in: query + description: A String (FEDERAL, FEDERAL EMERGENCY MANAGEMENT AGENCY, null) + schema: + type: string + - name: exclusionName + in: query + description: A partial text or a complete text + schema: + type: string + - name: exclusionProgram + in: query + description: A String (Reciprocal, Non-Procurement, Procurement) + schema: + type: string + - name: exclusionType + in: query + description: A String (Ineligible (Proceedings Pending), Ineligible (Proceedings + Completed), Prohibition/Restriction, Voluntary Exclusion) + schema: + type: string + - name: format + in: query + description: Parameter used to download csv or json files + schema: + type: string + - name: includeSections + in: query + description: Schema Filtering Paramter + schema: + type: string + - name: isActive + in: query + description: A String (Y, N) + schema: + type: string + - name: isDisasterResponseParticipant + in: query + schema: + type: string + - name: legalBusinessName + in: query + schema: + type: string + - name: naicsCode + in: query + schema: + type: string + - name: npi + in: query + description: A String (1053373266, null) + schema: + type: string + - name: organizationId + in: query + schema: + type: string + - name: page + in: query + description: Page number + schema: + type: string + - name: pscCode + in: query + schema: + type: string + - name: q + in: query + description: Free text, All the above filters and their acceptable values + can be used + schema: + type: string + - name: qMode + in: query + schema: + type: string + - name: recordStatus + in: query + description: Record Status (Active, Inactive) + schema: + type: string + - name: registrationStatus + in: query + schema: + type: string + - name: size + in: query + description: Record size per page + schema: + type: string + - name: sort + in: query + schema: + type: string + - name: sortOrder + in: query + schema: + type: string + enum: + - asc + - desc + - name: ssnOrTinOrEin + in: query + description: 9 digit number or null (XXXXXXXXX, null) + schema: + type: string + - name: stateProvince + in: query + description: A String (NC, XX, null, 470105, YAMALO-NENETSKI OKR.) + schema: + type: string + - name: terminationDate + in: query + description: A single Date or Date range in the format MM/DD/YYYY + schema: + type: string + - name: terminationDateFrom + in: query + schema: + type: string + - name: terminationDateTo + in: query + schema: + type: string + - name: title + in: query + schema: + type: string + - name: ueiSAM + in: query + description: Unique Entity Identifier SAM- 12 digit value - Replacement + for ueiSAM + schema: + type: string + - name: updateDate + in: query + description: A single Date or Date range in the format MM/DD/YYYY + schema: + type: string + - name: zipCode + in: query + description: A String (0, 41722, 21453935, 752435120, 75602-1112, null, C.P. + 44890, oo957, TQ13 9SE, Zimbabwe, P.O. Box Beirut-Hamra) + schema: + type: string + - name: fascsaOrder + in: query + description: This field is used to filter out FASCSAOrders it accepts Yes or No and is case-insensitive. + schema: + type: string + responses: + 200: + description: Successfully retrieved list + content: + application/hal+json: + 401: + description: You are not authorized to view the resource + content: {} + 403: + description: Accessing the resource you were trying to reach is forbidden + content: {} + 404: + description: The resource you were trying to reach is not found + content: {} + deprecated: false components: {} From f1ce23236ffbc4e85ab0b057fd155e4d033a26c0 Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Mon, 20 Nov 2023 09:36:58 -0600 Subject: [PATCH 03/19] FASCSA Changes --- _apidocs/exclusions-api.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_apidocs/exclusions-api.md b/_apidocs/exclusions-api.md index f0c0b4e25..028978549 100644 --- a/_apidocs/exclusions-api.md +++ b/_apidocs/exclusions-api.md @@ -33,8 +33,8 @@ Exclusions API can be accessed from Production or Alpha via the following versio * Alpha Version 1: https://api-alpha.sam.gov/entity-information/v1/exclusions?api_key=< value > * Alpha Version 2: https://api-alpha.sam.gov/entity-information/v2/exclusions?api_key=< value > * Alpha Version 3: https://api-alpha.sam.gov/entity-information/v3/exclusions?api_key=< value >

    -* COMING SOON A new version 4 of the Exclusions API is coming soon:
    -        * Production Version 4: https://api.sam.gov/entity-information/v4/exclusions?api_key=< value >
    +* COMING SOON A new version 4 of the Exclusions API is coming soon:
    +        * Production Version 4: https://api.sam.gov/entity-information/v4/exclusions?api_key=< value >
            * Alpha Version 4: https://api-alpha.sam.gov/entity-information/v4/exclusions?api_key=< value > From da9ab3ea98086ceea94719ba393827e101c9b14f Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Mon, 20 Nov 2023 09:38:42 -0600 Subject: [PATCH 04/19] FASCSA Changes --- _apidocs/exclusions-api.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_apidocs/exclusions-api.md b/_apidocs/exclusions-api.md index 028978549..8c1e88b04 100644 --- a/_apidocs/exclusions-api.md +++ b/_apidocs/exclusions-api.md @@ -34,8 +34,8 @@ Exclusions API can be accessed from Production or Alpha via the following versio * Alpha Version 2: https://api-alpha.sam.gov/entity-information/v2/exclusions?api_key=< value > * Alpha Version 3: https://api-alpha.sam.gov/entity-information/v3/exclusions?api_key=< value >

    * COMING SOON A new version 4 of the Exclusions API is coming soon:
    -        * Production Version 4: https://api.sam.gov/entity-information/v4/exclusions?api_key=< value >
    -        * Alpha Version 4: https://api-alpha.sam.gov/entity-information/v4/exclusions?api_key=< value > +      * Production Version 4: https://api.sam.gov/entity-information/v4/exclusions?api_key=< value >
    +      * Alpha Version 4: https://api-alpha.sam.gov/entity-information/v4/exclusions?api_key=< value > Generating a personal API Key: From f041bf08c216dc70543c49280340564b9a058cee Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Mon, 20 Nov 2023 09:40:56 -0600 Subject: [PATCH 05/19] FASCSA Changes --- _apidocs/exclusions-api.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/_apidocs/exclusions-api.md b/_apidocs/exclusions-api.md index 8c1e88b04..557a55b14 100644 --- a/_apidocs/exclusions-api.md +++ b/_apidocs/exclusions-api.md @@ -32,11 +32,10 @@ Exclusions API can be accessed from Production or Alpha via the following versio * Production Version 3: https://api.sam.gov/entity-information/v3/exclusions?api_key=< value > * Alpha Version 1: https://api-alpha.sam.gov/entity-information/v1/exclusions?api_key=< value > * Alpha Version 2: https://api-alpha.sam.gov/entity-information/v2/exclusions?api_key=< value > -* Alpha Version 3: https://api-alpha.sam.gov/entity-information/v3/exclusions?api_key=< value >

    +* Alpha Version 3: https://api-alpha.sam.gov/entity-information/v3/exclusions?api_key=< value > * COMING SOON A new version 4 of the Exclusions API is coming soon:
    -      * Production Version 4: https://api.sam.gov/entity-information/v4/exclusions?api_key=< value >
    -      * Alpha Version 4: https://api-alpha.sam.gov/entity-information/v4/exclusions?api_key=< value > - +    * Production Version 4: https://api.sam.gov/entity-information/v4/exclusions?api_key=< value >
    +    * Alpha Version 4: https://api-alpha.sam.gov/entity-information/v4/exclusions?api_key=< value >

    Generating a personal API Key: * Registered users can request for a public API on 'Account Details' page. This page can be accessed here: Account Details page on sam.gov From 659ff6789032726d8d282d1418c9e969b66025cb Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Wed, 22 Nov 2023 09:35:30 -0600 Subject: [PATCH 06/19] FASCSA Changes --- _apidocs/sam-entity-extracts-api.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_apidocs/sam-entity-extracts-api.md b/_apidocs/sam-entity-extracts-api.md index a0d0dc3e9..31d86b039 100644 --- a/_apidocs/sam-entity-extracts-api.md +++ b/_apidocs/sam-entity-extracts-api.md @@ -107,7 +107,7 @@ E.g.: The file generated on 04/05/2022 will show 2022095.
    • FASCSAOrdersYYDDD.CSV (YYDDD is the Julian Date)
    - E.g.: The file for 10/04/2023 would be FASCSAOrders232777.CSV. + E.g.: The file for 10/04/2023 would be FASCSAOrders23277.CSV. @@ -254,7 +254,7 @@ Curl request with username and password: curl -X POST "https://api.sam.gov/data- This parameter must be used on its own. It allows users to provide the extract file name.
    Examples: fileName=SAM_PUBLIC_MONTHLY_V2_20220406.ZIP;
    fileName= SAM_Exclusions_Public_Extract_V2_22096.ZIP;
    -COMING SOON - fileName= FASCSAOrders232777.CSV +COMING SOON - fileName= FASCSAOrders23277.CSV From 093bcd3b8b92f06a3df9f165445e21c37a8a2916 Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Tue, 28 Nov 2023 21:59:52 -0600 Subject: [PATCH 07/19] FASCSA Changes --- _apidocs/exclusions-api.md | 75 +++++++++--------- _apidocs/sam-entity-extracts-api.md | 14 ++-- ...Public_FASCSA_Orders_Extract_Layout_V2.pdf | Bin 0 -> 112709 bytes .../v1/sample-files/FASCSAOrders23306.csv | 7 ++ 4 files changed, 51 insertions(+), 45 deletions(-) create mode 100644 _apidocs/sam-entity-extracts-api/v1/SAM_Exclusions_Public_FASCSA_Orders_Extract_Layout_V2.pdf create mode 100644 _apidocs/sam-entity-extracts-api/v1/sample-files/FASCSAOrders23306.csv diff --git a/_apidocs/exclusions-api.md b/_apidocs/exclusions-api.md index 557a55b14..a8c1cb727 100644 --- a/_apidocs/exclusions-api.md +++ b/_apidocs/exclusions-api.md @@ -30,12 +30,11 @@ Exclusions API can be accessed from Production or Alpha via the following versio * Production Version 1: https://api.sam.gov/entity-information/v1/exclusions?api_key=< value > * Production Version 2: https://api.sam.gov/entity-information/v2/exclusions?api_key=< value > * Production Version 3: https://api.sam.gov/entity-information/v3/exclusions?api_key=< value > +* Production Version 4: https://api.sam.gov/entity-information/v4/exclusions?api_key=< value > * Alpha Version 1: https://api-alpha.sam.gov/entity-information/v1/exclusions?api_key=< value > * Alpha Version 2: https://api-alpha.sam.gov/entity-information/v2/exclusions?api_key=< value > * Alpha Version 3: https://api-alpha.sam.gov/entity-information/v3/exclusions?api_key=< value > -* COMING SOON A new version 4 of the Exclusions API is coming soon:
    -    * Production Version 4: https://api.sam.gov/entity-information/v4/exclusions?api_key=< value >
    -    * Alpha Version 4: https://api-alpha.sam.gov/entity-information/v4/exclusions?api_key=< value >

    +* Alpha Version 4: https://api-alpha.sam.gov/entity-information/v4/exclusions?api_key=< value >

    Generating a personal API Key: * Registered users can request for a public API on 'Account Details' page. This page can be accessed here: Account Details page on sam.gov @@ -101,35 +100,35 @@ Utilizing the Exclusion API as an extract: **Query String Parameters** -| Parameter Name | Description | Applicable Versions | -|-----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------| -| classification | Allows a partial text or a complete text (Individual, Firm, Vessel, Special Entity Designation).

    This parameter can be used inside the 'q' parameter.

    Example: 'classification=Firm', 'classification=!INDIVIDUAL', 'classification=[Vessel~Special]', 'q=((classification:Vessel) OR (classification:Special))' | v1
    v2
    v3 | -| exclusionName | Allows a partial text or a complete text.

    This parameter must not be used inside the 'q' parameter.

    This parameter accepts multi-text values in any order and in any case, and will apply the AND operator between the texts.

    Examples: 'exclusionName=J Roy', 'exclusionName=ROY j' | v1
    v2
    v3 | -| exclusionType | Allows a partial text or a complete text (a string).

    Allowable values are: Ineligible (Proceedings Pending), Ineligible (Proceedings Completed), Prohibition/Restriction and Voluntary Exclusion.

    This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case.

    Examples: 'q=exclusionType:Ineligible (Proceedings Pending)', 'exclusionType=Ineligible PENDING', 'exclusionType=[Pending~Voluntary]' | v1
    v2
    v3 | -| exclusionProgram | Allows a complete text (a string).

    Allowable values are: Reciprocal, NonProcurement and Procurement.

    This parameter can be used inside the 'q' parameter.

    Examples: 'q=((exclusionProgram:Reciprocal) OR (exclusionProgram:Procurement))', 'exclusionProgram=[NonProcurement~RECIPROCAL]', 'exclusionProgram=!NonProcurement' | v1
    v2
    v3 | -| addressLine1 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

    This parameter must not be used inside the 'q' parameter.

    Examples: 'addressLine1=""', 'addressLine1="7th Floor, Buraengdang Building 530-14"'

    NOTE: If addressLine1 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v1
    v2
    v3 | -| addressLine2 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

    This parameter must not be used inside the 'q' parameter.

    Examples: 'addressLine2=""', 'addressLine2="Dapsipri, 5 Dong, Dongdaemun-K"'

    NOTE: If addressLine2 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v1
    v2
    v3 | -| stateProvince | Allows 2-character codes for the USA, names for foreign countries and null (a string).

    Examples: 'stateProvince=AR', 'stateProvince=[VA~MICHOACÁN]', 'stateProvince=""' | v1
    v2
    v3 | -| country | Allows 3-character codes, numerical values and null (a string).

    Examples: 'country=USA' 'country=[RUS~292~mex]', 'country=!""', 'q=((country:RUS) OR (country:292) OR (country:mex))' | v1
    v2
    v3 | -| zipCode | Allows 5-digit values for the USA, any value as it was provided for foreign countries and null (a string).

    Example: 'zipCode=20171', 'zipCode=[901-2132~V3M 5P8~C.P. 44890]', 'zipCode=""', 'q=((zipCode:901-2132) OR (zipCode:20147))' | v1
    v2
    v3 | -| ueiSAM | Denotes Unique Entity Identifier SAM.

    Allows 12-character values, null and also wildcard searches.

    Examples: 'ueiSAM=""', 'ueiSAM=!""', 'ueiSAM=P*X*1', 'q=((ueiSAM:PMC9YQMXJZU1) OR (ueiSAM:PG4XZ77WRC21))' | v1
    v2
    v3 | -| excludingAgencyCode | Allows a partial text, a complete text and null (a string).

    Examples: 'excludingAgencyCode=ICE', 'excludingAgencyCode=DHS-ICE', 'excludingAgencyCode=[AF~HUD~""]', 'q=((excludingAgencyCode:AF) OR (excludingAgencyCode:HUD))' | v1
    v2
    v3 | -| excludingAgencyName | Allows a partial text, a complete text and null (a string).

    This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case

    Examples: 'excludingAgencyName=Of URBAN housing', 'excludingAgencyName=[Geological~Navy]', q=((excludingAgencyName:Geological) OR (excludingAgencyName:Navy)) | v1
    v2
    v3 | -| ctCode | Allows a complete text, null and also wild card searches (a string).

    Examples: 'ctCode=*SDN*', 'ctCode=[AA~""], 'q=((ctCode:AA) OR (ctCode:03-SDN-01))' | v1
    v2
    v3 | -| activationDate | Allows a single Date or Date range.
    Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

    Examples: 'activationDate=01/01/2019', 'activationDate=[01/01/2019,05/29/2019]' | v1
    v2
    v3 | -| creationDate | Allows a single Date or Date range.
    Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

    Examples: 'creationDate=01/01/2019', 'creationDate=[01/01/2019,05/29/2019]' | v1
    v2
    v3 | -| updateDate | Allows a single Date or Date range.
    Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

    Examples: 'updateDate=01/01/2019', 'updateDate=[01/01/2019,05/29/2019]'' | v1
    v2
    v3 | -| terminationDate | Allows a single Date or Date range.
    Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

    Examples: 'terminationDate=01/01/2019', 'terminationDate=[01/01/2019,05/29/2019]' | v1
    v2
    v3 | -| cageCode | Allows a complete value, null and also wild card searches (a string).

    Examples: 'cageCode=0*0', 'cageCode=[0XLE0~1CM51~""]', 'q=((cageCode:0XLE0) OR (cageCode:1CM51))' | v1
    v2
    v3 | -| npi | Allows 1234567890 (this is masked data) and null (a string).

    Examples: 'npi=1234567890', 'npi=""', 'npi=!""' | v1
    v2
    v3 | -| recordStatus | The API returns only Active records.

    Allows a complete text (a string).

    Allowable value is: Active, active

    Example: 'recordStatus=active' | v1
    v2
    v3 | -| page | Denotes a page number.

    Allowable values are 0 to 999.

    Example: 'page=0' | v1
    v2
    v3 | -| size | Denotes the number of records returned per page.

    Allowable values are 1 to 10.

    Example: 'size=1' | v1
    v2
    v3 | -| includeSections | Allows to filter data by sections, exclusionDetails, exclusionIdentification, exclusionActions, exclusionAddress, exclusionOtherInformation and vesselDetails.

    Example: 'includeSections=exclusionOtherInformation,exclusionDetails' | v1
    v2
    v3 | -| format | Allows user to download different file formats(csv and json are allowable values) .

    Example: 'format=csv' | v1
    v2
    v3 | -| emailId | Allows user to get file download links sent to the email address associated to the API key used in the request. Email ID must be provided in conjunction with the format parameter.
    Example: emailId= Yes
    Applicable to non-SAM registrants. | v1
    v2
    v3 | -| ssnOrTinOrEin | Allows a 9-digit value or null.

    This parameter must not be used inside the 'q' parameter.

    This parameter must be used in conjunction with the exclusionName parameter.

    Example: 'ssnOrTinOrEin=123456789' | v1
    v2
    v3 | -| COMING SOON
    ----
    fascsaOrder | Allows Yes and No.

    This parameter accepts either value, in any case.

    Examples: fascsaOrder=Yes, fascsaOrder=yes, fascsaOrder=No, fascsaOrder=no | v4 | +| Parameter Name | Description | Applicable Versions | +|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------| +| classification | Allows a partial text or a complete text (Individual, Firm, Vessel, Special Entity Designation).

    This parameter can be used inside the 'q' parameter.

    Example: 'classification=Firm', 'classification=!INDIVIDUAL', 'classification=[Vessel~Special]', 'q=((classification:Vessel) OR (classification:Special))' | v1
    v2
    v3 | +| exclusionName | Allows a partial text or a complete text.

    This parameter must not be used inside the 'q' parameter.

    This parameter accepts multi-text values in any order and in any case, and will apply the AND operator between the texts.

    Examples: 'exclusionName=J Roy', 'exclusionName=ROY j' | v1
    v2
    v3 | +| exclusionType | Allows a partial text or a complete text (a string).

    Allowable values are: Ineligible (Proceedings Pending), Ineligible (Proceedings Completed), Prohibition/Restriction and Voluntary Exclusion.

    This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case.

    Examples: 'q=exclusionType:Ineligible (Proceedings Pending)', 'exclusionType=Ineligible PENDING', 'exclusionType=[Pending~Voluntary]' | v1
    v2
    v3 | +| exclusionProgram | Allows a complete text (a string).

    Allowable values are: Reciprocal, NonProcurement and Procurement.

    This parameter can be used inside the 'q' parameter.

    Examples: 'q=((exclusionProgram:Reciprocal) OR (exclusionProgram:Procurement))', 'exclusionProgram=[NonProcurement~RECIPROCAL]', 'exclusionProgram=!NonProcurement' | v1
    v2
    v3 | +| addressLine1 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

    This parameter must not be used inside the 'q' parameter.

    Examples: 'addressLine1=""', 'addressLine1="7th Floor, Buraengdang Building 530-14"'

    NOTE: If addressLine1 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v1
    v2
    v3 | +| addressLine2 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

    This parameter must not be used inside the 'q' parameter.

    Examples: 'addressLine2=""', 'addressLine2="Dapsipri, 5 Dong, Dongdaemun-K"'

    NOTE: If addressLine2 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v1
    v2
    v3 | +| stateProvince | Allows 2-character codes for the USA, names for foreign countries and null (a string).

    Examples: 'stateProvince=AR', 'stateProvince=[VA~MICHOACÁN]', 'stateProvince=""' | v1
    v2
    v3 | +| country | Allows 3-character codes, numerical values and null (a string).

    Examples: 'country=USA' 'country=[RUS~292~mex]', 'country=!""', 'q=((country:RUS) OR (country:292) OR (country:mex))' | v1
    v2
    v3 | +| zipCode | Allows 5-digit values for the USA, any value as it was provided for foreign countries and null (a string).

    Example: 'zipCode=20171', 'zipCode=[901-2132~V3M 5P8~C.P. 44890]', 'zipCode=""', 'q=((zipCode:901-2132) OR (zipCode:20147))' | v1
    v2
    v3 | +| ueiSAM | Denotes Unique Entity Identifier SAM.

    Allows 12-character values, null and also wildcard searches.

    Examples: 'ueiSAM=""', 'ueiSAM=!""', 'ueiSAM=P*X*1', 'q=((ueiSAM:PMC9YQMXJZU1) OR (ueiSAM:PG4XZ77WRC21))' | v1
    v2
    v3 | +| excludingAgencyCode | Allows a partial text, a complete text and null (a string).

    Examples: 'excludingAgencyCode=ICE', 'excludingAgencyCode=DHS-ICE', 'excludingAgencyCode=[AF~HUD~""]', 'q=((excludingAgencyCode:AF) OR (excludingAgencyCode:HUD))' | v1
    v2
    v3 | +| excludingAgencyName | Allows a partial text, a complete text and null (a string).

    This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case

    Examples: 'excludingAgencyName=Of URBAN housing', 'excludingAgencyName=[Geological~Navy]', q=((excludingAgencyName:Geological) OR (excludingAgencyName:Navy)) | v1
    v2
    v3 | +| ctCode | Allows a complete text, null and also wild card searches (a string).

    Examples: 'ctCode=*SDN*', 'ctCode=[AA~""], 'q=((ctCode:AA) OR (ctCode:03-SDN-01))' | v1
    v2
    v3 | +| activationDate | Allows a single Date or Date range.
    Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

    Examples: 'activationDate=01/01/2019', 'activationDate=[01/01/2019,05/29/2019]' | v1
    v2
    v3 | +| creationDate | Allows a single Date or Date range.
    Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

    Examples: 'creationDate=01/01/2019', 'creationDate=[01/01/2019,05/29/2019]' | v1
    v2
    v3 | +| updateDate | Allows a single Date or Date range.
    Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

    Examples: 'updateDate=01/01/2019', 'updateDate=[01/01/2019,05/29/2019]'' | v1
    v2
    v3 | +| terminationDate | Allows a single Date or Date range.
    Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

    Examples: 'terminationDate=01/01/2019', 'terminationDate=[01/01/2019,05/29/2019]' | v1
    v2
    v3 | +| cageCode | Allows a complete value, null and also wild card searches (a string).

    Examples: 'cageCode=0*0', 'cageCode=[0XLE0~1CM51~""]', 'q=((cageCode:0XLE0) OR (cageCode:1CM51))' | v1
    v2
    v3 | +| npi | Allows 1234567890 (this is masked data) and null (a string).

    Examples: 'npi=1234567890', 'npi=""', 'npi=!""' | v1
    v2
    v3 | +| recordStatus | The API returns only Active records.

    Allows a complete text (a string).

    Allowable value is: Active, active

    Example: 'recordStatus=active' | v1
    v2
    v3 | +| page | Denotes a page number.

    Allowable values are 0 to 999.

    Example: 'page=0' | v1
    v2
    v3 | +| size | Denotes the number of records returned per page.

    Allowable values are 1 to 10.

    Example: 'size=1' | v1
    v2
    v3 | +| includeSections | Allows to filter data by sections, exclusionDetails, exclusionIdentification, exclusionActions, exclusionAddress, exclusionOtherInformation and vesselDetails.

    Example: 'includeSections=exclusionOtherInformation,exclusionDetails' | v1
    v2
    v3 | +| format | Allows user to download different file formats(csv and json are allowable values) .

    Example: 'format=csv' | v1
    v2
    v3 | +| emailId | Allows user to get file download links sent to the email address associated to the API key used in the request. Email ID must be provided in conjunction with the format parameter.
    Example: emailId= Yes
    Applicable to non-SAM registrants. | v1
    v2
    v3 | +| ssnOrTinOrEin | Allows a 9-digit value or null.

    This parameter must not be used inside the 'q' parameter.

    This parameter must be used in conjunction with the exclusionName parameter.

    Example: 'ssnOrTinOrEin=123456789' | v1
    v2
    v3 | +| fascsaOrder | Allows Yes and No.

    This parameter accepts either value, in any case.

    Examples: fascsaOrder=Yes, fascsaOrder=yes, fascsaOrder=No, fascsaOrder=no | v4 | **Expected Result** @@ -178,7 +177,7 @@ API response consists of Sections, Sub-sections and Tags underneath each of the | zipCodePlus4 | string | Address Zip Plus 4 | v2
    v3 | | countryCode | string | Country Code | v2
    v3 | | **exclusionOtherInformation** | -| COMING SOON
    ----
    isFASCSAOrder | string | FASCSA Order Exclusion Indicator | v4 | +| isFASCSAOrder | string | FASCSA Order Exclusion Indicator | v4 | | additionalComments | string | Additional Comments | v1
    v2
    v3 | | ctCode | string | CT Code | v1
    v2
    v3 | | dnbInvestigationStatus/evsInvestigationStatus | string | EVS Investigation Status

    NOTE: This parameter is being renamed. dnbInvestigationStatus is in V1 and evsInvestigationStatus will be V2. | v1
    v2
    v3 | @@ -270,10 +269,10 @@ The API will return one of the following responses:
    Request URL v2 Production URL: https://api.sam.gov/entity-information/v2/exclusions?api_key=< PUBLIC API Key >&classification=Firm&stateProvince=VA
    -v3 Production URL: COMING SOON
    +v3 Production URL: https://api.sam.gov/entity-information/v3/exclusions?api_key=< PUBLIC API Key >&classification=Firm&stateProvince=VA

    v2 Alpha URL: https://api-alpha.sam.gov/entity-information/v2/exclusions?api_key=< PUBLIC API Key >&classification=Firm&stateProvince=VA
    -v3 Alpha URL: COMING SOON
    +v3 Alpha URL: https://api-alpha.sam.gov/entity-information/v3/exclusions?api_key=< PUBLIC API Key >&classification=Firm&stateProvince=VA

    @@ -487,10 +486,10 @@ v2 Response:
    Request URL v2 Production URL: https://api.sam.gov/entity-information/v2/exclusions?api_key=< PUBLIC API Key >&classification=Firm&format=CSV
    -v3 Production URL: COMING SOON
    +v3 Production URL: https://api.sam.gov/entity-information/v3/exclusions?api_key=< PUBLIC API Key >&classification=Firm&format=CSV


    v2 Alpha URL: https://api-alpha.sam.gov/entity-information/v2/exclusions?api_key=< PUBLIC API Key >&classification=Firm&format=CSV
    -v3 Alpha URL: COMING SOON
    +v3 Alpha URL: https://api-alpha.sam.gov/entity-information/v3/exclusions?api_key=< PUBLIC API Key >&classification=Firm&format=CSV

    @@ -921,6 +920,6 @@ Date | Version | Description 10/21/2021 | v2.8 | * Updated Examples - Added Example 1 and Example 2 to indicate the post April 3rd, 2022 behavior.

    * Added notes in the Query String Parameters, Expected Result and HTTP Response Codes sections to highlight the until and after April 3rd, 2022 behavior. 02/01/2022 | v2.9 | * Added exclusions V3 endpoint information to the Getting Started section.

    * Updated the Query String Parameters and Expected Results sections to reflect available parameters and response fields in V3.

    * Updated the Example 1 and Example 2 to indicate the V3 behavior.

    * Updated the section, "HTTP Response Codes" to indicate the v3 behavior.

    * Update the OpenAPI Specification File to include the V3 endpoints. 04/04/2022 | v3.0 | * Provided the v3 end point for Production.

    * Removed ueiDUNS occurrences from the sections, Query String Parameters, Expected Result, HTTP Response Codes and Examples. -11/14/2022 | v3.1 | * Added "COMING SOON" sections throughout page for an upcoming change to Exclusions API, enabling the search and response for FASCSA Order Exclusion records. +11/14/2022 | v3.1 | * A new V4 Exclusions API has been created, enabling the search and response for FASCSA Order Exclusion records. As part of this change, below are the associated changes made to this OpenGSA page:

    * Added exclusions V4 endpoint information to the Getting Started section.

    * Updated the Query String Parameters and Expected Results sections to reflect available parameters and response fields in V4.

    * Moved the existing Example 5 to Example 6; inserted a new Example 5 to indicate V4 behavior.

    * Updated the section, “HTTP Response Codes” to indicate the v4 behavior.

    * Update the OpenAPI Specification File to include the V4 endpoints.

    Back to top

    diff --git a/_apidocs/sam-entity-extracts-api.md b/_apidocs/sam-entity-extracts-api.md index 31d86b039..92526c2ca 100644 --- a/_apidocs/sam-entity-extracts-api.md +++ b/_apidocs/sam-entity-extracts-api.md @@ -95,7 +95,7 @@ E.g.: The file generated on 04/05/2022 will show 2022095. -COMING SOON
    ------
    Daily FASCSA Exclusion Extracts
    +Daily FASCSA Exclusion Extracts
    • They are produced every day. Kindly check after 7 AM Eastern time.
    • @@ -254,7 +254,7 @@ Curl request with username and password: curl -X POST "https://api.sam.gov/data- This parameter must be used on its own. It allows users to provide the extract file name.
      Examples: fileName=SAM_PUBLIC_MONTHLY_V2_20220406.ZIP;
      fileName= SAM_Exclusions_Public_Extract_V2_22096.ZIP;
      -COMING SOON - fileName= FASCSAOrders23277.CSV +fileName= FASCSAOrders23277.CSV
      @@ -333,7 +333,7 @@ Permitted values: V2 for the Public, FOUO and Exclusion extracts; V3 for the Sen
    • FASCSA Exclusions Public extract layout with the UEI data:
      -FASCSA Exclusions Extract Layout
      +FASCSA Exclusions Extract Layout
    @@ -370,7 +370,7 @@ Permitted values: V2 for the Public, FOUO and Exclusion extracts; V3 for the Sen
  • SAM_Exclusions_Public_Extract_V2_22097.ZIP
  • -
  • COMING SOON - FASCSA Exclusions files:
  • +
  • FASCSA Exclusions files:
    • FASCSAOrders23306.CSV
    • FASCSAOrders23305.CSV
    • @@ -398,7 +398,7 @@ Permitted values: V2 for the Public, FOUO and Exclusion extracts; V3 for the Sen
    • https://api.sam.gov/data-services/v1/extracts?fileType=ENTITY&sensitivity=SENSITIVE&frequency=MONTHLY&date=04/2022&charset=UTF8
    • https://api.sam.gov/data-services/v1/extracts?api_key={API KEY}&fileName=SAM_Exclusions_Public_Extract_V2_22097.ZIP
    • https://api.sam.gov/data-services/v1/extracts?api_key={API KEY}&fileType=EXCLUSION&date=04/07/2022
    • -
    • COMING SOON - https://api.sam.gov/data-services/v1/extracts?api_key={API KEY}&fileName=FASCSAOrders23306.CSV
    • +
    • https://api.sam.gov/data-services/v1/extracts?api_key={API KEY}&fileName=FASCSAOrders23306.CSV
    @@ -418,7 +418,7 @@ Extract files with UEI Information: * Click to view FOUO Monthly V2 Extract File * Click to view Sensitive Monthly V3 Extract File * Click to view Exclusions Public V2 Extract File
    -* Click to view FASCSA Order Exclusions Public V2 Extract File
    +* Click to view FASCSA Order Exclusions Public V2 Extract File

    Back to top

    @@ -510,6 +510,6 @@ Date | Version | Description 03/13/2023 | v3.2 | * Deleted the MPIN row from the "SAM Master Extract Mapping" file.

    * Updated row # 288 (which used to track MPIN) in the "Sensitive Extract Layout" file to indicate that the field is deprecated.

    * Removed the MPIN value from the sample "Sensitive Monthly V3 Extract File".

    06/27/2023 | v3.3 | * Updated "Effective April 2022" to "Effective June 2023".

    * Updated the "June 2023 release: SAM Master Extract Mapping" STRING Clarification tab to include the following updates:
     1. NAICS Exception String table updated to reflect January 2023
     changes
     2. SBA Business Types String table updated to include new value:
     "A4- SBA Certified Small Disadvantaged Business"

    09/11/2023 | v3.4 | * Removed "SAM Master Extract Mapping document".

    -11/14/2023 | v3.5 | * Added "COMING SOON" sections throughout page for an upcoming change to Extracts Download API enabling the download of FASCSA Order Exclusions Public Extract.

    +12/01/2023 | v3.5 | * A new FASCSA Order Exclusions Extract has been created, and the V1 Extracts Download API is now enabled to download this extract. As part of this change, below are the associated changes made to this OpenGSA page:

    * Updated the Query String Parameters section to reflect an example FASCSA extract file name.

    * Updated the Extract Mapping Document and Layouts section with a new FASCSA Exclusions extract layout document.

    * Updated the Sample Extract File Names with sample FASCSA Exclusions File Names.

    * Updated the Extract Download API Sample Requests section with a sample request for a FASCSA extract.

    * Updated the OpenAPI Specification File to include reference to the new FASCSA extract.

    * Updated the Sample Extract Files section with a new FASCSA Order Exclusions Public extract file.

    Back to top

    diff --git a/_apidocs/sam-entity-extracts-api/v1/SAM_Exclusions_Public_FASCSA_Orders_Extract_Layout_V2.pdf b/_apidocs/sam-entity-extracts-api/v1/SAM_Exclusions_Public_FASCSA_Orders_Extract_Layout_V2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4d4b9e99e1e9a566e906418d94f5855fde168aae GIT binary patch literal 112709 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 literal 0 HcmV?d00001 diff --git a/_apidocs/sam-entity-extracts-api/v1/sample-files/FASCSAOrders23306.csv b/_apidocs/sam-entity-extracts-api/v1/sample-files/FASCSAOrders23306.csv new file mode 100644 index 000000000..ab3104cf6 --- /dev/null +++ b/_apidocs/sam-entity-extracts-api/v1/sample-files/FASCSAOrders23306.csv @@ -0,0 +1,7 @@ +Classification,Name,Prefix,First,Middle,Last,Suffix,Address 1,Address 2,City,State / Province,Country,Zip Code,Unique Entity ID,CAGE,Excluding Agency,Additional Comments,Active Date,Termination Date,Creation Date,Update Date,Exclusion Type,FASCSA Order Flag +Individual,,,SAM,A,SMITH,,,,CC,DC,USA,20008,,,,,3/2/2000,Indefinite,10/30/2023,10/30/2023,Ineligible (Proceedings Completed),Y +Individual,,,TEST,,TEST,,,,WASHINGTON,DC,USA,,,,,,10/30/2023,Indefinite,10/30/2023,10/30/2023,Prohibition/Restriction,Y +Special Entity Designation,ALPHA SED TEST 032522 1,,,,,,1 FIRST ST,,CUMBERLAND,MD,USA,21532,XKL8N41334B1,,,,2/2/2002,Indefinite,3/25/2022,10/30/2023,Ineligible (Proceedings Pending),Y +Special Entity Designation,APPLE CO,,,,,,CC,,CC,DC,USA,20008,SDYRXUJT7XA5,,,"This is an exclusion record with type of ""Prohibition/Restriction"".",3/2/2000,Indefinite,10/30/2023,10/30/2023,Prohibition/Restriction,Y +Firm,FOXTROT RESEARCH CORP,,,,,,,,,FL,USA,,J27QHBBBL1V3,,AF,,10/30/2023,Indefinite,10/31/2023,10/31/2023,Prohibition/Restriction,Y +Vessel,SHIPCC,,,,,,CC,,CC,DC,USA,20008,,,,This is a voluntary exclusion.,3/2/2000,Indefinite,10/30/2023,10/30/2023,Voluntary Exclusion,Y From 20bf6f75f154ca9d09dd40eaa045a96d1d5c80cd Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Tue, 28 Nov 2023 22:13:36 -0600 Subject: [PATCH 08/19] FASCSA Changes --- _apidocs/exclusions-api.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/_apidocs/exclusions-api.md b/_apidocs/exclusions-api.md index a8c1cb727..9d27f461f 100644 --- a/_apidocs/exclusions-api.md +++ b/_apidocs/exclusions-api.md @@ -246,15 +246,18 @@ The API will return one of the following responses: 400 - Application Level Error Messages:

    1. Invalid "Date" format:
    v1 or v2: Date should be specified in the format: MM/dd/YYYY.
    v3: "message":"Dates must be specified in the MM/DD/YYYY format.", "detail":"Any Date parameter must be provided in the MM/DD/YYYY format.".

    2. Invalid Input Parameters:
    v1 or v2: "title":"Invalid Input Parameters","detail":"< user-provided invalid parameter >".
    v3: "message":"The search parameter, < user-provided invalid parameter > does not exist.","detail":"Please refer to https://open.gsa.gov/api/exclusions-api/ for a list of allowable search parameters.".

    3. If ‘includeSections’, ‘emailId’, ‘format’, ‘exclusionName’, ‘includeSections’, ‘addressLine1’, ‘addressLine2’, or ‘ssnOrTinOrEin’ is sent in the "q" parameter:
    v1 or v2: The parameter: ‘emailId’, ‘format’, ‘exclusionName’, ‘includeSections’, ‘addressLine1’, ‘addressLine2’, or ‘ssnOrTinOrEin’ is not permitted inside Query Param(q).
    v3: "message":"The search parameters 'emailId', 'format', 'exclusionName', 'includeSections', 'addressLine1', 'addressLine2', and 'ssnOrTinOrEin' are not permitted inside Query Param(q)","detail":"Please provide these parameters separately.".

    4. A null or an empty value is sent in the "q" parameter:
    v1 or v2: "title":"Invalid input","detail":"The value null/empty is not valid for parameter ‘Query Param (q)’"
    v3: "message":"Invalid input","detail":"The value null/empty is not valid for parameter ‘Query Param (q)’".

    5. More than 100 "cageCode" values are sent:
    v1 or v2: A maximum of 100 CAGE Codes is allowed.
    v3: "message":"More than 100 CAGE Codes are not allowed.","detail":"Please limit the number of CAGE Codes to 100."

    6. If "emailId" is sent on its own:
    v1 or v2: The Parameter emailId must be provided in conjunction with the parameter format.
    v3: "message":"The search parameter 'emailId' must be provided in conjunction with the search parameter 'format'.","detail":"Users can opt for receiving the requested JSON/CSV files in their emails."

    7. If "includeSections" contains an invalid value:
    v1 or v2: includeSections contains invalid value.
    v3: "message":"The search parameter 'includeSections' contains an invalid value - < user-provided invalid parameter >,"detail":"Please refer to https://open.gsa.gov/api/exclusions-api/ for a list of allowable values.".

    8. If "ssnOrTinOrEin" is provided on its own:
    v1 or v2: ssnOrTinOrEin filter must be provided in conjunction with exclusionName.
    v3: "message":"The search parameter 'ssnOrTinOrEin' must be provided in conjunction with the search parameter 'exclusionName'.","detail":"The 'ssnOrTinOrEin' parameter cannot be provided on its own.".

    9. Invalid "ssnOrTinOrEin" length or "ssnOrTinOrEin" has more than one value:
    v1 or v2: The search parameter, 'ssnOrTinOrEin' will only accept one complete 9 digit value (e.g.: ssnOrTinOrEin=000000000).
    v3: "message":"The search parameter 'ssnOrTinOrEin' will only accept one complete 9 digit value.","detail":"An example value is 000000000.".

    10. More than one "exclusionName" value is provided with "addressLine1" and "addressLine2":
    v1 or v2: exclusionName will only accept one value when it is provided in conjunction with addressLine1 and addressLine2.
    v3: "message":"The search parameter 'exclusionName' will only accept one value when it is provided in conjunction with 'addressLine1' and 'addressLine2'.","detail":"Use 'exclusionName' on its own or in conjunction with non-address search parameters.".

    11. Invalid "recordStatus" value:
    v1 or v2: "title":"Invalid input","errorCode":"IIP","detail":"Invalid input for recordStatus"
    v3: "message":"The search parameter 'recordStatus' will only accept Active as the value.","detail":"Only Active records are returned.

    12. "Invalid "format" value:
    v1 or v2: "title":"Invalid input","detail":"Invalid Input value for format".
    v3: "message":"Invalid input value for format","detail":"The allowable values are JSON and CSV."13. JSON or CSV file generation is in-progress:
    v1 or v2: "title":"Extract File Generation is Still in Progress","detail":"File Processing in Progress. Please check again later ".
    v3: "message":"The requested JSON or CSV file is not generated yet. Please try again later.","detail":"Larger files will take some time to process.".

    14. A non-existent token is used for downloading a JSON or a CSV file:
    v1 or v2: "title":"Extract File Not Found and we are not able to process your request","detail":"We are not able to find the requested file".
    v3: "message":"The requested JSON or CSV file token could not be found.","detail":"Please verify the token number."

    15. An expired token is used for downloading a JSON or a CSV file:
    v1 or v2: "title":"Requested File is Expired and cannot be downloaded","detail":"We are not able to process your request".
    v3: "message":"The requested JSON or CSV file token is expired.","detail":"Please verify the token number." + Application Level Error Messages:

    1. Invalid "Date" format:
    v1 or v2: Date should be specified in the format: MM/dd/YYYY.
    v3 or v4: "message":"Dates must be specified in the MM/DD/YYYY format.", "detail":"Any Date parameter must be provided in the MM/DD/YYYY format.".

    2. Invalid Input Parameters:
    v1 or v2: "title":"Invalid Input Parameters","detail":"< user-provided invalid parameter >".
    v3 or v4: "message":"The search parameter, < user-provided invalid parameter > does not exist.","detail":"Please refer to https://open.gsa.gov/api/exclusions-api/ for a list of allowable search parameters.".

    3. If ‘includeSections’, ‘emailId’, ‘format’, ‘exclusionName’, ‘includeSections’, ‘addressLine1’, ‘addressLine2’, or ‘ssnOrTinOrEin’ is sent in the "q" parameter:
    v1 or v2: The parameter: ‘emailId’, ‘format’, ‘exclusionName’, ‘includeSections’, ‘addressLine1’, ‘addressLine2’, or ‘ssnOrTinOrEin’ is not permitted inside Query Param(q).
    v3 or v4: "message":"The search parameters 'emailId', 'format', 'exclusionName', 'includeSections', 'addressLine1', 'addressLine2', and 'ssnOrTinOrEin' are not permitted inside Query Param(q)","detail":"Please provide these parameters separately.".

    4. A null or an empty value is sent in the "q" parameter:
    v1 or v2: "title":"Invalid input","detail":"The value null/empty is not valid for parameter ‘Query Param (q)’"
    v3 or v4: "message":"Invalid input","detail":"The value null/empty is not valid for parameter ‘Query Param (q)’".

    5. More than 100 "cageCode" values are sent:
    v1 or v2: A maximum of 100 CAGE Codes is allowed.
    v3 or v4: "message":"More than 100 CAGE Codes are not allowed.","detail":"Please limit the number of CAGE Codes to 100."

    6. If "emailId" is sent on its own:
    v1 or v2: The Parameter emailId must be provided in conjunction with the parameter format.
    v3 or v4: "message":"The search parameter 'emailId' must be provided in conjunction with the search parameter 'format'.","detail":"Users can opt for receiving the requested JSON/CSV files in their emails."

    7. If "includeSections" contains an invalid value:
    v1 or v2: includeSections contains invalid value.
    v3 or v4: "message":"The search parameter 'includeSections' contains an invalid value - < user-provided invalid parameter >,"detail":"Please refer to https://open.gsa.gov/api/exclusions-api/ for a list of allowable values.".

    8. If "ssnOrTinOrEin" is provided on its own:
    v1 or v2: ssnOrTinOrEin filter must be provided in conjunction with exclusionName.
    v3 or v4: "message":"The search parameter 'ssnOrTinOrEin' must be provided in conjunction with the search parameter 'exclusionName'.","detail":"The 'ssnOrTinOrEin' parameter cannot be provided on its own.".

    9. Invalid "ssnOrTinOrEin" length or "ssnOrTinOrEin" has more than one value:
    v1 or v2: The search parameter, 'ssnOrTinOrEin' will only accept one complete 9 digit value (e.g.: ssnOrTinOrEin=000000000).
    v3 or v4: "message":"The search parameter 'ssnOrTinOrEin' will only accept one complete 9 digit value.","detail":"An example value is 000000000.".

    10. More than one "exclusionName" value is provided with "addressLine1" and "addressLine2":
    v1 or v2: exclusionName will only accept one value when it is provided in conjunction with addressLine1 and addressLine2.
    v3 or v4: "message":"The search parameter 'exclusionName' will only accept one value when it is provided in conjunction with 'addressLine1' and 'addressLine2'.","detail":"Use 'exclusionName' on its own or in conjunction with non-address search parameters.".

    11. Invalid "recordStatus" value:
    v1 or v2: "title":"Invalid input","errorCode":"IIP","detail":"Invalid input for recordStatus"
    v3 or v4: "message":"The search parameter 'recordStatus' will only accept Active as the value.","detail":"Only Active records are returned.

    12. "Invalid "format" value:
    v1 or v2: "title":"Invalid input","detail":"Invalid Input value for format".
    v3 or v4: "message":"Invalid input value for format","detail":"The allowable values are JSON and CSV."13. JSON or CSV file generation is in-progress:
    v1 or v2: "title":"Extract File Generation is Still in Progress","detail":"File Processing in Progress. Please check again later ".
    v3 or v4: "message":"The requested JSON or CSV file is not generated yet. Please try again later.","detail":"Larger files will take some time to process.".

    14. A non-existent token is used for downloading a JSON or a CSV file:
    v1 or v2: "title":"Extract File Not Found and we are not able to process your request","detail":"We are not able to find the requested file".
    v3 or v4: "message":"The requested JSON or CSV file token could not be found.","detail":"Please verify the token number."

    15. An expired token is used for downloading a JSON or a CSV file:
    v1 or v2: "title":"Requested File is Expired and cannot be downloaded","detail":"We are not able to process your request".
    v3 or v4: "message":"The requested JSON or CSV file token is expired.","detail":"Please verify the token number." 403 - 1. Missing API Key:
    v1, v2 or v3: No api_key was supplied in request body. Please submit with a valid API key.

    2. An invalid API Key:
    v1, v2 or v3: An invalid API key was supplied. Please submit with a valid API key. + 1. Missing API Key:
    v1, v2, v3 or v4: No api_key was supplied in request body. Please submit with a valid API key.

    2. An invalid API Key:
    v1, v2, v3 or v4: An invalid API key was supplied. Please submit with a valid API key. 405 - If any method other than "GET" is used:
    v1, v2 or v3: Method Not Allowed. + If any method other than "GET" is used:
    NOTE:
    + Error messages in v1 and v2 are returned in this fashion: httpStatus, title, detail, errorCode, source.
    + Error messages in v3 and v4 are returned in this fashion: Status, timestamp, message, detail, errorCode, transaction_id. + NOTE:
    Error messages in v1 and v2 are returned in this fashion: httpStatus, title, detail, errorCode, source
    Error messages in v3 are returned in this fashion: Status, timestamp, message, detail, errorCode, transaction_id From 62bc70d2141576107012791e0032d7808f890fff Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Tue, 28 Nov 2023 22:14:55 -0600 Subject: [PATCH 09/19] FASCSA Changes --- _apidocs/exclusions-api.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/_apidocs/exclusions-api.md b/_apidocs/exclusions-api.md index 9d27f461f..5bfa22096 100644 --- a/_apidocs/exclusions-api.md +++ b/_apidocs/exclusions-api.md @@ -254,10 +254,7 @@ The API will return one of the following responses: 405 - If any method other than "GET" is used:
    NOTE:
    - Error messages in v1 and v2 are returned in this fashion: httpStatus, title, detail, errorCode, source.
    - Error messages in v3 and v4 are returned in this fashion: Status, timestamp, message, detail, errorCode, transaction_id. - + If any method other than "GET" is used:
    NOTE:
    Error messages in v1 and v2 are returned in this fashion: httpStatus, title, detail, errorCode, source.
    Error messages in v3 and v4 are returned in this fashion: Status, timestamp, message, detail, errorCode, transaction_id. NOTE:
    Error messages in v1 and v2 are returned in this fashion: httpStatus, title, detail, errorCode, source
    Error messages in v3 are returned in this fashion: Status, timestamp, message, detail, errorCode, transaction_id From 2d5d5c15b7f1740bbe487b49a80aceecdc5d371e Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Tue, 28 Nov 2023 22:18:11 -0600 Subject: [PATCH 10/19] FASCSA Changes --- _apidocs/exclusions-api.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_apidocs/exclusions-api.md b/_apidocs/exclusions-api.md index 5bfa22096..4f4ecd9fa 100644 --- a/_apidocs/exclusions-api.md +++ b/_apidocs/exclusions-api.md @@ -254,10 +254,10 @@ The API will return one of the following responses: 405 - If any method other than "GET" is used:
    NOTE:
    Error messages in v1 and v2 are returned in this fashion: httpStatus, title, detail, errorCode, source.
    Error messages in v3 and v4 are returned in this fashion: Status, timestamp, message, detail, errorCode, transaction_id. + If any method other than "GET" is used:
    v1, v2, v3 or v4: Method Not Allowed - NOTE:
    Error messages in v1 and v2 are returned in this fashion: httpStatus, title, detail, errorCode, source
    Error messages in v3 are returned in this fashion: Status, timestamp, message, detail, errorCode, transaction_id + NOTE:
    Error messages in v1 and v2 are returned in this fashion: httpStatus, title, detail, errorCode, source
    Error messages in v3 and v4 are returned in this fashion: Status, timestamp, message, detail, errorCode, transaction_id From c936b8be2bd3cf3bbeca53b8b0766e89892cc4e5 Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Tue, 28 Nov 2023 22:21:44 -0600 Subject: [PATCH 11/19] FASCSA Changes --- _apidocs/sam-entity-extracts-api/v1/openapi.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_apidocs/sam-entity-extracts-api/v1/openapi.yaml b/_apidocs/sam-entity-extracts-api/v1/openapi.yaml index a4fdda3cf..9aab733b6 100644 --- a/_apidocs/sam-entity-extracts-api/v1/openapi.yaml +++ b/_apidocs/sam-entity-extracts-api/v1/openapi.yaml @@ -49,7 +49,7 @@ paths: - name: frequency in: query description: >- - Specifies desired Frequecy level of the extract that they wish to + Specifies desired Frequency level of the extract that they wish to download required: false schema: @@ -116,7 +116,7 @@ paths: - name: frequency in: query description: >- - Specifies desired Frequecy level of the extract that they wish to + Specifies desired Frequency level of the extract that they wish to download required: false schema: From af5b6a30e3ecd7a3a1fe5c137453f9d163050456 Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Wed, 29 Nov 2023 14:51:00 -0600 Subject: [PATCH 12/19] FASCSA Changes --- _apidocs/sam-entity-extracts-api.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_apidocs/sam-entity-extracts-api.md b/_apidocs/sam-entity-extracts-api.md index 92526c2ca..e6a22494e 100644 --- a/_apidocs/sam-entity-extracts-api.md +++ b/_apidocs/sam-entity-extracts-api.md @@ -370,7 +370,7 @@ Permitted values: V2 for the Public, FOUO and Exclusion extracts; V3 for the Sen
  • SAM_Exclusions_Public_Extract_V2_22097.ZIP
  • -
  • FASCSA Exclusions files:
  • +
  • FASCSA Exclusions files:
    • FASCSAOrders23306.CSV
    • FASCSAOrders23305.CSV
    • @@ -510,6 +510,6 @@ Date | Version | Description 03/13/2023 | v3.2 | * Deleted the MPIN row from the "SAM Master Extract Mapping" file.

      * Updated row # 288 (which used to track MPIN) in the "Sensitive Extract Layout" file to indicate that the field is deprecated.

      * Removed the MPIN value from the sample "Sensitive Monthly V3 Extract File".

      06/27/2023 | v3.3 | * Updated "Effective April 2022" to "Effective June 2023".

      * Updated the "June 2023 release: SAM Master Extract Mapping" STRING Clarification tab to include the following updates:
       1. NAICS Exception String table updated to reflect January 2023
       changes
       2. SBA Business Types String table updated to include new value:
       "A4- SBA Certified Small Disadvantaged Business"

      09/11/2023 | v3.4 | * Removed "SAM Master Extract Mapping document".

      -12/01/2023 | v3.5 | * A new FASCSA Order Exclusions Extract has been created, and the V1 Extracts Download API is now enabled to download this extract. As part of this change, below are the associated changes made to this OpenGSA page:

      * Updated the Query String Parameters section to reflect an example FASCSA extract file name.

      * Updated the Extract Mapping Document and Layouts section with a new FASCSA Exclusions extract layout document.

      * Updated the Sample Extract File Names with sample FASCSA Exclusions File Names.

      * Updated the Extract Download API Sample Requests section with a sample request for a FASCSA extract.

      * Updated the OpenAPI Specification File to include reference to the new FASCSA extract.

      * Updated the Sample Extract Files section with a new FASCSA Order Exclusions Public extract file.

      +12/01/2023 | v3.5 | A new FASCSA Order Exclusions Extract has been created, and the V1 Extracts Download API is now enabled to download this extract. As part of this change, below are the associated changes made to this OpenGSA page:

      * Updated the Query String Parameters section to reflect an example FASCSA extract file name.

      * Updated the Extract Mapping Document and Layouts section with a new FASCSA Exclusions extract layout document.

      * Updated the Sample Extract File Names with sample FASCSA Exclusions File Names.

      * Updated the Extract Download API Sample Requests section with a sample request for a FASCSA extract.

      * Updated the OpenAPI Specification File to include reference to the new FASCSA extract.

      * Updated the Sample Extract Files section with a new FASCSA Order Exclusions Public extract file.

      Back to top

      From c6e4fe61e8f99291e9d6aca3923b622bac57ffa7 Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Wed, 29 Nov 2023 14:57:17 -0600 Subject: [PATCH 13/19] FASCSA Changes --- _apidocs/exclusions-api.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_apidocs/exclusions-api.md b/_apidocs/exclusions-api.md index 4f4ecd9fa..d2ac098de 100644 --- a/_apidocs/exclusions-api.md +++ b/_apidocs/exclusions-api.md @@ -246,7 +246,7 @@ The API will return one of the following responses: 400 - Application Level Error Messages:

      1. Invalid "Date" format:
      v1 or v2: Date should be specified in the format: MM/dd/YYYY.
      v3 or v4: "message":"Dates must be specified in the MM/DD/YYYY format.", "detail":"Any Date parameter must be provided in the MM/DD/YYYY format.".

      2. Invalid Input Parameters:
      v1 or v2: "title":"Invalid Input Parameters","detail":"< user-provided invalid parameter >".
      v3 or v4: "message":"The search parameter, < user-provided invalid parameter > does not exist.","detail":"Please refer to https://open.gsa.gov/api/exclusions-api/ for a list of allowable search parameters.".

      3. If ‘includeSections’, ‘emailId’, ‘format’, ‘exclusionName’, ‘includeSections’, ‘addressLine1’, ‘addressLine2’, or ‘ssnOrTinOrEin’ is sent in the "q" parameter:
      v1 or v2: The parameter: ‘emailId’, ‘format’, ‘exclusionName’, ‘includeSections’, ‘addressLine1’, ‘addressLine2’, or ‘ssnOrTinOrEin’ is not permitted inside Query Param(q).
      v3 or v4: "message":"The search parameters 'emailId', 'format', 'exclusionName', 'includeSections', 'addressLine1', 'addressLine2', and 'ssnOrTinOrEin' are not permitted inside Query Param(q)","detail":"Please provide these parameters separately.".

      4. A null or an empty value is sent in the "q" parameter:
      v1 or v2: "title":"Invalid input","detail":"The value null/empty is not valid for parameter ‘Query Param (q)’"
      v3 or v4: "message":"Invalid input","detail":"The value null/empty is not valid for parameter ‘Query Param (q)’".

      5. More than 100 "cageCode" values are sent:
      v1 or v2: A maximum of 100 CAGE Codes is allowed.
      v3 or v4: "message":"More than 100 CAGE Codes are not allowed.","detail":"Please limit the number of CAGE Codes to 100."

      6. If "emailId" is sent on its own:
      v1 or v2: The Parameter emailId must be provided in conjunction with the parameter format.
      v3 or v4: "message":"The search parameter 'emailId' must be provided in conjunction with the search parameter 'format'.","detail":"Users can opt for receiving the requested JSON/CSV files in their emails."

      7. If "includeSections" contains an invalid value:
      v1 or v2: includeSections contains invalid value.
      v3 or v4: "message":"The search parameter 'includeSections' contains an invalid value - < user-provided invalid parameter >,"detail":"Please refer to https://open.gsa.gov/api/exclusions-api/ for a list of allowable values.".

      8. If "ssnOrTinOrEin" is provided on its own:
      v1 or v2: ssnOrTinOrEin filter must be provided in conjunction with exclusionName.
      v3 or v4: "message":"The search parameter 'ssnOrTinOrEin' must be provided in conjunction with the search parameter 'exclusionName'.","detail":"The 'ssnOrTinOrEin' parameter cannot be provided on its own.".

      9. Invalid "ssnOrTinOrEin" length or "ssnOrTinOrEin" has more than one value:
      v1 or v2: The search parameter, 'ssnOrTinOrEin' will only accept one complete 9 digit value (e.g.: ssnOrTinOrEin=000000000).
      v3 or v4: "message":"The search parameter 'ssnOrTinOrEin' will only accept one complete 9 digit value.","detail":"An example value is 000000000.".

      10. More than one "exclusionName" value is provided with "addressLine1" and "addressLine2":
      v1 or v2: exclusionName will only accept one value when it is provided in conjunction with addressLine1 and addressLine2.
      v3 or v4: "message":"The search parameter 'exclusionName' will only accept one value when it is provided in conjunction with 'addressLine1' and 'addressLine2'.","detail":"Use 'exclusionName' on its own or in conjunction with non-address search parameters.".

      11. Invalid "recordStatus" value:
      v1 or v2: "title":"Invalid input","errorCode":"IIP","detail":"Invalid input for recordStatus"
      v3 or v4: "message":"The search parameter 'recordStatus' will only accept Active as the value.","detail":"Only Active records are returned.

      12. "Invalid "format" value:
      v1 or v2: "title":"Invalid input","detail":"Invalid Input value for format".
      v3 or v4: "message":"Invalid input value for format","detail":"The allowable values are JSON and CSV."13. JSON or CSV file generation is in-progress:
      v1 or v2: "title":"Extract File Generation is Still in Progress","detail":"File Processing in Progress. Please check again later ".
      v3 or v4: "message":"The requested JSON or CSV file is not generated yet. Please try again later.","detail":"Larger files will take some time to process.".

      14. A non-existent token is used for downloading a JSON or a CSV file:
      v1 or v2: "title":"Extract File Not Found and we are not able to process your request","detail":"We are not able to find the requested file".
      v3 or v4: "message":"The requested JSON or CSV file token could not be found.","detail":"Please verify the token number."

      15. An expired token is used for downloading a JSON or a CSV file:
      v1 or v2: "title":"Requested File is Expired and cannot be downloaded","detail":"We are not able to process your request".
      v3 or v4: "message":"The requested JSON or CSV file token is expired.","detail":"Please verify the token number." + Application Level Error Messages:

      1. Invalid "Date" format:
      v1 or v2: Date should be specified in the format: MM/dd/YYYY.
      v3 or v4: "message":"Dates must be specified in the MM/DD/YYYY format.", "detail":"Any Date parameter must be provided in the MM/DD/YYYY format.".

      2. Invalid Input Parameters:
      v1 or v2: "title":"Invalid Input Parameters","detail":"< user-provided invalid parameter >".
      v3 or v4: "message":"The search parameter, < user-provided invalid parameter > does not exist.","detail":"Please refer to https://open.gsa.gov/api/exclusions-api/ for a list of allowable search parameters.".

      3. If ‘includeSections’, ‘emailId’, ‘format’, ‘exclusionName’, ‘includeSections’, ‘addressLine1’, ‘addressLine2’, or ‘ssnOrTinOrEin’ is sent in the "q" parameter:
      v1 or v2: The parameter: ‘emailId’, ‘format’, ‘exclusionName’, ‘includeSections’, ‘addressLine1’, ‘addressLine2’, or ‘ssnOrTinOrEin’ is not permitted inside Query Param(q).
      v3 or v4: "message":"The search parameters 'emailId', 'format', 'exclusionName', 'includeSections', 'addressLine1', 'addressLine2', and 'ssnOrTinOrEin' are not permitted inside Query Param(q)","detail":"Please provide these parameters separately.".

      4. A null or an empty value is sent in the "q" parameter:
      v1 or v2: "title":"Invalid input","detail":"The value null/empty is not valid for parameter ‘Query Param (q)’"
      v3 or v4: "message":"Invalid input","detail":"The value null/empty is not valid for parameter ‘Query Param (q)’".

      5. More than 100 "cageCode" values are sent:
      v1 or v2: A maximum of 100 CAGE Codes is allowed.
      v3 or v4: "message":"More than 100 CAGE Codes are not allowed.","detail":"Please limit the number of CAGE Codes to 100."

      6. If "emailId" is sent on its own:
      v1 or v2: The Parameter emailId must be provided in conjunction with the parameter format.
      v3 or v4: "message":"The search parameter 'emailId' must be provided in conjunction with the search parameter 'format'.","detail":"Users can opt for receiving the requested JSON/CSV files in their emails."

      7. If "includeSections" contains an invalid value:
      v1 or v2: includeSections contains invalid value.
      v3 or v4: "message":"The search parameter 'includeSections' contains an invalid value - < user-provided invalid parameter >,"detail":"Please refer to https://open.gsa.gov/api/exclusions-api/ for a list of allowable values.".

      8. If "ssnOrTinOrEin" is provided on its own:
      v1 or v2: ssnOrTinOrEin filter must be provided in conjunction with exclusionName.
      v3 or v4: "message":"The search parameter 'ssnOrTinOrEin' must be provided in conjunction with the search parameter 'exclusionName'.","detail":"The 'ssnOrTinOrEin' parameter cannot be provided on its own.".

      9. Invalid "ssnOrTinOrEin" length or "ssnOrTinOrEin" has more than one value:
      v1 or v2: The search parameter, 'ssnOrTinOrEin' will only accept one complete 9 digit value (e.g.: ssnOrTinOrEin=000000000).
      v3 or v4: "message":"The search parameter 'ssnOrTinOrEin' will only accept one complete 9 digit value.","detail":"An example value is 000000000.".

      10. More than one "exclusionName" value is provided with "addressLine1" and "addressLine2":
      v1 or v2: exclusionName will only accept one value when it is provided in conjunction with addressLine1 and addressLine2.
      v3 or v4: "message":"The search parameter 'exclusionName' will only accept one value when it is provided in conjunction with 'addressLine1' and 'addressLine2'.","detail":"Use 'exclusionName' on its own or in conjunction with non-address search parameters.".

      11. Invalid "recordStatus" value:
      v1 or v2: "title":"Invalid input","errorCode":"IIP","detail":"Invalid input for recordStatus"
      v3 or v4: "message":"The search parameter 'recordStatus' will only accept Active as the value.","detail":"Only Active records are returned.

      12. "Invalid "format" value:
      v1 or v2: "title":"Invalid input","detail":"Invalid Input value for format".
      v3 or v4: "message":"Invalid input value for format","detail":"The allowable values are JSON and CSV."

      13. JSON or CSV file generation is in-progress:
      v1 or v2: "title":"Extract File Generation is Still in Progress","detail":"File Processing in Progress. Please check again later ".
      v3 or v4: "message":"The requested JSON or CSV file is not generated yet. Please try again later.","detail":"Larger files will take some time to process.".

      14. A non-existent token is used for downloading a JSON or a CSV file:
      v1 or v2: "title":"Extract File Not Found and we are not able to process your request","detail":"We are not able to find the requested file".
      v3 or v4: "message":"The requested JSON or CSV file token could not be found.","detail":"Please verify the token number."

      15. An expired token is used for downloading a JSON or a CSV file:
      v1 or v2: "title":"Requested File is Expired and cannot be downloaded","detail":"We are not able to process your request".
      v3 or v4: "message":"The requested JSON or CSV file token is expired.","detail":"Please verify the token number." 403 @@ -254,7 +254,7 @@ The API will return one of the following responses: 405 - If any method other than "GET" is used:
      v1, v2, v3 or v4: Method Not Allowed + If any method other than "GET" is used:
      v1, v2, v3 or v4: Method Not Allowed. NOTE:
      Error messages in v1 and v2 are returned in this fashion: httpStatus, title, detail, errorCode, source
      Error messages in v3 and v4 are returned in this fashion: Status, timestamp, message, detail, errorCode, transaction_id @@ -920,6 +920,6 @@ Date | Version | Description 10/21/2021 | v2.8 | * Updated Examples - Added Example 1 and Example 2 to indicate the post April 3rd, 2022 behavior.

      * Added notes in the Query String Parameters, Expected Result and HTTP Response Codes sections to highlight the until and after April 3rd, 2022 behavior. 02/01/2022 | v2.9 | * Added exclusions V3 endpoint information to the Getting Started section.

      * Updated the Query String Parameters and Expected Results sections to reflect available parameters and response fields in V3.

      * Updated the Example 1 and Example 2 to indicate the V3 behavior.

      * Updated the section, "HTTP Response Codes" to indicate the v3 behavior.

      * Update the OpenAPI Specification File to include the V3 endpoints. 04/04/2022 | v3.0 | * Provided the v3 end point for Production.

      * Removed ueiDUNS occurrences from the sections, Query String Parameters, Expected Result, HTTP Response Codes and Examples. -11/14/2022 | v3.1 | * A new V4 Exclusions API has been created, enabling the search and response for FASCSA Order Exclusion records. As part of this change, below are the associated changes made to this OpenGSA page:

      * Added exclusions V4 endpoint information to the Getting Started section.

      * Updated the Query String Parameters and Expected Results sections to reflect available parameters and response fields in V4.

      * Moved the existing Example 5 to Example 6; inserted a new Example 5 to indicate V4 behavior.

      * Updated the section, “HTTP Response Codes” to indicate the v4 behavior.

      * Update the OpenAPI Specification File to include the V4 endpoints. +12/01/2023 | v3.1 | A new V4 Exclusions API has been created, enabling the search and response for FASCSA Order Exclusion records. As part of this change, below are the associated changes made to this OpenGSA page:

      * Added exclusions V4 endpoint information to the Getting Started section.

      * Updated the Query String Parameters and Expected Results sections to reflect available parameters and response fields in V4.

      * Moved the existing Example 5 to Example 6; inserted a new Example 5 to indicate V4 behavior.

      * Updated the section, “HTTP Response Codes” to indicate the v4 behavior.

      * Updated the OpenAPI Specification File to include the V4 endpoints.

      Back to top

      From fb8a30cefa4fce0c46022585f65329dcfe652530 Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Wed, 29 Nov 2023 15:02:28 -0600 Subject: [PATCH 14/19] FASCSA Changes --- _apidocs/exclusions-api/v1/openapi.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_apidocs/exclusions-api/v1/openapi.yaml b/_apidocs/exclusions-api/v1/openapi.yaml index 4579a51c5..a8b362a03 100644 --- a/_apidocs/exclusions-api/v1/openapi.yaml +++ b/_apidocs/exclusions-api/v1/openapi.yaml @@ -19,6 +19,8 @@ tags: description: Exclusions Api Controller V 2 - name: exclusions-api-controller-v-3 description: Exclusions Api Controller V 3 +- name: exclusions-api-controller-v-4 + description: Exclusions Api Controller V 4 - name: file-download-controller description: File Download Controller paths: @@ -1112,7 +1114,7 @@ paths: type: string - name: fascsaOrder in: query - description: This field is used to filter out FASCSAOrders it accepts Yes or No and is case-insensitive. + description: This field is used to filter out FASCSA Orders. It accepts Yes or No and is case-insensitive. schema: type: string responses: From b5ca66f0b35470214f7b82416d670b58a6c9cbe5 Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Thu, 30 Nov 2023 08:34:44 -0600 Subject: [PATCH 15/19] FASCSA Changes --- _apidocs/sam-entity-extracts-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_apidocs/sam-entity-extracts-api.md b/_apidocs/sam-entity-extracts-api.md index e6a22494e..f62f21ec4 100644 --- a/_apidocs/sam-entity-extracts-api.md +++ b/_apidocs/sam-entity-extracts-api.md @@ -510,6 +510,6 @@ Date | Version | Description 03/13/2023 | v3.2 | * Deleted the MPIN row from the "SAM Master Extract Mapping" file.

      * Updated row # 288 (which used to track MPIN) in the "Sensitive Extract Layout" file to indicate that the field is deprecated.

      * Removed the MPIN value from the sample "Sensitive Monthly V3 Extract File".

      06/27/2023 | v3.3 | * Updated "Effective April 2022" to "Effective June 2023".

      * Updated the "June 2023 release: SAM Master Extract Mapping" STRING Clarification tab to include the following updates:
       1. NAICS Exception String table updated to reflect January 2023
       changes
       2. SBA Business Types String table updated to include new value:
       "A4- SBA Certified Small Disadvantaged Business"

      09/11/2023 | v3.4 | * Removed "SAM Master Extract Mapping document".

      -12/01/2023 | v3.5 | A new FASCSA Order Exclusions Extract has been created, and the V1 Extracts Download API is now enabled to download this extract. As part of this change, below are the associated changes made to this OpenGSA page:

      * Updated the Query String Parameters section to reflect an example FASCSA extract file name.

      * Updated the Extract Mapping Document and Layouts section with a new FASCSA Exclusions extract layout document.

      * Updated the Sample Extract File Names with sample FASCSA Exclusions File Names.

      * Updated the Extract Download API Sample Requests section with a sample request for a FASCSA extract.

      * Updated the OpenAPI Specification File to include reference to the new FASCSA extract.

      * Updated the Sample Extract Files section with a new FASCSA Order Exclusions Public extract file.

      +12/01/2023 | v3.5 | A new FASCSA Order Exclusions Extract has been created, and the V1 Extracts Download API is now enabled to download this extract. As part of this change, below are the associated changes made to this OpenGSA page:

      * Updated the Query String Parameters section to reflect an example FASCSA extract file name.

      * Updated the Extract Mapping Document and Layouts section with a new FASCSA Exclusions extract layout document.

      * Updated the Sample Extract File Names with sample FASCSA Exclusions File Names.

      * Updated the Extract Download API Sample Requests section with a sample request for a FASCSA extract.

      * Updated the Sample Extract Files section with a new FASCSA Order Exclusions Public extract file.

      Back to top

      From fe992f243556aec227b1da60a3798e154e40cb91 Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Thu, 30 Nov 2023 09:45:48 -0600 Subject: [PATCH 16/19] FASCSA Changes --- _apidocs/sam-entity-extracts-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_apidocs/sam-entity-extracts-api.md b/_apidocs/sam-entity-extracts-api.md index f62f21ec4..7eb89c5b3 100644 --- a/_apidocs/sam-entity-extracts-api.md +++ b/_apidocs/sam-entity-extracts-api.md @@ -510,6 +510,6 @@ Date | Version | Description 03/13/2023 | v3.2 | * Deleted the MPIN row from the "SAM Master Extract Mapping" file.

      * Updated row # 288 (which used to track MPIN) in the "Sensitive Extract Layout" file to indicate that the field is deprecated.

      * Removed the MPIN value from the sample "Sensitive Monthly V3 Extract File".

      06/27/2023 | v3.3 | * Updated "Effective April 2022" to "Effective June 2023".

      * Updated the "June 2023 release: SAM Master Extract Mapping" STRING Clarification tab to include the following updates:
       1. NAICS Exception String table updated to reflect January 2023
       changes
       2. SBA Business Types String table updated to include new value:
       "A4- SBA Certified Small Disadvantaged Business"

      09/11/2023 | v3.4 | * Removed "SAM Master Extract Mapping document".

      -12/01/2023 | v3.5 | A new FASCSA Order Exclusions Extract has been created, and the V1 Extracts Download API is now enabled to download this extract. As part of this change, below are the associated changes made to this OpenGSA page:

      * Updated the Query String Parameters section to reflect an example FASCSA extract file name.

      * Updated the Extract Mapping Document and Layouts section with a new FASCSA Exclusions extract layout document.

      * Updated the Sample Extract File Names with sample FASCSA Exclusions File Names.

      * Updated the Extract Download API Sample Requests section with a sample request for a FASCSA extract.

      * Updated the Sample Extract Files section with a new FASCSA Order Exclusions Public extract file.

      +12/01/2023 | v3.5 | A new FASCSA Order Exclusions Extract has been created, and the V1 Extracts Download API is now enabled to download this extract. As part of this change, below are the associated changes made to this OpenGSA page:

      * Updated the Extract Calendar to include information on the new FASCSA extract.

      * Updated the Query String Parameters section to reflect an example FASCSA extract file name.

      * Updated the Extract Mapping Document and Layouts section with a new FASCSA Exclusions extract layout document.

      * Updated the Sample Extract File Names with sample FASCSA Exclusions File Names.

      * Updated the Extract Download API Sample Requests section with a sample request for a FASCSA extract.

      * Updated the Sample Extract Files section with a new FASCSA Order Exclusions Public extract file.

      Back to top

      From a832a151b95756584ec93a0794c730453e46c887 Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Thu, 30 Nov 2023 12:32:35 -0600 Subject: [PATCH 17/19] FASCSA Changes --- _apidocs/exclusions-api.md | 210 ++++++++++++++++++------------------- 1 file changed, 105 insertions(+), 105 deletions(-) diff --git a/_apidocs/exclusions-api.md b/_apidocs/exclusions-api.md index d2ac098de..8225742b4 100644 --- a/_apidocs/exclusions-api.md +++ b/_apidocs/exclusions-api.md @@ -100,127 +100,127 @@ Utilizing the Exclusion API as an extract: **Query String Parameters** -| Parameter Name | Description | Applicable Versions | -|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------| -| classification | Allows a partial text or a complete text (Individual, Firm, Vessel, Special Entity Designation).

      This parameter can be used inside the 'q' parameter.

      Example: 'classification=Firm', 'classification=!INDIVIDUAL', 'classification=[Vessel~Special]', 'q=((classification:Vessel) OR (classification:Special))' | v1
      v2
      v3 | -| exclusionName | Allows a partial text or a complete text.

      This parameter must not be used inside the 'q' parameter.

      This parameter accepts multi-text values in any order and in any case, and will apply the AND operator between the texts.

      Examples: 'exclusionName=J Roy', 'exclusionName=ROY j' | v1
      v2
      v3 | -| exclusionType | Allows a partial text or a complete text (a string).

      Allowable values are: Ineligible (Proceedings Pending), Ineligible (Proceedings Completed), Prohibition/Restriction and Voluntary Exclusion.

      This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case.

      Examples: 'q=exclusionType:Ineligible (Proceedings Pending)', 'exclusionType=Ineligible PENDING', 'exclusionType=[Pending~Voluntary]' | v1
      v2
      v3 | -| exclusionProgram | Allows a complete text (a string).

      Allowable values are: Reciprocal, NonProcurement and Procurement.

      This parameter can be used inside the 'q' parameter.

      Examples: 'q=((exclusionProgram:Reciprocal) OR (exclusionProgram:Procurement))', 'exclusionProgram=[NonProcurement~RECIPROCAL]', 'exclusionProgram=!NonProcurement' | v1
      v2
      v3 | -| addressLine1 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

      This parameter must not be used inside the 'q' parameter.

      Examples: 'addressLine1=""', 'addressLine1="7th Floor, Buraengdang Building 530-14"'

      NOTE: If addressLine1 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v1
      v2
      v3 | -| addressLine2 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

      This parameter must not be used inside the 'q' parameter.

      Examples: 'addressLine2=""', 'addressLine2="Dapsipri, 5 Dong, Dongdaemun-K"'

      NOTE: If addressLine2 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v1
      v2
      v3 | -| stateProvince | Allows 2-character codes for the USA, names for foreign countries and null (a string).

      Examples: 'stateProvince=AR', 'stateProvince=[VA~MICHOACÁN]', 'stateProvince=""' | v1
      v2
      v3 | -| country | Allows 3-character codes, numerical values and null (a string).

      Examples: 'country=USA' 'country=[RUS~292~mex]', 'country=!""', 'q=((country:RUS) OR (country:292) OR (country:mex))' | v1
      v2
      v3 | -| zipCode | Allows 5-digit values for the USA, any value as it was provided for foreign countries and null (a string).

      Example: 'zipCode=20171', 'zipCode=[901-2132~V3M 5P8~C.P. 44890]', 'zipCode=""', 'q=((zipCode:901-2132) OR (zipCode:20147))' | v1
      v2
      v3 | -| ueiSAM | Denotes Unique Entity Identifier SAM.

      Allows 12-character values, null and also wildcard searches.

      Examples: 'ueiSAM=""', 'ueiSAM=!""', 'ueiSAM=P*X*1', 'q=((ueiSAM:PMC9YQMXJZU1) OR (ueiSAM:PG4XZ77WRC21))' | v1
      v2
      v3 | -| excludingAgencyCode | Allows a partial text, a complete text and null (a string).

      Examples: 'excludingAgencyCode=ICE', 'excludingAgencyCode=DHS-ICE', 'excludingAgencyCode=[AF~HUD~""]', 'q=((excludingAgencyCode:AF) OR (excludingAgencyCode:HUD))' | v1
      v2
      v3 | -| excludingAgencyName | Allows a partial text, a complete text and null (a string).

      This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case

      Examples: 'excludingAgencyName=Of URBAN housing', 'excludingAgencyName=[Geological~Navy]', q=((excludingAgencyName:Geological) OR (excludingAgencyName:Navy)) | v1
      v2
      v3 | -| ctCode | Allows a complete text, null and also wild card searches (a string).

      Examples: 'ctCode=*SDN*', 'ctCode=[AA~""], 'q=((ctCode:AA) OR (ctCode:03-SDN-01))' | v1
      v2
      v3 | -| activationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'activationDate=01/01/2019', 'activationDate=[01/01/2019,05/29/2019]' | v1
      v2
      v3 | -| creationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'creationDate=01/01/2019', 'creationDate=[01/01/2019,05/29/2019]' | v1
      v2
      v3 | -| updateDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'updateDate=01/01/2019', 'updateDate=[01/01/2019,05/29/2019]'' | v1
      v2
      v3 | -| terminationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'terminationDate=01/01/2019', 'terminationDate=[01/01/2019,05/29/2019]' | v1
      v2
      v3 | -| cageCode | Allows a complete value, null and also wild card searches (a string).

      Examples: 'cageCode=0*0', 'cageCode=[0XLE0~1CM51~""]', 'q=((cageCode:0XLE0) OR (cageCode:1CM51))' | v1
      v2
      v3 | -| npi | Allows 1234567890 (this is masked data) and null (a string).

      Examples: 'npi=1234567890', 'npi=""', 'npi=!""' | v1
      v2
      v3 | -| recordStatus | The API returns only Active records.

      Allows a complete text (a string).

      Allowable value is: Active, active

      Example: 'recordStatus=active' | v1
      v2
      v3 | -| page | Denotes a page number.

      Allowable values are 0 to 999.

      Example: 'page=0' | v1
      v2
      v3 | -| size | Denotes the number of records returned per page.

      Allowable values are 1 to 10.

      Example: 'size=1' | v1
      v2
      v3 | -| includeSections | Allows to filter data by sections, exclusionDetails, exclusionIdentification, exclusionActions, exclusionAddress, exclusionOtherInformation and vesselDetails.

      Example: 'includeSections=exclusionOtherInformation,exclusionDetails' | v1
      v2
      v3 | -| format | Allows user to download different file formats(csv and json are allowable values) .

      Example: 'format=csv' | v1
      v2
      v3 | -| emailId | Allows user to get file download links sent to the email address associated to the API key used in the request. Email ID must be provided in conjunction with the format parameter.
      Example: emailId= Yes
      Applicable to non-SAM registrants. | v1
      v2
      v3 | -| ssnOrTinOrEin | Allows a 9-digit value or null.

      This parameter must not be used inside the 'q' parameter.

      This parameter must be used in conjunction with the exclusionName parameter.

      Example: 'ssnOrTinOrEin=123456789' | v1
      v2
      v3 | -| fascsaOrder | Allows Yes and No.

      This parameter accepts either value, in any case.

      Examples: fascsaOrder=Yes, fascsaOrder=yes, fascsaOrder=No, fascsaOrder=no | v4 | +| Parameter Name | Description | Applicable Versions | +|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------| +| classification | Allows a partial text or a complete text (Individual, Firm, Vessel, Special Entity Designation).

      This parameter can be used inside the 'q' parameter.

      Example: 'classification=Firm', 'classification=!INDIVIDUAL', 'classification=[Vessel~Special]', 'q=((classification:Vessel) OR (classification:Special))' | v2
      v3>
      v4 | +| exclusionName | Allows a partial text or a complete text.

      This parameter must not be used inside the 'q' parameter.

      This parameter accepts multi-text values in any order and in any case, and will apply the AND operator between the texts.

      Examples: 'exclusionName=J Roy', 'exclusionName=ROY j' | v2
      v3>
      v4 | +| exclusionType | Allows a partial text or a complete text (a string).

      Allowable values are: Ineligible (Proceedings Pending), Ineligible (Proceedings Completed), Prohibition/Restriction and Voluntary Exclusion.

      This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case.

      Examples: 'q=exclusionType:Ineligible (Proceedings Pending)', 'exclusionType=Ineligible PENDING', 'exclusionType=[Pending~Voluntary]' | v2
      v3>
      v4 | +| exclusionProgram | Allows a complete text (a string).

      Allowable values are: Reciprocal, NonProcurement and Procurement.

      This parameter can be used inside the 'q' parameter.

      Examples: 'q=((exclusionProgram:Reciprocal) OR (exclusionProgram:Procurement))', 'exclusionProgram=[NonProcurement~RECIPROCAL]', 'exclusionProgram=!NonProcurement' | v2
      v3>
      v4 | +| addressLine1 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

      This parameter must not be used inside the 'q' parameter.

      Examples: 'addressLine1=""', 'addressLine1="7th Floor, Buraengdang Building 530-14"'

      NOTE: If addressLine1 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v2
      v3>
      v4 | +| addressLine2 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

      This parameter must not be used inside the 'q' parameter.

      Examples: 'addressLine2=""', 'addressLine2="Dapsipri, 5 Dong, Dongdaemun-K"'

      NOTE: If addressLine2 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v2
      v3>
      v4 | +| stateProvince | Allows 2-character codes for the USA, names for foreign countries and null (a string).

      Examples: 'stateProvince=AR', 'stateProvince=[VA~MICHOACÁN]', 'stateProvince=""' | v2
      v3>
      v4 | +| country | Allows 3-character codes, numerical values and null (a string).

      Examples: 'country=USA' 'country=[RUS~292~mex]', 'country=!""', 'q=((country:RUS) OR (country:292) OR (country:mex))' | v2
      v3>
      v4 | +| zipCode | Allows 5-digit values for the USA, any value as it was provided for foreign countries and null (a string).

      Example: 'zipCode=20171', 'zipCode=[901-2132~V3M 5P8~C.P. 44890]', 'zipCode=""', 'q=((zipCode:901-2132) OR (zipCode:20147))' | v2
      v3>
      v4 | +| ueiSAM | Denotes Unique Entity Identifier SAM.

      Allows 12-character values, null and also wildcard searches.

      Examples: 'ueiSAM=""', 'ueiSAM=!""', 'ueiSAM=P*X*1', 'q=((ueiSAM:PMC9YQMXJZU1) OR (ueiSAM:PG4XZ77WRC21))' | v2
      v3>
      v4 | +| excludingAgencyCode | Allows a partial text, a complete text and null (a string).

      Examples: 'excludingAgencyCode=ICE', 'excludingAgencyCode=DHS-ICE', 'excludingAgencyCode=[AF~HUD~""]', 'q=((excludingAgencyCode:AF) OR (excludingAgencyCode:HUD))' | v2
      v3>
      v4 | +| excludingAgencyName | Allows a partial text, a complete text and null (a string).

      This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case

      Examples: 'excludingAgencyName=Of URBAN housing', 'excludingAgencyName=[Geological~Navy]', q=((excludingAgencyName:Geological) OR (excludingAgencyName:Navy)) | v2
      v3>
      v4 | +| ctCode | Allows a complete text, null and also wild card searches (a string).

      Examples: 'ctCode=*SDN*', 'ctCode=[AA~""], 'q=((ctCode:AA) OR (ctCode:03-SDN-01))' | v2
      v3>
      v4 | +| activationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'activationDate=01/01/2019', 'activationDate=[01/01/2019,05/29/2019]' | v2
      v3>
      v4 | +| creationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'creationDate=01/01/2019', 'creationDate=[01/01/2019,05/29/2019]' | v2
      v3>
      v4 | +| updateDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'updateDate=01/01/2019', 'updateDate=[01/01/2019,05/29/2019]'' | v2
      v3>
      v4 | +| terminationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'terminationDate=01/01/2019', 'terminationDate=[01/01/2019,05/29/2019]' | v2
      v3>
      v4 | +| cageCode | Allows a complete value, null and also wild card searches (a string).

      Examples: 'cageCode=0*0', 'cageCode=[0XLE0~1CM51~""]', 'q=((cageCode:0XLE0) OR (cageCode:1CM51))' | v2
      v3>
      v4 | +| npi | Allows 1234567890 (this is masked data) and null (a string).

      Examples: 'npi=1234567890', 'npi=""', 'npi=!""' | v2
      v3>
      v4 | +| recordStatus | The API returns only Active records.

      Allows a complete text (a string).

      Allowable value is: Active, active

      Example: 'recordStatus=active' | v2
      v3>
      v4 | +| page | Denotes a page number.

      Allowable values are 0 to 999.

      Example: 'page=0' | v2
      v3>
      v4 | +| size | Denotes the number of records returned per page.

      Allowable values are 1 to 10.

      Example: 'size=1' | v2
      v3>
      v4 | +| includeSections | Allows to filter data by sections, exclusionDetails, exclusionIdentification, exclusionActions, exclusionAddress, exclusionOtherInformation and vesselDetails.

      Example: 'includeSections=exclusionOtherInformation,exclusionDetails' | v2
      v3>
      v4 | +| format | Allows user to download different file formats(csv and json are allowable values) .

      Example: 'format=csv' | v2
      v3>
      v4 | +| emailId | Allows user to get file download links sent to the email address associated to the API key used in the request. Email ID must be provided in conjunction with the format parameter.
      Example: emailId= Yes
      Applicable to non-SAM registrants. | v2
      v3>
      v4 | +| ssnOrTinOrEin | Allows a 9-digit value or null.

      This parameter must not be used inside the 'q' parameter.

      This parameter must be used in conjunction with the exclusionName parameter.

      Example: 'ssnOrTinOrEin=123456789' | v2
      v3>
      v4 | +| fascsaOrder | Allows Yes and No.

      This parameter accepts either value, in any case.

      Examples: fascsaOrder=Yes, fascsaOrder=yes, fascsaOrder=No, fascsaOrder=no | v4 | **Expected Result** API response consists of Sections, Sub-sections and Tags underneath each of the Sections or Sub-sections. There are a few placeholder elements that return ‘Currently Not Available’ until they are made available in the database. Additionally, -| Section/Sub-section/Tag | Type | Description | Applicable Versions | -|----------------------------------------------------------------------| ---- |---------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------| +| Section/Sub-section/Tag | Type | Description | Applicable Versions | +|----------------------------------------------------------------------| ---- |---------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------| | **exclusionDetails** | -| classificationType | string | Classification Type | v1
      v2
      v3 | -| exclusionType | string | Exclusion Type | v1
      v2
      v3 | -| exclusionProgram | string | Exclusion Program | v1
      v2
      v3 | -| excludingAgencyCode | string | Excluding Agency Code | v1
      v2
      v3 | -| excludingAgencyName | string | Excluding Agency Name | v1
      v2
      v3 | +| classificationType | string | Classification Type | v2
      v3>
      v4 | +| exclusionType | string | Exclusion Type | v2
      v3>
      v4 | +| exclusionProgram | string | Exclusion Program | v2
      v3>
      v4 | +| excludingAgencyCode | string | Excluding Agency Code | v2
      v3>
      v4 | +| excludingAgencyName | string | Excluding Agency Name | v2
      v3>
      v4 | | **exclusionIdentification** | -| ueiSAM | string | Unique Entity Identifier SAM | v1
      v2
      v3 | -| cageCode | string | CAGE Code | v1
      v2
      v3 | -| npi | string| NPI | v1
      v2
      v3 | -| prefix | string | Prefix | v1
      v2
      v3 | -| firstName | string | First Name | v1
      v2
      v3 | -| middleName | string | Middle Name | v1
      v2
      v3 | -| lastName | string | Last Name | v1
      v2
      v3 | -| suffix | string | Suffix | v1
      v2
      v3 | -| name/entityName | string | Firm Name

      NOTE: This parameter is being renamed. name is in V1 and entityName will be V2. | v1
      v2
      v3 | -| dnbOpenData | string | DNB Open Data | v2
      v3 | +| ueiSAM | string | Unique Entity Identifier SAM | v2
      v3>
      v4 | +| cageCode | string | CAGE Code | v2
      v3>
      v4 | +| npi | string| NPI | v2
      v3>
      v4 | +| prefix | string | Prefix | v2
      v3>
      v4 | +| firstName | string | First Name | v2
      v3>
      v4 | +| middleName | string | Middle Name | v2
      v3>
      v4 | +| lastName | string | Last Name | v2
      v3>
      v4 | +| suffix | string | Suffix | v2
      v3>
      v4 | +| name/entityName | string | Firm Name

      NOTE: This parameter is being renamed. name is in V1 and entityName will be V2. | v2
      v3>
      v4 | +| dnbOpenData | string | DNB Open Data | v2
      v3
      v4 | | **exclusionActions --> listOfActions** | -| createDate | string | Create Date | v1
      v2
      v3 | -| updateDate | string | Update Date | v1
      v2
      v3 | -| activateDate | string | Activate Date | v1
      v2
      v3 | -| terminationDate | string | Termination Date | v1
      v2
      v3 | -| terminationType | string | Termination Type | v1
      v2
      v3 | -| recordStatus | string | Record Status | v1
      v2
      v3 | -| **exclusionAddress/exclusionPrimaryAddress** | | NOTE: This section is being renamed. It is exclusionAddress in V1 and will be exclusionPrimaryAddress in V2. | | -| addressLine1 | string | Address Line 1 | v1
      v2
      v3 | -| addressLine2 | string | Address Line 2 | v1
      v2
      v3 | -| city | string | Address City | v1
      v2
      v3 | -| stateOrProvinceCode | string | Address State or Province Code | v1
      v2
      v3 | -| zipCode | string | Address Zip OR Postal Code | v1
      v2
      v3 | -| zipCodePlus4 | string | Address Zip Plus 4 | v1
      v2
      v3 | -| countryCode | string | Country Code | v1
      v2
      v3 | +| createDate | string | Create Date | v2
      v3>
      v4 | +| updateDate | string | Update Date | v2
      v3>
      v4 | +| activateDate | string | Activate Date | v2
      v3>
      v4 | +| terminationDate | string | Termination Date | v2
      v3>
      v4 | +| terminationType | string | Termination Type | v2
      v3>
      v4 | +| recordStatus | string | Record Status | v2
      v3>
      v4 | +| **exclusionAddress/exclusionPrimaryAddress** | | NOTE: This section is being renamed. It is exclusionAddress in V1 and will be exclusionPrimaryAddress in V2. | | +| addressLine1 | string | Address Line 1 | v2
      v3>
      v4 | +| addressLine2 | string | Address Line 2 | v2
      v3>
      v4 | +| city | string | Address City | v2
      v3>
      v4 | +| stateOrProvinceCode | string | Address State or Province Code | v2
      v3>
      v4 | +| zipCode | string | Address Zip OR Postal Code | v2
      v3>
      v4 | +| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3>
      v4 | +| countryCode | string | Country Code | v2
      v3>
      v4 | | **exclusionSecondaryAddress** | -| addressLine1 | string | Address Line 1 | v2
      v3 | -| addressLine2 | string | Address Line 2 | v2
      v3 | -| city | string | Address City | v2
      v3 | -| stateOrProvinceCode | string | Address State or Province Code | v2
      v3 | -| zipCode | string | Address Zip OR Postal Code | v2
      v3 | -| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3 | -| countryCode | string | Country Code | v2
      v3 | +| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | +| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | +| city | string | Address City | v2
      v3
      v4 | +| stateOrProvinceCode | string | Address State or Province Code | v2
      v3
      v4 | +| zipCode | string | Address Zip OR Postal Code | v2
      v3
      v4 | +| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3
      v4 | +| countryCode | string | Country Code | v2
      v3
      v4 | | **exclusionOtherInformation** | -| isFASCSAOrder | string | FASCSA Order Exclusion Indicator | v4 | -| additionalComments | string | Additional Comments | v1
      v2
      v3 | -| ctCode | string | CT Code | v1
      v2
      v3 | -| dnbInvestigationStatus/evsInvestigationStatus | string | EVS Investigation Status

      NOTE: This parameter is being renamed. dnbInvestigationStatus is in V1 and evsInvestigationStatus will be V2. | v1
      v2
      v3 | +| isFASCSAOrder | string | FASCSA Order Exclusion Indicator | v4 | +| additionalComments | string | Additional Comments | v2
      v3>
      v4 | +| ctCode | string | CT Code | v2
      v3>
      v4 | +| dnbInvestigationStatus/evsInvestigationStatus | string | EVS Investigation Status

      NOTE: This parameter is being renamed. dnbInvestigationStatus is in V1 and evsInvestigationStatus will be V2. | v2
      v3>
      v4 | | **exclusionOtherInformation --> references --> referencesList** | -| name/exclusionName | string | Exclusion Name

      NOTE: This parameter is being renamed. name is in V1 and exclusionName will be V2. | v1
      v2
      v3 | -| type | string | Type | v1
      v2
      v3 | +| name/exclusionName | string | Exclusion Name

      NOTE: This parameter is being renamed. name is in V1 and exclusionName will be V2. | v2
      v3>
      v4 | +| type | string | Type | v2
      v3>
      v4 | | **exclusionOtherInformation --> moreLocations** | -| exclusionName | string | Exclusion Name | v2
      v3 | -| duns | string | DUNS | v2 | -| ueiSAM | string | ueiSAM | v3 | -| cageCode | string | CAGE Code | v2
      v3 | -| npi | string | NPI | v2
      v3 | +| exclusionName | string | Exclusion Name | v2
      v3
      v4 | +| duns | string | DUNS | v2 | +| ueiSAM | string | ueiSAM | v3
      v4 | +| cageCode | string | CAGE Code | v2
      v3
      v4 | +| npi | string | NPI | v2
      v3
      v4 | | **exclusionOtherInformation --> moreLocations --> primaryAddress** | -| addressLine1 | string | Address Line 1 | v2
      v3 | -| addressLine2 | string | Address Line 2 | v2
      v3 | -| city | string | City | v2
      v3 | -| stateOrProvinceCode | string | State or Province Code | v2
      v3 | -| zipCode | string | Zip Code | v2
      v3 | -| zipCodePlus4 | string | Zip Code Plus 4 | v2
      v3 | -| countryCode | string | Country Code | v2
      v3 | +| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | +| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | +| city | string | City | v2
      v3
      v4 | +| stateOrProvinceCode | string | State or Province Code | v2
      v3
      v4 | +| zipCode | string | Zip Code | v2
      v3
      v4 | +| zipCodePlus4 | string | Zip Code Plus 4 | v2
      v3
      v4 | +| countryCode | string | Country Code | v2
      v3
      v4 | | **exclusionOtherInformation --> moreLocations --> secondaryAddress** | -| addressLine1 | string | Address Line 1 | v2
      v3 | -| addressLine2 | string | Address Line 2 | v2
      v3 | -| city | string | City | v2
      v3 | -| stateOrProvinceCode | string | State or Province Code | v2
      v3 | -| zipCode | string | Zip Code | v2
      v3 | -| zipCodePlus4 | string | Zip Code Plus 4 | v2
      v3 | -| countryCode | string | Country Code | v2
      v3 | +| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | +| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | +| city | string | City | v2
      v3
      v4 | +| stateOrProvinceCode | string | State or Province Code | v2
      v3
      v4 | +| zipCode | string | Zip Code | v2
      v3
      v4 | +| zipCodePlus4 | string | Zip Code Plus 4 | v2
      v3
      v4 | +| countryCode | string | Country Code | v2
      v3
      v4 | | **vesselDetails** | -| callSign | string | Call Sign | v1
      v2
      v3 | -| type | string | Type | v1
      v2
      v3 | -| tonnage | string | Tonnage | v1
      v2
      v3 | -| grt | string | GRT | v1
      v2
      v3 | -| flag | string | Flag | v1
      v2
      v3 | -| owner | string | Owner | v1
      v2
      v3 | +| callSign | string | Call Sign | v2
      v3>
      v4 | +| type | string | Type | v2
      v3>
      v4 | +| tonnage | string | Tonnage | v2
      v3>
      v4 | +| grt | string | GRT | v2
      v3>
      v4 | +| flag | string | Flag | v2
      v3>
      v4 | +| owner | string | Owner | v2
      v3>
      v4 | | **vesselDetails --> secondaryAddress** | -| addressLine1 | string | Address Line 1 | v1
      v2
      v3 Production only | -| addressLine2 | string | Address Line 2 | v1
      v2
      v3 Production only | -| city | string | Address City | v1
      v2
      v3 Production only | -| stateOrProvinceCode | string | Address State or Province Code | v1
      v2
      v3 Production only | -| zipCode | string | Address Zip OR Postal Code | v1
      v2
      v3 Production only | -| zipCodePlus4 | string | Address Zip Plus 4 | v1
      v2
      v3 Production only | -| countryCode | string | Country Code | v1
      v2
      v3 Production only | +| addressLine1 | string | Address Line 1 | v2
      v3>
      v4 Production only | +| addressLine2 | string | Address Line 2 | v2
      v3>
      v4 Production only | +| city | string | Address City | v2
      v3>
      v4 Production only | +| stateOrProvinceCode | string | Address State or Province Code | v2
      v3>
      v4 Production only | +| zipCode | string | Address Zip OR Postal Code | v2
      v3>
      v4 Production only | +| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3>
      v4 Production only | +| countryCode | string | Country Code | v2
      v3>
      v4 Production only |

      Back to top

      From 115bfaf84f25e4c53dfc8b2882d64fdf2f149529 Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Thu, 30 Nov 2023 13:00:04 -0600 Subject: [PATCH 18/19] FASCSA Changes --- _apidocs/exclusions-api.md | 210 ++++++++++++++++++------------------- 1 file changed, 105 insertions(+), 105 deletions(-) diff --git a/_apidocs/exclusions-api.md b/_apidocs/exclusions-api.md index 8225742b4..405965e46 100644 --- a/_apidocs/exclusions-api.md +++ b/_apidocs/exclusions-api.md @@ -100,127 +100,127 @@ Utilizing the Exclusion API as an extract: **Query String Parameters** -| Parameter Name | Description | Applicable Versions | -|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------| -| classification | Allows a partial text or a complete text (Individual, Firm, Vessel, Special Entity Designation).

      This parameter can be used inside the 'q' parameter.

      Example: 'classification=Firm', 'classification=!INDIVIDUAL', 'classification=[Vessel~Special]', 'q=((classification:Vessel) OR (classification:Special))' | v2
      v3>
      v4 | -| exclusionName | Allows a partial text or a complete text.

      This parameter must not be used inside the 'q' parameter.

      This parameter accepts multi-text values in any order and in any case, and will apply the AND operator between the texts.

      Examples: 'exclusionName=J Roy', 'exclusionName=ROY j' | v2
      v3>
      v4 | -| exclusionType | Allows a partial text or a complete text (a string).

      Allowable values are: Ineligible (Proceedings Pending), Ineligible (Proceedings Completed), Prohibition/Restriction and Voluntary Exclusion.

      This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case.

      Examples: 'q=exclusionType:Ineligible (Proceedings Pending)', 'exclusionType=Ineligible PENDING', 'exclusionType=[Pending~Voluntary]' | v2
      v3>
      v4 | -| exclusionProgram | Allows a complete text (a string).

      Allowable values are: Reciprocal, NonProcurement and Procurement.

      This parameter can be used inside the 'q' parameter.

      Examples: 'q=((exclusionProgram:Reciprocal) OR (exclusionProgram:Procurement))', 'exclusionProgram=[NonProcurement~RECIPROCAL]', 'exclusionProgram=!NonProcurement' | v2
      v3>
      v4 | -| addressLine1 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

      This parameter must not be used inside the 'q' parameter.

      Examples: 'addressLine1=""', 'addressLine1="7th Floor, Buraengdang Building 530-14"'

      NOTE: If addressLine1 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v2
      v3>
      v4 | -| addressLine2 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

      This parameter must not be used inside the 'q' parameter.

      Examples: 'addressLine2=""', 'addressLine2="Dapsipri, 5 Dong, Dongdaemun-K"'

      NOTE: If addressLine2 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v2
      v3>
      v4 | -| stateProvince | Allows 2-character codes for the USA, names for foreign countries and null (a string).

      Examples: 'stateProvince=AR', 'stateProvince=[VA~MICHOACÁN]', 'stateProvince=""' | v2
      v3>
      v4 | -| country | Allows 3-character codes, numerical values and null (a string).

      Examples: 'country=USA' 'country=[RUS~292~mex]', 'country=!""', 'q=((country:RUS) OR (country:292) OR (country:mex))' | v2
      v3>
      v4 | -| zipCode | Allows 5-digit values for the USA, any value as it was provided for foreign countries and null (a string).

      Example: 'zipCode=20171', 'zipCode=[901-2132~V3M 5P8~C.P. 44890]', 'zipCode=""', 'q=((zipCode:901-2132) OR (zipCode:20147))' | v2
      v3>
      v4 | -| ueiSAM | Denotes Unique Entity Identifier SAM.

      Allows 12-character values, null and also wildcard searches.

      Examples: 'ueiSAM=""', 'ueiSAM=!""', 'ueiSAM=P*X*1', 'q=((ueiSAM:PMC9YQMXJZU1) OR (ueiSAM:PG4XZ77WRC21))' | v2
      v3>
      v4 | -| excludingAgencyCode | Allows a partial text, a complete text and null (a string).

      Examples: 'excludingAgencyCode=ICE', 'excludingAgencyCode=DHS-ICE', 'excludingAgencyCode=[AF~HUD~""]', 'q=((excludingAgencyCode:AF) OR (excludingAgencyCode:HUD))' | v2
      v3>
      v4 | -| excludingAgencyName | Allows a partial text, a complete text and null (a string).

      This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case

      Examples: 'excludingAgencyName=Of URBAN housing', 'excludingAgencyName=[Geological~Navy]', q=((excludingAgencyName:Geological) OR (excludingAgencyName:Navy)) | v2
      v3>
      v4 | -| ctCode | Allows a complete text, null and also wild card searches (a string).

      Examples: 'ctCode=*SDN*', 'ctCode=[AA~""], 'q=((ctCode:AA) OR (ctCode:03-SDN-01))' | v2
      v3>
      v4 | -| activationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'activationDate=01/01/2019', 'activationDate=[01/01/2019,05/29/2019]' | v2
      v3>
      v4 | -| creationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'creationDate=01/01/2019', 'creationDate=[01/01/2019,05/29/2019]' | v2
      v3>
      v4 | -| updateDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'updateDate=01/01/2019', 'updateDate=[01/01/2019,05/29/2019]'' | v2
      v3>
      v4 | -| terminationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'terminationDate=01/01/2019', 'terminationDate=[01/01/2019,05/29/2019]' | v2
      v3>
      v4 | -| cageCode | Allows a complete value, null and also wild card searches (a string).

      Examples: 'cageCode=0*0', 'cageCode=[0XLE0~1CM51~""]', 'q=((cageCode:0XLE0) OR (cageCode:1CM51))' | v2
      v3>
      v4 | -| npi | Allows 1234567890 (this is masked data) and null (a string).

      Examples: 'npi=1234567890', 'npi=""', 'npi=!""' | v2
      v3>
      v4 | -| recordStatus | The API returns only Active records.

      Allows a complete text (a string).

      Allowable value is: Active, active

      Example: 'recordStatus=active' | v2
      v3>
      v4 | -| page | Denotes a page number.

      Allowable values are 0 to 999.

      Example: 'page=0' | v2
      v3>
      v4 | -| size | Denotes the number of records returned per page.

      Allowable values are 1 to 10.

      Example: 'size=1' | v2
      v3>
      v4 | -| includeSections | Allows to filter data by sections, exclusionDetails, exclusionIdentification, exclusionActions, exclusionAddress, exclusionOtherInformation and vesselDetails.

      Example: 'includeSections=exclusionOtherInformation,exclusionDetails' | v2
      v3>
      v4 | -| format | Allows user to download different file formats(csv and json are allowable values) .

      Example: 'format=csv' | v2
      v3>
      v4 | -| emailId | Allows user to get file download links sent to the email address associated to the API key used in the request. Email ID must be provided in conjunction with the format parameter.
      Example: emailId= Yes
      Applicable to non-SAM registrants. | v2
      v3>
      v4 | -| ssnOrTinOrEin | Allows a 9-digit value or null.

      This parameter must not be used inside the 'q' parameter.

      This parameter must be used in conjunction with the exclusionName parameter.

      Example: 'ssnOrTinOrEin=123456789' | v2
      v3>
      v4 | -| fascsaOrder | Allows Yes and No.

      This parameter accepts either value, in any case.

      Examples: fascsaOrder=Yes, fascsaOrder=yes, fascsaOrder=No, fascsaOrder=no | v4 | +| Parameter Name | Description | Applicable Versions | +|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| +| classification | Allows a partial text or a complete text (Individual, Firm, Vessel, Special Entity Designation).

      This parameter can be used inside the 'q' parameter.

      Example: 'classification=Firm', 'classification=!INDIVIDUAL', 'classification=[Vessel~Special]', 'q=((classification:Vessel) OR (classification:Special))' | v2
      v3
      v4 | +| exclusionName | Allows a partial text or a complete text.

      This parameter must not be used inside the 'q' parameter.

      This parameter accepts multi-text values in any order and in any case, and will apply the AND operator between the texts.

      Examples: 'exclusionName=J Roy', 'exclusionName=ROY j' | v2
      v3
      v4 | +| exclusionType | Allows a partial text or a complete text (a string).

      Allowable values are: Ineligible (Proceedings Pending), Ineligible (Proceedings Completed), Prohibition/Restriction and Voluntary Exclusion.

      This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case.

      Examples: 'q=exclusionType:Ineligible (Proceedings Pending)', 'exclusionType=Ineligible PENDING', 'exclusionType=[Pending~Voluntary]' | v2
      v3
      v4 | +| exclusionProgram | Allows a complete text (a string).

      Allowable values are: Reciprocal, NonProcurement and Procurement.

      This parameter can be used inside the 'q' parameter.

      Examples: 'q=((exclusionProgram:Reciprocal) OR (exclusionProgram:Procurement))', 'exclusionProgram=[NonProcurement~RECIPROCAL]', 'exclusionProgram=!NonProcurement' | v2
      v3
      v4 | +| addressLine1 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

      This parameter must not be used inside the 'q' parameter.

      Examples: 'addressLine1=""', 'addressLine1="7th Floor, Buraengdang Building 530-14"'

      NOTE: If addressLine1 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v2
      v3
      v4 | +| addressLine2 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

      This parameter must not be used inside the 'q' parameter.

      Examples: 'addressLine2=""', 'addressLine2="Dapsipri, 5 Dong, Dongdaemun-K"'

      NOTE: If addressLine2 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v2
      v3
      v4 | +| stateProvince | Allows 2-character codes for the USA, names for foreign countries and null (a string).

      Examples: 'stateProvince=AR', 'stateProvince=[VA~MICHOACÁN]', 'stateProvince=""' | v2
      v3
      v4 | +| country | Allows 3-character codes, numerical values and null (a string).

      Examples: 'country=USA' 'country=[RUS~292~mex]', 'country=!""', 'q=((country:RUS) OR (country:292) OR (country:mex))' | v2
      v3
      v4 | +| zipCode | Allows 5-digit values for the USA, any value as it was provided for foreign countries and null (a string).

      Example: 'zipCode=20171', 'zipCode=[901-2132~V3M 5P8~C.P. 44890]', 'zipCode=""', 'q=((zipCode:901-2132) OR (zipCode:20147))' | v2
      v3
      v4 | +| ueiSAM | Denotes Unique Entity Identifier SAM.

      Allows 12-character values, null and also wildcard searches.

      Examples: 'ueiSAM=""', 'ueiSAM=!""', 'ueiSAM=P*X*1', 'q=((ueiSAM:PMC9YQMXJZU1) OR (ueiSAM:PG4XZ77WRC21))' | v2
      v3
      v4 | +| excludingAgencyCode | Allows a partial text, a complete text and null (a string).

      Examples: 'excludingAgencyCode=ICE', 'excludingAgencyCode=DHS-ICE', 'excludingAgencyCode=[AF~HUD~""]', 'q=((excludingAgencyCode:AF) OR (excludingAgencyCode:HUD))' | v2
      v3
      v4 | +| excludingAgencyName | Allows a partial text, a complete text and null (a string).

      This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case

      Examples: 'excludingAgencyName=Of URBAN housing', 'excludingAgencyName=[Geological~Navy]', q=((excludingAgencyName:Geological) OR (excludingAgencyName:Navy)) | v2
      v3
      v4 | +| ctCode | Allows a complete text, null and also wild card searches (a string).

      Examples: 'ctCode=*SDN*', 'ctCode=[AA~""], 'q=((ctCode:AA) OR (ctCode:03-SDN-01))' | v2
      v3
      v4 | +| activationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'activationDate=01/01/2019', 'activationDate=[01/01/2019,05/29/2019]' | v2
      v3
      v4 | +| creationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'creationDate=01/01/2019', 'creationDate=[01/01/2019,05/29/2019]' | v2
      v3
      v4 | +| updateDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'updateDate=01/01/2019', 'updateDate=[01/01/2019,05/29/2019]'' | v2
      v3
      v4 | +| terminationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'terminationDate=01/01/2019', 'terminationDate=[01/01/2019,05/29/2019]' | v2
      v3
      v4 | +| cageCode | Allows a complete value, null and also wild card searches (a string).

      Examples: 'cageCode=0*0', 'cageCode=[0XLE0~1CM51~""]', 'q=((cageCode:0XLE0) OR (cageCode:1CM51))' | v2
      v3
      v4 | +| npi | Allows 1234567890 (this is masked data) and null (a string).

      Examples: 'npi=1234567890', 'npi=""', 'npi=!""' | v2
      v3
      v4 | +| recordStatus | The API returns only Active records.

      Allows a complete text (a string).

      Allowable value is: Active, active

      Example: 'recordStatus=active' | v2
      v3
      v4 | +| page | Denotes a page number.

      Allowable values are 0 to 999.

      Example: 'page=0' | v2
      v3
      v4 | +| size | Denotes the number of records returned per page.

      Allowable values are 1 to 10.

      Example: 'size=1' | v2
      v3
      v4 | +| includeSections | Allows to filter data by sections, exclusionDetails, exclusionIdentification, exclusionActions, exclusionAddress, exclusionOtherInformation and vesselDetails.

      Example: 'includeSections=exclusionOtherInformation,exclusionDetails' | v2
      v3
      v4 | +| format | Allows user to download different file formats(csv and json are allowable values) .

      Example: 'format=csv' | v2
      v3
      v4 | +| emailId | Allows user to get file download links sent to the email address associated to the API key used in the request. Email ID must be provided in conjunction with the format parameter.
      Example: emailId= Yes
      Applicable to non-SAM registrants. | v2
      v3
      v4 | +| ssnOrTinOrEin | Allows a 9-digit value or null.

      This parameter must not be used inside the 'q' parameter.

      This parameter must be used in conjunction with the exclusionName parameter.

      Example: 'ssnOrTinOrEin=123456789' | v2
      v3
      v4 | +| fascsaOrder | Allows Yes and No.

      This parameter accepts either value, in any case.

      Examples: fascsaOrder=Yes, fascsaOrder=yes, fascsaOrder=No, fascsaOrder=no | v4 | **Expected Result** API response consists of Sections, Sub-sections and Tags underneath each of the Sections or Sub-sections. There are a few placeholder elements that return ‘Currently Not Available’ until they are made available in the database. Additionally, -| Section/Sub-section/Tag | Type | Description | Applicable Versions | -|----------------------------------------------------------------------| ---- |---------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------| +| Section/Sub-section/Tag | Type | Description | Applicable Versions | +|----------------------------------------------------------------------| ---- |--------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| | **exclusionDetails** | -| classificationType | string | Classification Type | v2
      v3>
      v4 | -| exclusionType | string | Exclusion Type | v2
      v3>
      v4 | -| exclusionProgram | string | Exclusion Program | v2
      v3>
      v4 | -| excludingAgencyCode | string | Excluding Agency Code | v2
      v3>
      v4 | -| excludingAgencyName | string | Excluding Agency Name | v2
      v3>
      v4 | +| classificationType | string | Classification Type | v2
      v3
      v4 | +| exclusionType | string | Exclusion Type | v2
      v3
      v4 | +| exclusionProgram | string | Exclusion Program | v2
      v3
      v4 | +| excludingAgencyCode | string | Excluding Agency Code | v2
      v3
      v4 | +| excludingAgencyName | string | Excluding Agency Name | v2
      v3
      v4 | | **exclusionIdentification** | -| ueiSAM | string | Unique Entity Identifier SAM | v2
      v3>
      v4 | -| cageCode | string | CAGE Code | v2
      v3>
      v4 | -| npi | string| NPI | v2
      v3>
      v4 | -| prefix | string | Prefix | v2
      v3>
      v4 | -| firstName | string | First Name | v2
      v3>
      v4 | -| middleName | string | Middle Name | v2
      v3>
      v4 | -| lastName | string | Last Name | v2
      v3>
      v4 | -| suffix | string | Suffix | v2
      v3>
      v4 | -| name/entityName | string | Firm Name

      NOTE: This parameter is being renamed. name is in V1 and entityName will be V2. | v2
      v3>
      v4 | -| dnbOpenData | string | DNB Open Data | v2
      v3
      v4 | +| ueiSAM | string | Unique Entity Identifier SAM | v2
      v3
      v4 | +| cageCode | string | CAGE Code | v2
      v3
      v4 | +| npi | string| NPI | v2
      v3
      v4 | +| prefix | string | Prefix | v2
      v3
      v4 | +| firstName | string | First Name | v2
      v3
      v4 | +| middleName | string | Middle Name | v2
      v3
      v4 | +| lastName | string | Last Name | v2
      v3
      v4 | +| suffix | string | Suffix | v2
      v3
      v4 | +| name/entityName | string | Firm Name

      NOTE: This parameter is being renamed. name is in V1 and entityName will be V2. | v2
      v3
      v4 | +| dnbOpenData | string | DNB Open Data | v2
      v3
      v4 | | **exclusionActions --> listOfActions** | -| createDate | string | Create Date | v2
      v3>
      v4 | -| updateDate | string | Update Date | v2
      v3>
      v4 | -| activateDate | string | Activate Date | v2
      v3>
      v4 | -| terminationDate | string | Termination Date | v2
      v3>
      v4 | -| terminationType | string | Termination Type | v2
      v3>
      v4 | -| recordStatus | string | Record Status | v2
      v3>
      v4 | -| **exclusionAddress/exclusionPrimaryAddress** | | NOTE: This section is being renamed. It is exclusionAddress in V1 and will be exclusionPrimaryAddress in V2. | | -| addressLine1 | string | Address Line 1 | v2
      v3>
      v4 | -| addressLine2 | string | Address Line 2 | v2
      v3>
      v4 | -| city | string | Address City | v2
      v3>
      v4 | -| stateOrProvinceCode | string | Address State or Province Code | v2
      v3>
      v4 | -| zipCode | string | Address Zip OR Postal Code | v2
      v3>
      v4 | -| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3>
      v4 | -| countryCode | string | Country Code | v2
      v3>
      v4 | +| createDate | string | Create Date | v2
      v3
      v4 | +| updateDate | string | Update Date | v2
      v3
      v4 | +| activateDate | string | Activate Date | v2
      v3
      v4 | +| terminationDate | string | Termination Date | v2
      v3
      v4 | +| terminationType | string | Termination Type | v2
      v3
      v4 | +| recordStatus | string | Record Status | v2
      v3
      v4 | +| **exclusionAddress/exclusionPrimaryAddress** | | NOTE: This section is being renamed. It is exclusionAddress in V1 and will be exclusionPrimaryAddress in V2. | | +| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | +| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | +| city | string | Address City | v2
      v3
      v4 | +| stateOrProvinceCode | string | Address State or Province Code | v2
      v3
      v4 | +| zipCode | string | Address Zip OR Postal Code | v2
      v3
      v4 | +| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3
      v4 | +| countryCode | string | Country Code | v2
      v3
      v4 | | **exclusionSecondaryAddress** | -| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | -| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | -| city | string | Address City | v2
      v3
      v4 | -| stateOrProvinceCode | string | Address State or Province Code | v2
      v3
      v4 | -| zipCode | string | Address Zip OR Postal Code | v2
      v3
      v4 | -| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3
      v4 | -| countryCode | string | Country Code | v2
      v3
      v4 | +| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | +| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | +| city | string | Address City | v2
      v3
      v4 | +| stateOrProvinceCode | string | Address State or Province Code | v2
      v3
      v4 | +| zipCode | string | Address Zip OR Postal Code | v2
      v3
      v4 | +| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3
      v4 | +| countryCode | string | Country Code | v2
      v3
      v4 | | **exclusionOtherInformation** | -| isFASCSAOrder | string | FASCSA Order Exclusion Indicator | v4 | -| additionalComments | string | Additional Comments | v2
      v3>
      v4 | -| ctCode | string | CT Code | v2
      v3>
      v4 | -| dnbInvestigationStatus/evsInvestigationStatus | string | EVS Investigation Status

      NOTE: This parameter is being renamed. dnbInvestigationStatus is in V1 and evsInvestigationStatus will be V2. | v2
      v3>
      v4 | +| isFASCSAOrder | string | FASCSA Order Exclusion Indicator | v4 | +| additionalComments | string | Additional Comments | v2
      v3
      v4 | +| ctCode | string | CT Code | v2
      v3
      v4 | +| dnbInvestigationStatus/evsInvestigationStatus | string | EVS Investigation Status

      NOTE: This parameter is being renamed. dnbInvestigationStatus is in V1 and evsInvestigationStatus will be V2. | v2
      v3
      v4 | | **exclusionOtherInformation --> references --> referencesList** | -| name/exclusionName | string | Exclusion Name

      NOTE: This parameter is being renamed. name is in V1 and exclusionName will be V2. | v2
      v3>
      v4 | -| type | string | Type | v2
      v3>
      v4 | +| name/exclusionName | string | Exclusion Name

      NOTE: This parameter is being renamed. name is in V1 and exclusionName will be V2. | v2
      v3
      v4 | +| type | string | Type | v2
      v3
      v4 | | **exclusionOtherInformation --> moreLocations** | -| exclusionName | string | Exclusion Name | v2
      v3
      v4 | -| duns | string | DUNS | v2 | -| ueiSAM | string | ueiSAM | v3
      v4 | -| cageCode | string | CAGE Code | v2
      v3
      v4 | -| npi | string | NPI | v2
      v3
      v4 | +| exclusionName | string | Exclusion Name | v2
      v3
      v4 | +| duns | string | DUNS | v2 | +| ueiSAM | string | ueiSAM | v3
      v4 | +| cageCode | string | CAGE Code | v2
      v3
      v4 | +| npi | string | NPI | v2
      v3
      v4 | | **exclusionOtherInformation --> moreLocations --> primaryAddress** | -| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | -| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | -| city | string | City | v2
      v3
      v4 | -| stateOrProvinceCode | string | State or Province Code | v2
      v3
      v4 | -| zipCode | string | Zip Code | v2
      v3
      v4 | -| zipCodePlus4 | string | Zip Code Plus 4 | v2
      v3
      v4 | -| countryCode | string | Country Code | v2
      v3
      v4 | +| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | +| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | +| city | string | City | v2
      v3
      v4 | +| stateOrProvinceCode | string | State or Province Code | v2
      v3
      v4 | +| zipCode | string | Zip Code | v2
      v3
      v4 | +| zipCodePlus4 | string | Zip Code Plus 4 | v2
      v3
      v4 | +| countryCode | string | Country Code | v2
      v3
      v4 | | **exclusionOtherInformation --> moreLocations --> secondaryAddress** | -| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | -| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | -| city | string | City | v2
      v3
      v4 | -| stateOrProvinceCode | string | State or Province Code | v2
      v3
      v4 | -| zipCode | string | Zip Code | v2
      v3
      v4 | -| zipCodePlus4 | string | Zip Code Plus 4 | v2
      v3
      v4 | -| countryCode | string | Country Code | v2
      v3
      v4 | +| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | +| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | +| city | string | City | v2
      v3
      v4 | +| stateOrProvinceCode | string | State or Province Code | v2
      v3
      v4 | +| zipCode | string | Zip Code | v2
      v3
      v4 | +| zipCodePlus4 | string | Zip Code Plus 4 | v2
      v3
      v4 | +| countryCode | string | Country Code | v2
      v3
      v4 | | **vesselDetails** | -| callSign | string | Call Sign | v2
      v3>
      v4 | -| type | string | Type | v2
      v3>
      v4 | -| tonnage | string | Tonnage | v2
      v3>
      v4 | -| grt | string | GRT | v2
      v3>
      v4 | -| flag | string | Flag | v2
      v3>
      v4 | -| owner | string | Owner | v2
      v3>
      v4 | +| callSign | string | Call Sign | v2
      v3
      v4 | +| type | string | Type | v2
      v3
      v4 | +| tonnage | string | Tonnage | v2
      v3
      v4 | +| grt | string | GRT | v2
      v3
      v4 | +| flag | string | Flag | v2
      v3
      v4 | +| owner | string | Owner | v2
      v3
      v4 | | **vesselDetails --> secondaryAddress** | -| addressLine1 | string | Address Line 1 | v2
      v3>
      v4 Production only | -| addressLine2 | string | Address Line 2 | v2
      v3>
      v4 Production only | -| city | string | Address City | v2
      v3>
      v4 Production only | -| stateOrProvinceCode | string | Address State or Province Code | v2
      v3>
      v4 Production only | -| zipCode | string | Address Zip OR Postal Code | v2
      v3>
      v4 Production only | -| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3>
      v4 Production only | -| countryCode | string | Country Code | v2
      v3>
      v4 Production only | +| addressLine1 | string | Address Line 1 | v2
      v3
      v4 Production only | +| addressLine2 | string | Address Line 2 | v2
      v3
      v4 Production only | +| city | string | Address City | v2
      v3
      v4 Production only | +| stateOrProvinceCode | string | Address State or Province Code | v2
      v3
      v4 Production only | +| zipCode | string | Address Zip OR Postal Code | v2
      v3
      v4 Production only | +| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3
      v4 Production only | +| countryCode | string | Country Code | v2
      v3
      v4 Production only |

      Back to top

      From 5509b31ea8033233500c8b723c51b9fb43b11374 Mon Sep 17 00:00:00 2001 From: Bhargav Boppana Date: Thu, 30 Nov 2023 13:08:53 -0600 Subject: [PATCH 19/19] FASCSA Changes --- _apidocs/exclusions-api.md | 210 ++++++++++++++++++------------------- 1 file changed, 105 insertions(+), 105 deletions(-) diff --git a/_apidocs/exclusions-api.md b/_apidocs/exclusions-api.md index 405965e46..994d989c2 100644 --- a/_apidocs/exclusions-api.md +++ b/_apidocs/exclusions-api.md @@ -100,127 +100,127 @@ Utilizing the Exclusion API as an extract: **Query String Parameters** -| Parameter Name | Description | Applicable Versions | -|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| -| classification | Allows a partial text or a complete text (Individual, Firm, Vessel, Special Entity Designation).

      This parameter can be used inside the 'q' parameter.

      Example: 'classification=Firm', 'classification=!INDIVIDUAL', 'classification=[Vessel~Special]', 'q=((classification:Vessel) OR (classification:Special))' | v2
      v3
      v4 | -| exclusionName | Allows a partial text or a complete text.

      This parameter must not be used inside the 'q' parameter.

      This parameter accepts multi-text values in any order and in any case, and will apply the AND operator between the texts.

      Examples: 'exclusionName=J Roy', 'exclusionName=ROY j' | v2
      v3
      v4 | -| exclusionType | Allows a partial text or a complete text (a string).

      Allowable values are: Ineligible (Proceedings Pending), Ineligible (Proceedings Completed), Prohibition/Restriction and Voluntary Exclusion.

      This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case.

      Examples: 'q=exclusionType:Ineligible (Proceedings Pending)', 'exclusionType=Ineligible PENDING', 'exclusionType=[Pending~Voluntary]' | v2
      v3
      v4 | -| exclusionProgram | Allows a complete text (a string).

      Allowable values are: Reciprocal, NonProcurement and Procurement.

      This parameter can be used inside the 'q' parameter.

      Examples: 'q=((exclusionProgram:Reciprocal) OR (exclusionProgram:Procurement))', 'exclusionProgram=[NonProcurement~RECIPROCAL]', 'exclusionProgram=!NonProcurement' | v2
      v3
      v4 | -| addressLine1 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

      This parameter must not be used inside the 'q' parameter.

      Examples: 'addressLine1=""', 'addressLine1="7th Floor, Buraengdang Building 530-14"'

      NOTE: If addressLine1 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v2
      v3
      v4 | -| addressLine2 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

      This parameter must not be used inside the 'q' parameter.

      Examples: 'addressLine2=""', 'addressLine2="Dapsipri, 5 Dong, Dongdaemun-K"'

      NOTE: If addressLine2 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v2
      v3
      v4 | -| stateProvince | Allows 2-character codes for the USA, names for foreign countries and null (a string).

      Examples: 'stateProvince=AR', 'stateProvince=[VA~MICHOACÁN]', 'stateProvince=""' | v2
      v3
      v4 | -| country | Allows 3-character codes, numerical values and null (a string).

      Examples: 'country=USA' 'country=[RUS~292~mex]', 'country=!""', 'q=((country:RUS) OR (country:292) OR (country:mex))' | v2
      v3
      v4 | -| zipCode | Allows 5-digit values for the USA, any value as it was provided for foreign countries and null (a string).

      Example: 'zipCode=20171', 'zipCode=[901-2132~V3M 5P8~C.P. 44890]', 'zipCode=""', 'q=((zipCode:901-2132) OR (zipCode:20147))' | v2
      v3
      v4 | -| ueiSAM | Denotes Unique Entity Identifier SAM.

      Allows 12-character values, null and also wildcard searches.

      Examples: 'ueiSAM=""', 'ueiSAM=!""', 'ueiSAM=P*X*1', 'q=((ueiSAM:PMC9YQMXJZU1) OR (ueiSAM:PG4XZ77WRC21))' | v2
      v3
      v4 | -| excludingAgencyCode | Allows a partial text, a complete text and null (a string).

      Examples: 'excludingAgencyCode=ICE', 'excludingAgencyCode=DHS-ICE', 'excludingAgencyCode=[AF~HUD~""]', 'q=((excludingAgencyCode:AF) OR (excludingAgencyCode:HUD))' | v2
      v3
      v4 | -| excludingAgencyName | Allows a partial text, a complete text and null (a string).

      This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case

      Examples: 'excludingAgencyName=Of URBAN housing', 'excludingAgencyName=[Geological~Navy]', q=((excludingAgencyName:Geological) OR (excludingAgencyName:Navy)) | v2
      v3
      v4 | -| ctCode | Allows a complete text, null and also wild card searches (a string).

      Examples: 'ctCode=*SDN*', 'ctCode=[AA~""], 'q=((ctCode:AA) OR (ctCode:03-SDN-01))' | v2
      v3
      v4 | -| activationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'activationDate=01/01/2019', 'activationDate=[01/01/2019,05/29/2019]' | v2
      v3
      v4 | -| creationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'creationDate=01/01/2019', 'creationDate=[01/01/2019,05/29/2019]' | v2
      v3
      v4 | -| updateDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'updateDate=01/01/2019', 'updateDate=[01/01/2019,05/29/2019]'' | v2
      v3
      v4 | -| terminationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'terminationDate=01/01/2019', 'terminationDate=[01/01/2019,05/29/2019]' | v2
      v3
      v4 | -| cageCode | Allows a complete value, null and also wild card searches (a string).

      Examples: 'cageCode=0*0', 'cageCode=[0XLE0~1CM51~""]', 'q=((cageCode:0XLE0) OR (cageCode:1CM51))' | v2
      v3
      v4 | -| npi | Allows 1234567890 (this is masked data) and null (a string).

      Examples: 'npi=1234567890', 'npi=""', 'npi=!""' | v2
      v3
      v4 | -| recordStatus | The API returns only Active records.

      Allows a complete text (a string).

      Allowable value is: Active, active

      Example: 'recordStatus=active' | v2
      v3
      v4 | -| page | Denotes a page number.

      Allowable values are 0 to 999.

      Example: 'page=0' | v2
      v3
      v4 | -| size | Denotes the number of records returned per page.

      Allowable values are 1 to 10.

      Example: 'size=1' | v2
      v3
      v4 | -| includeSections | Allows to filter data by sections, exclusionDetails, exclusionIdentification, exclusionActions, exclusionAddress, exclusionOtherInformation and vesselDetails.

      Example: 'includeSections=exclusionOtherInformation,exclusionDetails' | v2
      v3
      v4 | -| format | Allows user to download different file formats(csv and json are allowable values) .

      Example: 'format=csv' | v2
      v3
      v4 | -| emailId | Allows user to get file download links sent to the email address associated to the API key used in the request. Email ID must be provided in conjunction with the format parameter.
      Example: emailId= Yes
      Applicable to non-SAM registrants. | v2
      v3
      v4 | -| ssnOrTinOrEin | Allows a 9-digit value or null.

      This parameter must not be used inside the 'q' parameter.

      This parameter must be used in conjunction with the exclusionName parameter.

      Example: 'ssnOrTinOrEin=123456789' | v2
      v3
      v4 | -| fascsaOrder | Allows Yes and No.

      This parameter accepts either value, in any case.

      Examples: fascsaOrder=Yes, fascsaOrder=yes, fascsaOrder=No, fascsaOrder=no | v4 | +| Parameter Name | Description | Applicable Versions | +|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------| +| classification | Allows a partial text or a complete text (Individual, Firm, Vessel, Special Entity Designation).

      This parameter can be used inside the 'q' parameter.

      Example: 'classification=Firm', 'classification=!INDIVIDUAL', 'classification=[Vessel~Special]', 'q=((classification:Vessel) OR (classification:Special))' | v1
      v2
      v3
      v4 | +| exclusionName | Allows a partial text or a complete text.

      This parameter must not be used inside the 'q' parameter.

      This parameter accepts multi-text values in any order and in any case, and will apply the AND operator between the texts.

      Examples: 'exclusionName=J Roy', 'exclusionName=ROY j' | v1
      v2
      v3
      v4 | +| exclusionType | Allows a partial text or a complete text (a string).

      Allowable values are: Ineligible (Proceedings Pending), Ineligible (Proceedings Completed), Prohibition/Restriction and Voluntary Exclusion.

      This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case.

      Examples: 'q=exclusionType:Ineligible (Proceedings Pending)', 'exclusionType=Ineligible PENDING', 'exclusionType=[Pending~Voluntary]' | v1
      v2
      v3
      v4 | +| exclusionProgram | Allows a complete text (a string).

      Allowable values are: Reciprocal, NonProcurement and Procurement.

      This parameter can be used inside the 'q' parameter.

      Examples: 'q=((exclusionProgram:Reciprocal) OR (exclusionProgram:Procurement))', 'exclusionProgram=[NonProcurement~RECIPROCAL]', 'exclusionProgram=!NonProcurement' | v1
      v2
      v3
      v4 | +| addressLine1 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

      This parameter must not be used inside the 'q' parameter.

      Examples: 'addressLine1=""', 'addressLine1="7th Floor, Buraengdang Building 530-14"'

      NOTE: If addressLine1 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v1
      v2
      v3
      v4 | +| addressLine2 | Mainly used to search Individuals with their address. Allows a partial text, a complete text and null.

      This parameter must not be used inside the 'q' parameter.

      Examples: 'addressLine2=""', 'addressLine2="Dapsipri, 5 Dong, Dongdaemun-K"'

      NOTE: If addressLine2 is used in a request with exclusionName, it must match 85% of an Individual's address in order for the address information to be returned in the response (not case sensitive). | v1
      v2
      v3
      v4 | +| stateProvince | Allows 2-character codes for the USA, names for foreign countries and null (a string).

      Examples: 'stateProvince=AR', 'stateProvince=[VA~MICHOACÁN]', 'stateProvince=""' | v1
      v2
      v3
      v4 | +| country | Allows 3-character codes, numerical values and null (a string).

      Examples: 'country=USA' 'country=[RUS~292~mex]', 'country=!""', 'q=((country:RUS) OR (country:292) OR (country:mex))' | v1
      v2
      v3
      v4 | +| zipCode | Allows 5-digit values for the USA, any value as it was provided for foreign countries and null (a string).

      Example: 'zipCode=20171', 'zipCode=[901-2132~V3M 5P8~C.P. 44890]', 'zipCode=""', 'q=((zipCode:901-2132) OR (zipCode:20147))' | v1
      v2
      v3
      v4 | +| ueiSAM | Denotes Unique Entity Identifier SAM.

      Allows 12-character values, null and also wildcard searches.

      Examples: 'ueiSAM=""', 'ueiSAM=!""', 'ueiSAM=P*X*1', 'q=((ueiSAM:PMC9YQMXJZU1) OR (ueiSAM:PG4XZ77WRC21))' | v1
      v2
      v3
      v4 | +| excludingAgencyCode | Allows a partial text, a complete text and null (a string).

      Examples: 'excludingAgencyCode=ICE', 'excludingAgencyCode=DHS-ICE', 'excludingAgencyCode=[AF~HUD~""]', 'q=((excludingAgencyCode:AF) OR (excludingAgencyCode:HUD))' | v1
      v2
      v3
      v4 | +| excludingAgencyName | Allows a partial text, a complete text and null (a string).

      This parameter can be used inside the 'q' parameter. When not used inside the 'q' parameter, this parameter will apply the AND operator if a multi-text value is provided in any order and in any case

      Examples: 'excludingAgencyName=Of URBAN housing', 'excludingAgencyName=[Geological~Navy]', q=((excludingAgencyName:Geological) OR (excludingAgencyName:Navy)) | v1
      v2
      v3
      v4 | +| ctCode | Allows a complete text, null and also wild card searches (a string).

      Examples: 'ctCode=*SDN*', 'ctCode=[AA~""], 'q=((ctCode:AA) OR (ctCode:03-SDN-01))' | v1
      v2
      v3
      v4 | +| activationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'activationDate=01/01/2019', 'activationDate=[01/01/2019,05/29/2019]' | v1
      v2
      v3
      v4 | +| creationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'creationDate=01/01/2019', 'creationDate=[01/01/2019,05/29/2019]' | v1
      v2
      v3
      v4 | +| updateDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'updateDate=01/01/2019', 'updateDate=[01/01/2019,05/29/2019]'' | v1
      v2
      v3
      v4 | +| terminationDate | Allows a single Date or Date range.
      Formats: MM/DD/YYYY or [MM/DD/YYYY,MM/DD/YYYY]

      Examples: 'terminationDate=01/01/2019', 'terminationDate=[01/01/2019,05/29/2019]' | v1
      v2
      v3
      v4 | +| cageCode | Allows a complete value, null and also wild card searches (a string).

      Examples: 'cageCode=0*0', 'cageCode=[0XLE0~1CM51~""]', 'q=((cageCode:0XLE0) OR (cageCode:1CM51))' | v1
      v2
      v3
      v4 | +| npi | Allows 1234567890 (this is masked data) and null (a string).

      Examples: 'npi=1234567890', 'npi=""', 'npi=!""' | v1
      v2
      v3
      v4 | +| recordStatus | The API returns only Active records.

      Allows a complete text (a string).

      Allowable value is: Active, active

      Example: 'recordStatus=active' | v1
      v2
      v3
      v4 | +| page | Denotes a page number.

      Allowable values are 0 to 999.

      Example: 'page=0' | v1
      v2
      v3
      v4 | +| size | Denotes the number of records returned per page.

      Allowable values are 1 to 10.

      Example: 'size=1' | v1
      v2
      v3
      v4 | +| includeSections | Allows to filter data by sections, exclusionDetails, exclusionIdentification, exclusionActions, exclusionAddress, exclusionOtherInformation and vesselDetails.

      Example: 'includeSections=exclusionOtherInformation,exclusionDetails' | v1
      v2
      v3
      v4 | +| format | Allows user to download different file formats(csv and json are allowable values) .

      Example: 'format=csv' | v1
      v2
      v3
      v4 | +| emailId | Allows user to get file download links sent to the email address associated to the API key used in the request. Email ID must be provided in conjunction with the format parameter.
      Example: emailId= Yes
      Applicable to non-SAM registrants. | v1
      v2
      v3
      v4 | +| ssnOrTinOrEin | Allows a 9-digit value or null.

      This parameter must not be used inside the 'q' parameter.

      This parameter must be used in conjunction with the exclusionName parameter.

      Example: 'ssnOrTinOrEin=123456789' | v1
      v2
      v3
      v4 | +| fascsaOrder | Allows Yes and No.

      This parameter accepts either value, in any case.

      Examples: fascsaOrder=Yes, fascsaOrder=yes, fascsaOrder=No, fascsaOrder=no | v4 | **Expected Result** API response consists of Sections, Sub-sections and Tags underneath each of the Sections or Sub-sections. There are a few placeholder elements that return ‘Currently Not Available’ until they are made available in the database. Additionally, -| Section/Sub-section/Tag | Type | Description | Applicable Versions | -|----------------------------------------------------------------------| ---- |--------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| +| Section/Sub-section/Tag | Type | Description | Applicable Versions | +|----------------------------------------------------------------------| ---- |--------------------------------------------------------------------------------------------------------------------------------------------|----------------------| | **exclusionDetails** | -| classificationType | string | Classification Type | v2
      v3
      v4 | -| exclusionType | string | Exclusion Type | v2
      v3
      v4 | -| exclusionProgram | string | Exclusion Program | v2
      v3
      v4 | -| excludingAgencyCode | string | Excluding Agency Code | v2
      v3
      v4 | -| excludingAgencyName | string | Excluding Agency Name | v2
      v3
      v4 | +| classificationType | string | Classification Type | v1
      v2
      v3
      v4 | +| exclusionType | string | Exclusion Type | v1
      v2
      v3
      v4 | +| exclusionProgram | string | Exclusion Program | v1
      v2
      v3
      v4 | +| excludingAgencyCode | string | Excluding Agency Code | v1
      v2
      v3
      v4 | +| excludingAgencyName | string | Excluding Agency Name | v1
      v2
      v3
      v4 | | **exclusionIdentification** | -| ueiSAM | string | Unique Entity Identifier SAM | v2
      v3
      v4 | -| cageCode | string | CAGE Code | v2
      v3
      v4 | -| npi | string| NPI | v2
      v3
      v4 | -| prefix | string | Prefix | v2
      v3
      v4 | -| firstName | string | First Name | v2
      v3
      v4 | -| middleName | string | Middle Name | v2
      v3
      v4 | -| lastName | string | Last Name | v2
      v3
      v4 | -| suffix | string | Suffix | v2
      v3
      v4 | -| name/entityName | string | Firm Name

      NOTE: This parameter is being renamed. name is in V1 and entityName will be V2. | v2
      v3
      v4 | -| dnbOpenData | string | DNB Open Data | v2
      v3
      v4 | +| ueiSAM | string | Unique Entity Identifier SAM | v1
      v2
      v3
      v4 | +| cageCode | string | CAGE Code | v1
      v2
      v3
      v4 | +| npi | string| NPI | v1
      v2
      v3
      v4 | +| prefix | string | Prefix | v1
      v2
      v3
      v4 | +| firstName | string | First Name | v1
      v2
      v3
      v4 | +| middleName | string | Middle Name | v1
      v2
      v3
      v4 | +| lastName | string | Last Name | v1
      v2
      v3
      v4 | +| suffix | string | Suffix | v1
      v2
      v3
      v4 | +| name/entityName | string | Firm Name

      NOTE: This parameter is being renamed. name is in V1 and entityName will be V2. | v1
      v2
      v3
      v4 | +| dnbOpenData | string | DNB Open Data | v2
      v3
      v4 | | **exclusionActions --> listOfActions** | -| createDate | string | Create Date | v2
      v3
      v4 | -| updateDate | string | Update Date | v2
      v3
      v4 | -| activateDate | string | Activate Date | v2
      v3
      v4 | -| terminationDate | string | Termination Date | v2
      v3
      v4 | -| terminationType | string | Termination Type | v2
      v3
      v4 | -| recordStatus | string | Record Status | v2
      v3
      v4 | -| **exclusionAddress/exclusionPrimaryAddress** | | NOTE: This section is being renamed. It is exclusionAddress in V1 and will be exclusionPrimaryAddress in V2. | | -| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | -| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | -| city | string | Address City | v2
      v3
      v4 | -| stateOrProvinceCode | string | Address State or Province Code | v2
      v3
      v4 | -| zipCode | string | Address Zip OR Postal Code | v2
      v3
      v4 | -| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3
      v4 | -| countryCode | string | Country Code | v2
      v3
      v4 | +| createDate | string | Create Date | v1
      v2
      v3
      v4 | +| updateDate | string | Update Date | v1
      v2
      v3
      v4 | +| activateDate | string | Activate Date | v1
      v2
      v3
      v4 | +| terminationDate | string | Termination Date | v1
      v2
      v3
      v4 | +| terminationType | string | Termination Type | v1
      v2
      v3
      v4 | +| recordStatus | string | Record Status | v1
      v2
      v3
      v4 | +| **exclusionAddress/exclusionPrimaryAddress** | | NOTE: This section is being renamed. It is exclusionAddress in V1 and will be exclusionPrimaryAddress in V2. | | +| addressLine1 | string | Address Line 1 | v1
      v2
      v3
      v4 | +| addressLine2 | string | Address Line 2 | v1
      v2
      v3
      v4 | +| city | string | Address City | v1
      v2
      v3
      v4 | +| stateOrProvinceCode | string | Address State or Province Code | v1
      v2
      v3
      v4 | +| zipCode | string | Address Zip OR Postal Code | v1
      v2
      v3
      v4 | +| zipCodePlus4 | string | Address Zip Plus 4 | v1
      v2
      v3
      v4 | +| countryCode | string | Country Code | v1
      v2
      v3
      v4 | | **exclusionSecondaryAddress** | -| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | -| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | -| city | string | Address City | v2
      v3
      v4 | -| stateOrProvinceCode | string | Address State or Province Code | v2
      v3
      v4 | -| zipCode | string | Address Zip OR Postal Code | v2
      v3
      v4 | -| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3
      v4 | -| countryCode | string | Country Code | v2
      v3
      v4 | +| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | +| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | +| city | string | Address City | v2
      v3
      v4 | +| stateOrProvinceCode | string | Address State or Province Code | v2
      v3
      v4 | +| zipCode | string | Address Zip OR Postal Code | v2
      v3
      v4 | +| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3
      v4 | +| countryCode | string | Country Code | v2
      v3
      v4 | | **exclusionOtherInformation** | -| isFASCSAOrder | string | FASCSA Order Exclusion Indicator | v4 | -| additionalComments | string | Additional Comments | v2
      v3
      v4 | -| ctCode | string | CT Code | v2
      v3
      v4 | -| dnbInvestigationStatus/evsInvestigationStatus | string | EVS Investigation Status

      NOTE: This parameter is being renamed. dnbInvestigationStatus is in V1 and evsInvestigationStatus will be V2. | v2
      v3
      v4 | +| isFASCSAOrder | string | FASCSA Order Exclusion Indicator | v4 | +| additionalComments | string | Additional Comments | v1
      v2
      v3
      v4 | +| ctCode | string | CT Code | v1
      v2
      v3
      v4 | +| dnbInvestigationStatus/evsInvestigationStatus | string | EVS Investigation Status

      NOTE: This parameter is being renamed. dnbInvestigationStatus is in V1 and evsInvestigationStatus will be V2. | v1
      v2
      v3
      v4 | | **exclusionOtherInformation --> references --> referencesList** | -| name/exclusionName | string | Exclusion Name

      NOTE: This parameter is being renamed. name is in V1 and exclusionName will be V2. | v2
      v3
      v4 | -| type | string | Type | v2
      v3
      v4 | +| name/exclusionName | string | Exclusion Name

      NOTE: This parameter is being renamed. name is in V1 and exclusionName will be V2. | v1
      v2
      v3
      v4 | +| type | string | Type | v1
      v2
      v3
      v4 | | **exclusionOtherInformation --> moreLocations** | -| exclusionName | string | Exclusion Name | v2
      v3
      v4 | -| duns | string | DUNS | v2 | -| ueiSAM | string | ueiSAM | v3
      v4 | -| cageCode | string | CAGE Code | v2
      v3
      v4 | -| npi | string | NPI | v2
      v3
      v4 | +| exclusionName | string | Exclusion Name | v2
      v3
      v4 | +| duns | string | DUNS | v2 | +| ueiSAM | string | ueiSAM | v3
      v4 | +| cageCode | string | CAGE Code | v2
      v3
      v4 | +| npi | string | NPI | v2
      v3
      v4 | | **exclusionOtherInformation --> moreLocations --> primaryAddress** | -| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | -| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | -| city | string | City | v2
      v3
      v4 | -| stateOrProvinceCode | string | State or Province Code | v2
      v3
      v4 | -| zipCode | string | Zip Code | v2
      v3
      v4 | -| zipCodePlus4 | string | Zip Code Plus 4 | v2
      v3
      v4 | -| countryCode | string | Country Code | v2
      v3
      v4 | +| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | +| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | +| city | string | City | v2
      v3
      v4 | +| stateOrProvinceCode | string | State or Province Code | v2
      v3
      v4 | +| zipCode | string | Zip Code | v2
      v3
      v4 | +| zipCodePlus4 | string | Zip Code Plus 4 | v2
      v3
      v4 | +| countryCode | string | Country Code | v2
      v3
      v4 | | **exclusionOtherInformation --> moreLocations --> secondaryAddress** | -| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | -| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | -| city | string | City | v2
      v3
      v4 | -| stateOrProvinceCode | string | State or Province Code | v2
      v3
      v4 | -| zipCode | string | Zip Code | v2
      v3
      v4 | -| zipCodePlus4 | string | Zip Code Plus 4 | v2
      v3
      v4 | -| countryCode | string | Country Code | v2
      v3
      v4 | +| addressLine1 | string | Address Line 1 | v2
      v3
      v4 | +| addressLine2 | string | Address Line 2 | v2
      v3
      v4 | +| city | string | City | v2
      v3
      v4 | +| stateOrProvinceCode | string | State or Province Code | v2
      v3
      v4 | +| zipCode | string | Zip Code | v2
      v3
      v4 | +| zipCodePlus4 | string | Zip Code Plus 4 | v2
      v3
      v4 | +| countryCode | string | Country Code | v2
      v3
      v4 | | **vesselDetails** | -| callSign | string | Call Sign | v2
      v3
      v4 | -| type | string | Type | v2
      v3
      v4 | -| tonnage | string | Tonnage | v2
      v3
      v4 | -| grt | string | GRT | v2
      v3
      v4 | -| flag | string | Flag | v2
      v3
      v4 | -| owner | string | Owner | v2
      v3
      v4 | +| callSign | string | Call Sign | v1
      v2
      v3
      v4 | +| type | string | Type | v1
      v2
      v3
      v4 | +| tonnage | string | Tonnage | v1
      v2
      v3
      v4 | +| grt | string | GRT | v1
      v2
      v3
      v4 | +| flag | string | Flag | v1
      v2
      v3
      v4 | +| owner | string | Owner | v1
      v2
      v3
      v4 | | **vesselDetails --> secondaryAddress** | -| addressLine1 | string | Address Line 1 | v2
      v3
      v4 Production only | -| addressLine2 | string | Address Line 2 | v2
      v3
      v4 Production only | -| city | string | Address City | v2
      v3
      v4 Production only | -| stateOrProvinceCode | string | Address State or Province Code | v2
      v3
      v4 Production only | -| zipCode | string | Address Zip OR Postal Code | v2
      v3
      v4 Production only | -| zipCodePlus4 | string | Address Zip Plus 4 | v2
      v3
      v4 Production only | -| countryCode | string | Country Code | v2
      v3
      v4 Production only | +| addressLine1 | string | Address Line 1 | v1
      v2
      v3
      v4 Production only | +| addressLine2 | string | Address Line 2 | v1
      v2
      v3
      v4 Production only | +| city | string | Address City | v1
      v2
      v3
      v4 Production only | +| stateOrProvinceCode | string | Address State or Province Code | v1
      v2
      v3
      v4 Production only | +| zipCode | string | Address Zip OR Postal Code | v1
      v2
      v3
      v4 Production only | +| zipCodePlus4 | string | Address Zip Plus 4 | v1
      v2
      v3
      v4 Production only | +| countryCode | string | Country Code | v1
      v2
      v3
      v4 Production only |

      Back to top