---
api: 'Merchant API'
---

# Update an order (Deprecated)

Update the details of an order. 

You can update the details of an order based on the state of the order:

- `PENDING` state: You can use all the following parameters to update the order.
- `AUTHORISED` or `COMPLETED` state: You can update only the `merchant_order_ext_ref`, `description`, `metadata` and `shipping_address` parameters.
- `PROCESSING` state: You cannot update the order.

## Endpoint

PATCH `/api/1.0/orders/{order_id}`

> This endpoint is **deprecated**.

## Request body

### Attributes

- `amount` (integer, optional)
    The order total expressed in minor currency units, according to the [ISO 4217 standard](https://en.wikipedia.org/wiki/ISO_4217). For example, `7034` in `EUR` corresponds to €70.34.
    
    :::info
    Conversion between major and minor units varies by currency. For instance, `100` minor units equal £1.00 in `GBP`, whereas in `ISK` they represent 100 units. For more details, see the [ISO 4217 standard](https://en.wikipedia.org/wiki/ISO_4217).
    :::
- `currency` (string, optional)
    [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.
    
    :::info
    For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
    :::
- `merchant_order_ext_ref` (string, optional)
    Merchant order ID for external reference.
    
    Use this field to set the ID that your own system can use to easily track orders.
- `description` (string, optional)
    The description of the order.
- `email` (string, optional)
    The email of the customer.
- `customer_id` (string, optional)
    The ID of the customer.
- `capture_mode` (enum, optional)
    The capture mode of the order. `AUTOMATIC` is used by default.
    
    - `AUTOMATIC`: The order is captured automatically after payment authorisation.
    - `MANUAL`: The order is not captured automatically. You must manually capture the order later.
    
    For more information, see [Capture an order](/docs/api/merchant#capture-order).
    Possible enum values:

    - `AUTOMATIC`
    - `MANUAL`
- `settlement_currency` (string, optional)
    Settlement currency. 
    
    If `settlement_currency` is not specified, this value is taken from `currency`.
    
    :::info
    For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
    :::
- `shipping_address` (object, optional)
  - `shipping_address.street_line_1` (string, optional)
      Street line 1 information.
  - `shipping_address.street_line_2` (string, optional)
      Street line 2 information.
  - `shipping_address.region` (string, optional)
      The region associated with the address.
  - `shipping_address.city` (string, optional)
      The city associated with the address.
  - `shipping_address.country_code` (string)
      The country associated with the address.
  - `shipping_address.postcode` (string)
      The postcode associated with the address.
- `metadata` (object, optional)
    Additional information to track your orders in your system, by providing custom metadata using `"<key>" : "<value>"` pairs.
    
    :::warning
    **Restrictions:**
    
    - Both keys and values must be `string`s
    - Values cannot be `null`.
    - Max number of key-value pairs: `50`
    - Max length of values: `500` characters
    - Format of keys: Must start with a letter and contain only letters, digits, and underscores. Max 40 characters. Pattern: `^[a-zA-Z][a-zA-Z\\d_]{0,39}$`
    :::
- `enforce_challenge` (enum, optional)
    The enforce challenge mode. `AUTOMATIC` is used by default.
    
    - `AUTOMATIC`: The payments created for an order, will have challenge requirement calculated by our fraud mechanisms and might not require it.
    - `FORCED`: The payments created for an order will require a challenge. Currently only supported for card payments and forces 3DS challenge.
    Possible enum values:

    - `AUTOMATIC`
    - `FORCED`

## Returns

### 200

OK

#### Response attributes

- `id` (string)
    Permanent order ID used to retrieve, capture, cancel, or refund an order after authorization.
- `public_id` (string, optional)
    Temporary ID for the order. 
    
    It expires when the payment is authorized.
- `type` (enum)
    The type of the order.
    Possible enum values:

    - `PAYMENT`
    - `REFUND`
    - `CHARGEBACK`
- `state` (enum)
    The state of the order.
    
    :::info
    For more information about the order lifecycle, see: [Order and payment lifecycle](/docs/guides/merchant/reference/order-lifecycle).
    :::
    Possible enum values:

    - `PENDING`
    - `PROCESSING`
    - `AUTHORISED`
    - `COMPLETED`
    - `CANCELLED`
    - `FAILED`
- `created_at` (string)
    The date and time the order was created.
- `updated_at` (string)
    The date and time the order was last updated.
- `completed_at` (string, optional)
    The date and time the order was completed.
- `description` (string, optional)
    The description of the order.
- `capture_mode` (enum, optional)
    The capture mode of the order. `AUTOMATIC` is used by default.
    
    - `AUTOMATIC`: The order is captured automatically after payment authorisation.
    - `MANUAL`: The order is not captured automatically. You must manually capture the order later.
    
    For more information, see [Capture an order](/docs/api/merchant#capture-order).
    Possible enum values:

    - `AUTOMATIC`
    - `MANUAL`
- `settlement_currency` (string, optional)
    [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case. 
    
    If `settlement_currency` is different from the value of `currency`, the money will be exchanged when the amount is settled to your merchant account. In case of a refund or chargeback, the money will be exchanged to the order's initial `currency`.
    
    If `settlement_currency` is not specified, this value is taken from `currency`.
    
    :::info
    For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
    :::
- `merchant_order_ext_ref` (string, optional)
    Merchant order ID for external reference.
    
    Use this field to set the ID that your own system can use to easily track orders.
- `customer_id` (string, optional)
    The ID of the [customer](/docs/api/merchant#tag-customers) associated with this order.
- `email` (string, optional)
    The email of the customer.
- `phone` (string, optional)
    The phone number of the customer.
- `full_name` (string, optional)
    The customer's full name.
- `order_amount` (object)
    The amount and currency of the order.
  - `order_amount.value` (integer)
      The order total expressed in minor currency units, according to the [ISO 4217 standard](https://en.wikipedia.org/wiki/ISO_4217). For example, `7034` in `EUR` corresponds to €70.34.
      
      :::info
      Conversion between major and minor units varies by currency. For instance, `100` minor units equal £1.00 in `GBP`, whereas in `ISK` they represent 100 units. For more details, see the [ISO 4217 standard](https://en.wikipedia.org/wiki/ISO_4217).
      :::
  - `order_amount.currency` (string)
      [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.
      
      :::info
      For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
      :::
- `order_outstanding_amount` (object, optional)
    The amount and currency outstanding to be paid for this order.
  - `order_outstanding_amount.value` (integer, optional)
      The amount of the order (minor currency unit) that is outstanding. For example, enter `7034` for €70.34 in the field.
  - `order_outstanding_amount.currency` (string, optional)
      The currency of the amount that is outstanding. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.
      
      :::info
      For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
      :::
- `refunded_amount` (object, optional)
    The amount and currency of the refunded order.
  - `refunded_amount.value` (integer, optional)
      The amount of the refunded order (minor currency unit). For example, enter `7034` for €70.34 in the field.
  - `refunded_amount.currency` (string, optional)
      The currency of the refunded order. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.
      
      :::info
      For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
      :::
- `shipping_address` (object, optional)
  - `shipping_address.street_line_1` (string, optional)
      Street line 1 information.
  - `shipping_address.street_line_2` (string, optional)
      Street line 2 information.
  - `shipping_address.region` (string, optional)
      The region associated with the address.
  - `shipping_address.city` (string, optional)
      The city associated with the address.
  - `shipping_address.country_code` (string)
      The country associated with the address.
  - `shipping_address.postcode` (string)
      The postcode associated with the address.
- `payments` (array of object, optional)
    The details of all the payment attempts that have been made towards this order (successful or unsuccessful).
  - `payments[].id` (string)
      The ID of the payment.
  - `payments[].state` (enum)
      The state of the payment.
      Possible enum values:

      - `PROCESSING`
      - `AUTHORISED`
      - `CAPTURED`
      - `COMPLETED`
      - `FAILED`
      - `DECLINED`
      - `CANCELLED`
  - `payments[].failure_reason` (enum, optional)
      The reason for a `FAILED` or `DECLINED` payment.
      
      
      A failed or declined payment can result from multiple reasons. To learn
      more, check our [decline
      reasons](/docs/guides/merchant/reference/error-codes/decline-reasons).
      Possible enum values:

      - `do_not_honour`
      - `3ds_challenge_abandoned`
      - `3ds_challenge_failed`
      - `3ds_challenge_failed_manually`
      - `insufficient_funds`
      - `transaction_not_allowed_for_cardholder`
      - `high_risk`
      - `cardholder_name_missing`
      - `unknown_card`
      - `invalid_card`
      - `invalid_email`
      - `restricted_card`
      - `expired_card`
      - `rejected_by_customer`
      - `withdrawal_limit_exceeded`
      - `pick_up_card`
      - `invalid_amount`
  - `payments[].created_at` (string)
      The date and time the payment was created.
  - `payments[].updated_at` (string)
      The date and time the payment was last updated.
  - `payments[].token` (string, optional)
      Temporary token of the payment used to fetch the reward offer during
      checkout and link user registrations to the given offers. 
      
      
      The token is only valid for a limited time.
  - `payments[].amount` (object)
      The amount and currency of the payment.
    - `payments[].amount.value` (integer)
        The amount of the payment (minor currency unit). For example, enter
        `7034` for €70.34 in the field.
    - `payments[].amount.currency` (string)
        The currency of the payment. [ISO
        4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper
        case.
        
        
        :::info
        
        For more information about the supported currencies, see: [Help
        Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
        
        :::
  - `payments[].settled_amount` (object, optional)
      The amount and currency of the settled payment.
    - `payments[].settled_amount.value` (integer, optional)
        The amount of the settled payment (minor currency unit). For example,
        enter `7034` for €70.34 in the field.
    - `payments[].settled_amount.currency` (string, optional)
        The currency of the settled payment. [ISO
        4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper
        case.
        
        
        :::info
        
        For more information about the supported currencies, see: [Help
        Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
        
        :::
  - `payments[].payment_method` (object, optional)
      The details of the payment method used to make the payment.
    - `payments[].payment_method.id` (string, optional)
        The ID of the payment method. This value is present only if the payment method was previously saved.
    - `payments[].payment_method.type` (enum, optional)
        The type of the payment.
        Possible enum values:

        - `CARD`
        - `REVOLUT`
    - `payments[].payment_method.card` (object, optional)
        The details of the card. Only present for payments with `payment_method.type` = `CARD`.
      - `payments[].payment_method.card.card_brand` (enum, optional)
          The type of the card.
          Possible enum values:

          - `VISA`
          - `MASTERCARD`
      - `payments[].payment_method.card.funding` (enum, optional)
          The type of card funding.
          Possible enum values:

          - `CREDIT`
          - `DEBIT`
          - `PREPAID`
      - `payments[].payment_method.card.card_country` (string, optional)
          The country where the card was issued.
      - `payments[].payment_method.card.card_bin` (string, optional)
          The BIN of the card.
      - `payments[].payment_method.card.card_last_four` (string, optional)
          The last four digits of the card.
      - `payments[].payment_method.card.card_expiry` (string, optional)
          The expiry date of the card in the format of MM/YY.
      - `payments[].payment_method.card.cardholder_name` (string, optional)
          The name of the cardholder.
      - `payments[].payment_method.card.checks` (object, optional)
          The details of the check for card payment. Only for orders with successful payments.
        - `payments[].payment_method.card.checks.three_ds` (object, optional)
            The details of the 3D Secure check. Only for orders with successful payments.
          - `payments[].payment_method.card.checks.three_ds.state` (enum, optional)
              The result of 3D Secure check.
              Possible enum values:

              - `VERIFIED`
              - `FAILED`
              - `CHALLENGE`
          - `payments[].payment_method.card.checks.three_ds.version` (integer, optional)
              The 3D Secure version.
        - `payments[].payment_method.card.checks.cvv_verification` (enum, optional)
            The result of CVV verification.
            
            | Verification result | Description | 
            | ------------------- | ----------- |
            | `MATCH` | Provided CVV matches the card's CVV |
            | `NOT_MATCH` | Provided CVV does not match the card's CVV |
            | `INCORRECT` | Provided CVV format is incorrect for this type of card |
            | `NOT_PROCESSED` | CVV verification was not performed |
            Possible enum values:

            - `MATCH`
            - `NOT_MATCH`
            - `INCORRECT`
            - `NOT_PROCESSED`
        - `payments[].payment_method.card.checks.address` (enum, optional)
            The result of address verification.
            Possible enum values:

            - `MATCH`
            - `NOT_MATCH`
            - `N_A`
            - `INVALID`
        - `payments[].payment_method.card.checks.postcode` (enum, optional)
            The result of postcode verification.
            Possible enum values:

            - `MATCH`
            - `NOT_MATCH`
            - `N_A`
            - `INVALID`
        - `payments[].payment_method.card.checks.cardholder` (enum, optional)
            The result of cardholder verification.
            Possible enum values:

            - `MATCH`
            - `NOT_MATCH`
            - `N_A`
            - `INVALID`
  - `payments[].billing_address` (object, optional)
    - `payments[].billing_address.street_line_1` (string, optional)
        Street line 1 information.
    - `payments[].billing_address.street_line_2` (string, optional)
        Street line 2 information.
    - `payments[].billing_address.region` (string, optional)
        The region associated with the address.
    - `payments[].billing_address.city` (string, optional)
        The city associated with the address.
    - `payments[].billing_address.country_code` (string)
        The country associated with the address.
    - `payments[].billing_address.postcode` (string)
        The postcode associated with the address.
  - `payments[].risk_level` (enum, optional)
      The risk level of the card.
      
      If the risk level is `HIGH`, the payment might be declined.
      Possible enum values:

      - `LOW`
      - `HIGH`
  - `payments[].fees` (array of object, optional)
      The details of the order fee.
    - `payments[].fees[].type` (enum, optional)
        The type of the order fee.
        Possible enum values:

        - `FX`
        - `ACQUIRING`
    - `payments[].fees[].amount` (object, optional)
        The amount and currency of the payment fee.
      - `payments[].fees[].amount.value` (integer, optional)
          The amount of the payment fee (minor currency unit). For
          example, enter `7034` for €70.34 in the field.
      - `payments[].fees[].amount.currency` (string, optional)
          The currency of the payment fee. [ISO
          4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in
          upper case.
          
          
          :::info
          
          For more information about the supported currencies, see: [Help
          Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
          
          :::
- `related` (array of object, optional)
    The details of related orders. You can use the ID of the related order to [Retrieve the order information](/docs/api/merchant#retrieve-order).
  - `related[].id` (string, optional)
      The ID of the related order. You can use this ID to get more information about the related order using the [Retrieve an order](/docs/api/merchant#retrieve-order) operation.
  - `related[].type` (enum, optional)
      The type of the related order.
      Possible enum values:

      - `PAYMENT`
      - `REFUND`
      - `CHARGEBACK`
  - `related[].state` (enum, optional)
      The state of the related order.
      Possible enum values:

      - `PENDING`
      - `PROCESSING`
      - `AUTHORISED`
      - `COMPLETED`
      - `CANCELLED`
      - `FAILED`
  - `related[].amount` (object, optional)
      The amount and currency of the related order.
    - `related[].amount.value` (integer, optional)
        The order total expressed in minor currency units, according to the [ISO 4217 standard](https://en.wikipedia.org/wiki/ISO_4217). For example, `7034` in `EUR` corresponds to €70.34.
        
        :::info
        Conversion between major and minor units varies by currency. For instance, `100` minor units equal £1.00 in `GBP`, whereas in `ISK` they represent 100 units. For more details, see the [ISO 4217 standard](https://en.wikipedia.org/wiki/ISO_4217).
        :::
    - `related[].amount.currency` (string, optional)
        [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.
        
        :::info
        For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
        :::
- `metadata` (object, optional)
    Additional information to track your orders in your system, by providing custom metadata using `"<key>" : "<value>"` pairs.
    
    :::warning
    **Restrictions:**
    
    - Both keys and values must be `string`s
    - Values cannot be `null`.
    - Max number of key-value pairs: `50`
    - Max length of values: `500` characters
    - Format of keys: Must start with a letter and contain only letters, digits, and underscores. Max 40 characters. Pattern: `^[a-zA-Z][a-zA-Z\\d_]{0,39}$`
    :::
- `checkout_url` (string, optional)
    Link to a checkout page hosted by Revolut.
- `merchant_order_uri` (string, optional)
    The URI of the order stored in the merchant's order management system.
    
    This URI will be included in the order confirmation email for payments made via Revolut Pay. If specified, this URI will override the default link to the merchant's **Business website** configured in the Revolut Business account.
    
    :::warning
    Restrictions:
    - Must be a valid URI as defined by [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)
    - URI scheme is required and must be either `http` or `https`
    - URI host is required and cannot be `localhost` or an IP address
    - Max length: `2000`
    - Reserved or invalid characters must be percent-encoded (for example, use `%20` instead of a space)
    :::

## Error responses

| HTTP status code | Description |
| --- | --- |
| 400 | Bad Request |
| 401 | Unauthorized |
| 404 | Not Found |
