# CreateTokenFromTransactionRequestDto

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

Optional request body for minting a token from a prior transaction. The transaction, merchant and
customer stay on the query string; the body carries what the query string cannot. Sending no body
at all mints the token exactly as a body-less request always has.

## Fields
- `storedCredentialConsent` ([TokenStoredCredentialConsentInput](https://devportal.signapay-sbx.winkpg.io/docs/api/models/TokenStoredCredentialConsentInput.md)): The cardholder's stored-credential consent, when it was captured at the moment of the transaction (for example on a payment terminal). Requires `customerId`: the card is stored on that customer as a stored payment method and the consent is recorded against it. A consent on a request that names no customer is refused with `Transactions:TokenMintConsentRequiresCustomer`. Conditional: When StoredCredentialConsent is not null.
  Fields:
  - `capturedAtUtc` (string(date-time)) required: When the cardholder agreed, in UTC. Required. A time more than five minutes in the future is refused. Conditional: When CapturedAtUtc is not null. Conditional: When CapturedAtUtc meets a condition. (nullable)
  - `method` ([ConsentCaptureMethod](https://devportal.signapay-sbx.winkpg.io/docs/api/models/ConsentCaptureMethod.md)) required: How the cardholder agreed. Required. A terminal sends `OnScreen` for acceptance on its screen, `SignedForm` for a signature, or `InPerson` for verbal agreement at the counter; `Phone`, `Email`, `OnlineForm` and `Other` are accepted too. (nullable)
    Values:
    - `InPerson`: In-person interaction. Cardholder was physically present.
    - `Phone`: Phone call with the cardholder (potentially recorded).
    - `SignedForm`: Paper / digital form signed by the cardholder.
    - `Email`: Email exchange in which cardholder agreed.
    - `OnlineForm`: Online form on the merchant's own website / app.
    - `OnScreen`: The cardholder accepted the terms on a device screen at the point of sale, such as a payment terminal or a tablet, at the moment the card was read.
    - `Other`: Other method not captured above. Operators / merchants use the notes field or merchant reference to explain.
  - `allowedUsages` ([StoredCredentialUsage](https://devportal.signapay-sbx.winkpg.io/docs/api/models/StoredCredentialUsage.md)): The future uses the cardholder agreed to, as flags: `Recurring`, `Installment`, `UnscheduledCOF` and `OneTimeFuture`, combined when the cardholder agreed to more than one. Required, and at least one flag must be set. Conditional: When AllowedUsages != None. Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
    Values:
    - `None`: No permitted uses. Consent record is effectively inactive.
    - `Recurring`: Scheduled recurring charges (subscriptions, membership dues). Maps to Recurring.
    - `Installment`: Fixed-schedule installment plans dividing a known total. Maps to Installment.
    - `UnscheduledCOF`: Merchant-triggered charges for pre-agreed events (balance top-ups, usage overages, no-show fees, delayed charges). Maps to several MIT reason codes including UnscheduledCOF, NoShow, DelayedCharge, and IncrementalAuth.
    - `OneTimeFuture`: A single known future cardholder-initiated purchase the credential was saved for (e.g. "save card for my next order"). Not used for MITs.
  - `consentTextVersion` (string) required: The version of the consent text the cardholder was shown, as returned by the stored-credential consent configuration endpoint. Required, up to 200 characters. (nullable, max length 200)
  - `evidenceReference` (string): Your own reference to the evidence you kept, such as the identifier of a stored signature image or a terminal log line. Optional, up to 200 characters. Shown on the consent's evidence in the back office. (nullable, max length 200)
  - `enrollmentTerms` ([EnrollmentTermsInput](https://devportal.signapay-sbx.winkpg.io/docs/api/models/EnrollmentTermsInput.md)): The payment terms the cardholder agreed to. Required when `allowedUsages` includes `Recurring` or `Installment`, and then the amount, frequency and duration must each be set. Conditional: When EnrollmentTerms is not null. Required: When IncludesRecurringOrInstallment(AllowedUsages) is true.

## See also

- [All documentation](https://devportal.signapay-sbx.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
