# CreateSubscriptionCheckout

Create a strategy-subscription checkout for the authenticated user. Returns an IntentId and an ApprovalUrl; the account holder must open the ApprovalUrl in a browser, review the price and terms, consent, and pay. Nothing is charged until the account holder approves. Poll GetSubscriptionCheckoutStatus for progress. Non-paginated endpoint.

Endpoint: POST /General/CreateSubscriptionCheckout
Version: v4
Security: 

## Request fields (application/json):

  - `StrategyId` (integer,null)
    The StrategyId to subscribe to

  - `BillingInterval` (string,null)
    (Optional) Billing interval: month (the default) or year (only for strategies that offer annual billing). Omit for the strategy's standard interval.

  - `BillingIntervalCount` (integer,null)
    (Optional) Number of billing intervals per charge. Defaults to 1.

## Response 200 fields (application/json):

  - `Results` (array,null)
    Result array

  - `Results.IntentId` (integer,null)
    The checkout intent id. Use it with GetSubscriptionCheckoutStatus.

  - `Results.Status` (string,null)
    Checkout state: created, awaiting_human, consented, awaiting_payment_method, charging, sca_pending, active, failed, expired, canceled, or needs_web_checkout.

  - `Results.StatusDetail` (string,null)
    Machine-readable detail for the current state, when available (e.g. already_subscribed).

  - `Results.ApprovalUrl` (string,null)
    Present while a human step is pending: the page where the account holder reviews the terms, consents, and pays. Hand this URL to the account holder; it requires their login.

  - `Results.WebCheckoutUrl` (string,null)
    Present when Status is needs_web_checkout: complete the subscription on this page instead.

  - `Results.Price` (number,null)
    The exact price quoted for the first charge, in Currency.

  - `Results.Currency` (string,null)
    Currency of Price, e.g. USD.

  - `Results.BillingInterval` (string,null)
    The billing interval quoted, e.g. month.

  - `Results.BillingIntervalCount` (integer,null)
    Number of billing intervals per charge.

  - `Results.StrategyId` (integer,null)
    The StrategyId this checkout subscribes to.

  - `Results.SubscriptionId` (integer,null)
    Present once Status is active: the subscription id.

  - `Results.TrialDays` (integer,null)
    Trial days included, if any.

  - `ResponseStatus` (object)

  - `ResponseStatus.ErrorCode` (string,null)
    The HTTP error code. Please see https://api-docs.collective2.com/guides/error-codes#http-errors.

  - `ResponseStatus.Message` (string,null)
    The human-readable meaning of the ErrorCode.

  - `ResponseStatus.Errors` (array,null)

  - `ResponseStatus.Errors.ErrorCode` (string,null)
    The C2 error code. Please see https://api-docs.collective2.com/guides/error-codes#c2-errors.

  - `ResponseStatus.Errors.FieldName` (string,null)
    The affected parameter.

  - `ResponseStatus.Errors.Message` (string,null)
    More details about the ErrorCode.

## Response 400 fields (application/json):

  - `ErrorCode` (string,null)
    The HTTP error code. Please see https://api-docs.collective2.com/guides/error-codes#http-errors.

  - `Message` (string,null)
    The human-readable meaning of the ErrorCode.

  - `Errors` (array,null)

  - `Errors.ErrorCode` (string,null)
    The C2 error code. Please see https://api-docs.collective2.com/guides/error-codes#c2-errors.

  - `Errors.FieldName` (string,null)
    The affected parameter.

  - `Errors.Message` (string,null)
    More details about the ErrorCode.

## Response 401 fields (application/json):

  - `ErrorCode` (string,null)
    The HTTP error code. Please see https://api-docs.collective2.com/guides/error-codes#http-errors.

  - `Message` (string,null)
    The human-readable meaning of the ErrorCode.

  - `Errors` (array,null)

  - `Errors.ErrorCode` (string,null)
    The C2 error code. Please see https://api-docs.collective2.com/guides/error-codes#c2-errors.

  - `Errors.FieldName` (string,null)
    The affected parameter.

  - `Errors.Message` (string,null)
    More details about the ErrorCode.

## Response 403 fields (application/json):

  - `ErrorCode` (string,null)
    The HTTP error code. Please see https://api-docs.collective2.com/guides/error-codes#http-errors.

  - `Message` (string,null)
    The human-readable meaning of the ErrorCode.

  - `Errors` (array,null)

  - `Errors.ErrorCode` (string,null)
    The C2 error code. Please see https://api-docs.collective2.com/guides/error-codes#c2-errors.

  - `Errors.FieldName` (string,null)
    The affected parameter.

  - `Errors.Message` (string,null)
    More details about the ErrorCode.

## Response 406 fields (application/json):

  - `ErrorCode` (string,null)
    The HTTP error code. Please see https://api-docs.collective2.com/guides/error-codes#http-errors.

  - `Message` (string,null)
    The human-readable meaning of the ErrorCode.

  - `Errors` (array,null)

  - `Errors.ErrorCode` (string,null)
    The C2 error code. Please see https://api-docs.collective2.com/guides/error-codes#c2-errors.

  - `Errors.FieldName` (string,null)
    The affected parameter.

  - `Errors.Message` (string,null)
    More details about the ErrorCode.

## Response 409 fields (application/json):

  - `ErrorCode` (string,null)
    The HTTP error code. Please see https://api-docs.collective2.com/guides/error-codes#http-errors.

  - `Message` (string,null)
    The human-readable meaning of the ErrorCode.

  - `Errors` (array,null)

  - `Errors.ErrorCode` (string,null)
    The C2 error code. Please see https://api-docs.collective2.com/guides/error-codes#c2-errors.

  - `Errors.FieldName` (string,null)
    The affected parameter.

  - `Errors.Message` (string,null)
    More details about the ErrorCode.

## Response 429 fields (application/json):

  - `ErrorCode` (string,null)
    The HTTP error code. Please see https://api-docs.collective2.com/guides/error-codes#http-errors.

  - `Message` (string,null)
    The human-readable meaning of the ErrorCode.

  - `Errors` (array,null)

  - `Errors.ErrorCode` (string,null)
    The C2 error code. Please see https://api-docs.collective2.com/guides/error-codes#c2-errors.

  - `Errors.FieldName` (string,null)
    The affected parameter.

  - `Errors.Message` (string,null)
    More details about the ErrorCode.

## Response 500 fields (application/json):

  - `ErrorCode` (string,null)
    The HTTP error code. Please see https://api-docs.collective2.com/guides/error-codes#http-errors.

  - `Message` (string,null)
    The human-readable meaning of the ErrorCode.

  - `Errors` (array,null)

  - `Errors.ErrorCode` (string,null)
    The C2 error code. Please see https://api-docs.collective2.com/guides/error-codes#c2-errors.

  - `Errors.FieldName` (string,null)
    The affected parameter.

  - `Errors.Message` (string,null)
    More details about the ErrorCode.

## Response 503 fields (application/json):

  - `ErrorCode` (string,null)
    The HTTP error code. Please see https://api-docs.collective2.com/guides/error-codes#http-errors.

  - `Message` (string,null)
    The human-readable meaning of the ErrorCode.

  - `Errors` (array,null)

  - `Errors.ErrorCode` (string,null)
    The C2 error code. Please see https://api-docs.collective2.com/guides/error-codes#c2-errors.

  - `Errors.FieldName` (string,null)
    The affected parameter.

  - `Errors.Message` (string,null)
    More details about the ErrorCode.


