2026/03/31 - AWS Marketplace Agreement Service - 8 new api methods
Changes This release adds 8 new APIs for AWS Marketplace sellers. 4 APIs for Cancellations (Send, List, Get, Cancel action on AgreementCancellationRequest), 3 APIs for Billing Adjustments (BatchCreate, List, Get action on BillingAdjustmentRequest), and 1 API to List Invoices (ListAgreementInvoiceLineItems)
Lists billing adjustment requests for a specific agreement. Sellers (proposers) can use this operation to view all billing adjustment requests associated with an agreement.
See also: AWS API Documentation
Request Syntax
client.list_billing_adjustment_requests(
agreementId='string',
status='PENDING'|'VALIDATION_FAILED'|'COMPLETED',
createdAfter=datetime(2015, 1, 1),
createdBefore=datetime(2015, 1, 1),
maxResults=123,
catalog='string',
agreementType='string',
nextToken='string'
)
string
The unique identifier of the agreement to list billing adjustment requests for.
string
An optional filter to return billing adjustment requests with the specified status.
datetime
An optional filter to return billing adjustment requests created after the specified POSIX timestamp (Unix epoch seconds).
datetime
An optional filter to return billing adjustment requests created before the specified POSIX timestamp (Unix epoch seconds).
integer
The maximum number of billing adjustment requests to return in the response.
string
An optional filter to return billing adjustment requests by catalog (e.g., AWSMarketplace).
string
An optional filter to return billing adjustment requests by agreement type (e.g., PurchaseAgreement).
string
A token to specify where to start pagination. Use the nextToken value from a previous response to retrieve the next page of results.
dict
Response Syntax
{
'nextToken': 'string',
'items': [
{
'billingAdjustmentRequestId': 'string',
'originalInvoiceId': 'string',
'adjustmentAmount': 'string',
'currencyCode': 'string',
'status': 'PENDING'|'VALIDATION_FAILED'|'COMPLETED',
'agreementId': 'string',
'createdAt': datetime(2015, 1, 1),
'updatedAt': datetime(2015, 1, 1),
'agreementType': 'string',
'catalog': 'string'
},
]
}
Response Structure
(dict) --
nextToken (string) --
A token to retrieve the next page of results. If null, there are no more results to retrieve.
items (list) --
An array of BillingAdjustmentSummary objects containing summary information about each billing adjustment request.
(dict) --
Summary view of a billing adjustment request.
billingAdjustmentRequestId (string) --
The unique identifier of the billing adjustment request.
originalInvoiceId (string) --
The identifier of the original invoice being adjusted.
adjustmentAmount (string) --
The adjustment amount as a string representation of a decimal number.
currencyCode (string) --
The currency code for the adjustment amount.
status (string) --
The current status of the billing adjustment request.
agreementId (string) --
The unique identifier of the agreement associated with this billing adjustment request.
createdAt (datetime) --
The date and time when the billing adjustment request was created, as a POSIX timestamp (Unix epoch seconds).
updatedAt (datetime) --
The date and time when the billing adjustment request was last updated, as a POSIX timestamp (Unix epoch seconds).
agreementType (string) --
The type of agreement.
catalog (string) --
The catalog in which the agreement was created.
Lists agreement cancellation requests available to you as a seller or buyer. Both sellers (proposers) and buyers (acceptors) can use this operation to find cancellation requests by specifying their party type and applying optional filters.
See also: AWS API Documentation
Request Syntax
client.list_agreement_cancellation_requests(
partyType='string',
agreementId='string',
status='PENDING_APPROVAL'|'APPROVED'|'REJECTED'|'CANCELLED'|'VALIDATION_FAILED',
agreementType='string',
catalog='string',
maxResults=123,
nextToken='string'
)
string
[REQUIRED]
The party type for the cancellation requests. Required parameter. Use Proposer to list cancellation requests where you are the seller, or Acceptor to list cancellation requests where you are the buyer.
string
An optional parameter to filter cancellation requests for a specific agreement.
string
An optional parameter to filter cancellation requests by status. Valid values include PENDING_APPROVAL, APPROVED, REJECTED, CANCELLED, and VALIDATION_FAILED.
string
An optional parameter to filter cancellation requests by agreement type (e.g., PurchaseAgreement).
string
An optional parameter to filter cancellation requests by catalog (e.g., AWSMarketplace).
integer
The maximum number of cancellation requests to return in the response.
string
A token to specify where to start pagination. Use the nextToken value from a previous response to retrieve the next page of results.
dict
Response Syntax
{
'nextToken': 'string',
'items': [
{
'agreementCancellationRequestId': 'string',
'agreementId': 'string',
'status': 'PENDING_APPROVAL'|'APPROVED'|'REJECTED'|'CANCELLED'|'VALIDATION_FAILED',
'reasonCode': 'INCORRECT_TERMS_ACCEPTED'|'REPLACING_AGREEMENT'|'TEST_AGREEMENT'|'ALTERNATIVE_PROCUREMENT_CHANNEL'|'PRODUCT_DISCONTINUED'|'UNINTENDED_RENEWAL'|'BUYER_DISSATISFACTION'|'OTHER',
'agreementType': 'string',
'catalog': 'string',
'createdAt': datetime(2015, 1, 1),
'updatedAt': datetime(2015, 1, 1)
},
]
}
Response Structure
(dict) --
nextToken (string) --
A token to retrieve the next page of results. If null, there are no more results to retrieve.
items (list) --
An array of AgreementCancellationRequestSummary objects containing summary information about each cancellation request.
(dict) --
Summary view of an agreement cancellation request.
agreementCancellationRequestId (string) --
The unique identifier of the cancellation request.
agreementId (string) --
The unique identifier of the agreement associated with this cancellation request.
status (string) --
The current status of the cancellation request. Possible values include PENDING_APPROVAL, APPROVED, REJECTED, CANCELLED, and VALIDATION_FAILED.
reasonCode (string) --
The reason code provided for the cancellation.
agreementType (string) --
The type of agreement.
catalog (string) --
The catalog in which the agreement was created.
createdAt (datetime) --
The date and time when the cancellation request was created, as a POSIX timestamp (Unix epoch seconds).
updatedAt (datetime) --
The date and time when the cancellation request was last updated, as a POSIX timestamp (Unix epoch seconds).
Retrieves detailed information about a specific billing adjustment request. Sellers (proposers) can use this operation to view the status and details of a billing adjustment request they submitted.
See also: AWS API Documentation
Request Syntax
client.get_billing_adjustment_request(
agreementId='string',
billingAdjustmentRequestId='string'
)
string
[REQUIRED]
The unique identifier of the agreement associated with the billing adjustment request.
string
[REQUIRED]
The unique identifier of the billing adjustment request.
dict
Response Syntax
{
'billingAdjustmentRequestId': 'string',
'agreementId': 'string',
'adjustmentReasonCode': 'INCORRECT_TERMS_ACCEPTED'|'INCORRECT_METERING'|'TEST_ENVIRONMENT_CHARGES'|'ALTERNATIVE_PROCUREMENT_CHANNEL'|'UNINTENDED_RENEWAL'|'BUYER_DISSATISFACTION'|'OTHER',
'description': 'string',
'originalInvoiceId': 'string',
'adjustmentAmount': 'string',
'currencyCode': 'string',
'status': 'PENDING'|'VALIDATION_FAILED'|'COMPLETED',
'statusMessage': 'string',
'createdAt': datetime(2015, 1, 1),
'updatedAt': datetime(2015, 1, 1)
}
Response Structure
(dict) --
billingAdjustmentRequestId (string) --
The unique identifier of the billing adjustment request.
agreementId (string) --
The unique identifier of the agreement associated with this billing adjustment request.
adjustmentReasonCode (string) --
The reason code for the billing adjustment.
description (string) --
The detailed description of the billing adjustment reason, if provided.
originalInvoiceId (string) --
The identifier of the original invoice being adjusted.
adjustmentAmount (string) --
The adjustment amount as a string representation of a decimal number.
currencyCode (string) --
The currency code for the adjustment amount (e.g., USD).
status (string) --
The current status of the billing adjustment request.
statusMessage (string) --
A message providing additional context about the billing adjustment request status. This field is populated only when the status is VALIDATION_FAILED.
createdAt (datetime) --
The date and time when the billing adjustment request was created, as a POSIX timestamp (Unix epoch seconds).
updatedAt (datetime) --
The date and time when the billing adjustment request was last updated, as a POSIX timestamp (Unix epoch seconds).
Allows sellers (proposers) to retrieve aggregated billing data from AWS Marketplace agreements using flexible grouping. Supports invoice-level aggregation with filtering by billing period, invoice type, and issued date.
See also: AWS API Documentation
Request Syntax
client.list_agreement_invoice_line_items(
agreementId='string',
groupBy='INVOICE_ID',
invoiceId='string',
invoiceType='INVOICE'|'CREDIT_MEMO',
invoiceBillingPeriod={
'month': 123,
'year': 123
},
beforeIssuedTime=datetime(2015, 1, 1),
afterIssuedTime=datetime(2015, 1, 1),
maxResults=123,
nextToken='string'
)
string
[REQUIRED]
The unique identifier of the agreement.
string
[REQUIRED]
Specifies a grouping strategy for line items. Currently supports INVOICE_ID.
string
An optional filter to retrieve invoice information for a specific invoice.
string
An optional filter for the type of invoice. Valid values are INVOICE and CREDIT_MEMO.
dict
An optional filter for the billing period associated with the invoice.
month (integer) -- [REQUIRED]
The billing period month. Valid range: 1-12.
year (integer) -- [REQUIRED]
The billing period year.
datetime
An optional filter for invoices issued before the specified timestamp.
datetime
An optional filter for invoices issued after the specified timestamp.
integer
The maximum number of results to return in the response.
string
A token to specify where to start pagination.
dict
Response Syntax
{
'agreementInvoiceLineItemGroupSummaries': [
{
'agreementId': 'string',
'invoiceId': 'string',
'pricingCurrencyAmount': {
'amount': 'string',
'maxAdjustmentAmount': 'string',
'currencyCode': 'string'
},
'invoiceBillingPeriod': {
'month': 123,
'year': 123
},
'issuedTime': datetime(2015, 1, 1),
'invoiceType': 'INVOICE'|'CREDIT_MEMO',
'invoicingEntity': {
'legalName': 'string',
'branchName': 'string'
}
},
],
'nextToken': 'string'
}
Response Structure
(dict) --
agreementInvoiceLineItemGroupSummaries (list) --
A list of grouped billing data objects.
(dict) --
A summary of grouped billing data for an agreement invoice line item.
agreementId (string) --
The unique identifier of the agreement.
invoiceId (string) --
The identifier of the invoice for this group.
pricingCurrencyAmount (dict) --
Monetary amounts for this invoice group.
amount (string) --
The monetary amount before tax.
maxAdjustmentAmount (string) --
The maximum refundable amount as a string representation of a decimal number.
currencyCode (string) --
The 3-letter ISO 4217 currency code (e.g., USD, EUR, JPY).
invoiceBillingPeriod (dict) --
The billing period associated with this group.
month (integer) --
The billing period month. Valid range: 1-12.
year (integer) --
The billing period year.
issuedTime (datetime) --
The timestamp when the invoice containing this group was created.
invoiceType (string) --
The type of invoice. Valid values are INVOICE and CREDIT_MEMO.
invoicingEntity (dict) --
The entity that issues the invoice.
legalName (string) --
The legal name of the invoicing entity.
branchName (string) --
The branch name of the invoicing entity.
nextToken (string) --
A token to retrieve the next page of results. If not present, there are no more results available.
Retrieves detailed information about a specific agreement cancellation request. Both sellers (proposers) and buyers (acceptors) can use this operation to view cancellation requests associated with their agreements.
See also: AWS API Documentation
Request Syntax
client.get_agreement_cancellation_request(
agreementCancellationRequestId='string',
agreementId='string'
)
string
[REQUIRED]
The unique identifier of the cancellation request.
string
[REQUIRED]
The unique identifier of the agreement associated with the cancellation request.
dict
Response Syntax
{
'agreementCancellationRequestId': 'string',
'agreementId': 'string',
'reasonCode': 'INCORRECT_TERMS_ACCEPTED'|'REPLACING_AGREEMENT'|'TEST_AGREEMENT'|'ALTERNATIVE_PROCUREMENT_CHANNEL'|'PRODUCT_DISCONTINUED'|'UNINTENDED_RENEWAL'|'BUYER_DISSATISFACTION'|'OTHER',
'description': 'string',
'status': 'PENDING_APPROVAL'|'APPROVED'|'REJECTED'|'CANCELLED'|'VALIDATION_FAILED',
'statusMessage': 'string',
'createdAt': datetime(2015, 1, 1),
'updatedAt': datetime(2015, 1, 1)
}
Response Structure
(dict) --
agreementCancellationRequestId (string) --
The unique identifier of the cancellation request.
agreementId (string) --
The unique identifier of the agreement associated with this cancellation request. Use DescribeAgreement to retrieve full agreement details.
reasonCode (string) --
The reason code provided for the cancellation.
description (string) --
The detailed description of the cancellation reason, if provided.
status (string) --
The current status of the cancellation request. Possible values include PENDING_APPROVAL, APPROVED, REJECTED, CANCELLED, and VALIDATION_FAILED.
statusMessage (string) --
A message providing additional context about the cancellation request status.
createdAt (datetime) --
The date and time when the cancellation request was created, as a POSIX timestamp (Unix epoch seconds).
updatedAt (datetime) --
The date and time when the cancellation request was last updated, as a POSIX timestamp (Unix epoch seconds).
Allows sellers (proposers) to submit billing adjustment requests for one or more invoices within an agreement. Each entry in the batch specifies an invoice and the adjustment amount. The operation returns successfully created adjustment request IDs and any errors for entries that failed validation.
See also: AWS API Documentation
Request Syntax
client.batch_create_billing_adjustment_request(
billingAdjustmentRequestEntries=[
{
'agreementId': 'string',
'originalInvoiceId': 'string',
'adjustmentAmount': 'string',
'currencyCode': 'string',
'adjustmentReasonCode': 'INCORRECT_TERMS_ACCEPTED'|'INCORRECT_METERING'|'TEST_ENVIRONMENT_CHARGES'|'ALTERNATIVE_PROCUREMENT_CHANNEL'|'UNINTENDED_RENEWAL'|'BUYER_DISSATISFACTION'|'OTHER',
'description': 'string',
'clientToken': 'string'
},
]
)
list
[REQUIRED]
A list of billing adjustment request entries. Each entry specifies the invoice and adjustment details.
(dict) --
An individual entry in a batch billing adjustment request, specifying the invoice and adjustment details.
agreementId (string) -- [REQUIRED]
The unique identifier of the agreement associated with the invoice.
originalInvoiceId (string) -- [REQUIRED]
The identifier of the original invoice to adjust.
adjustmentAmount (string) -- [REQUIRED]
The adjustment amount as a string representation of a decimal number in the currency of the invoice.
currencyCode (string) -- [REQUIRED]
The 3-letter ISO 4217 currency code for the adjustment amount (e.g., USD).
adjustmentReasonCode (string) -- [REQUIRED]
The reason code for the billing adjustment. Valid values include INCORRECT_TERMS_ACCEPTED, INCORRECT_METERING, TEST_ENVIRONMENT_CHARGES, ALTERNATIVE_PROCUREMENT_CHANNEL, UNINTENDED_RENEWAL, BUYER_DISSATISFACTION, and OTHER.
description (string) --
An optional detailed description of the adjustment reason.
clientToken (string) -- [REQUIRED]
A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
dict
Response Syntax
{
'items': [
{
'billingAdjustmentRequestId': 'string',
'clientToken': 'string'
},
],
'errors': [
{
'code': 'CONFLICT_EXCEPTION'|'VALIDATION_EXCEPTION'|'RESOURCE_NOT_FOUND_EXCEPTION'|'INTERNAL_FAILURE',
'message': 'string',
'clientToken': 'string'
},
]
}
Response Structure
(dict) --
items (list) --
A list of successfully created billing adjustment items, each containing the billingAdjustmentRequestId and clientToken.
(dict) --
A successfully created billing adjustment request item.
billingAdjustmentRequestId (string) --
The unique identifier of the created billing adjustment request.
clientToken (string) --
The client token provided in the corresponding request entry.
errors (list) --
A list of errors for entries that failed validation, each containing the clientToken, error code, and message.
(dict) --
An error for a billing adjustment request entry that failed validation.
code (string) --
The error code indicating the reason for failure.
message (string) --
A human-readable message describing the error.
clientToken (string) --
The client token of the request entry that failed.
Allows sellers (proposers) to submit a cancellation request for an active agreement. The cancellation request is created in PENDING_APPROVAL status, at which point the buyer can review it.
See also: AWS API Documentation
Request Syntax
client.send_agreement_cancellation_request(
agreementId='string',
reasonCode='INCORRECT_TERMS_ACCEPTED'|'REPLACING_AGREEMENT'|'TEST_AGREEMENT'|'ALTERNATIVE_PROCUREMENT_CHANNEL'|'PRODUCT_DISCONTINUED'|'UNINTENDED_RENEWAL'|'BUYER_DISSATISFACTION'|'OTHER',
clientToken='string',
description='string'
)
string
[REQUIRED]
The unique identifier of the agreement for which the cancellation request is being submitted.
string
[REQUIRED]
The reason code for the cancellation request. Valid values include INCORRECT_TERMS_ACCEPTED, REPLACING_AGREEMENT, TEST_AGREEMENT, ALTERNATIVE_PROCUREMENT_CHANNEL, PRODUCT_DISCONTINUED, UNINTENDED_RENEWAL, BUYER_DISSATISFACTION, and OTHER.
string
A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
This field is autopopulated if not provided.
string
An optional detailed description of the cancellation reason (1-2000 characters).
dict
Response Syntax
{
'agreementId': 'string',
'agreementCancellationRequestId': 'string',
'status': 'PENDING_APPROVAL'|'APPROVED'|'REJECTED'|'CANCELLED'|'VALIDATION_FAILED',
'reasonCode': 'INCORRECT_TERMS_ACCEPTED'|'REPLACING_AGREEMENT'|'TEST_AGREEMENT'|'ALTERNATIVE_PROCUREMENT_CHANNEL'|'PRODUCT_DISCONTINUED'|'UNINTENDED_RENEWAL'|'BUYER_DISSATISFACTION'|'OTHER',
'description': 'string',
'createdAt': datetime(2015, 1, 1),
'updatedAt': datetime(2015, 1, 1)
}
Response Structure
(dict) --
agreementId (string) --
The unique identifier of the agreement.
agreementCancellationRequestId (string) --
The unique identifier for the created cancellation request.
status (string) --
The current status of the cancellation request. The initial status is PENDING_APPROVAL.
reasonCode (string) --
The reason code provided for the cancellation.
description (string) --
The detailed description of the cancellation reason, if provided.
createdAt (datetime) --
The time when the cancellation request was created, as a POSIX timestamp (Unix epoch seconds).
updatedAt (datetime) --
The time when the cancellation request was last updated, as a POSIX timestamp (Unix epoch seconds).
Allows sellers (proposers) to withdraw an existing agreement cancellation request that is in a pending state. Once cancelled, the cancellation request transitions to CANCELLED status and can no longer be approved or rejected by the buyer.
See also: AWS API Documentation
Request Syntax
client.cancel_agreement_cancellation_request(
agreementId='string',
agreementCancellationRequestId='string',
cancellationReason='string'
)
string
[REQUIRED]
The unique identifier of the agreement associated with the cancellation request.
string
[REQUIRED]
The unique identifier of the cancellation request to cancel.
string
[REQUIRED]
A required message explaining why the cancellation request is being withdrawn (1-2000 characters).
dict
Response Syntax
{
'agreementCancellationRequestId': 'string',
'agreementId': 'string',
'reasonCode': 'INCORRECT_TERMS_ACCEPTED'|'REPLACING_AGREEMENT'|'TEST_AGREEMENT'|'ALTERNATIVE_PROCUREMENT_CHANNEL'|'PRODUCT_DISCONTINUED'|'UNINTENDED_RENEWAL'|'BUYER_DISSATISFACTION'|'OTHER',
'description': 'string',
'status': 'PENDING_APPROVAL'|'APPROVED'|'REJECTED'|'CANCELLED'|'VALIDATION_FAILED',
'statusMessage': 'string',
'createdAt': datetime(2015, 1, 1),
'updatedAt': datetime(2015, 1, 1)
}
Response Structure
(dict) --
agreementCancellationRequestId (string) --
The unique identifier of the cancelled cancellation request.
agreementId (string) --
The unique identifier of the agreement associated with this cancellation request.
reasonCode (string) --
The original reason code provided when the cancellation request was created.
description (string) --
The detailed description of the original cancellation reason, if provided.
status (string) --
The updated status of the cancellation request, which is CANCELLED.
statusMessage (string) --
A message providing additional context about the cancellation request status.
createdAt (datetime) --
The date and time when the cancellation request was originally created, as a POSIX timestamp (Unix epoch seconds).
updatedAt (datetime) --
The date and time when the cancellation request was cancelled, as a POSIX timestamp (Unix epoch seconds).