# Refreshing pending transactions

## Problem

You have created a transaction request — [Authorization](https://docs.commercelayer.io/developers/v/api-reference/authorizations), [Capture](https://docs.commercelayer.io/developers/v/api-reference/captures), [Void](https://docs.commercelayer.io/developers/v/api-reference/voids), or [Refund](https://docs.commercelayer.io/developers/v/api-reference/refunds) — to Checkout.com, which is still pending. You want to refresh its status to check if it gets approved.

## Solution

Checkout.com transactions are asynchronous. That means that once a transaction is created, it remains pending until the Checkout.com webhook updates it. If you want to update the status of the transaction independently, send a `PATCH` request to the `/api/checkout_com_payments/:id` endpoint, setting the `_refresh` attribute to `true`.

{% hint style="info" %}
This request will try to refresh any pending transactions and can be used as a fallback strategy in case the Checkout.com webhook isn't fired.
{% endhint %}

### Example

{% tabs %}
{% tab title="Request" %}
The following request updates the Checkout.com payment source identified by the "emdEKhoOMA" ID to refresh any pending transactions:

```javascript
curl -g -X PATCH \
  'http://yourdomain.commercelayer.io/api/checkout_com_payments/emdEKhoOMA' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Authorization: Bearer your-access-token' \
  -H 'Content-Type: application/vnd.api+json' \
  -d '{
  "data": {
    "type": "checkout_payments",
    "id": "emdEKhoOMA",
    "attributes": {
      "_refresh": true
    }
  }
}'
```

{% endtab %}

{% tab title="Response" %}
On success, the API responds with a `200 OK` status code, returning the updated Checkout.com payment object:

```javascript
{
  "data": {
    "id": "emdEKhoOMA",
    "type": "checkout_com_payments",
    "links": {
      "self": "https://yourdomain.commercelayer.io/api/checkout_com_payments/emdEKhoOMA"
    },
    "attributes": {
      "payment_type": "token",
      "token": "tok_ubfj2q76miwundwlk72vxt2i7q",
      "session_id": "sid_y3oqhf46pyzuxjbcn2giaqnb44",
      "source_id": "src_n5uaa7fr6mwe5nkwmbn244gmhy",
      "customer_token": "cus_pb4u3cqvs36e7p4snxukfhxfrq",
      "redirect_uri": "https://3ds2-sandbox.ckotech.co/interceptor/3ds_plbzo3odshuevkh3bh4tjocl74",
      "payment_response": {
        "3ds": {...},
        "_links": {...},
        "actions": [
          {...}
        ],
        "amount": 17,
        "approved": true,
        "billing_descriptor": {...},
        "currency": "GBP",
        "customer": {
          "id": "cus_6ylx5ay76wou3d4yocniv5qogy"
        },
        "eci": "05",
        "id": "pay_y3oqhf46pyzuxjbcn2giaqnb44",
        "payment_type": "Regular",
        "reference": "ORD-090857",
        "requested_on": "2021-02-15T14:52:39Z",
        "risk": {
          "flagged": false
        },
        "scheme_id": "440925750609151",
        "source": {...},
        "status": "Authorized"
      },
      "payment_instrument":{...},
      "created_at": "2018-01-01T12:00:00.000Z",
      "updated_at": "2018-01-01T12:00:00.000Z",
      "reference": null,
      "reference_origin": null,
      "metadata": {}
    },
    "relationships": {
      "order": {
        "links": {...}
      }
    },
    "meta": {
      "mode": "test"
    }
  }
}
```

{% endtab %}
{% endtabs %}

## More to read

See our documentation if you need more information on how to [update a Checkout.com payment](https://docs.commercelayer.io/developers/v/api-reference/checkout_com_payments/update).
