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:
-
To create the opportunity, use
CreateOpportunity
. -
To associate a solution with the opportunity, use
AssociateOpportunity
. -
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
orSandbox
. The catalog determines which environment the opportunity is created in. UseAWS
to create opportunities in the AWS catalog, andSandbox
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 totrue
only when the customer's industry is Government. Additional privacy and security measures apply during the review and management process for opportunities marked asNationalSecurity
.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 bePartner Referral
. However, when usingCatalog: Sandbox
, you can set this field toAWS 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 theOpportunity
is created, its value is equal toCreatedDate
.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: