---
title: "Execute an order"
method: POST
path: "/orders/{lago_id}/execute"
tags: ["orders"]
---

# Execute an order

`POST /orders/{lago_id}/execute`

## Request

- Base URL: `https://api.getlago.com/api/v1`
- URL: `https://api.getlago.com/api/v1/orders/{lago_id}/execute`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/getlago/apis/lago-api-documentation/docs/orders/:lago_id/execute/post.ts> (a function with typed inputs; its response is checked against the schema)

This endpoint carries out an order on demand, without waiting for its `execute_at` schedule. It runs synchronously, so the response carries the resulting status and, when the execution fails, the reason it failed.
An `execute_in_lago` order applies the quoted deal, creating the subscriptions, coupons, wallets or one-off invoice it describes; an `order_only` order is simply marked as executed. What the execution produced is listed in `execution_record`.
Executing is idempotent: an order that has already been executed is returned untouched. An order whose previous execution failed is executed again, and a `422` is returned when the order carries no execution mode and none is provided in the body.
Restating an `execution_mode` that differs from the one stored on the order updates it first, which only succeeds while the order is still `created`: a `failed` order can be retried, but not switched to another mode. That update also re-validates the order's own `execute_at` against the day the quoted deal stops being executable, so a `422` is possible even though no date was sent. An order carrying no `execute_at` is not bounded that way, and a deal whose term has passed then only fails when the execution runs.
A `404` is not limited to an unknown order: when the execution cannot find a catalog record the quote pinned, such as a deleted plan, charge, coupon or the subscription being amended, the missing resource is reported as a `404` and the order is left `failed`.
Concurrency is reported two ways. A mode change losing the race on the quote comes back as a `422` validation error, while the execution itself losing it comes back as a `422` carrying a lock code, because a scheduled execution relies on that error to be retried.
This is a premium feature.

## Request body

- OrderExecuteInput: Parameters available when executing an order. The body is optional, as the execution mode is normally chosen when the order form is signed.
  - `order` object
    - `execution_mode` 'execute_in_lago' | 'order_only': How the order created from the order form is carried out. It can be any of the following values: - `execute_in_lago`: Lago applies the quoted deal itself, creating the subscriptions, coupons, wallets or one-off invoice it describes. - `order_only`: Lago records the order without applying it, leaving the execution to your own systems.

## Response `200`

Order executed

- Order
  - `order` OrderObjectExtended, required
    - `lago_id` string, uuid, required: Unique identifier of the order, created by Lago.
    - `number` string, required: The unique number assigned to the order by Lago.
    - `status` 'created' | 'executed' | 'failed', required: The status of the order. It can be any of the following values: - `created`: the order has been created from a signed order form and is waiting to be executed. - `executed`: the order has been carried out. What it produced is listed in `execution_record`. - `failed`: the execution was attempted and rolled back. The reasons are listed in `execution_record.errors`. Lago does not retry on its own, so a new attempt has to be triggered through the execute endpoint.
    - `order_type` 'subscription_creation' | 'subscription_amendment' | 'one_off', required: The commercial motion the quote describes. It can be any of the following values: - `subscription_creation`: the quote creates one or more subscriptions. - `subscription_amendment`: the quote amends an existing subscription, named by the quote's own `lago_subscription_id`. - `one_off`: the quote bills add-ons once, without any subscription.
    - `execution_mode` 'null' | 'execute_in_lago' | 'order_only', nullable, required: How the order is carried out. It is `null` while the order has neither been scheduled nor executed. It can be any of the following values: - `execute_in_lago`: Lago applies the quoted deal itself, creating the subscriptions, coupons, wallets or one-off invoice it describes. - `order_only`: Lago records the order without applying it, leaving the execution to your own systems.
    - `currency` 'null' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'ISK' | 'JMD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KRW' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'STD' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW', nullable, required
    - `executed_at` string, date-time, nullable, required: The date and time in UTC (ISO 8601) when the order was executed. It is `null` unless the `status` is `executed`.
    - `execution_record` OrderExecutionRecordObject, required: A trace of what the execution produced. Every key is always present, whichever the order type, so a reader never has to tell a missing key from an empty one; the keys that do not apply keep their empty value. Which ones are filled depends on the `order_type` of the quote, and only for an `execute_in_lago` order: `invoice_id` for `one_off`, `subscription_ids` with `applied_coupon_ids` and `wallet_ids` for `subscription_creation`, and the same plus `terminated_subscription_ids` for `subscription_amendment`. An `order_only` order records the mode and the timestamp alone.
      - `executed_at` string, date-time, nullable, required: The date and time in UTC (ISO 8601) when the execution succeeded. It is `null` until then, and stays `null` on a failed attempt.
      - `execution_mode` 'null' | 'execute_in_lago' | 'order_only', nullable, required: How the order is carried out. It is `null` while the order has neither been scheduled nor executed. It can be any of the following values: - `execute_in_lago`: Lago applies the quoted deal itself, creating the subscriptions, coupons, wallets or one-off invoice it describes. - `order_only`: Lago records the order without applying it, leaving the execution to your own systems.
      - `invoice_id` string, uuid, nullable, required: Unique identifier of the one-off invoice created by the execution, created by Lago. Only for a `one_off` order.
      - `subscription_ids` string[], required: Unique identifiers of the subscriptions created by the execution, created by Lago.
      - `terminated_subscription_ids` string[], required: Unique identifiers of the subscriptions terminated by the execution, created by Lago. Only for a `subscription_amendment` order, and only when the amendment took effect immediately and terminated the subscription it replaced. It stays empty for an amendment scheduled for the next billing period.
      - `applied_coupon_ids` string[], required: Unique identifiers of the coupons applied to the customer by the execution, created by Lago.
      - `wallet_ids` string[], required: Unique identifiers of the prepaid credit wallets created by the execution, created by Lago.
      - `errors` string[], required: The reasons why the execution failed. It is empty unless the `status` is `failed`.
    - `lago_organization_id` string, uuid, required: Unique identifier of the organization, created by Lago.
    - `lago_customer_id` string, uuid, required: Unique identifier of the customer the order was placed for, created by Lago.
    - `lago_order_form_id` string, uuid, required: Unique identifier of the signed order form the order comes from, created by Lago. An order form carries at most one order.
    - `created_at` string, date-time, required: The date and time in UTC (ISO 8601) when the order was created.
    - `updated_at` string, date-time, required: The date and time in UTC (ISO 8601) when the order was last updated.
    - `billing_snapshot` QuoteBillingItems, nullable, required: A snapshot of everything the quote bills. Unlike the rest of the Lago API, the keys nested in this object are camelCased: the object is stored and returned as it is authored in the Lago user interface. Which top-level keys are present depends on the `order_type` of the parent quote: - `one_off`: `addOns`. - `subscription_creation` and `subscription_amendment`: `plans`, plus the optional `coupons` and `walletCredits`. Every entry pins the catalog record it was built from through its `id` and its `payload`, so that an approved quote keeps billing what was approved even if the catalog changes afterwards. The optional `overrides` object carries the deviations from that record negotiated on the quote. This object is the single source of truth for the term of the deal. Three of its nested dates bound that term, because the execution flow refuses them once past: `plans[].payload.endDate`, `walletCredits[].payload.expirationAt` and the `expirationAt` of a wallet credit's recurring top-up rule. The earliest of them is the day the deal stops being executable, and both the signing window and the execution date must fall strictly before it. A `one_off` quote carries none of them and is never bounded. On a `draft` version this object may be incomplete: only the properties documented as required below are enforced on every save, the others are enforced when the version is approved.
      - `addOns` QuoteBillingItemAddOnObject[]: The add-ons billed once by a `one_off` quote. At least one entry is required to approve the version.
        - `id` string, uuid, required: Unique identifier of the add-on in Lago, pinned when the entry was added to the quote.
        - `localId` string, required: Identifier of the entry within the quote version, assigned by the Lago user interface. It allows the quote document to reference the entry.
        - `type` 'add_on', required: The kind of billing item.
        - `payload` object, required: A snapshot of the add-on as it was added to the quote. `code`, `units`, `unitAmountCents` and `totalAmountCents` are required to approve the version.
          - `code` string: Unique code identifying the add-on.
          - `units` number: The number of units billed. It must be greater than 0.
          - `unitAmountCents` integer: The amount of one unit, in cents, in the currency of the quote version.
          - `totalAmountCents` integer: The total amount billed for the entry, in cents, in the currency of the quote version.
          - `fromDatetime` string, date-time, nullable: The beginning of the period covered by the entry, in UTC (ISO 8601).
          - `toDatetime` string, date-time, nullable: The end of the period covered by the entry, in UTC (ISO 8601).
        - `overrides` object: The deviations from the add-on snapshot negotiated on the quote. Only the properties set here are overridden.
          - `description` string: Overrides the description of the add-on.
          - `units` number: Overrides the number of units billed. It must be greater than 0.
          - `unitAmountCents` integer: Overrides the amount of one unit, in cents.
          - `totalAmountCents` integer: Overrides the total amount billed for the entry, in cents.
          - `invoiceDisplayName` string: Overrides the name of the add-on as it appears on the invoice.
          - `fromDatetime` string, date-time, nullable: Overrides the beginning of the period covered by the entry, in UTC (ISO 8601).
          - `toDatetime` string, date-time, nullable: Overrides the end of the period covered by the entry, in UTC (ISO 8601).
      - `plans` QuoteBillingItemPlanObject[]: The plans subscribed to, or amended, by a `subscription_creation` or `subscription_amendment` quote. At least one entry is required to approve the version.
        - `id` string, uuid, required: Unique identifier of the plan in Lago, pinned when the entry was added to the quote.
        - `localId` string, nullable: Identifier of the entry within the quote version, assigned by the Lago user interface. It allows the quote document to reference the entry.
        - `type` 'plan', required: The kind of billing item.
        - `payload` object, required: A snapshot of the plan as it was added to the quote, and of the subscription to create from it. Additional catalog properties may be present, as only the ones Lago reads when the quote is executed are documented here. `code` is required to approve the version.
          - `code` string: Unique code identifying the plan.
          - `subscriptionExternalId` string, nullable: The external unique identifier to assign to the subscription created from the entry. For a `subscription_amendment` quote, it identifies the subscription being amended.
          - `subscriptionName` string, nullable: The name to assign to the subscription created from the entry.
          - `billingTime` 'null' | 'calendar' | 'anniversary', nullable: The billing time of the subscription created from the entry.
          - `startDate` string, nullable: The date and time in UTC (ISO 8601) when the subscription starts. It is optional, and a plan naming none starts the moment the order is executed.
          - `endDate` string, nullable: The date and time in UTC (ISO 8601) when the subscription ends. Leaving it unset makes the deal open-ended, and on a `subscription_amendment` quote it leaves the amended subscription's own ending date in place. It bounds the deal, so the signing window and the execution date must both fall strictly before it.
          - `paymentMethodId` string, uuid, nullable: Unique identifier of the payment method to charge for the subscription, created by Lago.
          - `charges` object[], nullable: A snapshot of the usage-based charges of the plan. It pins the charge each entry of `overrides.charges` applies to.
            - `id` string, uuid: Unique identifier of the charge in Lago. It is required to approve the version.
            - `billableMetric` object: The billable metric the charge is based on.
              - …
            - `chargeModel` 'null' | 'standard' | 'graduated' | 'graduated_percentage' | 'package' | 'percentage' | 'volume' | 'custom' | 'dynamic', nullable: The pricing model of the charge.
          - `fixedCharges` object[], nullable: A snapshot of the fixed charges of the plan. It pins the fixed charge each entry of `overrides.fixedCharges` applies to.
            - `id` string, uuid: Unique identifier of the fixed charge in Lago. It is required to approve the version.
            - `addOn` object: The add-on the fixed charge is based on.
              - …
            - `chargeModel` 'null' | 'standard' | 'graduated' | 'volume', nullable: The pricing model of the fixed charge.
        - `overrides` object, nullable: The deviations from the plan snapshot negotiated on the quote. Only the properties set here are overridden.
          - `amountCents` integer, nullable: Overrides the base amount of the plan, in cents.
          - `amountCurrency` 'null' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'ISK' | 'JMD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KRW' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'STD' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW', nullable
          - `invoiceDisplayName` string, nullable: Overrides the name of the plan as it appears on the invoice.
          - `name` string, nullable: Overrides the name of the plan.
          - `description` string, nullable: Overrides the description of the plan.
          - `trialPeriod` number, nullable: Overrides the trial period of the plan, in days.
          - `minimumCommitment` object, nullable: Overrides the minimum commitment of the plan.
            - `amountCents` integer, nullable: The amount of the minimum commitment, in cents. It must be greater than 0.
            - `invoiceDisplayName` string, nullable: The name of the minimum commitment as it appears on the invoice.
          - `usageThresholds` object[], nullable: Overrides the progressive billing thresholds of the plan.
            - `amountCents` integer, required: The usage amount, in cents, at which the threshold is reached. It must be greater than 0.
            - `recurring` boolean, nullable: Whether the threshold applies to every period, instead of only once.
            - `thresholdDisplayName` string, nullable: The name of the threshold as it appears on the invoice.
          - `charges` object[], nullable: Overrides the usage-based charges of the plan. Each entry applies to the charge of the same billable metric in `payload.charges`.
            - `billableMetricCode` string, required: Unique code identifying the billable metric of the charge to override.
            - `chargeModel` 'null' | 'standard' | 'graduated' | 'graduated_percentage' | 'package' | 'percentage' | 'volume' | 'custom' | 'dynamic', nullable: The pricing model of the charge.
            - `properties` object, nullable: The pricing properties of the charge. Their shape depends on the charge model, and is validated when the quote is executed.
            - `minAmountCents` integer, nullable: The minimum amount billed for the charge, in cents.
            - `invoiceDisplayName` string, nullable: The name of the charge as it appears on the invoice.
          - `fixedCharges` object[], nullable: Overrides the fixed charges of the plan. Each entry applies to the fixed charge of the same add-on in `payload.fixedCharges`.
            - `addOnCode` string, required: Unique code identifying the add-on of the fixed charge to override.
            - `units` string, nullable: The number of units billed by the fixed charge.
            - `properties` object, nullable: The pricing properties of the fixed charge. Their shape depends on the charge model, and is validated when the quote is executed.
            - `invoiceDisplayName` string, nullable: The name of the fixed charge as it appears on the invoice.
      - `coupons` QuoteBillingItemCouponObject[]: The coupons applied to the customer when the quote is executed.
        - `id` string, uuid, required: Unique identifier of the coupon in Lago, pinned when the entry was added to the quote.
        - `localId` string, required: Identifier of the entry within the quote version, assigned by the Lago user interface. It allows the quote document to reference the entry.
        - `type` 'coupon', required: The kind of billing item.
        - `payload` object, required: A snapshot of the coupon as it was added to the quote. `code` and `type` are required to approve the version.
          - `code` string: Unique code identifying the coupon.
          - `type` 'fixed_amount' | 'percentage': Whether the coupon deducts a fixed amount or a percentage.
          - `amountCents` integer, nullable: The amount deducted by the coupon, in cents. Only for a `fixed_amount` coupon.
          - `currency` 'null' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'ISK' | 'JMD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KRW' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'STD' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW', nullable
          - `percentageRate` number, nullable: The percentage deducted by the coupon. Only for a `percentage` coupon. It must be greater than 0.
          - `frequency` 'null' | 'once' | 'recurring' | 'forever', nullable: How often the coupon is deducted.
          - `frequencyDuration` integer, nullable: The number of billing periods the coupon is deducted over. Only for a `recurring` coupon. It must be greater than 0.
        - `overrides` object, nullable: The deviations from the coupon snapshot negotiated on the quote. Only the properties set here are overridden.
          - `amountCents` integer, nullable: Overrides the amount deducted by the coupon, in cents.
          - `amountCurrency` 'null' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'ISK' | 'JMD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KRW' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'STD' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW', nullable
          - `percentageRate` number, nullable: Overrides the percentage deducted by the coupon. It must be greater than 0.
          - `frequency` 'null' | 'once' | 'recurring' | 'forever', nullable: Overrides how often the coupon is deducted.
          - `frequencyDuration` integer, nullable: Overrides the number of billing periods the coupon is deducted over. It must be greater than 0.
      - `walletCredits` QuoteBillingItemWalletCreditObject[]: The prepaid credit wallets created for the customer when the quote is executed.
        - `localId` string, required: Identifier of the entry within the quote version, assigned by the Lago user interface. It allows the quote document to reference the entry.
        - `type` 'wallet_credit', required: The kind of billing item.
        - `payload` object, required: The prepaid credit wallet to create for the customer. Unlike the other billing items, a wallet credit is not built from an existing record, so it carries no `id` and no `overrides`. `paidCredits`, `grantedCredits` and `rateAmount` are required to approve the version.
          - `paidCredits` string, nullable: The number of credits the customer pays for.
          - `grantedCredits` string, nullable: The number of credits granted for free.
          - `rateAmount` string, nullable: The value of one credit, in the currency of the wallet.
          - `currency` 'null' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'ISK' | 'JMD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KRW' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRO' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'STD' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW', nullable
          - `expirationAt` string, date-time, nullable: The date and time in UTC (ISO 8601) when the credits expire.
          - `appliesTo` object, nullable: The limitations restricting what the credits can be spent on.
            - `feeTypes` string[], nullable: The fee types the credits can be spent on.
            - `billableMetricCodes` string[], nullable: The codes of the billable metrics the credits can be spent on.
          - `recurringTransactionRules` object[], nullable: The rule automatically topping the wallet up. At most one rule is allowed, and its `trigger` is required, to approve the version.
            - `trigger` 'null' | 'interval' | 'threshold', nullable: What triggers the top-up.
            - `interval` 'null' | 'weekly' | 'monthly' | 'quarterly' | 'semiannual' | 'yearly', nullable: How often the wallet is topped up. Only for an `interval` trigger.
            - `thresholdCredits` string, nullable: The credit balance below which the wallet is topped up. Only for a `threshold` trigger.
            - `method` 'null' | 'fixed' | 'target', nullable: Whether the top-up grants a fixed number of credits, or brings the balance up to a target.
            - `targetOngoingBalance` string, nullable: The balance the top-up brings the wallet up to. Only for a `target` method.
            - `grantsTargetTopUp` boolean, nullable: Whether the granted credits count towards the target balance.
            - `paidCredits` string, nullable: The number of credits the customer pays for on every top-up.
            - `grantedCredits` string, nullable: The number of credits granted for free on every top-up.
            - `startedAt` string, date-time, nullable: The date and time in UTC (ISO 8601) when the rule starts applying.
            - `expirationAt` string, date-time, nullable: The date and time in UTC (ISO 8601) when the rule stops applying.
            - `transactionName` string, nullable: The name given to the wallet transactions created by the rule.
            - `invoiceRequiresSuccessfulPayment` boolean, nullable: Whether the credits are granted only once the top-up invoice is paid.

## Other responses

- `401`: Unauthorized error
- `403`: Forbidden
- `404`: Not Found error
- `422`: Unprocessable entity error

## Changes

- **2026-11-03** `5d26657495a3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getlago/apis/lago-api-documentation/changes/orders/:lago_id/execute/post.md)

---

[API](https://skmtc.dev/getlago/apis/lago-api-documentation.md) - [All operations](https://skmtc.dev/getlago/apis/lago-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/getlago/apis/lago-api-documentation/revisions/b216574b9612?raw)
