For the complete documentation index, see llms.txt. This page is also available as Markdown.

Refreshing pending transactions

How to refresh the status of pending transactions

Problem

You have created a transaction request — Authorization, Capture, Void, or Refund — 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.

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.

Example

The following request updates the Checkout.com payment source identified by the "emdEKhoOMA" ID to refresh any pending transactions:

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
    }
  }
}'

On success, the API responds with a 200 OK status code, returning the updated Checkout.com payment object:

{
  "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",
      "organization_id": "No2pPqQrRs",
      "trace_id": "4e7f0a3b6c9d2e5f8a1b4c7d0e3f6a9b2c5d8e1f4a7b0c3d6e9f2a5b8c1d4e7f0"
    }
  },
  "meta": {
    "mode": "test",
    "organization_id": "No2pPqQrRs",
    "trace_id": "4e7f0a3b6c9d2e5f8a1b4c7d0e3f6a9b2c5d8e1f4a7b0c3d6e9f2a5b8c1d4e7f0"
  }
}

More to read

See our documentation if you need more information on how to update a Checkout.com payment.

Last updated