---
title: "Create an execution"
method: POST
path: "/merchant/workflows/{workflowCode}/executions"
tags: ["Executions"]
---

# Create an execution

`POST /merchant/workflows/{workflowCode}/executions`

Create a workflow execution.

## Path parameters

- `workflowCode` string, required — Machine-friendly code of Workflow.

## Headers

- `x-idempotency-key` string, uuid, required

## Request body

- union
  - object
    - `merchantReference` string, required — Merchant-provided reference for the Execution. Commonly, the identifier of the order on the Merchant's system.
    - `holderReference` string, required — Merchant-provided reference for the execution counterparty, i.e. the paying consumer.
    - `workspaceId` string — References in which workspace the execution will be created.
    - `workflowConfigOverride` object — Merchant-provided configuration data for a particular execution, overriding values for the workflow.
      - `captureMode` 'Instant' | 'Delayed' | 'Manual' — Mode of capture for the payments involved in the execution. * `Instant` - Authorize and capture payments in one step. * `Delayed` - Authorize payments initially, capture the money after a delay configured with `captureDelay`. * `Manual` - Authorize payments initially, capture the money manually via Payrails' API or portal.
      - `captureDelay` string — If `captureMode` is `Delayed`, this field can be used to configure the scheduled time when to capture the money. The format should be based on the [ISO 8601 standard](https://tc39.es/proposal-temporal/docs/duration.html).
      - `cancelMode` 'Delayed' | 'Manual' — Mode of cancel for the payments involved in the execution. * `Delayed` - Authorize payments initially, cancel the authorization after a delay configured with `cancelDelay`. * `Manual` - Authorize payments initially, cancel the authorization manually via Payrails' API or portal.
      - `cancelDelay` string — If `cancelMode` is `Delayed`, this field can be used to configure the scheduled time when to cancel the authorization. The format should be based on the [ISO 8601 standard](https://tc39.es/proposal-temporal/docs/duration.html).
    - `workflowVersion` integer — Version of a Workflow Configuration.
    - `meta` object — Metadata for the context of an execution. Includes Payrails-defined structures for most common fields used in workflows, but can also be extended by merchant or provider-specific fields. For more information, visit our [Meta Fields guide](https://docs.payrails.com/docs/configure-meta-fields-for-your-providers).
      - `order` object — The order being placed on your system.
        - `reference` string — Order reference number sent by the merchant. Defaults to `merchantReference` in the execution if not specified.
        - `description` string — A human-readable name or description of this order.
        - `softDescriptor` string — Text that should appear in the bank statement of the customer. Can be requested, but keep in mind that some providers and issuers don't allow you to change this.
        - `storeId` string — Order Store ID identifies the particular store associated with this order.
        - `placement` object — Data about where the order was placed.
          - `country` object — Country in which the customer placed the order.
            - `code` string, required — ISO 3166-1 alpha-2 country code.
            - `iso3` string — ISO 3-letter country code. Returned by Payrails, but not interpreted in requests.
            - `name` string — The English name of the country. Returned by Payrails, but not interpreted in requests.
          - `city` string — City in which the customer placed the order.
        - `deliveryAddress` object — The address the items are to be shipped to.
          - `street` string — The name of the street of a postal address.
          - `doorNumber` string — The number on the door, building, or room.
          - `complement` string — Additional addressing information, 2nd line of postal address.
          - `area` string — The name of the suburb or area within a city.
          - `city` string — The name of the city of a postal address.
          - `postalCode` string — The postal code.
          - `state` string — The name of the state a postal address is in.
          - `country` object — The country where the address is in.
            - `code` string, required — ISO 3166-1 alpha-2 country code.
            - `iso3` string — ISO 3-letter country code. Returned by Payrails, but not interpreted in requests.
            - `name` string — The English name of the country. Returned by Payrails, but not interpreted in requests.
          - `latitude` number, float — Latitude of the address in the GPS coordinate system.
          - `longitude` number, float — Longitude of the address in the GPS coordinate system.
          - `phone` object — The phone to contact in the address (can be different that the customer's).
            - `countryCode` string — International prefix of the phone, if known separately.
            - `number` string, required — The local number of the phone, such that `countryCode` + `number` can be dialed.
          - `alias` string — Name of the address, e.g. home, work.
          - `name` string — Name of the person to whom the address belongs to.
          - `lastName` string — Last name of the person to whom the address belongs to.
          - `email` string — Email of the person to whom the address belongs to.
        - `deliveryAddressPreference` 'noShipping' | 'userPreSpecified' | 'allowProviderOverride' — Determines which Shipping details to use in express payment methods.
        - `deliveryDate` string, date-time — When the order is to be delivered.
        - `billingAddress` object — The address to put on the bill for this order.
          - `street` string — The name of the street of a postal address.
          - `doorNumber` string — The number on the door, building, or room.
          - `complement` string — Additional addressing information, 2nd line of postal address.
          - `area` string — The name of the suburb or area within a city.
          - `city` string — The name of the city of a postal address.
          - `postalCode` string — The postal code.
          - `state` string — The name of the state a postal address is in.
          - `country` object — The country where the address is in.
            - `code` string, required — ISO 3166-1 alpha-2 country code.
            - `iso3` string — ISO 3-letter country code. Returned by Payrails, but not interpreted in requests.
            - `name` string — The English name of the country. Returned by Payrails, but not interpreted in requests.
          - `latitude` number, float — Latitude of the address in the GPS coordinate system.
          - `longitude` number, float — Longitude of the address in the GPS coordinate system.
          - `phone` object — The phone to contact in the address (can be different that the customer's).
            - `countryCode` string — International prefix of the phone, if known separately.
            - `number` string, required — The local number of the phone, such that `countryCode` + `number` can be dialed.
          - `alias` string — Name of the address, e.g. home, work.
          - `name` string — Name of the person to whom the address belongs to.
          - `lastName` string — Last name of the person to whom the address belongs to.
          - `email` string — Email of the person to whom the address belongs to.
        - `shippingType` 'pickup' | 'physical' | 'hybrid' | 'digital' — The method by which the order is fulfilled: - `pickup`: The customer picks up the order. - `physical`: The order is physically delivered. - `digital`: The order is delivered electronically. - `hybrid`: A combination of physical and digital fulfillment.
        - `shipping` object — The shipping total price of the order.
          - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
          - `currency` string, required — ISO 3-letter currency code.
        - `totalDiscount` object — The total discount applied on the order.
          - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
          - `currency` string, required — ISO 3-letter currency code.
        - `totalTax` object — The total taxes for the order.
          - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
          - `currency` string, required — ISO 3-letter currency code.
        - `lines` object[] — List of details per item in the order.
          - `name` string — The name of the item.
          - `description` string — The description of the item.
          - `product` object — The details of the product item.
            - `type` 'physical' | 'digital' | 'service' — The type of the product item.
          - `type` 'lineItem' | 'discount' | 'tax' — The type of the item. the line value will be added to the order total in case of `lineItem`, `tax` and subtracted from order total in case of `discount`.
          - `quantity` integer — How many instances of this item are part of the order.
          - `unitPrice` object — How much does a unit of the item cost.
            - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
            - `currency` string, required — ISO 3-letter currency code.
          - `total` object — Cost of unit price multiplied by quantity with the tax and discount applied.
            - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
            - `currency` string, required — ISO 3-letter currency code.
          - `taxPercentage` object — Tax percentage that applies to the specific item, applicable only where `item.type == lineItem`, will be ignored when not providing `item.unitPrice`.
            - `value` string, required — A percentage value up to 2 decimal precision.
          - `totalDiscount` object — The total discount applied on this item (quantity x discount per item), applicable only where `item.type == lineItem`, will be ignored when not providing `item.unitPrice`.
            - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
            - `currency` string, required — ISO 3-letter currency code.
          - `totalTax` object — The total tax added for this item (quantity x tax per item), applicable only where `items.type = lineItem`, will be ignored when not providing `item.unitPrice`.
            - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
            - `currency` string, required — ISO 3-letter currency code.
          - `id` string — Identifier of the item on the merchant's system.
          - `links` object — Relevant links about the item.
            - `productUrl` string — URL of the product information page.
            - `imageUrl` string — URL of the image of the item.
          - `travelTicket` object — Details about the travel ticket.
            - `ticketId` string — The ID of the travel ticket.
            - `passengers` object[] — The passengers on the travel ticket.
              - …
            - `routes` object[] — The routes on the travel ticket.
              - …
        - `total` object — Total order value. Can be different than the execution amount in case discounts or other costs are involved. This value will be ignored if costs are detailed in the `lines` array.
          - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
          - `currency` string, required — ISO 3-letter currency code.
        - `processingType` 'Regular' | 'Subscription' | 'CardOnFile' | 'UnscheduledCardOnFile' | 'MOTO' | 'InPerson' — Processing type of the order.
        - `createdAt` string, date-time — The order's creation date in RFC 3339 format.
        - `pendingStateDuration` string — Controls how long the execution is allowed to remain in pending state. If the transaction has not reached a final state within this duration, the execution is automatically cancelled. The format should be based on the ISO 8601 standard.
        - `fundsTransfer` object — The order funds transfer details in case this is an AFT transaction.
          - `type` 'disbursement' | 'personToPerson' | 'accountToAccount' | 'topUp' | 'purchase' | 'cash' | 'walletLoad' — The type of funds transfer.
          - `purpose` 'donation' | 'education' | 'emergency' | 'expatriation' | 'familySupport' | 'financialServices' | 'gifts' | 'income' | 'insurance' | 'investment' | 'itServices' | 'leisure' | 'loanPayment' | 'medical' | 'business' | 'crypto' | 'assets' | 'prepaid' | 'crowdLending' | 'debitCard' | 'giftCard' | 'gaming' | 'highRiskSecurities' | 'salary' | 'pension' | 'royalities' | 'savings' | 'travelAndTourism' | 'other' — A human-readable description of the purpose for the funds transfer.
          - `recipient` object — Details of the individual or entity receiving the funds.
            - `account` object — The account details for the recipient.
              - …
            - `customer` object — The details of the recipient.
              - …
            - `address` object — The physical address of the recipient.
              - …
          - `sender` object — Details of the individual or entity sending the funds.
            - `customer` object — The details of the sender.
              - …
            - `address` object — The physical address of the sender.
              - …
            - `type` 'individual' | 'corporate' | 'instrument' — The type of sender.
            - `companyName` string — The sender's company name, if applicable.
      - `customer` object — The customer placing the order.
        - `reference` string — Customer reference number specified by the merchant. Defaults to `holderReference` of the execution if not specified.
        - `name` string — The full name (or first name, if you can provide `lastName` separate) of the customer.
        - `lastName` string — Last name of the customer (if required to be separate from `name`).
        - `email` string — Email address of the customer.
        - `type` string — Customer type specified by the merchant.
        - `phone` object — Phone of the customer.
          - `countryCode` string — International prefix of the phone, if known separately.
          - `number` string, required — The local number of the phone, such that `countryCode` + `number` can be dialed.
        - `birthDate` string, date — Date of birth of the customer.
        - `language` string — POSIX locale string identifying the language used to communicate to the customer.
        - `country` object — Country of registration the customer. Can be different than the order and delivery countries.
          - `code` string, required — ISO 3166-1 alpha-2 country code.
          - `iso3` string — ISO 3-letter country code. Returned by Payrails, but not interpreted in requests.
          - `name` string — The English name of the country. Returned by Payrails, but not interpreted in requests.
        - `identityCardNumber` string — The customer's identity number, e.g. passport, national ID, etc.
        - `identityCardType` string — The type of the customer's identity card, e.g. passport, national ID, etc.
        - `createdAt` string, date-time — The customer's account creation date in RFC 3339 format.
      - `clientContext` object — Data describing the customer's device or browser.
        - `ipAddress` string — IP address of the device that customer used to place the order. Can be IPv4 or IPv6.
        - `userAgent` string — The user-agent header supplied by the customer's browser.
        - `acceptHeader` string — The accept header supplied by the customer's browser.
        - `clientType` union — Type of device customer used to place the order.
          - 'desktop' — Desktop computer via web browser.
          - 'mobile' — Smartphone via browser.
          - 'app' — Merchant-controlled smartphone app.
        - `osType` 'ios' | 'android' — Type of Operating System that the customer is using.
        - `osVersion` string — Version of Operating System that the customer is using.
        - `deviceFingerprint` string — Fingerprint of the device the customer is using.
        - `javaEnabled` boolean — Flag indicating if the customer's browser is able to execute Java.
        - `javaScriptEnabled` boolean — Flag indicating if the customer's browser is able to execute JavaScript.
        - `cookiesAccepted` boolean — Flag indicating if the customer's browser accepts cookies.
        - `language` string — Locale string identifying the language of the device or browser, e.g. `pt`, `es_UY`, `en-US`. Both `-` and `_` are accepted.
        - `colorDepth` integer — The color depth of the customer's browser in bits per pixel.
        - `screenHeight` integer — The pixel height of the customer's screen.
        - `screenWidth` integer — The pixel width of the customer's screen.
        - `timeZoneOffset` integer — Time difference between UTC time and the customer's browser local time, in minutes.
        - `origin` string — The URL from where the order is being placed, e.g. https://merchant.com/checkout.
        - `host` string — The domain name from which the order is being placed, e.g. merchant.com.
      - `vendor` object — Description of a vendor that provides the order.
        - `reference` string — Reference of the vendor in the merchant's system.
        - `name` string — Name of the vendor.
        - `address` object — Address of the vendor.
          - `street` string — The name of the street of a postal address.
          - `doorNumber` string — The number on the door, building, or room.
          - `complement` string — Additional addressing information, 2nd line of postal address.
          - `area` string — The name of the suburb or area within a city.
          - `city` string — The name of the city of a postal address.
          - `postalCode` string — The postal code.
          - `state` string — The name of the state a postal address is in.
          - `country` object — The country where the address is in.
            - `code` string, required — ISO 3166-1 alpha-2 country code.
            - `iso3` string — ISO 3-letter country code. Returned by Payrails, but not interpreted in requests.
            - `name` string — The English name of the country. Returned by Payrails, but not interpreted in requests.
          - `latitude` number, float — Latitude of the address in the GPS coordinate system.
          - `longitude` number, float — Longitude of the address in the GPS coordinate system.
          - `phone` object — The phone to contact in the address (can be different that the customer's).
            - `countryCode` string — International prefix of the phone, if known separately.
            - `number` string, required — The local number of the phone, such that `countryCode` + `number` can be dialed.
          - `alias` string — Name of the address, e.g. home, work.
          - `name` string — Name of the person to whom the address belongs to.
          - `lastName` string — Last name of the person to whom the address belongs to.
          - `email` string — Email of the person to whom the address belongs to.
        - `device` object — Details about the device used by the vendor that provides the order.
          - `reference` string — Unique reference of the device (e.g. serial number).
        - `subMerchants` object[] — A list of sub-sellers for Payment Facilitator transactions.
          - `id` string — Unique identifier for the sub-merchant.
          - `name` string — The name of the sub-merchant.
          - `address` object — The physical location of the sub-merchant.
            - `street` string — The name of the street of a postal address.
            - `doorNumber` string — The number on the door, building, or room.
            - `complement` string — Additional addressing information, 2nd line of postal address.
            - `area` string — The name of the suburb or area within a city.
            - `city` string — The name of the city of a postal address.
            - `postalCode` string — The postal code.
            - `state` string — The name of the state a postal address is in.
            - `country` object — The country where the address is in.
              - …
            - `latitude` number, float — Latitude of the address in the GPS coordinate system.
            - `longitude` number, float — Longitude of the address in the GPS coordinate system.
            - `phone` object — The phone to contact in the address (can be different that the customer's).
              - …
            - `alias` string — Name of the address, e.g. home, work.
            - `name` string — Name of the person to whom the address belongs to.
            - `lastName` string — Last name of the person to whom the address belongs to.
            - `email` string — Email of the person to whom the address belongs to.
          - `amount` object — The amount of the payment corresponding to the sub-merchant.
            - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
            - `currency` string, required — ISO 3-letter currency code.
      - `risk` object — Configuration values for the risk prevention check.
        - `score` string — Score provided by an external fraud prevention system.
        - `skipPaymentProviderRules` boolean — True if the provider should skip the risk rules.
        - `force3DS` boolean — Deprecated, use threeDSMode instead. True if we should request the provider to force a 3DS process. The actual execution of 3DS will depend on its availability and configuration on the provider and the issuer.
        - `threeDSMode` 'Skip' | 'Force' | 'Default' — 3DS mode to send in an authorize request to a PSP.
        - `allowNative3DS` boolean — True if we should allow native experience in mobile devices when 3DS 2.x is triggered. If false, we will prefer redirection-based flows.
        - `sessionId` string — Session ID provided by an external fraud prevention system.
        - `exemptionIndicator` 'lowValue' | 'transactionRiskAnalysis' | 'secureCorporate' | 'trustedBeneficiary' | 'trustedBeneficiaryPrompt' | 'dataShare' — Indicates the exemption that you want to request in case a 3DS process is triggered.The issuer decides if the exemption is granted or not. For some types of transaction, the issuer can grant an exemption without you requesting it. Possible values are * lowValue - For payments below 30 EUR (or equivalent converted amount) are considered “low value” and might be exempt from SCA. SCA is required if the total amount is higher than 100 EUR, and every 5 transactions. * transactionRiskAnalysis - For payments through acquirers or issuers whose fraud level is below a certain threshold. * secureCorporate - For payments that use secure corporate cards, which are exempt from 3DS authentication. * trustedBeneficiary - For payments where the cardholder has already added the merchant to a trust list on their bank. * trustedBeneficiaryPrompt - For payments where the merchant would like to prompt the cardholder to add them as a trusted merchant. * dataShare - Data Sharing exemptions for transactions that are not subject to Strong Customer Authentication (SCA) compliance.
      - `subscription` object — Configuration of a subscription process.
        - `chargeFrequency` string — Scheduled interval between subscription payments. The format should be based on the [ISO 8601 standard](https://tc39.es/proposal-temporal/docs/duration.html).
        - `expiration` string, date — Date when recurring payments expire.
      - `tags` object — Additional meta fields to be sent to the payment providers which support metadata / tags. For example, sent to [Stripe as metadata](https://stripe.com/docs/api/metadata). Because these will always be PSP-specific, we do NOT recommend using these fields if they can actually be mapped to a generic field above.
    - `applePayConfigId` string — ID of the Apple Pay configuration to use for this request. When provided, Apple Pay will be enabled as a payment method.
    - `initialActions` union[] — Actions to execute after the creation of the execution. Initial actions are performed sequentially, and results reported in corresponding items of `initialResults` irrespective of errors in earlier actions.
      - union
        - object
          - `action` 'lookup', required — Execute an initial lookup action.
          - `method` 'POST'
          - `body` object
            - `amount` object
              - …
            - `meta` object — Metadata for the context of an execution. Includes Payrails-defined structures for most common fields used in workflows, but can also be extended by merchant or provider-specific fields. For more information, visit our [Meta Fields guide](https://docs.payrails.com/docs/configure-meta-fields-for-your-providers).
              - …
        - object
          - `action` 'startPaymentSession', required — Execute an initial start payment session action.
          - `method` 'POST', required
          - `body` object, required
            - `integrationType` 'api' | 'hpp' | 'inperson', required — Code of the integration type for using the payment method in the provider.
            - `paymentMethodCode` 'applePay' — Code of the payment method selected to start a payment session.
            - `amount` object, required
              - …
            - `returnInfo` object — URLs from the merchant side where the consumer should be taken after a redirection flow. If no specific flow for `cancel` or `error` are needed, we will redirect to the value in the `success` URL. The 'pending' URL is used in case the consumer needs to be redirected back to a page if an execution stays in pending for some time.
              - …
            - `meta` union — Any merchant-specific data that should be used and carried for context in the action execution.
              - …
        - object
          - `action` 'authorize', required — Execute an initial payment authorize action.
          - `method` 'POST', required
          - `body` object, required
            - `amount` object, required — The amount to authorize.
              - …
            - `meta` object — Metadata for the context of an execution. Includes Payrails-defined structures for most common fields used in workflows, but can also be extended by merchant or provider-specific fields. For more information, visit our [Meta Fields guide](https://docs.payrails.com/docs/configure-meta-fields-for-your-providers).
              - …
            - `returnInfo` object, required — URLs from the merchant side where the consumer should be taken after a redirection flow. If no specific flow for `cancel` or `error` are needed, we will redirect to the value in the `success` URL. The 'pending' URL is used in case the consumer needs to be redirected back to a page if an execution stays in pending for some time.
              - …
            - `paymentComposition` object[], required — Selected composition of payments methods and instruments to execute the action. We support one payment for each Workflow for now. Split payments and multiple payments in a Workflow will be supported very soon.
              - …
  - object
    - `merchantReference` string, required — Merchant-provided reference for the Execution. Commonly, the identifier of the order on the Merchant's system.
    - `holderReference` string — Payrails holder reference that is KYC approved.
    - `workspaceId` string — References in which workspace the execution will be created.
    - `workflowVersion` integer — Version of a Workflow Configuration.
    - `initialActions` object[] — Actions to execute after the creation of the execution. Initial actions are performed sequentially, and results reported in corresponding items of `initialResults` irrespective of errors in earlier actions.
      - `action` 'lookup', required — Execute an initial lookup action.
      - `method` 'POST'
      - `body` object
        - `amount` object
          - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
          - `currency` string, required — ISO 3-letter currency code.
        - `meta` object — Metadata for the context of an execution. Includes Payrails-defined structures for most common fields used in workflows, but can also be extended by merchant or provider-specific fields. For more information, visit our [Meta Fields guide](https://docs.payrails.com/docs/configure-meta-fields-for-your-providers).
          - `order` object — The order being placed on your system.
            - `reference` string — Order reference number sent by the merchant. Defaults to `merchantReference` in the execution if not specified.
            - `description` string — A human-readable name or description of this order.
            - `softDescriptor` string — Text that should appear in the bank statement of the customer. Can be requested, but keep in mind that some providers and issuers don't allow you to change this.
            - `storeId` string — Order Store ID identifies the particular store associated with this order.
            - `placement` object — Data about where the order was placed.
              - …
            - `deliveryAddress` object — The address the items are to be shipped to.
              - …
            - `deliveryAddressPreference` 'noShipping' | 'userPreSpecified' | 'allowProviderOverride' — Determines which Shipping details to use in express payment methods.
            - `deliveryDate` string, date-time — When the order is to be delivered.
            - `billingAddress` object — The address to put on the bill for this order.
              - …
            - `shippingType` 'pickup' | 'physical' | 'hybrid' | 'digital' — The method by which the order is fulfilled: - `pickup`: The customer picks up the order. - `physical`: The order is physically delivered. - `digital`: The order is delivered electronically. - `hybrid`: A combination of physical and digital fulfillment.
            - `shipping` object — The shipping total price of the order.
              - …
            - `totalDiscount` object — The total discount applied on the order.
              - …
            - `totalTax` object — The total taxes for the order.
              - …
            - `lines` object[] — List of details per item in the order.
              - …
            - `total` object — Total order value. Can be different than the execution amount in case discounts or other costs are involved. This value will be ignored if costs are detailed in the `lines` array.
              - …
            - `processingType` 'Regular' | 'Subscription' | 'CardOnFile' | 'UnscheduledCardOnFile' | 'MOTO' | 'InPerson' — Processing type of the order.
            - `createdAt` string, date-time — The order's creation date in RFC 3339 format.
            - `pendingStateDuration` string — Controls how long the execution is allowed to remain in pending state. If the transaction has not reached a final state within this duration, the execution is automatically cancelled. The format should be based on the ISO 8601 standard.
            - `fundsTransfer` object — The order funds transfer details in case this is an AFT transaction.
              - …
          - `customer` object — The customer placing the order.
            - `reference` string — Customer reference number specified by the merchant. Defaults to `holderReference` of the execution if not specified.
            - `name` string — The full name (or first name, if you can provide `lastName` separate) of the customer.
            - `lastName` string — Last name of the customer (if required to be separate from `name`).
            - `email` string — Email address of the customer.
            - `type` string — Customer type specified by the merchant.
            - `phone` object — Phone of the customer.
              - …
            - `birthDate` string, date — Date of birth of the customer.
            - `language` string — POSIX locale string identifying the language used to communicate to the customer.
            - `country` object — Country of registration the customer. Can be different than the order and delivery countries.
              - …
            - `identityCardNumber` string — The customer's identity number, e.g. passport, national ID, etc.
            - `identityCardType` string — The type of the customer's identity card, e.g. passport, national ID, etc.
            - `createdAt` string, date-time — The customer's account creation date in RFC 3339 format.
          - `clientContext` object — Data describing the customer's device or browser.
            - `ipAddress` string — IP address of the device that customer used to place the order. Can be IPv4 or IPv6.
            - `userAgent` string — The user-agent header supplied by the customer's browser.
            - `acceptHeader` string — The accept header supplied by the customer's browser.
            - `clientType` union — Type of device customer used to place the order.
              - …
            - `osType` 'ios' | 'android' — Type of Operating System that the customer is using.
            - `osVersion` string — Version of Operating System that the customer is using.
            - `deviceFingerprint` string — Fingerprint of the device the customer is using.
            - `javaEnabled` boolean — Flag indicating if the customer's browser is able to execute Java.
            - `javaScriptEnabled` boolean — Flag indicating if the customer's browser is able to execute JavaScript.
            - `cookiesAccepted` boolean — Flag indicating if the customer's browser accepts cookies.
            - `language` string — Locale string identifying the language of the device or browser, e.g. `pt`, `es_UY`, `en-US`. Both `-` and `_` are accepted.
            - `colorDepth` integer — The color depth of the customer's browser in bits per pixel.
            - `screenHeight` integer — The pixel height of the customer's screen.
            - `screenWidth` integer — The pixel width of the customer's screen.
            - `timeZoneOffset` integer — Time difference between UTC time and the customer's browser local time, in minutes.
            - `origin` string — The URL from where the order is being placed, e.g. https://merchant.com/checkout.
            - `host` string — The domain name from which the order is being placed, e.g. merchant.com.
          - `vendor` object — Description of a vendor that provides the order.
            - `reference` string — Reference of the vendor in the merchant's system.
            - `name` string — Name of the vendor.
            - `address` object — Address of the vendor.
              - …
            - `device` object — Details about the device used by the vendor that provides the order.
              - …
            - `subMerchants` object[] — A list of sub-sellers for Payment Facilitator transactions.
              - …
          - `risk` object — Configuration values for the risk prevention check.
            - `score` string — Score provided by an external fraud prevention system.
            - `skipPaymentProviderRules` boolean — True if the provider should skip the risk rules.
            - `force3DS` boolean — Deprecated, use threeDSMode instead. True if we should request the provider to force a 3DS process. The actual execution of 3DS will depend on its availability and configuration on the provider and the issuer.
            - `threeDSMode` 'Skip' | 'Force' | 'Default' — 3DS mode to send in an authorize request to a PSP.
            - `allowNative3DS` boolean — True if we should allow native experience in mobile devices when 3DS 2.x is triggered. If false, we will prefer redirection-based flows.
            - `sessionId` string — Session ID provided by an external fraud prevention system.
            - `exemptionIndicator` 'lowValue' | 'transactionRiskAnalysis' | 'secureCorporate' | 'trustedBeneficiary' | 'trustedBeneficiaryPrompt' | 'dataShare' — Indicates the exemption that you want to request in case a 3DS process is triggered.The issuer decides if the exemption is granted or not. For some types of transaction, the issuer can grant an exemption without you requesting it. Possible values are * lowValue - For payments below 30 EUR (or equivalent converted amount) are considered “low value” and might be exempt from SCA. SCA is required if the total amount is higher than 100 EUR, and every 5 transactions. * transactionRiskAnalysis - For payments through acquirers or issuers whose fraud level is below a certain threshold. * secureCorporate - For payments that use secure corporate cards, which are exempt from 3DS authentication. * trustedBeneficiary - For payments where the cardholder has already added the merchant to a trust list on their bank. * trustedBeneficiaryPrompt - For payments where the merchant would like to prompt the cardholder to add them as a trusted merchant. * dataShare - Data Sharing exemptions for transactions that are not subject to Strong Customer Authentication (SCA) compliance.
          - `subscription` object — Configuration of a subscription process.
            - `chargeFrequency` string — Scheduled interval between subscription payments. The format should be based on the [ISO 8601 standard](https://tc39.es/proposal-temporal/docs/duration.html).
            - `expiration` string, date — Date when recurring payments expire.
          - `tags` object — Additional meta fields to be sent to the payment providers which support metadata / tags. For example, sent to [Stripe as metadata](https://stripe.com/docs/api/metadata). Because these will always be PSP-specific, we do NOT recommend using these fields if they can actually be mapped to a generic field above.

## Response `201`

Created.

- union
  - object
    - `id` string, uuid, required — ID of this execution.
    - `status` object[], required — Business-case dependent set of status tags of this execution. The order of statuses does not matter and should not be used for any logic.
      - `code` string, required — Business-case dependent status code.
      - `time` string, date-time, required — When this execution status was set.
      - `errors` object[] — The reason why the status was set, absent if the status isn't an error status.
        - `id` string, uuid, required — Unique identifier of the error. Please use this value when reporting an issue to our team, so we can help you faster.
        - `code` string, required — Machine-friendly error code assigned to the error. Check the full list of possible values [here](https://docs.payrails.com/docs/error-codes#list-of-error-codes).
        - `detail` string, required — Human-readable description about the error, its cause, and resolution.
        - `docUrl` string — Link to the specific documentation about this particular `code`.
        - `reason` object — Metadata providing more details about the reason of the error. The structure of this object varies according to the `code`.
    - `createdAt` string, date-time, required — When this execution was started.
    - `merchantReference` string, required — Merchant-provided reference for the Execution. Commonly, the identifier of the order on the Merchant's system.
    - `holderReference` string, required — Merchant-provided reference for the transaction counterparty, i.e. the paying consumer.
    - `holderId` string, uuid, required — Unique identifier of the Holder in Payrails.
    - `workflow` object — Workflow template from which the Executions are created.
      - `code` string, required — Machine-friendly code of Workflow.
      - `version` integer, required — Version of a Workflow Configuration.
    - `amount` object — Amount of the execution. Only present if an amount has been set on the execution via an action (lookup, authorize, etc.).
      - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
      - `currency` string, required — ISO 3-letter currency code.
    - `meta` object — Metadata for the context of an execution. Includes Payrails-defined structures for most common fields used in workflows, but can also be extended by merchant or provider-specific fields. For more information, visit our [Meta Fields guide](https://docs.payrails.com/docs/configure-meta-fields-for-your-providers).
      - `order` object — The order being placed on your system.
        - `reference` string — Order reference number sent by the merchant. Defaults to `merchantReference` in the execution if not specified.
        - `description` string — A human-readable name or description of this order.
        - `softDescriptor` string — Text that should appear in the bank statement of the customer. Can be requested, but keep in mind that some providers and issuers don't allow you to change this.
        - `storeId` string — Order Store ID identifies the particular store associated with this order.
        - `placement` object — Data about where the order was placed.
          - `country` object — Country in which the customer placed the order.
            - `code` string, required — ISO 3166-1 alpha-2 country code.
            - `iso3` string — ISO 3-letter country code. Returned by Payrails, but not interpreted in requests.
            - `name` string — The English name of the country. Returned by Payrails, but not interpreted in requests.
          - `city` string — City in which the customer placed the order.
        - `deliveryAddress` object — The address the items are to be shipped to.
          - `street` string — The name of the street of a postal address.
          - `doorNumber` string — The number on the door, building, or room.
          - `complement` string — Additional addressing information, 2nd line of postal address.
          - `area` string — The name of the suburb or area within a city.
          - `city` string — The name of the city of a postal address.
          - `postalCode` string — The postal code.
          - `state` string — The name of the state a postal address is in.
          - `country` object — The country where the address is in.
            - `code` string, required — ISO 3166-1 alpha-2 country code.
            - `iso3` string — ISO 3-letter country code. Returned by Payrails, but not interpreted in requests.
            - `name` string — The English name of the country. Returned by Payrails, but not interpreted in requests.
          - `latitude` number, float — Latitude of the address in the GPS coordinate system.
          - `longitude` number, float — Longitude of the address in the GPS coordinate system.
          - `phone` object — The phone to contact in the address (can be different that the customer's).
            - `countryCode` string — International prefix of the phone, if known separately.
            - `number` string, required — The local number of the phone, such that `countryCode` + `number` can be dialed.
          - `alias` string — Name of the address, e.g. home, work.
          - `name` string — Name of the person to whom the address belongs to.
          - `lastName` string — Last name of the person to whom the address belongs to.
          - `email` string — Email of the person to whom the address belongs to.
        - `deliveryAddressPreference` 'noShipping' | 'userPreSpecified' | 'allowProviderOverride' — Determines which Shipping details to use in express payment methods.
        - `deliveryDate` string, date-time — When the order is to be delivered.
        - `billingAddress` object — The address to put on the bill for this order.
          - `street` string — The name of the street of a postal address.
          - `doorNumber` string — The number on the door, building, or room.
          - `complement` string — Additional addressing information, 2nd line of postal address.
          - `area` string — The name of the suburb or area within a city.
          - `city` string — The name of the city of a postal address.
          - `postalCode` string — The postal code.
          - `state` string — The name of the state a postal address is in.
          - `country` object — The country where the address is in.
            - `code` string, required — ISO 3166-1 alpha-2 country code.
            - `iso3` string — ISO 3-letter country code. Returned by Payrails, but not interpreted in requests.
            - `name` string — The English name of the country. Returned by Payrails, but not interpreted in requests.
          - `latitude` number, float — Latitude of the address in the GPS coordinate system.
          - `longitude` number, float — Longitude of the address in the GPS coordinate system.
          - `phone` object — The phone to contact in the address (can be different that the customer's).
            - `countryCode` string — International prefix of the phone, if known separately.
            - `number` string, required — The local number of the phone, such that `countryCode` + `number` can be dialed.
          - `alias` string — Name of the address, e.g. home, work.
          - `name` string — Name of the person to whom the address belongs to.
          - `lastName` string — Last name of the person to whom the address belongs to.
          - `email` string — Email of the person to whom the address belongs to.
        - `shippingType` 'pickup' | 'physical' | 'hybrid' | 'digital' — The method by which the order is fulfilled: - `pickup`: The customer picks up the order. - `physical`: The order is physically delivered. - `digital`: The order is delivered electronically. - `hybrid`: A combination of physical and digital fulfillment.
        - `shipping` object — The shipping total price of the order.
          - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
          - `currency` string, required — ISO 3-letter currency code.
        - `totalDiscount` object — The total discount applied on the order.
          - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
          - `currency` string, required — ISO 3-letter currency code.
        - `totalTax` object — The total taxes for the order.
          - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
          - `currency` string, required — ISO 3-letter currency code.
        - `lines` object[] — List of details per item in the order.
          - `name` string — The name of the item.
          - `description` string — The description of the item.
          - `product` object — The details of the product item.
            - `type` 'physical' | 'digital' | 'service' — The type of the product item.
          - `type` 'lineItem' | 'discount' | 'tax' — The type of the item. the line value will be added to the order total in case of `lineItem`, `tax` and subtracted from order total in case of `discount`.
          - `quantity` integer — How many instances of this item are part of the order.
          - `unitPrice` object — How much does a unit of the item cost.
            - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
            - `currency` string, required — ISO 3-letter currency code.
          - `total` object — Cost of unit price multiplied by quantity with the tax and discount applied.
            - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
            - `currency` string, required — ISO 3-letter currency code.
          - `taxPercentage` object — Tax percentage that applies to the specific item, applicable only where `item.type == lineItem`, will be ignored when not providing `item.unitPrice`.
            - `value` string, required — A percentage value up to 2 decimal precision.
          - `totalDiscount` object — The total discount applied on this item (quantity x discount per item), applicable only where `item.type == lineItem`, will be ignored when not providing `item.unitPrice`.
            - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
            - `currency` string, required — ISO 3-letter currency code.
          - `totalTax` object — The total tax added for this item (quantity x tax per item), applicable only where `items.type = lineItem`, will be ignored when not providing `item.unitPrice`.
            - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
            - `currency` string, required — ISO 3-letter currency code.
          - `id` string — Identifier of the item on the merchant's system.
          - `links` object — Relevant links about the item.
            - `productUrl` string — URL of the product information page.
            - `imageUrl` string — URL of the image of the item.
          - `travelTicket` object — Details about the travel ticket.
            - `ticketId` string — The ID of the travel ticket.
            - `passengers` object[] — The passengers on the travel ticket.
              - …
            - `routes` object[] — The routes on the travel ticket.
              - …
        - `total` object — Total order value. Can be different than the execution amount in case discounts or other costs are involved. This value will be ignored if costs are detailed in the `lines` array.
          - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
          - `currency` string, required — ISO 3-letter currency code.
        - `processingType` 'Regular' | 'Subscription' | 'CardOnFile' | 'UnscheduledCardOnFile' | 'MOTO' | 'InPerson' — Processing type of the order.
        - `createdAt` string, date-time — The order's creation date in RFC 3339 format.
        - `pendingStateDuration` string — Controls how long the execution is allowed to remain in pending state. If the transaction has not reached a final state within this duration, the execution is automatically cancelled. The format should be based on the ISO 8601 standard.
        - `fundsTransfer` object — The order funds transfer details in case this is an AFT transaction.
          - `type` 'disbursement' | 'personToPerson' | 'accountToAccount' | 'topUp' | 'purchase' | 'cash' | 'walletLoad' — The type of funds transfer.
          - `purpose` 'donation' | 'education' | 'emergency' | 'expatriation' | 'familySupport' | 'financialServices' | 'gifts' | 'income' | 'insurance' | 'investment' | 'itServices' | 'leisure' | 'loanPayment' | 'medical' | 'business' | 'crypto' | 'assets' | 'prepaid' | 'crowdLending' | 'debitCard' | 'giftCard' | 'gaming' | 'highRiskSecurities' | 'salary' | 'pension' | 'royalities' | 'savings' | 'travelAndTourism' | 'other' — A human-readable description of the purpose for the funds transfer.
          - `recipient` object — Details of the individual or entity receiving the funds.
            - `account` object — The account details for the recipient.
              - …
            - `customer` object — The details of the recipient.
              - …
            - `address` object — The physical address of the recipient.
              - …
          - `sender` object — Details of the individual or entity sending the funds.
            - `customer` object — The details of the sender.
              - …
            - `address` object — The physical address of the sender.
              - …
            - `type` 'individual' | 'corporate' | 'instrument' — The type of sender.
            - `companyName` string — The sender's company name, if applicable.
      - `customer` object — The customer placing the order.
        - `reference` string — Customer reference number specified by the merchant. Defaults to `holderReference` of the execution if not specified.
        - `name` string — The full name (or first name, if you can provide `lastName` separate) of the customer.
        - `lastName` string — Last name of the customer (if required to be separate from `name`).
        - `email` string — Email address of the customer.
        - `type` string — Customer type specified by the merchant.
        - `phone` object — Phone of the customer.
          - `countryCode` string — International prefix of the phone, if known separately.
          - `number` string, required — The local number of the phone, such that `countryCode` + `number` can be dialed.
        - `birthDate` string, date — Date of birth of the customer.
        - `language` string — POSIX locale string identifying the language used to communicate to the customer.
        - `country` object — Country of registration the customer. Can be different than the order and delivery countries.
          - `code` string, required — ISO 3166-1 alpha-2 country code.
          - `iso3` string — ISO 3-letter country code. Returned by Payrails, but not interpreted in requests.
          - `name` string — The English name of the country. Returned by Payrails, but not interpreted in requests.
        - `identityCardNumber` string — The customer's identity number, e.g. passport, national ID, etc.
        - `identityCardType` string — The type of the customer's identity card, e.g. passport, national ID, etc.
        - `createdAt` string, date-time — The customer's account creation date in RFC 3339 format.
      - `clientContext` object — Data describing the customer's device or browser.
        - `ipAddress` string — IP address of the device that customer used to place the order. Can be IPv4 or IPv6.
        - `userAgent` string — The user-agent header supplied by the customer's browser.
        - `acceptHeader` string — The accept header supplied by the customer's browser.
        - `clientType` union — Type of device customer used to place the order.
          - 'desktop' — Desktop computer via web browser.
          - 'mobile' — Smartphone via browser.
          - 'app' — Merchant-controlled smartphone app.
        - `osType` 'ios' | 'android' — Type of Operating System that the customer is using.
        - `osVersion` string — Version of Operating System that the customer is using.
        - `deviceFingerprint` string — Fingerprint of the device the customer is using.
        - `javaEnabled` boolean — Flag indicating if the customer's browser is able to execute Java.
        - `javaScriptEnabled` boolean — Flag indicating if the customer's browser is able to execute JavaScript.
        - `cookiesAccepted` boolean — Flag indicating if the customer's browser accepts cookies.
        - `language` string — Locale string identifying the language of the device or browser, e.g. `pt`, `es_UY`, `en-US`. Both `-` and `_` are accepted.
        - `colorDepth` integer — The color depth of the customer's browser in bits per pixel.
        - `screenHeight` integer — The pixel height of the customer's screen.
        - `screenWidth` integer — The pixel width of the customer's screen.
        - `timeZoneOffset` integer — Time difference between UTC time and the customer's browser local time, in minutes.
        - `origin` string — The URL from where the order is being placed, e.g. https://merchant.com/checkout.
        - `host` string — The domain name from which the order is being placed, e.g. merchant.com.
      - `vendor` object — Description of a vendor that provides the order.
        - `reference` string — Reference of the vendor in the merchant's system.
        - `name` string — Name of the vendor.
        - `address` object — Address of the vendor.
          - `street` string — The name of the street of a postal address.
          - `doorNumber` string — The number on the door, building, or room.
          - `complement` string — Additional addressing information, 2nd line of postal address.
          - `area` string — The name of the suburb or area within a city.
          - `city` string — The name of the city of a postal address.
          - `postalCode` string — The postal code.
          - `state` string — The name of the state a postal address is in.
          - `country` object — The country where the address is in.
            - `code` string, required — ISO 3166-1 alpha-2 country code.
            - `iso3` string — ISO 3-letter country code. Returned by Payrails, but not interpreted in requests.
            - `name` string — The English name of the country. Returned by Payrails, but not interpreted in requests.
          - `latitude` number, float — Latitude of the address in the GPS coordinate system.
          - `longitude` number, float — Longitude of the address in the GPS coordinate system.
          - `phone` object — The phone to contact in the address (can be different that the customer's).
            - `countryCode` string — International prefix of the phone, if known separately.
            - `number` string, required — The local number of the phone, such that `countryCode` + `number` can be dialed.
          - `alias` string — Name of the address, e.g. home, work.
          - `name` string — Name of the person to whom the address belongs to.
          - `lastName` string — Last name of the person to whom the address belongs to.
          - `email` string — Email of the person to whom the address belongs to.
        - `device` object — Details about the device used by the vendor that provides the order.
          - `reference` string — Unique reference of the device (e.g. serial number).
        - `subMerchants` object[] — A list of sub-sellers for Payment Facilitator transactions.
          - `id` string — Unique identifier for the sub-merchant.
          - `name` string — The name of the sub-merchant.
          - `address` object — The physical location of the sub-merchant.
            - `street` string — The name of the street of a postal address.
            - `doorNumber` string — The number on the door, building, or room.
            - `complement` string — Additional addressing information, 2nd line of postal address.
            - `area` string — The name of the suburb or area within a city.
            - `city` string — The name of the city of a postal address.
            - `postalCode` string — The postal code.
            - `state` string — The name of the state a postal address is in.
            - `country` object — The country where the address is in.
              - …
            - `latitude` number, float — Latitude of the address in the GPS coordinate system.
            - `longitude` number, float — Longitude of the address in the GPS coordinate system.
            - `phone` object — The phone to contact in the address (can be different that the customer's).
              - …
            - `alias` string — Name of the address, e.g. home, work.
            - `name` string — Name of the person to whom the address belongs to.
            - `lastName` string — Last name of the person to whom the address belongs to.
            - `email` string — Email of the person to whom the address belongs to.
          - `amount` object — The amount of the payment corresponding to the sub-merchant.
            - `value` string, required — Decimal amount of the major currency unit. Can be any precision.
            - `currency` string, required — ISO 3-letter currency code.
      - `risk` object — Configuration values for the risk prevention check.
        - `score` string — Score provided by an external fraud prevention system.
        - `skipPaymentProviderRules` boolean — True if the provider should skip the risk rules.
        - `force3DS` boolean — Deprecated, use threeDSMode instead. True if we should request the provider to force a 3DS process. The actual execution of 3DS will depend on its availability and configuration on the provider and the issuer.
        - `threeDSMode` 'Skip' | 'Force' | 'Default' — 3DS mode to send in an authorize request to a PSP.
        - `allowNative3DS` boolean — True if we should allow native experience in mobile devices when 3DS 2.x is triggered. If false, we will prefer redirection-based flows.
        - `sessionId` string — Session ID provided by an external fraud prevention system.
        - `exemptionIndicator` 'lowValue' | 'transactionRiskAnalysis' | 'secureCorporate' | 'trustedBeneficiary' | 'trustedBeneficiaryPrompt' | 'dataShare' — Indicates the exemption that you want to request in case a 3DS process is triggered.The issuer decides if the exemption is granted or not. For some types of transaction, the issuer can grant an exemption without you requesting it. Possible values are * lowValue - For payments below 30 EUR (or equivalent converted amount) are considered “low value” and might be exempt from SCA. SCA is required if the total amount is higher than 100 EUR, and every 5 transactions. * transactionRiskAnalysis - For payments through acquirers or issuers whose fraud level is below a certain threshold. * secureCorporate - For payments that use secure corporate cards, which are exempt from 3DS authentication. * trustedBeneficiary - For payments where the cardholder has already added the merchant to a trust list on their bank. * trustedBeneficiaryPrompt - For payments where the merchant would like to prompt the cardholder to add them as a trusted merchant. * dataShare - Data Sharing exemptions for transactions that are not subject to Strong Customer Authentication (SCA) compliance.
      - `subscription` object — Configuration of a subscription process.
        - `chargeFrequency` string — Scheduled interval between subscription payments. The format should be based on the [ISO 8601 standard](https://tc39.es/proposal-temporal/docs/duration.html).
        - `expiration` string, date — Date when recurring payments expire.
      - `tags` object — Additional meta fields to be sent to the payment providers which support metadata / tags. For example, sent to [Stripe as metadata](https://stripe.com/docs/api/metadata). Because these will always be PSP-specific, we do NOT recommend using these fields if they can actually be mapped to a generic field above.
    - `initialResults` object[] — Results of the `initialActions` specified during execution creation. Indexes of this array correspond one to one with those from `initialActions`, each initial action reports their result here.
      - `httpCode` integer, required — The HTTP code returned by the action invocation.
      - `body` union, required
        - object
          - `name` 'lookup', required — Lookup the available payment methods and instruments.
          - `actionId` string, uuid, required — Unique identifier for this action execution. If its processing is done asynchronously, you will receive a notification with the same `actionId`.
          - `workspaceId` string, uuid — Unique identifier of a workspace in Payrails.
          - `executedAt` string, date-time, required — Date and time when execution of the Action was started.
          - `links` object, required — Links to the next possible actions that can be taken.
            - `execution` union, required — URL to fetch the current execution state.
              - …
            - `authorize` union — URL to authorize the current execution.
              - …
            - `startPaymentSession` union — URL to start a payment session.
              - …
          - `data` object, required — Lookup action results.
            - `paymentCompositionOptions` object[], required — List of Payment Methods and Payment Instruments that can be used to complete the execution.
              - …
        - object
          - `name` 'startPaymentSession', required — Starts a payment session on a specific Provider.
          - `actionId` string, uuid, required — Unique identifier for this action execution. If its processing is done asynchronously, you will receive a notification with the same `actionId`.
          - `workspaceId` string, uuid — Unique identifier of a workspace in Payrails.
          - `executedAt` string, date-time, required — Date and time when execution of the Action was started.
          - `links` object, required — Links to the next possible actions that can be taken.
            - `execution` union, required — URL to fetch the current execution state.
              - …
          - `data` object, required — Provider-specific data needed to continue the payment session.
        - object
          - `name` 'authorize', required — Triggers the selected payments on PSP.
          - `actionId` string, uuid, required — Unique identifier for this action execution. If its processing is done asynchronously, you will receive a notification with the same `actionId`.
          - `workspaceId` string, uuid — Unique identifier of a workspace in Payrails.
          - `executedAt` string, date-time, required — Date and time when execution of the Action was started.
          - `links` object, required — Links to the next possible actions that can be taken.
            - `execution` union, required — URL to fetch the current execution state.
              - …
            - `consumerWait` union, required — URL the consumer can be redirected to until payment is complete. This endpoint will redirect the consumer as needed for 3DS or other PSP interactions.
              - …
            - `capture` union — URL to capture the current execution.
              - …
            - `cancel` union, required — URL to cancel the current execution.
              - …
            - `refund` union — URL to refund the current execution.
              - …
    - `workspaceId` string, uuid — Workspace ID that that this execution belongs to.
    - `links` object — Links to the next possible actions that can be taken.
      - `self` union, required
        - string
        - object — Link related information.
          - `href` string, required
          - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method that should be used to call the `href`.
      - `lookup` union
        - string
        - object — Link related information.
          - `href` string, required
          - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method that should be used to call the `href`.
      - `3ds` union
        - string
        - object — Link related information.
          - `href` string, required
          - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method that should be used to call the `href`.
      - `authorize` union
        - string
        - object — Link related information.
          - `href` string, required
          - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method that should be used to call the `href`.
      - `startPaymentSession` union
        - string
        - object — Link related information.
          - `href` string, required
          - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method that should be used to call the `href`.
      - `capture` union
        - string
        - object — Link related information.
          - `href` string, required
          - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method that should be used to call the `href`.
      - `refund` union
        - string
        - object — Link related information.
          - `href` string, required
          - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method that should be used to call the `href`.
      - `cancel` union
        - string
        - object — Link related information.
          - `href` string, required
          - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method that should be used to call the `href`.
      - `priceBreakdown` union
        - string
        - object — Link related information.
          - `href` string, required
          - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method that should be used to call the `href`.
      - `consumerWait` union
        - string
        - object — Link related information.
          - `href` string, required
          - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method that should be used to call the `href`.
      - `confirm` object — Link related information.
        - `href` string, required
        - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method that should be used to call the `href`.
        - `action` object — A prerequisite action, which needs to be executed prior calling the provided link.
    - `requiredAction` object — Details of the next possible actions that can be taken.
      - `type` 'redirect' | 'confirm' | 'review', required — Type of the required action.
      - `subType` 'merchant' | 'client' | 'internal' — Sub type of the required action.
      - `description` string — Details of the required action.
      - `href` string — URL to complete the required action.
      - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — HTTP method that should be used to call the `href`.
      - `clientConfig` object — Details for the client to indicate how an action needs to be performed.
        - `renderMode` 'hidden' — Indicates the visibility of the action when being performed on the client.
      - `action` object — Details of a prerequisite action, which needs to be executed prior calling the provided link.
    - `actionRequired` '3ds' | 'confirm' — Action the customer needs to take to move the Execution state. A link with the same name should be used to continue.
  - object
    - `actionId` string, uuid — Unique identifier for this action execution. If its processing is done asynchronously, you will receive a notification with the same `actionId`.

## Other responses

- `400` — Bad Request.
- `401` — Unauthorized.
- `403` — Insufficient Scope.
- `404` — Not Found.
- `429` — Too Many Requests.

---

[API](https://skmtc.net/payrails/apis/payrails-api-reference.md) · [All operations](https://skmtc.net/payrails/apis/payrails-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/payrails/payrails-api-reference/revisions/9dd2f0158582/schema)
