# WhiteLabelGrantSubscriptionCredit

Add or extend subscription access for a customer of your White Label site. Provide AddMonths (1 to 24) or AccessThrough (YYYY-MM-DD), not both. Calendar dates include that day in America/New_York. RequestId is unique per operation within your site: 8 to 191 printable ASCII characters with no surrounding spaces. QuoteId from preview is required for resold strategies and optional for owned strategies. After a timeout, internal_error or outcome_unconfirmed, retry the identical request, including RequestId and QuoteId, before replacing either. A replay returns the original receipt without another grant or debit. Resale sponsorships use full monthly House funding with no final-month proration or automatic switch to customer billing. Access is capped by successful funding and the sponsorship end. Existing customer UI subscriptions remain recurring. Existing recurring resale subscriptions cannot be converted. HouseAccountAmount is the actual debit for this operation. Extensions and already-covered ends charge zero immediately. The result is an operation receipt. Use WhiteLabelGetSubscriptionCredits with View=status for current access. Refusals expose the machine-readable reason in ResponseStatus.Errors[].Meta[Reason]. Uncertain grants also include Meta[RequestId] and Meta[RetryIdenticalGrant]=true. The site comes from your API key. Non-paginated endpoint.

Endpoint: POST /Strategies/WhiteLabelGrantSubscriptionCredit
Version: v4
Security: 

## Request fields (application/json):

  - `PersonId` (integer,null)
    Customer PersonId belonging to your White Label site

  - `StrategyId` (integer,null)
    StrategyId to grant. Eligibility is checked against your site's catalog

  - `AddMonths` (integer,null)
    Months of access to add, 1 to 24. Supply AddMonths or AccessThrough and omit the unused field

  - `AccessThrough` (string,null)
    Inclusive YYYY-MM-DD access end in America/New_York. Supply AccessThrough or AddMonths and omit the unused field

  - `RequestId` (string,null)
    Site-scoped operation ID, 8 to 191 printable ASCII characters with no surrounding spaces. Preserve it exactly when retrying

  - `QuoteId` (string,null)
    Preview quote required for resold strategies and optional for owned strategies. Preserve it exactly when retrying an uncertain grant

## Response 200 fields (application/json):

  - `Results` (array,null)
    Result array

  - `Results.WhiteLabelSiteId` (integer,null)
    White Label site bound to the authenticated API key

  - `Results.PersonId` (integer,null)
    Customer PersonId

  - `Results.StrategyId` (integer,null)
    StrategyId

  - `Results.Source` (string,null)
    Upstream grant source. History may include sources other than owned and resold

  - `Results.Payer` (string,null)
    Current payer, when status view supplies it

  - `Results.SubscriptionId` (integer,null)
    Subscription identifier. Null when the upstream identifier is absent or zero

  - `Results.ScheduleId` (integer,null)
    Billing schedule identifier. Null when absent or zero

  - `Results.IsActive` (boolean,null)
    Current access in status view. Only true confirms active access. Null means unknown, including ambiguous billing

  - `Results.IsRecurring` (boolean,null)
    Whether the current subscription recurs. Status view only

  - `Results.IsFiniteSponsorship` (boolean,null)
    Whether current access uses a finite sponsorship. Status view only

  - `Results.SponsorshipEndUtc` (string,null)
    UTC sponsorship boundary. Successful funding is also required for access

  - `Results.FundedThroughUtc` (string,null)
    UTC boundary covered by successful House funding. Advances with successful monthly renewal

  - `Results.EffectiveAccessEndUtc` (string,null)
    Current access boundary in UTC, capped by both successful funding and sponsorship

  - `Results.NextBillingUtc` (string,null)
    Next scheduled billing boundary in UTC

  - `Results.HasFundingProblem` (boolean,null)
    Whether the current sponsorship has a funding problem. Null means not supplied

  - `Results.HasAmbiguousBilling` (boolean,null)
    Whether billing is ambiguous. IsActive may be null and must not be displayed as active

  - `Results.RequestId` (string,null)
    Original site-scoped operation ID. Receipt identity does not establish current access

  - `Results.GrantId` (integer,null)
    Grant receipt identifier

  - `Results.Action` (string,null)
    Upstream operation action, including start_house_subscription, extend_house_sponsorship or already_covered

  - `Results.Status` (string,null)
    Operation status. Check this and ReversedUtc. A receipt lookup alone does not establish current access

  - `Results.PreviousAccessEndUtc` (string,null)
    Access boundary before this operation, in UTC. Null when no prior access exists

  - `Results.AccessEndUtc` (string,null)
    Access boundary recorded for this operation, in UTC. Use status view for current effective access

  - `Results.HouseAccountId` (integer,null)
    House account identifier. Absent for owned strategies

  - `Results.HouseAccountAmount` (number,null)
    Actual House debit for this operation, not the monthly funding total

  - `Results.HouseAccountTransactionId` (integer,null)
    House transaction identifier for this operation. Null when absent or zero

  - `Results.Currency` (string,null)
    Amount currency, USD

  - `Results.CustomerBillingResumes` (boolean,null)
    True when existing customer billing resumes after credits. A resale sponsorship does not automatically convert to customer billing

  - `Results.AppliedUtc` (string,null)
    UTC time the operation was applied

  - `Results.ReversedUtc` (string,null)
    UTC reversal time, when supplied. Check this and Status before interpreting a receipt

  - `Results.IsIdempotentReplay` (boolean,null)
    Grant response only. True means the original receipt was replayed without another grant or debit

  - `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.


