View a markdown version of this page

SendAgreementPaymentRequest - AWS Marketplace

SendAgreementPaymentRequest

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.

Note

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.

Request Syntax

{ "agreementId": "string", "chargeAmount": "string", "clientToken": "string", "description": "string", "name": "string", "termId": "string" }

Request Parameters

The request accepts the following data in JSON format.

Note

In the following list, the required parameters are described first.

agreementId

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

Type: String

Length Constraints: Minimum length of 1. Maximum length of 64.

Pattern: [A-Za-z0-9_/-]+

Required: Yes

chargeAmount

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

Note

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.

Type: String

Pattern: [0-9]*(\.[0-9]{0,8})?

Required: Yes

name

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

Type: String

Length Constraints: Minimum length of 5. Maximum length of 64.

Pattern: .+

Required: Yes

termId

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

Type: String

Length Constraints: Minimum length of 1. Maximum length of 256.

Pattern: [A-Za-z0-9+=;,.@\-_]+

Required: Yes

clientToken

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

Type: String

Length Constraints: Minimum length of 1. Maximum length of 64.

Pattern: [a-zA-Z0-9-]+

Required: No

description

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

Type: String

Length Constraints: Minimum length of 1. Maximum length of 2000.

Pattern: .+

Required: No

Response Syntax

{ "agreementId": "string", "chargeAmount": "string", "createdAt": number, "currencyCode": "string", "description": "string", "name": "string", "paymentRequestId": "string", "status": "string" }

Response Elements

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

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

agreementId

The agreement identifier for this payment request.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 64.

Pattern: [A-Za-z0-9_/-]+

chargeAmount

The amount being charged to the buyer.

Type: String

Pattern: [0-9]*(\.[0-9]{0,8})?

createdAt

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

Type: Timestamp

currencyCode

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

Type: String

Length Constraints: Fixed length of 3.

Pattern: [A-Z]+

description

The detailed description of the payment request, if provided.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 2000.

Pattern: .+

name

The descriptive name of the payment request.

Type: String

Length Constraints: Minimum length of 5. Maximum length of 64.

Pattern: .+

paymentRequestId

The unique identifier for the sent payment request.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 64.

Pattern: pr-[a-zA-Z0-9]+

status

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

Type: String

Valid Values: VALIDATING | VALIDATION_FAILED | PENDING_APPROVAL | APPROVED | REJECTED | CANCELLED

Errors

For information about the errors that are common to all actions, see Common Error Types.

AccessDeniedException

User does not have sufficient access to perform this action.

requestId

The unique identifier for the error.

HTTP Status Code: 400

ConflictException

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

requestId

The unique identifier for the error.

resourceId

The unique identifier for the resource.

resourceType

The type of resource.

HTTP Status Code: 400

InternalServerException

Unexpected error during processing of request.

requestId

The unique identifier for the error.

HTTP Status Code: 500

ResourceNotFoundException

Request references a resource which does not exist.

requestId

The unique identifier for the error.

resourceId

The unique identifier for the resource.

resourceType

The type of resource.

HTTP Status Code: 400

ThrottlingException

Request was denied due to request throttling.

requestId

The unique identifier for the error.

HTTP Status Code: 400

ValidationException

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

fields

The fields associated with the error.

reason

The reason associated with the error.

requestId

The unique identifier associated with the error.

HTTP Status Code: 400

Examples

Sample request

This example illustrates one usage of SendAgreementPaymentRequest.

{ "clientToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "agreementId": "fEXAMPLE-0aa6-4e42-8715-6a1EXAMPLE95", "termId": "termEXAMPLE-3cc8-6g64-0937-8c3EXAMPLE17", "name": "Q1 2024 Usage Charges", "chargeAmount": "1250.50", "description": "Payment request for Q1 2024 usage charges for premium support services" }

Sample response

This example illustrates one usage of SendAgreementPaymentRequest.

{ "paymentRequestId": "prEXAMPLE-1bb7-5f53-9826-7b2EXAMPLE06", "agreementId": "fEXAMPLE-0aa6-4e42-8715-6a1EXAMPLE95", "status": "PENDING_APPROVAL", "name": "Q1 2024 Usage Charges", "description": "Payment request for Q1 2024 usage charges for premium support services", "chargeAmount": "1250.50", "currencyCode": "USD", "createdAt": "2024-01-15T10:30:00.000Z" }

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: