

# PutProcurementPortalPreference


 * **This feature API is subject to changing at any time. For more information, see the [AWS Service Terms](https://aws.amazon.com/service-terms/) (Betas and Previews).** * 

Updates an existing procurement portal preference configuration. This operation can modify settings for e-invoice delivery and purchase order retrieval.

## Request Syntax


```
{
   "Contacts": [ 
      { 
         "Email": "string",
         "Name": "string"
      }
   ],
   "EinvoiceDeliveryEnabled": boolean,
   "EinvoiceDeliveryPreference": { 
      "ConnectionTestingMethod": "string",
      "EinvoiceDeliveryActivationDate": number,
      "EinvoiceDeliveryAttachmentTypes": [ "string" ],
      "EinvoiceDeliveryDocumentTypes": [ "string" ],
      "Protocol": "string",
      "PurchaseOrderDataSources": [ 
         { 
            "EinvoiceDeliveryDocumentType": "string",
            "PurchaseOrderDataSourceType": "string"
         }
      ]
   },
   "ProcurementPortalInstanceEndpoint": "string",
   "ProcurementPortalPreferenceArn": "string",
   "ProcurementPortalSharedSecret": "string",
   "PurchaseOrderRetrievalEnabled": boolean,
   "Selector": { 
      "InvoiceUnitArns": [ "string" ],
      "SellerOfRecords": [ "string" ]
   },
   "TestEnvPreference": { 
      "BuyerDomain": "string",
      "BuyerIdentifier": "string",
      "ProcurementPortalInstanceEndpoint": "string",
      "ProcurementPortalSharedSecret": "string",
      "SupplierDomain": "string",
      "SupplierIdentifier": "string"
   }
}
```

## Request Parameters


For information about the parameters that are common to all actions, see [Common Parameters](CommonParameters.md).

The request accepts the following data in JSON format.

 ** [Contacts](#API_invoicing_PutProcurementPortalPreference_RequestSyntax) **   <a name="awscostmanagement-invoicing_PutProcurementPortalPreference-request-Contacts"></a>
Updated list of contact information for portal administrators and technical contacts.  
Type: Array of [Contact](API_invoicing_Contact.md) objects  
Array Members: Fixed number of 1 item.  
Required: Yes

 ** [EinvoiceDeliveryEnabled](#API_invoicing_PutProcurementPortalPreference_RequestSyntax) **   <a name="awscostmanagement-invoicing_PutProcurementPortalPreference-request-EinvoiceDeliveryEnabled"></a>
Updated flag indicating whether e-invoice delivery is enabled for this procurement portal preference.  
Type: Boolean  
Required: Yes

 ** [EinvoiceDeliveryPreference](#API_invoicing_PutProcurementPortalPreference_RequestSyntax) **   <a name="awscostmanagement-invoicing_PutProcurementPortalPreference-request-EinvoiceDeliveryPreference"></a>
Updated e-invoice delivery configuration including document types, attachment types, and customization settings for the portal.  
Type: [EinvoiceDeliveryPreference](API_invoicing_EinvoiceDeliveryPreference.md) object  
Required: No

 ** [ProcurementPortalInstanceEndpoint](#API_invoicing_PutProcurementPortalPreference_RequestSyntax) **   <a name="awscostmanagement-invoicing_PutProcurementPortalPreference-request-ProcurementPortalInstanceEndpoint"></a>
The updated endpoint URL where e-invoices will be delivered to the procurement portal. Must be a valid HTTPS URL.  
Type: String  
Length Constraints: Minimum length of 0. Maximum length of 1024.  
Pattern: `\S+`   
Required: No

 ** [ProcurementPortalPreferenceArn](#API_invoicing_PutProcurementPortalPreference_RequestSyntax) **   <a name="awscostmanagement-invoicing_PutProcurementPortalPreference-request-ProcurementPortalPreferenceArn"></a>
The Amazon Resource Name (ARN) of the procurement portal preference to update.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 256.  
Pattern: `arn:aws:invoicing::[0-9]{12}:procurement-portal-preference/[-a-zA-Z0-9]+`   
Required: Yes

 ** [ProcurementPortalSharedSecret](#API_invoicing_PutProcurementPortalPreference_RequestSyntax) **   <a name="awscostmanagement-invoicing_PutProcurementPortalPreference-request-ProcurementPortalSharedSecret"></a>
The updated shared secret or authentication credential for the procurement portal. This value must be encrypted at rest.  
Type: String  
Length Constraints: Minimum length of 0. Maximum length of 1024.  
Pattern: `\S+`   
Required: No

 ** [PurchaseOrderRetrievalEnabled](#API_invoicing_PutProcurementPortalPreference_RequestSyntax) **   <a name="awscostmanagement-invoicing_PutProcurementPortalPreference-request-PurchaseOrderRetrievalEnabled"></a>
Updated flag indicating whether purchase order retrieval is enabled for this procurement portal preference.  
Type: Boolean  
Required: Yes

 ** [Selector](#API_invoicing_PutProcurementPortalPreference_RequestSyntax) **   <a name="awscostmanagement-invoicing_PutProcurementPortalPreference-request-Selector"></a>
Specifies criteria for selecting which invoices should be processed using a particular procurement portal preference.  
Type: [ProcurementPortalPreferenceSelector](API_invoicing_ProcurementPortalPreferenceSelector.md) object  
Required: No

 ** [TestEnvPreference](#API_invoicing_PutProcurementPortalPreference_RequestSyntax) **   <a name="awscostmanagement-invoicing_PutProcurementPortalPreference-request-TestEnvPreference"></a>
Updated configuration settings for the test environment of the procurement portal.  
Type: [TestEnvPreferenceInput](API_invoicing_TestEnvPreferenceInput.md) object  
Required: No

## Response Syntax


```
{
   "ProcurementPortalPreferenceArn": "string"
}
```

## Response Elements


If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

 ** [ProcurementPortalPreferenceArn](#API_invoicing_PutProcurementPortalPreference_ResponseSyntax) **   <a name="awscostmanagement-invoicing_PutProcurementPortalPreference-response-ProcurementPortalPreferenceArn"></a>
The Amazon Resource Name (ARN) of the updated procurement portal preference.  
Type: String  
Length Constraints: Minimum length of 1. Maximum length of 256.  
Pattern: `arn:aws:invoicing::[0-9]{12}:procurement-portal-preference/[-a-zA-Z0-9]+` 

## Errors


For information about the errors that are common to all actions, see [Common Error Types](CommonErrors.md).

 ** AccessDeniedException **   
You don't have sufficient access to perform this action.    
 ** resourceName **   
You don't have sufficient access to perform this action. 
HTTP Status Code: 400

 ** ConflictException **   
The request could not be completed due to a conflict with the current state of the resource. This exception occurs when a concurrent modification is detected during an update operation, or when attempting to create a resource that already exists.    
 ** resourceId **   
The identifier of the resource that caused the conflict.  
 ** resourceType **   
The type of resource that caused the conflict.
HTTP Status Code: 400

 ** InternalServerException **   
The processing request failed because of an unknown error, exception, or failure.     
 ** retryAfterSeconds **   
The processing request failed because of an unknown error, exception, or failure.
HTTP Status Code: 500

 ** ResourceNotFoundException **   
The resource could not be found.     
 ** resourceName **   
The resource could not be found.
HTTP Status Code: 400

 ** ServiceQuotaExceededException **   
The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.   
HTTP Status Code: 400

 ** ThrottlingException **   
The request was denied due to request throttling.  
HTTP Status Code: 400

 ** ValidationException **   
 The input fails to satisfy the constraints specified by an AWS service.     
 ** fieldList **   
 The input fails to satisfy the constraints specified by an AWS service.   
 ** reason **   
You don't have sufficient access to perform this action.   
 ** resourceName **   
You don't have sufficient access to perform this action. 
HTTP Status Code: 400

## See Also


For more information about using this API in one of the language-specific AWS SDKs, see the following:
+  [AWS Command Line Interface V2](https://docs.aws.amazon.com/goto/cli2/invoicing-2024-12-01/PutProcurementPortalPreference) 
+  [AWS SDK for .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/invoicing-2024-12-01/PutProcurementPortalPreference) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/invoicing-2024-12-01/PutProcurementPortalPreference) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/invoicing-2024-12-01/PutProcurementPortalPreference) 
+  [AWS SDK for Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/invoicing-2024-12-01/PutProcurementPortalPreference) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/invoicing-2024-12-01/PutProcurementPortalPreference) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/invoicing-2024-12-01/PutProcurementPortalPreference) 
+  [AWS SDK for PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/invoicing-2024-12-01/PutProcurementPortalPreference) 
+  [AWS SDK for Python](https://docs.aws.amazon.com/goto/boto3/invoicing-2024-12-01/PutProcurementPortalPreference) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/invoicing-2024-12-01/PutProcurementPortalPreference) 