SDK for PHP V3

Client: Aws\MarketplaceAgreement\MarketplaceAgreementClient
Service ID: marketplace-agreement
Version: 2020-03-01

This page describes the parameters and results for the operations of the AWS Marketplace Agreement Service (2020-03-01), and shows how to use the Aws\MarketplaceAgreement\MarketplaceAgreementClient object to call the described operations. This documentation is specific to the 2020-03-01 API version of the service.

Operation Summary

Each of the following operations can be created from a client using $client->getCommand('CommandName'), where "CommandName" is the name of one of the following operations. Note: a command is a value that encapsulates an operation and the parameters used to create an HTTP request.

You can also create and send a command immediately using the magic methods available on a client object: $client->commandName(/* parameters */). You can send the command asynchronously (returning a promise) by appending the word "Async" to the operation name: $client->commandNameAsync(/* parameters */).

BatchCreateBillingAdjustmentRequest ( array $params = [] )
Allows sellers (proposers) to submit billing adjustment requests for one or more invoices within an agreement.
CancelAgreementCancellationRequest ( array $params = [] )
Allows sellers (proposers) to withdraw an existing agreement cancellation request that is in a pending state.
CancelAgreementPaymentRequest ( array $params = [] )
Allows sellers (proposers) to cancel a payment request that is in PENDING_APPROVAL status.
DescribeAgreement ( array $params = [] )
Provides details about an agreement, such as the proposer, acceptor, start date, and end date.
GetAgreementCancellationRequest ( array $params = [] )
Retrieves detailed information about a specific agreement cancellation request.
GetAgreementPaymentRequest ( array $params = [] )
Retrieves detailed information about a specific payment request.
GetAgreementTerms ( array $params = [] )
Obtains details about the terms in an agreement that you participated in as proposer or acceptor.
GetBillingAdjustmentRequest ( array $params = [] )
Retrieves detailed information about a specific billing adjustment request.
ListAgreementCancellationRequests ( array $params = [] )
Lists agreement cancellation requests available to you as a seller or buyer.
ListAgreementInvoiceLineItems ( array $params = [] )
Allows sellers (proposers) to retrieve aggregated billing data from AWS Marketplace agreements using flexible grouping.
ListAgreementPaymentRequests ( array $params = [] )
Lists payment requests available to you as a seller or buyer.
ListBillingAdjustmentRequests ( array $params = [] )
Lists billing adjustment requests for a specific agreement.
SearchAgreements ( array $params = [] )
Searches across all agreements that a proposer has in AWS Marketplace.
SendAgreementCancellationRequest ( array $params = [] )
Allows sellers (proposers) to submit a cancellation request for an active agreement.
SendAgreementPaymentRequest ( array $params = [] )
Allows sellers (proposers) to submit a payment request to buyers (acceptors) for a specific charge amount for an agreement that includes a VariablePaymentTerm.

Paginators

Paginators handle automatically iterating over paginated API results. Paginators are associated with specific API operations, and they accept the parameters that the corresponding API operation accepts. You can get a paginator from a client class using getPaginator($paginatorName, $operationParameters). This client supports the following paginators:

GetAgreementTerms
ListAgreementCancellationRequests
ListAgreementInvoiceLineItems
ListAgreementPaymentRequests
ListBillingAdjustmentRequests
SearchAgreements

Operations

BatchCreateBillingAdjustmentRequest

$result = $client->batchCreateBillingAdjustmentRequest([/* ... */]);
$promise = $client->batchCreateBillingAdjustmentRequestAsync([/* ... */]);

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.

Each entry requires a unique clientToken for idempotency. A ValidationException is returned if the adjustment amount exceeds the maximum refundable amount for the invoice.

Parameter Syntax

$result = $client->batchCreateBillingAdjustmentRequest([
    'billingAdjustmentRequestEntries' => [ // REQUIRED
        [
            'adjustmentAmount' => '<string>', // REQUIRED
            'adjustmentReasonCode' => 'INCORRECT_TERMS_ACCEPTED|INCORRECT_METERING|TEST_ENVIRONMENT_CHARGES|ALTERNATIVE_PROCUREMENT_CHANNEL|UNINTENDED_RENEWAL|BUYER_DISSATISFACTION|OTHER', // REQUIRED
            'agreementId' => '<string>', // REQUIRED
            'clientToken' => '<string>', // REQUIRED
            'currencyCode' => '<string>', // REQUIRED
            'description' => '<string>',
            'originalInvoiceId' => '<string>', // REQUIRED
        ],
        // ...
    ],
]);

Parameter Details

Members
billingAdjustmentRequestEntries
Required: Yes
Type: Array of BatchCreateBillingAdjustmentRequestEntry structures

A list of billing adjustment request entries. Each entry specifies the invoice and adjustment details.

Result Syntax

[
    'errors' => [
        [
            'clientToken' => '<string>',
            'code' => 'CONFLICT_EXCEPTION|VALIDATION_EXCEPTION|RESOURCE_NOT_FOUND_EXCEPTION|INTERNAL_FAILURE',
            'message' => '<string>',
        ],
        // ...
    ],
    'items' => [
        [
            'billingAdjustmentRequestId' => '<string>',
            'clientToken' => '<string>',
        ],
        // ...
    ],
]

Result Details

Members
errors
Required: Yes
Type: Array of BatchCreateBillingAdjustmentError structures

A list of errors for entries that failed validation, each containing the clientToken, error code, and message.

items
Required: Yes
Type: Array of BatchCreateBillingAdjustmentItem structures

A list of successfully created billing adjustment items, each containing the billingAdjustmentRequestId and clientToken.

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

ConflictException:

The request could not be completed due to a conflict with the current state of the resource.

Examples

Example 1: Create billing adjustment requests
$result = $client->batchCreateBillingAdjustmentRequest([
    'billingAdjustmentRequestEntries' => [
        [
            'adjustmentAmount' => '500.00',
            'adjustmentReasonCode' => 'OTHER',
            'agreementId' => 'agmt-SvIzsqYMyQwI3GWgJAe17URx',
            'clientToken' => '71a5e82e-a49b-4075-8c7f-52df1d294379',
            'currencyCode' => 'USD',
            'description' => 'Customer requested adjustment due to service outage during critical business period.',
            'originalInvoiceId' => 'E2E20230929a108cfae',
        ],
    ],
]);

Result syntax:

[
    'errors' => [
    ],
    'items' => [
        [
            'billingAdjustmentRequestId' => 'ba-1a2b3c4d5e6f7g',
            'clientToken' => '71a5e82e-a49b-4075-8c7f-52df1d294379',
        ],
    ],
]

CancelAgreementCancellationRequest

$result = $client->cancelAgreementCancellationRequest([/* ... */]);
$promise = $client->cancelAgreementCancellationRequestAsync([/* ... */]);

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.

Only cancellation requests in PENDING_APPROVAL status can be cancelled. A ConflictException is thrown if the cancellation request is in any other status.

Parameter Syntax

$result = $client->cancelAgreementCancellationRequest([
    'agreementCancellationRequestId' => '<string>', // REQUIRED
    'agreementId' => '<string>', // REQUIRED
    'cancellationReason' => '<string>', // REQUIRED
]);

Parameter Details

Members
agreementCancellationRequestId
Required: Yes
Type: string

The unique identifier of the cancellation request to cancel.

agreementId
Required: Yes
Type: string

The unique identifier of the agreement associated with the cancellation request.

cancellationReason
Required: Yes
Type: string

A required message explaining why the cancellation request is being withdrawn (1-2000 characters).

Result Syntax

[
    'agreementCancellationRequestId' => '<string>',
    'agreementId' => '<string>',
    'createdAt' => <DateTime>,
    'description' => '<string>',
    'reasonCode' => 'INCORRECT_TERMS_ACCEPTED|REPLACING_AGREEMENT|TEST_AGREEMENT|ALTERNATIVE_PROCUREMENT_CHANNEL|PRODUCT_DISCONTINUED|UNINTENDED_RENEWAL|BUYER_DISSATISFACTION|OTHER',
    'status' => 'PENDING_APPROVAL|APPROVED|REJECTED|CANCELLED|VALIDATION_FAILED',
    'statusMessage' => '<string>',
    'updatedAt' => <DateTime>,
]

Result Details

Members
agreementCancellationRequestId
Type: string

The unique identifier of the cancelled cancellation request.

agreementId
Type: string

The unique identifier of the agreement associated with this cancellation request.

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the cancellation request was originally created, as a POSIX timestamp (Unix epoch seconds).

description
Type: string

The detailed description of the original cancellation reason, if provided.

reasonCode
Type: string

The original reason code provided when the cancellation request was created.

status
Type: string

The updated status of the cancellation request, which is CANCELLED.

statusMessage
Type: string

A message providing additional context about the cancellation request status.

updatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the cancellation request was cancelled, as a POSIX timestamp (Unix epoch seconds).

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ResourceNotFoundException:

Request references a resource which does not exist.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

ConflictException:

The request could not be completed due to a conflict with the current state of the resource.

Examples

Example 1: Cancel a cancellation request
$result = $client->cancelAgreementCancellationRequest([
    'agreementCancellationRequestId' => 'acr-752jqvg74yo7k4h56cakk6396',
    'agreementId' => 'agmt-752jqvg74yo7k4h56cakk6396',
    'cancellationReason' => 'Requested agreement cancellation by mistake',
]);

Result syntax:

[
    'agreementCancellationRequestId' => 'acr-752jqvg74yo7k4h56cakk6396',
    'agreementId' => 'agmt-752jqvg74yo7k4h56cakk6396',
    'createdAt' => ,
    'description' => 'Product is being discontinued and no longer supported',
    'reasonCode' => 'PRODUCT_DISCONTINUED',
    'status' => 'CANCELLED',
    'statusMessage' => 'Cancellation requested by seller',
    'updatedAt' => ,
]

CancelAgreementPaymentRequest

$result = $client->cancelAgreementPaymentRequest([/* ... */]);
$promise = $client->cancelAgreementPaymentRequestAsync([/* ... */]);

Allows sellers (proposers) to cancel a payment request that is in PENDING_APPROVAL status. Once cancelled, the payment request transitions to CANCELLED status and can no longer be accepted or rejected by the buyer.

Only payment requests in PENDING_APPROVAL status can be cancelled. A ConflictException is thrown if the payment request is in any other status.

Parameter Syntax

$result = $client->cancelAgreementPaymentRequest([
    'agreementId' => '<string>', // REQUIRED
    'paymentRequestId' => '<string>', // REQUIRED
]);

Parameter Details

Members
agreementId
Required: Yes
Type: string

The unique identifier of the agreement associated with the payment request.

paymentRequestId
Required: Yes
Type: string

The unique identifier of the payment request to cancel.

Result Syntax

[
    'agreementId' => '<string>',
    'chargeAmount' => '<string>',
    'createdAt' => <DateTime>,
    'currencyCode' => '<string>',
    'description' => '<string>',
    'name' => '<string>',
    'paymentRequestId' => '<string>',
    'status' => 'VALIDATING|VALIDATION_FAILED|PENDING_APPROVAL|APPROVED|REJECTED|CANCELLED',
    'updatedAt' => <DateTime>,
]

Result Details

Members
agreementId
Type: string

The unique identifier of the agreement associated with this payment request.

chargeAmount
Type: string

The amount that was requested to be charged.

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the payment request was originally created, in ISO 8601 format.

currencyCode
Type: string

The currency code for the charge amount.

description
Type: string

The detailed description of the payment request, if provided.

name
Type: string

The descriptive name of the payment request.

paymentRequestId
Type: string

The unique identifier of the cancelled payment request.

status
Type: string

The updated status of the payment request, which is CANCELLED.

updatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the payment request was cancelled, in ISO 8601 format.

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ResourceNotFoundException:

Request references a resource which does not exist.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

ConflictException:

The request could not be completed due to a conflict with the current state of the resource.

DescribeAgreement

$result = $client->describeAgreement([/* ... */]);
$promise = $client->describeAgreementAsync([/* ... */]);

Provides details about an agreement, such as the proposer, acceptor, start date, and end date.

Parameter Syntax

$result = $client->describeAgreement([
    'agreementId' => '<string>', // REQUIRED
]);

Parameter Details

Members
agreementId
Required: Yes
Type: string

The unique identifier of the agreement.

Result Syntax

[
    'acceptanceTime' => <DateTime>,
    'acceptor' => [
        'accountId' => '<string>',
    ],
    'agreementId' => '<string>',
    'agreementType' => '<string>',
    'endTime' => <DateTime>,
    'estimatedCharges' => [
        'agreementValue' => '<string>',
        'currencyCode' => '<string>',
    ],
    'proposalSummary' => [
        'offerId' => '<string>',
        'offerSetId' => '<string>',
        'resources' => [
            [
                'id' => '<string>',
                'type' => '<string>',
            ],
            // ...
        ],
    ],
    'proposer' => [
        'accountId' => '<string>',
    ],
    'startTime' => <DateTime>,
    'status' => 'ACTIVE|ARCHIVED|CANCELLED|EXPIRED|RENEWED|REPLACED|ROLLED_BACK|SUPERSEDED|TERMINATED',
]

Result Details

Members
acceptanceTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time the offer was accepted or the agreement was created.

AcceptanceTime and StartTime can differ for future dated agreements (FDAs).

acceptor
Type: Acceptor structure

The details of the party accepting the agreement terms. This is commonly the buyer for PurchaseAgreement.

agreementId
Type: string

The unique identifier of the agreement.

agreementType
Type: string

The type of agreement. Values are PurchaseAgreement or VendorInsightsAgreement.

endTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the agreement ends. The field is null for pay-as-you-go agreements, which don’t have end dates.

estimatedCharges
Type: EstimatedCharges structure

The estimated cost of the agreement.

proposalSummary
Type: ProposalSummary structure

A summary of the proposal received from the proposer.

proposer
Type: Proposer structure

The details of the party proposing the agreement terms. This is commonly the seller for PurchaseAgreement.

startTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the agreement starts.

status
Type: string

The current status of the agreement.

Statuses include:

  • ACTIVE – The terms of the agreement are active.

  • ARCHIVED – The agreement ended without a specified reason.

  • CANCELLED – The acceptor ended the agreement before the defined end date.

  • EXPIRED – The agreement ended on the defined end date.

  • RENEWED – The agreement was renewed into a new agreement (for example, an auto-renewal).

  • REPLACED – The agreement was replaced using an agreement replacement offer.

  • TERMINATED – The agreement ended before the defined end date because of an AWS termination (for example, a payment failure).

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ResourceNotFoundException:

Request references a resource which does not exist.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

GetAgreementCancellationRequest

$result = $client->getAgreementCancellationRequest([/* ... */]);
$promise = $client->getAgreementCancellationRequestAsync([/* ... */]);

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.

The calling identity must be either the acceptor or proposer of the agreement. A ResourceNotFoundException is returned if the cancellation request does not exist.

Parameter Syntax

$result = $client->getAgreementCancellationRequest([
    'agreementCancellationRequestId' => '<string>', // REQUIRED
    'agreementId' => '<string>', // REQUIRED
]);

Parameter Details

Members
agreementCancellationRequestId
Required: Yes
Type: string

The unique identifier of the cancellation request.

agreementId
Required: Yes
Type: string

The unique identifier of the agreement associated with the cancellation request.

Result Syntax

[
    'agreementCancellationRequestId' => '<string>',
    'agreementId' => '<string>',
    'createdAt' => <DateTime>,
    'description' => '<string>',
    'reasonCode' => 'INCORRECT_TERMS_ACCEPTED|REPLACING_AGREEMENT|TEST_AGREEMENT|ALTERNATIVE_PROCUREMENT_CHANNEL|PRODUCT_DISCONTINUED|UNINTENDED_RENEWAL|BUYER_DISSATISFACTION|OTHER',
    'status' => 'PENDING_APPROVAL|APPROVED|REJECTED|CANCELLED|VALIDATION_FAILED',
    'statusMessage' => '<string>',
    'updatedAt' => <DateTime>,
]

Result Details

Members
agreementCancellationRequestId
Type: string

The unique identifier of the cancellation request.

agreementId
Type: string

The unique identifier of the agreement associated with this cancellation request. Use DescribeAgreement to retrieve full agreement details.

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the cancellation request was created, as a POSIX timestamp (Unix epoch seconds).

description
Type: string

The detailed description of the cancellation reason, if provided.

reasonCode
Type: string

The reason code provided for the cancellation.

status
Type: string

The current status of the cancellation request. Possible values include PENDING_APPROVAL, APPROVED, REJECTED, CANCELLED, and VALIDATION_FAILED.

statusMessage
Type: string

A message providing additional context about the cancellation request status.

updatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the cancellation request was last updated, as a POSIX timestamp (Unix epoch seconds).

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ResourceNotFoundException:

Request references a resource which does not exist.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

Examples

Example 1: Get a cancellation request
$result = $client->getAgreementCancellationRequest([
    'agreementCancellationRequestId' => 'acr-sgew33rhsds',
    'agreementId' => 'agmt-752jqvg74yo7k',
]);

Result syntax:

[
    'agreementCancellationRequestId' => 'acr-sgew33rhsds',
    'agreementId' => 'agmt-752jqvg74yo7k',
    'createdAt' => ,
    'description' => 'Product is being discontinued and no longer supported',
    'reasonCode' => 'PRODUCT_DISCONTINUED',
    'status' => 'VALIDATION_FAILED',
    'statusMessage' => 'Agreement is not in an active state',
    'updatedAt' => ,
]

GetAgreementPaymentRequest

$result = $client->getAgreementPaymentRequest([/* ... */]);
$promise = $client->getAgreementPaymentRequestAsync([/* ... */]);

Retrieves detailed information about a specific payment request. Both sellers (proposers) and buyers (acceptors) can use this operation to view payment requests associated with their agreements. The response includes the current status, charge details, timestamps, and the charge ID if the request has been approved.

The calling identity must be either the acceptor or proposer of the payment request. A ResourceNotFoundException is returned if the payment request does not exist.

Parameter Syntax

$result = $client->getAgreementPaymentRequest([
    'agreementId' => '<string>', // REQUIRED
    'paymentRequestId' => '<string>', // REQUIRED
]);

Parameter Details

Members
agreementId
Required: Yes
Type: string

The unique identifier of the agreement associated with the payment request.

paymentRequestId
Required: Yes
Type: string

The identifier of the payment request.

Result Syntax

[
    'agreementId' => '<string>',
    'chargeAmount' => '<string>',
    'chargeId' => '<string>',
    'createdAt' => <DateTime>,
    'currencyCode' => '<string>',
    'description' => '<string>',
    'name' => '<string>',
    'paymentRequestId' => '<string>',
    'status' => 'VALIDATING|VALIDATION_FAILED|PENDING_APPROVAL|APPROVED|REJECTED|CANCELLED',
    'statusMessage' => '<string>',
    'updatedAt' => <DateTime>,
]

Result Details

Members
agreementId
Type: string

The unique identifier of the agreement associated with this payment request. Use DescribeAgreement to retrieve full agreement details.

chargeAmount
Type: string

The amount charged or to be charged to the buyer.

chargeId
Type: string

The unique identifier of the charge created after the payment request is approved. This field is only present for approved payment requests and follows the pattern ch-[a-zA-Z0-9]+.

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the payment request was created, in ISO 8601 format.

currencyCode
Type: string

The currency code for the charge amount.

description
Type: string

The detailed description of the payment request, if provided.

name
Type: string

The descriptive name of the payment request.

paymentRequestId
Type: string

The unique identifier of the payment request.

status
Type: string

The current status of the payment request. Possible values include:

  • VALIDATING – The payment request is being validated against agreement terms.

  • VALIDATION_FAILED – The payment request failed validation.

  • PENDING_APPROVAL – The payment request is awaiting buyer action.

  • APPROVED – The buyer has approved the payment request.

  • REJECTED – The buyer has rejected the payment request.

  • CANCELLED – The seller has cancelled the payment request.

statusMessage
Type: string

An optional message providing additional context about the payment request status, such as a rejection reason or validation failure details.

updatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the payment request was last updated, in ISO 8601 format.

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ResourceNotFoundException:

Request references a resource which does not exist.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

GetAgreementTerms

$result = $client->getAgreementTerms([/* ... */]);
$promise = $client->getAgreementTermsAsync([/* ... */]);

Obtains details about the terms in an agreement that you participated in as proposer or acceptor.

The details include:

  • TermType – The type of term, such as LegalTerm, RenewalTerm, or ConfigurableUpfrontPricingTerm.

  • TermID – The ID of the particular term, which is common between offer and agreement.

  • TermPayload – The key information contained in the term, such as the EULA for LegalTerm or pricing and dimensions for various pricing terms, such as ConfigurableUpfrontPricingTerm or UsageBasedPricingTerm.

  • Configuration – The buyer/acceptor's selection at the time of agreement creation, such as the number of units purchased for a dimension or setting the EnableAutoRenew flag.

Parameter Syntax

$result = $client->getAgreementTerms([
    'agreementId' => '<string>', // REQUIRED
    'maxResults' => <integer>,
    'nextToken' => '<string>',
]);

Parameter Details

Members
agreementId
Required: Yes
Type: string

The unique identifier of the agreement.

maxResults
Type: int

The maximum number of agreements to return in the response.

nextToken
Type: string

A token to specify where to start pagination

Result Syntax

[
    'acceptedTerms' => [
        [
            'byolPricingTerm' => [
                'type' => '<string>',
            ],
            'configurableUpfrontPricingTerm' => [
                'configuration' => [
                    'dimensions' => [
                        [
                            'dimensionKey' => '<string>',
                            'dimensionValue' => <integer>,
                        ],
                        // ...
                    ],
                    'selectorValue' => '<string>',
                ],
                'currencyCode' => '<string>',
                'rateCards' => [
                    [
                        'constraints' => [
                            'multipleDimensionSelection' => '<string>',
                            'quantityConfiguration' => '<string>',
                        ],
                        'rateCard' => [
                            [
                                'dimensionKey' => '<string>',
                                'price' => '<string>',
                            ],
                            // ...
                        ],
                        'selector' => [
                            'type' => '<string>',
                            'value' => '<string>',
                        ],
                    ],
                    // ...
                ],
                'type' => '<string>',
            ],
            'fixedUpfrontPricingTerm' => [
                'currencyCode' => '<string>',
                'duration' => '<string>',
                'grants' => [
                    [
                        'dimensionKey' => '<string>',
                        'maxQuantity' => <integer>,
                    ],
                    // ...
                ],
                'price' => '<string>',
                'type' => '<string>',
            ],
            'freeTrialPricingTerm' => [
                'duration' => '<string>',
                'grants' => [
                    [
                        'dimensionKey' => '<string>',
                        'maxQuantity' => <integer>,
                    ],
                    // ...
                ],
                'type' => '<string>',
            ],
            'legalTerm' => [
                'documents' => [
                    [
                        'type' => '<string>',
                        'url' => '<string>',
                        'version' => '<string>',
                    ],
                    // ...
                ],
                'type' => '<string>',
            ],
            'paymentScheduleTerm' => [
                'currencyCode' => '<string>',
                'schedule' => [
                    [
                        'chargeAmount' => '<string>',
                        'chargeDate' => <DateTime>,
                    ],
                    // ...
                ],
                'type' => '<string>',
            ],
            'recurringPaymentTerm' => [
                'billingPeriod' => '<string>',
                'currencyCode' => '<string>',
                'price' => '<string>',
                'type' => '<string>',
            ],
            'renewalTerm' => [
                'configuration' => [
                    'enableAutoRenew' => true || false,
                ],
                'type' => '<string>',
            ],
            'supportTerm' => [
                'refundPolicy' => '<string>',
                'type' => '<string>',
            ],
            'usageBasedPricingTerm' => [
                'currencyCode' => '<string>',
                'rateCards' => [
                    [
                        'rateCard' => [
                            [
                                'dimensionKey' => '<string>',
                                'price' => '<string>',
                            ],
                            // ...
                        ],
                    ],
                    // ...
                ],
                'type' => '<string>',
            ],
            'validityTerm' => [
                'agreementDuration' => '<string>',
                'agreementEndDate' => <DateTime>,
                'agreementStartDate' => <DateTime>,
                'type' => '<string>',
            ],
            'variablePaymentTerm' => [
                'configuration' => [
                    'expirationDuration' => '<string>',
                    'paymentRequestApprovalStrategy' => 'AUTO_APPROVE_ON_EXPIRATION|WAIT_FOR_APPROVAL',
                ],
                'currencyCode' => '<string>',
                'maxTotalChargeAmount' => '<string>',
                'type' => '<string>',
            ],
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
acceptedTerms
Type: Array of AcceptedTerm structures

A subset of terms proposed by the proposer that have been accepted by the acceptor as part of the agreement creation.

nextToken
Type: string

A token to specify where to start pagination

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ResourceNotFoundException:

Request references a resource which does not exist.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

GetBillingAdjustmentRequest

$result = $client->getBillingAdjustmentRequest([/* ... */]);
$promise = $client->getBillingAdjustmentRequestAsync([/* ... */]);

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.

A ResourceNotFoundException is returned if the billing adjustment request does not exist or the caller does not have permission to access it.

Parameter Syntax

$result = $client->getBillingAdjustmentRequest([
    'agreementId' => '<string>', // REQUIRED
    'billingAdjustmentRequestId' => '<string>', // REQUIRED
]);

Parameter Details

Members
agreementId
Required: Yes
Type: string

The unique identifier of the agreement associated with the billing adjustment request.

billingAdjustmentRequestId
Required: Yes
Type: string

The unique identifier of the billing adjustment request.

Result Syntax

[
    'adjustmentAmount' => '<string>',
    'adjustmentReasonCode' => 'INCORRECT_TERMS_ACCEPTED|INCORRECT_METERING|TEST_ENVIRONMENT_CHARGES|ALTERNATIVE_PROCUREMENT_CHANNEL|UNINTENDED_RENEWAL|BUYER_DISSATISFACTION|OTHER',
    'agreementId' => '<string>',
    'billingAdjustmentRequestId' => '<string>',
    'createdAt' => <DateTime>,
    'currencyCode' => '<string>',
    'description' => '<string>',
    'originalInvoiceId' => '<string>',
    'status' => 'PENDING|VALIDATION_FAILED|COMPLETED',
    'statusMessage' => '<string>',
    'updatedAt' => <DateTime>,
]

Result Details

Members
adjustmentAmount
Required: Yes
Type: string

The adjustment amount as a string representation of a decimal number.

adjustmentReasonCode
Required: Yes
Type: string

The reason code for the billing adjustment.

agreementId
Required: Yes
Type: string

The unique identifier of the agreement associated with this billing adjustment request.

billingAdjustmentRequestId
Required: Yes
Type: string

The unique identifier of the billing adjustment request.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the billing adjustment request was created, as a POSIX timestamp (Unix epoch seconds).

currencyCode
Required: Yes
Type: string

The currency code for the adjustment amount (e.g., USD).

description
Type: string

The detailed description of the billing adjustment reason, if provided.

originalInvoiceId
Required: Yes
Type: string

The identifier of the original invoice being adjusted.

status
Required: Yes
Type: string

The current status of the billing adjustment request.

statusMessage
Type: string

A message providing additional context about the billing adjustment request status. This field is populated only when the status is VALIDATION_FAILED.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the billing adjustment request was last updated, as a POSIX timestamp (Unix epoch seconds).

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ResourceNotFoundException:

Request references a resource which does not exist.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

Examples

Example 1: Get a billing adjustment request
$result = $client->getBillingAdjustmentRequest([
    'agreementId' => 'agmt-SvIzsqYMyQwI3GWgJAe17URx',
    'billingAdjustmentRequestId' => 'ba-1a2b3c4d5e6f7g',
]);

Result syntax:

[
    'adjustmentAmount' => '500.00',
    'adjustmentReasonCode' => 'OTHER',
    'agreementId' => 'agmt-SvIzsqYMyQwI3GWgJAe17URx',
    'billingAdjustmentRequestId' => 'ba-1a2b3c4d5e6f7g',
    'createdAt' => ,
    'currencyCode' => 'USD',
    'description' => 'Customer requested adjustment',
    'originalInvoiceId' => 'E2E20230929a108cfae',
    'status' => 'PENDING',
    'updatedAt' => ,
]

ListAgreementCancellationRequests

$result = $client->listAgreementCancellationRequests([/* ... */]);
$promise = $client->listAgreementCancellationRequestsAsync([/* ... */]);

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.

PartyType is a required parameter. A ValidationException is returned if PartyType is not provided. Pagination is supported through maxResults (1-50, default 20) and nextToken parameters.

Parameter Syntax

$result = $client->listAgreementCancellationRequests([
    'agreementId' => '<string>',
    'agreementType' => '<string>',
    'catalog' => '<string>',
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'partyType' => '<string>', // REQUIRED
    'status' => 'PENDING_APPROVAL|APPROVED|REJECTED|CANCELLED|VALIDATION_FAILED',
]);

Parameter Details

Members
agreementId
Type: string

An optional parameter to filter cancellation requests for a specific agreement.

agreementType
Type: string

An optional parameter to filter cancellation requests by agreement type (e.g., PurchaseAgreement).

catalog
Type: string

An optional parameter to filter cancellation requests by catalog (e.g., AWSMarketplace).

maxResults
Type: int

The maximum number of cancellation requests to return in the response.

nextToken
Type: string

A token to specify where to start pagination. Use the nextToken value from a previous response to retrieve the next page of results.

partyType
Required: Yes
Type: string

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.

status
Type: string

An optional parameter to filter cancellation requests by status. Valid values include PENDING_APPROVAL, APPROVED, REJECTED, CANCELLED, and VALIDATION_FAILED.

Result Syntax

[
    'items' => [
        [
            'agreementCancellationRequestId' => '<string>',
            'agreementId' => '<string>',
            'agreementType' => '<string>',
            'catalog' => '<string>',
            'createdAt' => <DateTime>,
            'reasonCode' => 'INCORRECT_TERMS_ACCEPTED|REPLACING_AGREEMENT|TEST_AGREEMENT|ALTERNATIVE_PROCUREMENT_CHANNEL|PRODUCT_DISCONTINUED|UNINTENDED_RENEWAL|BUYER_DISSATISFACTION|OTHER',
            'status' => 'PENDING_APPROVAL|APPROVED|REJECTED|CANCELLED|VALIDATION_FAILED',
            'updatedAt' => <DateTime>,
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Type: Array of AgreementCancellationRequestSummary structures

An array of AgreementCancellationRequestSummary objects containing summary information about each cancellation request.

nextToken
Type: string

A token to retrieve the next page of results. If null, there are no more results to retrieve.

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

Examples

Example 1: List cancellation requests
$result = $client->listAgreementCancellationRequests([
    'maxResults' => 10,
    'partyType' => 'Proposer',
]);

Result syntax:

[
    'items' => [
        [
            'agreementCancellationRequestId' => 'acr-sgew33rhsds',
            'agreementId' => 'agmt-752jqvg74yo7k',
            'agreementType' => 'PurchaseAgreement',
            'catalog' => 'AWSMarketplace',
            'createdAt' => ,
            'reasonCode' => 'OTHER',
            'status' => 'PENDING_APPROVAL',
            'updatedAt' => ,
        ],
    ],
]

ListAgreementInvoiceLineItems

$result = $client->listAgreementInvoiceLineItems([/* ... */]);
$promise = $client->listAgreementInvoiceLineItemsAsync([/* ... */]);

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.

The groupBy parameter is required and currently supports only INVOICE_ID as a value. The agreementId parameter is required.

Parameter Syntax

$result = $client->listAgreementInvoiceLineItems([
    'afterIssuedTime' => <integer || string || DateTime>,
    'agreementId' => '<string>', // REQUIRED
    'beforeIssuedTime' => <integer || string || DateTime>,
    'groupBy' => 'INVOICE_ID', // REQUIRED
    'invoiceBillingPeriod' => [
        'month' => <integer>, // REQUIRED
        'year' => <integer>, // REQUIRED
    ],
    'invoiceId' => '<string>',
    'invoiceType' => 'INVOICE|CREDIT_MEMO',
    'maxResults' => <integer>,
    'nextToken' => '<string>',
]);

Parameter Details

Members
afterIssuedTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

An optional filter for invoices issued after the specified timestamp.

agreementId
Required: Yes
Type: string

The unique identifier of the agreement.

beforeIssuedTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

An optional filter for invoices issued before the specified timestamp.

groupBy
Required: Yes
Type: string

Specifies a grouping strategy for line items. Currently supports INVOICE_ID.

invoiceBillingPeriod
Type: InvoiceBillingPeriod structure

An optional filter for the billing period associated with the invoice.

invoiceId
Type: string

An optional filter to retrieve invoice information for a specific invoice.

invoiceType
Type: string

An optional filter for the type of invoice. Valid values are INVOICE and CREDIT_MEMO.

maxResults
Type: int

The maximum number of results to return in the response.

nextToken
Type: string

A token to specify where to start pagination.

Result Syntax

[
    'agreementInvoiceLineItemGroupSummaries' => [
        [
            'agreementId' => '<string>',
            'invoiceBillingPeriod' => [
                'month' => <integer>,
                'year' => <integer>,
            ],
            'invoiceId' => '<string>',
            'invoiceType' => 'INVOICE|CREDIT_MEMO',
            'invoicingEntity' => [
                'branchName' => '<string>',
                'legalName' => '<string>',
            ],
            'issuedTime' => <DateTime>,
            'pricingCurrencyAmount' => [
                'amount' => '<string>',
                'currencyCode' => '<string>',
                'maxAdjustmentAmount' => '<string>',
            ],
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
agreementInvoiceLineItemGroupSummaries
Type: Array of AgreementInvoiceLineItemGroupSummary structures

A list of grouped billing data objects.

nextToken
Type: string

A token to retrieve the next page of results. If not present, there are no more results available.

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ThrottlingException:

Request was denied due to request throttling.

ResourceNotFoundException:

Request references a resource which does not exist.

InternalServerException:

Unexpected error during processing of request.

Examples

Example 1: List agreement invoice line items
$result = $client->listAgreementInvoiceLineItems([
    'agreementId' => 'agmt-EXAMPLESvIzsqYMyQwI3',
    'groupBy' => 'INVOICE_ID',
]);

Result syntax:

[
    'agreementInvoiceLineItemGroupSummaries' => [
        [
            'agreementId' => 'agmt-EXAMPLESvIzsqYMyQwI3',
            'invoiceBillingPeriod' => [
                'month' => 1,
                'year' => 2025,
            ],
            'invoiceId' => 'E2E20250105a108cfae',
            'invoiceType' => 'INVOICE',
            'invoicingEntity' => [
                'legalName' => 'Amazon Web Services, Inc.',
            ],
            'issuedTime' => ,
            'pricingCurrencyAmount' => [
                'amount' => '1080.00',
                'currencyCode' => 'USD',
                'maxAdjustmentAmount' => '1000.00',
            ],
        ],
    ],
]

ListAgreementPaymentRequests

$result = $client->listAgreementPaymentRequests([/* ... */]);
$promise = $client->listAgreementPaymentRequestsAsync([/* ... */]);

Lists payment requests available to you as a seller or buyer. Both sellers (proposers) and buyers (acceptors) can use this operation to find payment requests by specifying their party type and applying optional parameters.

PartyType is a required parameter. A ValidationException is returned if PartyType is not provided. Pagination is supported through maxResults (1-50, default 50) and nextToken parameters.

Parameter Syntax

$result = $client->listAgreementPaymentRequests([
    'agreementId' => '<string>',
    'agreementType' => '<string>',
    'catalog' => '<string>',
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'partyType' => '<string>', // REQUIRED
    'status' => 'VALIDATING|VALIDATION_FAILED|PENDING_APPROVAL|APPROVED|REJECTED|CANCELLED',
]);

Parameter Details

Members
agreementId
Type: string

An optional parameter to list payment requests for a specific agreement.

agreementType
Type: string

An optional parameter to list payment requests by agreement type (e.g., PurchaseAgreement).

catalog
Type: string

An optional parameter to list payment requests by catalog (e.g., AWSMarketplace).

maxResults
Type: int

The maximum number of payment requests to return in a single response (1-50). Default is 50.

nextToken
Type: string

A token to specify where to start pagination. Use the nextToken value from a previous response to retrieve the next page of results.

partyType
Required: Yes
Type: string

The party type for the payment requests. Required parameter. Use Proposer to list payment requests where you are the seller, or Acceptor to list payment requests where you are the buyer.

status
Type: string

An optional parameter to list payment requests by status. Valid values include VALIDATING, VALIDATION_FAILED, PENDING_APPROVAL, APPROVED, REJECTED, and CANCELLED.

Result Syntax

[
    'items' => [
        [
            'agreementId' => '<string>',
            'chargeAmount' => '<string>',
            'chargeId' => '<string>',
            'createdAt' => <DateTime>,
            'currencyCode' => '<string>',
            'name' => '<string>',
            'paymentRequestId' => '<string>',
            'status' => 'VALIDATING|VALIDATION_FAILED|PENDING_APPROVAL|APPROVED|REJECTED|CANCELLED',
            'updatedAt' => <DateTime>,
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Required: Yes
Type: Array of PaymentRequestSummary structures

An array of PaymentRequestSummary objects containing summary information about each payment request.

nextToken
Type: string

A token to retrieve the next page of results. If null, there are no more results to retrieve.

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

ListBillingAdjustmentRequests

$result = $client->listBillingAdjustmentRequests([/* ... */]);
$promise = $client->listBillingAdjustmentRequestsAsync([/* ... */]);

Lists billing adjustment requests for a specific agreement. Sellers (proposers) can use this operation to view all billing adjustment requests associated with an agreement.

Pagination is supported through maxResults and nextToken parameters.

Parameter Syntax

$result = $client->listBillingAdjustmentRequests([
    'agreementId' => '<string>',
    'agreementType' => '<string>',
    'catalog' => '<string>',
    'createdAfter' => <integer || string || DateTime>,
    'createdBefore' => <integer || string || DateTime>,
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'status' => 'PENDING|VALIDATION_FAILED|COMPLETED',
]);

Parameter Details

Members
agreementId
Type: string

The unique identifier of the agreement to list billing adjustment requests for.

agreementType
Type: string

An optional filter to return billing adjustment requests by agreement type (e.g., PurchaseAgreement).

catalog
Type: string

An optional filter to return billing adjustment requests by catalog (e.g., AWSMarketplace).

createdAfter
Type: timestamp (string|DateTime or anything parsable by strtotime)

An optional filter to return billing adjustment requests created after the specified POSIX timestamp (Unix epoch seconds).

createdBefore
Type: timestamp (string|DateTime or anything parsable by strtotime)

An optional filter to return billing adjustment requests created before the specified POSIX timestamp (Unix epoch seconds).

maxResults
Type: int

The maximum number of billing adjustment requests to return in the response.

nextToken
Type: string

A token to specify where to start pagination. Use the nextToken value from a previous response to retrieve the next page of results.

status
Type: string

An optional filter to return billing adjustment requests with the specified status.

Result Syntax

[
    'items' => [
        [
            'adjustmentAmount' => '<string>',
            'agreementId' => '<string>',
            'agreementType' => '<string>',
            'billingAdjustmentRequestId' => '<string>',
            'catalog' => '<string>',
            'createdAt' => <DateTime>,
            'currencyCode' => '<string>',
            'originalInvoiceId' => '<string>',
            'status' => 'PENDING|VALIDATION_FAILED|COMPLETED',
            'updatedAt' => <DateTime>,
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
items
Required: Yes
Type: Array of BillingAdjustmentSummary structures

An array of BillingAdjustmentSummary objects containing summary information about each billing adjustment request.

nextToken
Type: string

A token to retrieve the next page of results. If null, there are no more results to retrieve.

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

Examples

Example 1: List billing adjustment requests
$result = $client->listBillingAdjustmentRequests([
    'agreementId' => 'agmt-SvIzsqYMyQwI3GWgJAe17URx',
]);

Result syntax:

[
    'items' => [
        [
            'adjustmentAmount' => '500.00',
            'agreementId' => 'agmt-SvIzsqYMyQwI3GWgJAe17URx',
            'agreementType' => 'PurchaseAgreement',
            'billingAdjustmentRequestId' => 'ba-1a2b3c4d5e6f7g',
            'catalog' => 'AWSMarketplace',
            'createdAt' => ,
            'currencyCode' => 'USD',
            'originalInvoiceId' => 'E2E20230929a108cfae',
            'status' => 'PENDING',
            'updatedAt' => ,
        ],
    ],
]

SearchAgreements

$result = $client->searchAgreements([/* ... */]);
$promise = $client->searchAgreementsAsync([/* ... */]);

Searches across all agreements that a proposer has in AWS Marketplace. The search returns a list of agreements with basic agreement information.

The following filter combinations are supported when the PartyType is Proposer:

  • AgreementType

  • AgreementType + EndTime

  • AgreementType + ResourceType

  • AgreementType + ResourceType + EndTime

  • AgreementType + ResourceType + Status

  • AgreementType + ResourceType + Status + EndTime

  • AgreementType + ResourceId

  • AgreementType + ResourceId + EndTime

  • AgreementType + ResourceId + Status

  • AgreementType + ResourceId + Status + EndTime

  • AgreementType + AcceptorAccountId

  • AgreementType + AcceptorAccountId + EndTime

  • AgreementType + AcceptorAccountId + Status

  • AgreementType + AcceptorAccountId + Status + EndTime

  • AgreementType + AcceptorAccountId + OfferId

  • AgreementType + AcceptorAccountId + OfferId + Status

  • AgreementType + AcceptorAccountId + OfferId + EndTime

  • AgreementType + AcceptorAccountId + OfferId + Status + EndTime

  • AgreementType + AcceptorAccountId + ResourceId

  • AgreementType + AcceptorAccountId + ResourceId + Status

  • AgreementType + AcceptorAccountId + ResourceId + EndTime

  • AgreementType + AcceptorAccountId + ResourceId + Status + EndTime

  • AgreementType + AcceptorAccountId + ResourceType

  • AgreementType + AcceptorAccountId + ResourceType + EndTime

  • AgreementType + AcceptorAccountId + ResourceType + Status

  • AgreementType + AcceptorAccountId + ResourceType + Status + EndTime

  • AgreementType + Status

  • AgreementType + Status + EndTime

  • AgreementType + OfferId

  • AgreementType + OfferId + EndTime

  • AgreementType + OfferId + Status

  • AgreementType + OfferId + Status + EndTime

  • AgreementType + OfferSetId

  • AgreementType + OfferSetId + EndTime

  • AgreementType + OfferSetId + Status

  • AgreementType + OfferSetId + Status + EndTime

To filter by EndTime, you can use either BeforeEndTime or AfterEndTime. Only EndTime is supported for sorting.

Parameter Syntax

$result = $client->searchAgreements([
    'catalog' => '<string>',
    'filters' => [
        [
            'name' => '<string>',
            'values' => ['<string>', ...],
        ],
        // ...
    ],
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'sort' => [
        'sortBy' => '<string>',
        'sortOrder' => 'ASCENDING|DESCENDING',
    ],
]);

Parameter Details

Members
catalog
Type: string

The catalog in which the agreement was created.

filters
Type: Array of Filter structures

The filter name and value pair used to return a specific list of results.

The following filters are supported:

  • ResourceIdentifier – The unique identifier of the resource.

  • ResourceType – Type of the resource, which is the product (AmiProduct, ContainerProduct, SaaSProduct, ProfessionalServicesProduct, or MachineLearningProduct).

  • PartyType – The party type of the caller. For agreements where the caller is the proposer, use the Proposer filter.

  • AcceptorAccountId – The AWS account ID of the party accepting the agreement terms.

  • OfferId – The unique identifier of the offer in which the terms are registered in the agreement token.

  • Status – The current status of the agreement. Values include ACTIVE, ARCHIVED, CANCELLED, EXPIRED, RENEWED, REPLACED, and TERMINATED.

  • BeforeEndTime – A date used to filter agreements with a date before the endTime of an agreement.

  • AfterEndTime – A date used to filter agreements with a date after the endTime of an agreement.

  • AgreementType – The type of agreement. Supported value includes PurchaseAgreement.

  • OfferSetId – A unique identifier for the offer set containing this offer. All agreements created from offers in this set include this identifier as context.

maxResults
Type: int

The maximum number of agreements to return in the response.

nextToken
Type: string

A token to specify where to start pagination.

sort
Type: Sort structure

An object that contains the SortBy and SortOrder attributes. Only EndTime is supported for SearchAgreements. The default sort is EndTime descending.

Result Syntax

[
    'agreementViewSummaries' => [
        [
            'acceptanceTime' => <DateTime>,
            'acceptor' => [
                'accountId' => '<string>',
            ],
            'agreementId' => '<string>',
            'agreementType' => '<string>',
            'endTime' => <DateTime>,
            'proposalSummary' => [
                'offerId' => '<string>',
                'offerSetId' => '<string>',
                'resources' => [
                    [
                        'id' => '<string>',
                        'type' => '<string>',
                    ],
                    // ...
                ],
            ],
            'proposer' => [
                'accountId' => '<string>',
            ],
            'startTime' => <DateTime>,
            'status' => 'ACTIVE|ARCHIVED|CANCELLED|EXPIRED|RENEWED|REPLACED|ROLLED_BACK|SUPERSEDED|TERMINATED',
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
agreementViewSummaries
Type: Array of AgreementViewSummary structures

A summary of the agreement, including top-level attributes (for example, the agreement ID, proposer, and acceptor).

nextToken
Type: string

The token used for pagination. The field is null if there are no more results.

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

SendAgreementCancellationRequest

$result = $client->sendAgreementCancellationRequest([/* ... */]);
$promise = $client->sendAgreementCancellationRequestAsync([/* ... */]);

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.

Parameter Syntax

$result = $client->sendAgreementCancellationRequest([
    'agreementId' => '<string>', // REQUIRED
    'clientToken' => '<string>',
    'description' => '<string>',
    'reasonCode' => 'INCORRECT_TERMS_ACCEPTED|REPLACING_AGREEMENT|TEST_AGREEMENT|ALTERNATIVE_PROCUREMENT_CHANNEL|PRODUCT_DISCONTINUED|UNINTENDED_RENEWAL|BUYER_DISSATISFACTION|OTHER', // REQUIRED
]);

Parameter Details

Members
agreementId
Required: Yes
Type: string

The unique identifier of the agreement for which the cancellation request is being submitted.

clientToken
Type: string

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

description
Type: string

An optional detailed description of the cancellation reason (1-2000 characters).

reasonCode
Required: Yes
Type: string

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.

Result Syntax

[
    'agreementCancellationRequestId' => '<string>',
    'agreementId' => '<string>',
    'createdAt' => <DateTime>,
    'description' => '<string>',
    'reasonCode' => 'INCORRECT_TERMS_ACCEPTED|REPLACING_AGREEMENT|TEST_AGREEMENT|ALTERNATIVE_PROCUREMENT_CHANNEL|PRODUCT_DISCONTINUED|UNINTENDED_RENEWAL|BUYER_DISSATISFACTION|OTHER',
    'status' => 'PENDING_APPROVAL|APPROVED|REJECTED|CANCELLED|VALIDATION_FAILED',
    'updatedAt' => <DateTime>,
]

Result Details

Members
agreementCancellationRequestId
Type: string

The unique identifier for the created cancellation request.

agreementId
Type: string

The unique identifier of the agreement.

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The time when the cancellation request was created, as a POSIX timestamp (Unix epoch seconds).

description
Type: string

The detailed description of the cancellation reason, if provided.

reasonCode
Type: string

The reason code provided for the cancellation.

status
Type: string

The current status of the cancellation request. The initial status is PENDING_APPROVAL.

updatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The time when the cancellation request was last updated, as a POSIX timestamp (Unix epoch seconds).

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ResourceNotFoundException:

Request references a resource which does not exist.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

ConflictException:

The request could not be completed due to a conflict with the current state of the resource.

Examples

Example 1: Send a cancellation request
$result = $client->sendAgreementCancellationRequest([
    'agreementId' => 'agmt-752jqvg74yo7k4h56cakk6396',
    'clientToken' => '53nQSKWt6AjrsiZPhzQyZT',
    'description' => 'Due to budget constraints, we are unable to continue with our current subscription',
    'reasonCode' => 'OTHER',
]);

Result syntax:

[
    'agreementCancellationRequestId' => 'acr-752jqvg74yo7k4h56cakk6396',
    'agreementId' => 'agmt-752jqvg74yo7k4h56cakk6396',
    'createdAt' => ,
    'description' => 'Due to budget constraints, we are unable to continue with our current subscription',
    'reasonCode' => 'OTHER',
    'status' => 'PENDING_APPROVAL',
    'updatedAt' => ,
]

SendAgreementPaymentRequest

$result = $client->sendAgreementPaymentRequest([/* ... */]);
$promise = $client->sendAgreementPaymentRequestAsync([/* ... */]);

Allows sellers (proposers) to submit a payment request to buyers (acceptors) for a specific charge amount for an agreement that includes a VariablePaymentTerm. The payment request is created in PENDING_APPROVAL status, at which point the buyer can accept or reject it.

The agreement must be active and have a VariablePaymentTerm to support payment requests. The chargeAmount must not exceed the remaining available balance under the VariablePaymentTerm maxTotalChargeAmount.

Parameter Syntax

$result = $client->sendAgreementPaymentRequest([
    'agreementId' => '<string>', // REQUIRED
    'chargeAmount' => '<string>', // REQUIRED
    'clientToken' => '<string>',
    'description' => '<string>',
    'name' => '<string>', // REQUIRED
    'termId' => '<string>', // REQUIRED
]);

Parameter Details

Members
agreementId
Required: Yes
Type: string

The unique identifier of the agreement for which the payment request is being submitted. Use GetAgreementTerms to retrieve agreement term details.

chargeAmount
Required: Yes
Type: string

The amount requested to be charged to the buyer, positive decimal value in the currency of the accepted term.

A ValidationException is returned if the chargeAmount exceeds the available balance, if the agreement doesn't have an active VariablePaymentTerm, or if the termId is invalid.

clientToken
Type: string

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

description
Type: string

An optional detailed description of the payment request (1-2000 characters).

name
Required: Yes
Type: string

A descriptive name for the payment request (5-64 characters).

termId
Required: Yes
Type: string

The unique identifier of the VariablePaymentTerm for the agreement that the payment request is being sent for.

Result Syntax

[
    'agreementId' => '<string>',
    'chargeAmount' => '<string>',
    'createdAt' => <DateTime>,
    'currencyCode' => '<string>',
    'description' => '<string>',
    'name' => '<string>',
    'paymentRequestId' => '<string>',
    'status' => 'VALIDATING|VALIDATION_FAILED|PENDING_APPROVAL|APPROVED|REJECTED|CANCELLED',
]

Result Details

Members
agreementId
Type: string

The agreement identifier for this payment request.

chargeAmount
Type: string

The amount being charged to the buyer.

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The time when the payment request was created, in ISO 8601 format.

currencyCode
Type: string

The currency code for the charge amount (e.g., USD).

description
Type: string

The detailed description of the payment request, if provided.

name
Type: string

The descriptive name of the payment request.

paymentRequestId
Type: string

The unique identifier for the sent payment request.

status
Type: string

The current status of the payment request. The initial status is PENDING_APPROVAL.

Errors

ValidationException:

The input fails to satisfy the constraints specified by the service.

AccessDeniedException:

User does not have sufficient access to perform this action.

ResourceNotFoundException:

Request references a resource which does not exist.

ThrottlingException:

Request was denied due to request throttling.

InternalServerException:

Unexpected error during processing of request.

ConflictException:

The request could not be completed due to a conflict with the current state of the resource.

Shapes

AcceptedTerm

Description

A subset of terms proposed by the proposer, which have been accepted by the acceptor as part of agreement creation.

Members
byolPricingTerm
Type: ByolPricingTerm structure

Enables you and your customers to move your existing agreements to AWS Marketplace. The customer won't be charged for product usage in AWS Marketplace because they already paid for the product outside of AWS Marketplace.

configurableUpfrontPricingTerm

Defines a prepaid payment model that allows buyers to configure the entitlements they want to purchase and the duration.

fixedUpfrontPricingTerm
Type: FixedUpfrontPricingTerm structure

Defines a pre-paid pricing model where the customers are charged a fixed upfront amount.

freeTrialPricingTerm
Type: FreeTrialPricingTerm structure

Defines a short-term free pricing model where the buyers aren’t charged anything within a specified limit.

legalTerm
Type: LegalTerm structure

Defines the list of text agreements proposed to the acceptors. An example is the end user license agreement (EULA).

paymentScheduleTerm
Type: PaymentScheduleTerm structure

Defines an installment-based pricing model where customers are charged a fixed price on different dates during the agreement validity period. This is used most commonly for flexible payment schedule pricing.

recurringPaymentTerm
Type: RecurringPaymentTerm structure

Defines a pricing model where customers are charged a fixed recurring price at the end of each billing period.

renewalTerm
Type: RenewalTerm structure

Defines that on graceful expiration of the agreement (when the agreement ends on its pre-defined end date), a new agreement will be created using the accepted terms on the existing agreement. In other words, the agreement will be renewed. Presence of RenewalTerm in the offer document means that auto-renewal is allowed. Buyers will have the option to accept or decline auto-renewal at the offer acceptance/agreement creation. Buyers can also change this flag from True to False or False to True at anytime during the agreement's lifecycle.

supportTerm
Type: SupportTerm structure

Defines the customer support available for the acceptors when they purchase the software.

usageBasedPricingTerm
Type: UsageBasedPricingTerm structure

Defines a usage-based pricing model (typically, pay-as-you-go pricing), where the customers are charged based on product usage.

validityTerm
Type: ValidityTerm structure

Defines the conditions that will keep an agreement created from this offer valid.

variablePaymentTerm
Type: VariablePaymentTerm structure

Defines a payment model where sellers can submit variable payment requests up to a maximum charge amount, with configurable approval strategies and expiration timelines.

Acceptor

Description

The details of the party accepting the agreement terms. This is commonly the buyer for PurchaseAgreement.

Members
accountId
Type: string

The AWS account ID of the acceptor.

AccessDeniedException

Description

User does not have sufficient access to perform this action.

Members
message
Type: string
requestId
Type: string

The unique identifier for the error.

AgreementCancellationRequestSummary

Description

Summary view of an agreement cancellation request.

Members
agreementCancellationRequestId
Type: string

The unique identifier of the cancellation request.

agreementId
Type: string

The unique identifier of the agreement associated with this cancellation request.

agreementType
Type: string

The type of agreement.

catalog
Type: string

The catalog in which the agreement was created.

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the cancellation request was created, as a POSIX timestamp (Unix epoch seconds).

reasonCode
Type: string

The reason code provided for the cancellation.

status
Type: string

The current status of the cancellation request. Possible values include PENDING_APPROVAL, APPROVED, REJECTED, CANCELLED, and VALIDATION_FAILED.

updatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the cancellation request was last updated, as a POSIX timestamp (Unix epoch seconds).

AgreementInvoiceLineItemGroupSummary

Description

A summary of grouped billing data for an agreement invoice line item.

Members
agreementId
Type: string

The unique identifier of the agreement.

invoiceBillingPeriod
Type: InvoiceBillingPeriod structure

The billing period associated with this group.

invoiceId
Type: string

The identifier of the invoice for this group.

invoiceType
Type: string

The type of invoice. Valid values are INVOICE and CREDIT_MEMO.

invoicingEntity
Type: InvoicingEntity structure

The entity that issues the invoice.

issuedTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the invoice containing this group was created.

pricingCurrencyAmount
Type: PricingCurrencyAmount structure

Monetary amounts for this invoice group.

AgreementViewSummary

Description

A summary of the agreement, including top-level attributes (for example, the agreement ID, proposer, and acceptor).

Members
acceptanceTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time that the agreement was accepted.

acceptor
Type: Acceptor structure

Details of the party accepting the agreement terms. This is commonly the buyer for PurchaseAgreement.

agreementId
Type: string

The unique identifier of the agreement.

agreementType
Type: string

The type of agreement.

endTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the agreement ends. The field is null for pay-as-you-go agreements, which don’t have end dates.

proposalSummary
Type: ProposalSummary structure

A summary of the proposal

proposer
Type: Proposer structure

Details of the party proposing the agreement terms, most commonly the seller for PurchaseAgreement.

startTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the agreement starts.

status
Type: string

The current status of the agreement.

BatchCreateBillingAdjustmentError

Description

An error for a billing adjustment request entry that failed validation.

Members
clientToken
Required: Yes
Type: string

The client token of the request entry that failed.

code
Required: Yes
Type: string

The error code indicating the reason for failure.

message
Required: Yes
Type: string

A human-readable message describing the error.

BatchCreateBillingAdjustmentItem

Description

A successfully created billing adjustment request item.

Members
billingAdjustmentRequestId
Required: Yes
Type: string

The unique identifier of the created billing adjustment request.

clientToken
Required: Yes
Type: string

The client token provided in the corresponding request entry.

BatchCreateBillingAdjustmentRequestEntry

Description

An individual entry in a batch billing adjustment request, specifying the invoice and adjustment details.

Members
adjustmentAmount
Required: Yes
Type: string

The adjustment amount as a string representation of a decimal number in the currency of the invoice.

adjustmentReasonCode
Required: Yes
Type: string

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.

agreementId
Required: Yes
Type: string

The unique identifier of the agreement associated with the invoice.

clientToken
Required: Yes
Type: string

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

currencyCode
Required: Yes
Type: string

The 3-letter ISO 4217 currency code for the adjustment amount (e.g., USD).

description
Type: string

An optional detailed description of the adjustment reason.

originalInvoiceId
Required: Yes
Type: string

The identifier of the original invoice to adjust.

BillingAdjustmentSummary

Description

Summary view of a billing adjustment request.

Members
adjustmentAmount
Required: Yes
Type: string

The adjustment amount as a string representation of a decimal number.

agreementId
Required: Yes
Type: string

The unique identifier of the agreement associated with this billing adjustment request.

agreementType
Required: Yes
Type: string

The type of agreement.

billingAdjustmentRequestId
Required: Yes
Type: string

The unique identifier of the billing adjustment request.

catalog
Required: Yes
Type: string

The catalog in which the agreement was created.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the billing adjustment request was created, as a POSIX timestamp (Unix epoch seconds).

currencyCode
Required: Yes
Type: string

The currency code for the adjustment amount.

originalInvoiceId
Required: Yes
Type: string

The identifier of the original invoice being adjusted.

status
Required: Yes
Type: string

The current status of the billing adjustment request.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the billing adjustment request was last updated, as a POSIX timestamp (Unix epoch seconds).

ByolPricingTerm

Description

Enables you and your customers to move your existing agreements to AWS Marketplace. The customer won't be charged for product usage in AWS Marketplace because they already paid for the product outside of AWS Marketplace.

Members
type
Type: string

Type of the term being updated.

ConfigurableUpfrontPricingTerm

Description

Defines a prepaid payment model that allows buyers to configure the entitlements they want to purchase and the duration.

Members
configuration

Additional parameters specified by the acceptor while accepting the term.

currencyCode
Type: string

Defines the currency for the prices mentioned in the term.

rateCards
Type: Array of ConfigurableUpfrontRateCardItem structures

A rate card defines the per unit rates for product dimensions.

type
Type: string

Category of selector.

ConfigurableUpfrontPricingTermConfiguration

Description

Defines a prepaid payment model that allows buyers to configure the entitlements they want to purchase and the duration.

Members
dimensions
Required: Yes
Type: Array of Dimension structures

Defines the dimensions that the acceptor has purchased from the overall set of dimensions presented in the rate card.

selectorValue
Required: Yes
Type: string

Defines the length of time for which the particular pricing/dimension is being purchased by the acceptor.

ConfigurableUpfrontRateCardItem

Description

Within the prepaid payment model defined under ConfigurableUpfrontPricingTerm, the RateCardItem defines all the various rate cards (including pricing and dimensions) that have been proposed.

Members
constraints
Type: Constraints structure

Defines limits on how the term can be configured by acceptors.

rateCard
Type: Array of RateCardItem structures

Defines the per unit rates for product dimensions.

selector
Type: Selector structure

Differentiates between the mutually exclusive rate cards in the same pricing term to be selected by the buyer.

ConflictException

Description

The request could not be completed due to a conflict with the current state of the resource.

Members
message
Type: string
requestId
Type: string

The unique identifier for the error.

resourceId
Type: string

The unique identifier for the resource.

resourceType
Type: string

The type of resource.

Constraints

Description

Defines limits on how the term can be configured by acceptors.

Members
multipleDimensionSelection
Type: string

Determines if buyers are allowed to select multiple dimensions in the rate card. The possible values are Allowed and Disallowed. The default value is Allowed.

quantityConfiguration
Type: string

Determines if acceptors are allowed to configure quantity for each dimension in rate card. The possible values are Allowed and Disallowed. The default value is Allowed.

Dimension

Description

Defines the dimensions that the acceptor has purchased from the overall set of dimensions presented in the rate card.

Members
dimensionKey
Required: Yes
Type: string

The name of key value of the dimension.

dimensionValue
Required: Yes
Type: int

The number of units of the dimension the acceptor has purchased.

For Agreements with ConfigurableUpfrontPricingTerm, the RateCard section will define the prices and dimensions defined by the seller (proposer), whereas the Configuration section will define the actual dimensions, prices, and units the buyer has chosen to accept.

DocumentItem

Description

Includes the list of references to legal resources proposed by the proposer to the acceptor. Each DocumentItem refers to an individual reference.

Members
type
Type: string

Category of the document. Document types include:

  • CustomEula – A custom EULA provided by you as seller. A URL for a EULA stored in an accessible Amazon S3 bucket is required for this document type.

  • CustomDsa – A custom Data Subscription Agreement (DSA) provided by you as seller. A URL for a DSA stored in an accessible Amazon S3 bucket is required for this document type.

  • StandardEula – The Standard Contract for AWS Marketplace (SCMP). For more information about SCMP, see the AWS Marketplace Seller Guide. You don’t provide a URL for this type because it’s managed by AWS Marketplace.

  • StandardDsa – DSA for AWS Marketplace. For more information about the DSA, see the AWS Data Exchange User Guide. You don’t provide a URL for this type because it’s managed by AWS Marketplace.

url
Type: string

A URL to the legal document for buyers to read. Required when Type is CustomEula.

version
Type: string

Version of standard contracts provided by AWS Marketplace. Required when Type is StandardEula or StandardDsa.

EstimatedCharges

Description

Estimated cost of the agreement.

Members
agreementValue
Type: string

The total known amount customer has to pay across the lifecycle of the agreement.

This is the total contract value if accepted terms contain ConfigurableUpfrontPricingTerm or FixedUpfrontPricingTerm. In the case of pure contract pricing, this will be the total value of the contract. In the case of contracts with consumption pricing, this will only include the committed value and not include any overages that occur.

If the accepted terms contain PaymentScheduleTerm, it will be the total payment schedule amount. This occurs when flexible payment schedule is used, and is the sum of all invoice charges in the payment schedule.

In case a customer has amended an agreement, by purchasing more units of any dimension, this will include both the original cost as well as the added cost incurred due to addition of new units.

This is 0 if the accepted terms contain UsageBasedPricingTerm without ConfigurableUpfrontPricingTerm or RecurringPaymentTerm. This occurs for usage-based pricing (such as SaaS metered or AMI/container hourly or monthly), because the exact usage is not known upfront.

currencyCode
Type: string

Defines the currency code for the charge.

Filter

Description

The filter name and value pair that is used to return a more specific list of results. Filters can be used to match a set of resources by various criteria, such as offerId or productId.

Members
name
Type: string

The name of the filter.

values
Type: Array of strings

The filter value.

FixedUpfrontPricingTerm

Description

Defines a prepaid pricing model where the customers are charged a fixed upfront amount.

Members
currencyCode
Type: string

Defines the currency for the prices mentioned in this term.

duration
Type: string

Contract duration for the terms.

grants
Type: Array of GrantItem structures

Entitlements granted to the acceptor of fixed upfront as part of agreement execution.

price
Type: string

Fixed amount to be charged to the customer when this term is accepted.

type
Type: string

Category of the term being updated.

FreeTrialPricingTerm

Description

Defines a short-term free pricing model where the buyers aren’t charged anything within a specified limit.

Members
duration
Type: string

Duration of the free trial period (5–31 days).

grants
Type: Array of GrantItem structures

Entitlements granted to the acceptor of a free trial as part of an agreement execution.

type
Type: string

Category of the term.

GrantItem

Description

Entitlements granted to the acceptor of fixed upfront as part of agreement execution.

Members
dimensionKey
Type: string

Unique dimension key defined in the product document. Dimensions represent categories of capacity in a product and are specified when the product is listed in AWS Marketplace.

maxQuantity
Type: int

Maximum amount of capacity that the buyer can be entitled to the given dimension of the product. If MaxQuantity is not provided, the buyer will be able to use an unlimited amount of the given dimension.

InternalServerException

Description

Unexpected error during processing of request.

Members
message
Type: string
requestId
Type: string

The unique identifier for the error.

InvoiceBillingPeriod

Description

The billing period for an invoice, specified by month and year.

Members
month
Required: Yes
Type: int

The billing period month. Valid range: 1-12.

year
Required: Yes
Type: int

The billing period year.

InvoicingEntity

Description

The entity that issues the AWS invoice.

Members
branchName
Type: string

The branch name of the invoicing entity.

legalName
Type: string

The legal name of the invoicing entity.

LegalTerm

Description

Defines the list of text agreements proposed to the acceptors. An example is the end user license agreement (EULA).

Members
documents
Type: Array of DocumentItem structures

List of references to legal resources proposed to the buyers. An example is the EULA.

type
Type: string

Category of the term being updated.

PaymentRequestSummary

Description

Summary view of a payment request.

Members
agreementId
Type: string

The unique identifier of the agreement associated with this payment request.

chargeAmount
Type: string

The amount charged or to be charged to the buyer.

chargeId
Type: string

The unique identifier of the charge created after the payment request is approved. This field is only present for approved payment requests.

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the payment request was created, in ISO 8601 format.

currencyCode
Type: string

The currency code for the charge amount.

name
Type: string

The descriptive name of the payment request.

paymentRequestId
Type: string

The unique identifier of the payment request.

status
Type: string

The current status of the payment request. Possible values include VALIDATING, VALIDATION_FAILED, PENDING_APPROVAL, APPROVED, REJECTED, and CANCELLED.

updatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the payment request was last updated, in ISO 8601 format.

PaymentScheduleTerm

Description

Defines an installment-based pricing model where customers are charged a fixed price on different dates during the agreement validity period. This is used most commonly for flexible payment schedule pricing.

Members
currencyCode
Type: string

Defines the currency for the prices mentioned in the term.

schedule
Type: Array of ScheduleItem structures

List of the payment schedule where each element defines one installment of payment. It contains the information necessary for calculating the price.

type
Type: string

Type of the term.

PricingCurrencyAmount

Description

Monetary amounts associated with an invoice line item group.

Members
amount
Type: string

The monetary amount before tax.

currencyCode
Type: string

The 3-letter ISO 4217 currency code (e.g., USD, EUR, JPY).

maxAdjustmentAmount
Type: string

The maximum refundable amount as a string representation of a decimal number.

ProposalSummary

Description

A summary of the proposal received from the proposer.

Members
offerId
Type: string

The unique identifier of the offer in AWS Marketplace.

offerSetId
Type: string

A unique identifier for the offer set containing this offer. All agreements created from offers in this set include this identifier as context.

resources
Type: Array of Resource structures

The list of resources involved in the agreement.

Proposer

Description

Details of the party proposing the agreement terms,. This is commonly the seller for PurchaseAgreement.

Members
accountId
Type: string

The AWS account ID of the proposer.

RateCardItem

Description

Defines the per unit rates for each individual product dimension.

Members
dimensionKey
Type: string

Dimension for which the given entitlement applies. Dimensions represent categories of capacity in a product and are specified when the product is listed in AWS Marketplace.

price
Type: string

Per unit price for the product dimension that’s used for calculating the amount to be charged.

RecurringPaymentTerm

Description

Defines a pricing model where customers are charged a fixed recurring price at the end of each billing period.

Members
billingPeriod
Type: string

Defines the recurrence at which buyers are charged.

currencyCode
Type: string

Defines the currency for the prices mentioned in this term.

price
Type: string

Amount charged to the buyer every billing period.

type
Type: string

Type of the term being updated.

RenewalTerm

Description

Defines that on graceful expiration of the agreement (when the agreement ends on its pre-defined end date), a new agreement will be created using the accepted terms on the existing agreement. In other words, the agreement will be renewed. The presence of RenewalTerm in the offer document means that auto-renewal is allowed. Buyers will have the option to accept or decline auto-renewal at the offer acceptance/agreement creation. Buyers can also change this flag from True to False or False to True at anytime during the agreement's lifecycle.

Members
configuration
Type: RenewalTermConfiguration structure

Additional parameters specified by the acceptor while accepting the term.

type
Type: string

Category of the term being updated.

RenewalTermConfiguration

Description

Additional parameters specified by the acceptor while accepting the term.

Members
enableAutoRenew
Required: Yes
Type: boolean

Defines whether the acceptor has chosen to auto-renew the agreement at the end of its lifecycle. Can be set to True or False.

Resource

Description

The list of resources involved in the agreement.

Members
id
Type: string

The unique identifier of the resource.

We mention the term resource, which is most commonly a product, so a resourceId is also a productId.

type
Type: string

Type of the resource, which is the product. Values include SaaSProduct or AmiProduct.

ResourceNotFoundException

Description

Request references a resource which does not exist.

Members
message
Type: string
requestId
Type: string

The unique identifier for the error.

resourceId
Type: string

The unique identifier for the resource.

resourceType
Type: string

The type of resource.

ScheduleItem

Description

An individual installment of the payment that includes the date and amount of the charge.

Members
chargeAmount
Type: string

The price that the customer would pay on the scheduled date (chargeDate).

chargeDate
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date that the customer would pay the price defined in this payment schedule term. Invoices are generated on the date provided.

Selector

Description

Differentiates between the mutually exclusive rate cards in the same pricing term to be selected by the buyer.

Members
type
Type: string

Category of selector.

value
Type: string

Contract duration. This field supports the ISO 8601 format.

Sort

Description

An object that contains the SortBy and SortOrder attributes.

Members
sortBy
Type: string

The attribute on which the data is grouped, which can be by StartTime and EndTime. The default value is EndTime.

sortOrder
Type: string

The sorting order, which can be ASCENDING or DESCENDING. The default value is DESCENDING.

SupportTerm

Description

Defines the customer support available for the acceptors when they purchase the software.

Members
refundPolicy
Type: string

Free-text field about the refund policy description that will be shown to customers as is on the website and console.

type
Type: string

Category of the term being updated.

ThrottlingException

Description

Request was denied due to request throttling.

Members
message
Type: string
requestId
Type: string

The unique identifier for the error.

UsageBasedPricingTerm

Description

Defines a usage-based pricing model (typically, pay-as-you-go pricing), where the customers are charged based on product usage.

Members
currencyCode
Type: string

Defines the currency for the prices mentioned in the term.

rateCards
Type: Array of UsageBasedRateCardItem structures

List of rate cards.

type
Type: string

Category of the term.

UsageBasedRateCardItem

Description

Within the pay-as-you-go model defined under UsageBasedPricingTerm, the UsageBasedRateCardItem defines an individual rate for a product dimension.

Members
rateCard
Type: Array of RateCardItem structures

Defines the per unit rates for product dimensions.

ValidationException

Description

The input fails to satisfy the constraints specified by the service.

Members
fields
Type: Array of ValidationExceptionField structures

The fields associated with the error.

message
Type: string
reason
Type: string

The reason associated with the error.

requestId
Type: string

The unique identifier associated with the error.

ValidationExceptionField

Description

The input fails to satisfy the constraints specified by the service.

Members
message
Required: Yes
Type: string

See applicable actions.

name
Required: Yes
Type: string

The name of the field associated with the error.

ValidityTerm

Description

Defines the conditions that will keep an agreement created from this offer valid.

Members
agreementDuration
Type: string

Defines the duration that the agreement remains active. If AgreementStartDate isn’t provided, the agreement duration is relative to the agreement signature time. The duration is represented in the ISO_8601 format.

agreementEndDate
Type: timestamp (string|DateTime or anything parsable by strtotime)

Defines the date when the agreement ends. The agreement ends at 23:59:59.999 UTC on the date provided. If AgreementEndDate isn’t provided, the agreement end date is determined by the validity of individual terms.

agreementStartDate
Type: timestamp (string|DateTime or anything parsable by strtotime)

Defines the date when agreement starts. The agreement starts at 00:00:00.000 UTC on the date provided. If AgreementStartDate isn’t provided, the agreement start date is determined based on agreement signature time.

type
Type: string

Category of the term being updated.

VariablePaymentTerm

Description

Defines a payment model where sellers can submit variable payment requests up to a maximum charge amount, with configurable approval strategies and expiration timelines.

Members
configuration

Additional parameters specified by the acceptor while accepting the term.

currencyCode
Type: string

Defines the currency for the prices mentioned in the term.

maxTotalChargeAmount
Type: string

The maximum total amount that can be charged to the customer through variable payment requests under this term.

type
Type: string

Type of the term.

VariablePaymentTermConfiguration

Description

Additional parameters specified by the acceptor while accepting the variable payment term.

Members
expirationDuration
Type: string

Defines the duration after which a payment request is automatically approved if no further action is taken. This only applies when the payment request approval strategy is set to AUTO_APPROVE_ON_EXPIRATION. The duration is represented in the ISO_8601 format (e.g., P10D for 10 days).

paymentRequestApprovalStrategy
Required: Yes
Type: string

Defines the strategy for approving payment requests. Values include AUTO_APPROVE_ON_EXPIRATION and WAIT_FOR_APPROVAL