CreateOpportunity - AWS Partner Central

CreateOpportunity

Creates an Opportunity record in Partner Central. Use this operation to create a potential business opportunity intended to be submitted to AWS. Creating an opportunity sets its Lifecycle.ReviewStatus to Pending Submission.

To fully submit an opportunity, follow these steps:

  1. To create the opportunity, use CreateOpportunity.

  2. To associate a solution with the opportunity, use AssociateOpportunity.

  3. To submit the opportunity, use SubmitOpportunity.

After submission, you can't edit the opportunity until the review is complete. However, opportunities in the Pending Submission state still need all details completed. You can update the opportunity while it's in the Pending Submission state.

There's a set of mandatory fields required to create opportunities, but consider providing optional fields to enrich the opportunity record.

Request Syntax

{ "Catalog": "string", "ClientToken": "string", "Customer": { "Account": { "Address": { "City": "string", "CountryCode": "string", "PostalCode": "string", "StateOrRegion": "string", "StreetAddress": "string" }, "AwsAccountId": "string", "CompanyName": "string", "Duns": "string", "Industry": "string", "OtherIndustry": "string", "WebsiteUrl": "string" }, "Contacts": [ { "BusinessTitle": "string", "Email": "string", "FirstName": "string", "LastName": "string", "Phone": "string" } ] }, "LifeCycle": { "ClosedLostReason": "string", "NextSteps": "string", "NextStepsHistory": [ { "Time": "string", "Value": "string" } ], "ReviewComments": "string", "ReviewStatus": "string", "ReviewStatusReason": "string", "Stage": "string", "TargetCloseDate": "string" }, "Marketing": { "AwsFundingUsed": "string", "CampaignName": "string", "Channels": [ "string" ], "Source": "string", "UseCases": [ "string" ] }, "NationalSecurity": "string", "OpportunityTeam": [ { "BusinessTitle": "string", "Email": "string", "FirstName": "string", "LastName": "string", "Phone": "string" } ], "OpportunityType": "string", "Origin": "string", "PartnerOpportunityIdentifier": "string", "PrimaryNeedsFromAws": [ "string" ], "Project": { "AdditionalComments": "string", "ApnPrograms": [ "string" ], "CompetitorName": "string", "CustomerBusinessProblem": "string", "CustomerUseCase": "string", "DeliveryModels": [ "string" ], "ExpectedCustomerSpend": [ { "Amount": "string", "CurrencyCode": "string", "Frequency": "string", "TargetCompany": "string" } ], "OtherCompetitorNames": "string", "OtherSolutionDescription": "string", "RelatedOpportunityIdentifier": "string", "SalesActivities": [ "string" ], "Title": "string" }, "SoftwareRevenue": { "DeliveryModel": "string", "EffectiveDate": "string", "ExpirationDate": "string", "Value": { "Amount": "string", "CurrencyCode": "string" } } }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.

Note

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

Catalog

Specifies the catalog associated with the request. This field takes a string value from a predefined list: AWS or Sandbox. The catalog determines which environment the opportunity is created in. Use AWS to create opportunities in the AWS catalog, and Sandbox to test in a secure and isolated environment.

Type: String

Pattern: ^[a-zA-Z]+$

Required: Yes

ClientToken

Required to be unique, and should be unchanging, it can be randomly generated or a meaningful string.

Default: None

Best practice: To ensure uniqueness and avoid collisions, we recommend you use a UUID (Universally Unique Identifier) as the ClientToken. You can use standard libraries available in most programming languages to generated this. If you use the same client token, the API throws this error: "Conflicting client token submitted for a new request body".

Type: String

Length Constraints: Minimum length of 1.

Required: Yes

Customer

Specifies customer details associated with the Opportunity.

Type: Customer object

Required: No

LifeCycle

An object that contains lifecycle details for the Opportunity.

Type: LifeCycle object

Required: No

Marketing

This object contains marketing details and is optional for an opportunity.

Type: Marketing object

Required: No

NationalSecurity

Indicates whether the Opportunity pertains to a national security project. This field must be set to true only when the customer's industry is Government. Additional privacy and security measures apply during the review and management process for opportunities marked as NationalSecurity.

Type: String

Valid Values: Yes | No

Required: No

OpportunityTeam

Represents the internal team handling the opportunity. Specify the members involved in collaborating on this opportunity within the partner's organization.

Type: Array of Contact objects

Array Members: Minimum number of 0 items. Maximum number of 1 item.

Required: No

OpportunityType

Specifies the opportunity type as a renewal, new, or expansion.

Opportunity types:

  • New opportunity: Represents a new business opportunity with a potential customer that's not previously engaged with your solutions or services.

  • Renewal opportunity: Represents an opportunity to renew an existing contract or subscription with a current customer, ensuring continuity of service.

  • Expansion opportunity: Represents an opportunity to expand the scope of an existing contract or subscription, either by adding new services or increasing the volume of existing services for a current customer.

Type: String

Valid Values: Net New Business | Flat Renewal | Expansion

Required: No

Origin

Specifies the origin of the opportunity, indicating if it was sourced from AWS or the partner. For all opportunities created with Catalog: AWS, this field must only be Partner Referral. However, when using Catalog: Sandbox, you can set this field to AWS Referral to simulate AWS referral creation. This allows AWS-originated flows testing in the sandbox catalog.

Type: String

Valid Values: AWS Referral | Partner Referral

Required: No

PartnerOpportunityIdentifier

Specifies the opportunity's unique identifier in the partner's CRM system. This value is essential to track and reconcile because it's included in the outbound payload sent back to the partner.

This field allows partners to link an opportunity to their CRM, to ensure seamless integration and accurate synchronization between the Partner Central API and the partner's internal systems.

Type: String

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

Required: No

PrimaryNeedsFromAws

Identifies the type of support the partner needs from AWS.

Valid values:

  • Cosell—Architectural Validation: Confirmation from AWS that the partner's proposed solution architecture is aligned with AWS best practices and poses minimal architectural risks.

  • Cosell—Business Presentation: Request AWS seller's participation in a joint customer presentation.

  • Cosell—Competitive Information: Access to AWS competitive resources and support for the partner's proposed solution.

  • Cosell—Pricing Assistance: Connect with an AWS seller for support situations where a partner may be receiving an upfront discount on a service (for example: EDP deals).

  • Cosell—Technical Consultation: Connect with an AWS Solutions Architect to address the partner's questions about the proposed solution.

  • Cosell—Total Cost of Ownership Evaluation: Assistance with quoting different cost savings of proposed solutions on AWS versus on-premises or a traditional hosting environment.

  • Cosell—Deal Support: Request AWS seller's support to progress the opportunity (for example: joint customer call, strategic positioning).

  • Cosell—Support for Public Tender/RFx: Opportunity related to the public sector where the partner needs AWS RFx support.

  • Do Not Need Support from AWS Sales Rep: Indicates that a partner doesn't need support from an AWS sales representative, and the partner solely manages the opportunity. It's possible to request co-selling support on these opportunities at any stage during their lifecycle. Also known as, for-visibility-only (FVO) opportunity.

Type: Array of strings

Valid Values: Co-Sell - Architectural Validation | Co-Sell - Business Presentation | Co-Sell - Competitive Information | Co-Sell - Pricing Assistance | Co-Sell - Technical Consultation | Co-Sell - Total Cost of Ownership Evaluation | Co-Sell - Deal Support | Co-Sell - Support for Public Tender / RFx

Required: No

Project

An object that contains project details for the Opportunity.

Type: Project object

Required: No

SoftwareRevenue

Specifies details of a customer's procurement terms. Required only for partners in eligible programs.

Type: SoftwareRevenue object

Required: No

Response Syntax

{ "Id": "string", "LastModifiedDate": "string", "PartnerOpportunityIdentifier": "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.

Id

Read-only, system-generated Opportunity unique identifier. AWS creates this identifier, and it's used for all subsequent actions on the opportunity, such as updates, associations, and submissions. It ensures that each opportunity can be accurately tracked and managed within the system.

Type: String

Pattern: ^O[0-9]{1,19}$

LastModifiedDate

DateTime when the opportunity was last modified. When the Opportunity is created, its value is equal to CreatedDate.

Type: Timestamp

PartnerOpportunityIdentifier

Specifies the opportunity's unique identifier in the partner's CRM system. This value is essential to track and reconcile because it's included in the outbound payload sent back to the partner.

Type: String

Errors

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

AccessDeniedException

This error occurs when you don't have permission to perform the requested action.

You don’t have access to this action or resource. Review IAM policies or contact your AWS administrator for assistance.

HTTP Status Code: 400

ConflictException

This error occurs when the request can’t be processed due to a conflict with the target resource's current state, which could result from updating or deleting the resource.

Suggested action: Fetch the latest state of the resource, verify the state, and retry the request.

HTTP Status Code: 400

InternalServerException

This error occurs when the specified resource can’t be found or doesn't exist. Resource ID and type might be incorrect.

Suggested action: This is usually a transient error. Retry after the provided retry delay or a short interval. If the problem persists, contact AWS support.

HTTP Status Code: 500

ResourceNotFoundException

This error occurs when the specified resource can't be found. The resource might not exist, or isn't visible with the current credentials.

Suggested action: Verify that the resource ID is correct and the resource is in the expected AWS region. Check IAM permissions for accessing the resource.

HTTP Status Code: 400

ThrottlingException

This error occurs when there are too many requests sent. Review the provided quotas and adapt your usage to avoid throttling.

This error occurs when there are too many requests sent. Review the provided Quotas and retry after the provided delay.

HTTP Status Code: 400

ValidationException

The input fails to satisfy the constraints specified by the service or business validation rules.

Suggested action: Review the error message, including the failed fields and reasons, to correct the request payload.

HTTP Status Code: 400

See Also

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