Introducing our brand new Rules Engine —
Read the docs
LogoLogo
Core APIOther APIsChangelog
How-tos
How-tos
  • Introduction
  • Product discovery
    • Product listing page
    • Product page
  • Placing orders
    • Shopping cart
      • Creating a shopping cart
      • Adding products to cart
      • Updating cart quantities
      • Removing products from cart
      • Displaying the cart summary
    • Checkout
      • Adding the customer
      • Adding a billing address
      • Adding a shipping address
      • Selecting a shipping method
      • Selecting a payment method
      • Adding a payment source
      • Adding a gift card or coupon
      • Placing the order
    • Subscriptions
      • Configuring a subscription model
      • Selecting the source order
      • Generating the subscriptions
      • Updating the subscriptions
    • Payments
      • Adyen
        • Adding the payment source
        • Sending back the payment details
        • Configuring the notification webhooks
        • Reusing the payment source
      • Axerve
        • Adding the payment source
        • Updating the payment intent
      • Braintree
        • Adding the payment source
        • Sending back the payment method nonce
        • Accepting local payments
        • Reusing the payment source
      • Checkout.com
        • Adding the payment source
        • Getting the payment details
        • Refreshing pending transactions
        • Reusing the payment source
      • Klarna
        • Adding the payment source
        • Sending back the authorization token
        • Reusing the payment source
      • PayPal
        • Adding the payment source
        • Preparing the payment for execution
      • Stripe
        • Adding the payment source
        • Refreshing the payment source
        • Reusing the payment source
      • Manual payments
        • Adding a wire transfer payment source
      • External payments
        • Adding the payment source
        • Reusing the payment source
    • Auto-capture
      • Enabling the auto-capture
      • Limiting the auto-capture amount
  • inventory
    • Inventory strategies
      • No split
      • Split shipments
      • Split by line items
      • Ship from first available (or primary)
      • Ship from primary
  • FAQ
    • Environments and initial setup
    • Authentication and access tokens
On this page
  • Problem
  • Solution
  • Example
  • More to read
  1. Placing orders
  2. Payments
  3. Stripe

Refreshing the payment source

How to refresh the Stripe payment status

Problem

You have created a payment source for Stripe, which is still pending. You want to refresh its status to check if it gets authorized.

Solution

Stripe payments are asynchronous. That means that once a Stripe payment is created, it remains pending until the Stripe webhook updates it. If you want to update the status of the Stripe payment independently, send a PATCH request to the /api/stripe_payments/:id endpoint, setting the _refresh attribute to true.

This request will try to refresh the Stripe payment and can be used as a fallback strategy in case the Stripe webhook isn't fired.

Example

The following request updates the Stripe payment source identified by the "eqRZMSaNqM " ID to refresh its status:

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

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

{
  "data": {
    "id": "eqRZMSaNqM",
    "type": "stripe_payments",
    "links": {
      "self": "https://yourdomain.commercelayer.io/api/stripe_payments/eqRZMSaNqM"
    },
    "attributes": {
      "client_secret": "xxxx_secret_yyyy",
      "publishable_key": "xxxx_secret_yyyy",
      "options": {
        "id": "pm_1IixtoEw0yMev2I0jGzoT9Js",
        "setup_future_usage": "off_session"
      },
      "payment_method": {
        "id": "pm_1IixtoEw0yMev2I0jGzoT9Js",
        "card": {
          "brand": "visa",
          "last4": "1111",
          "checks": {
            "cvc_check": "pass",
            "address_line1_check": "pass",
            "address_postal_code_check": "pass"
          }
          ...
        }
      },
      "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"
    }
  }
}

More to read

PreviousAdding the payment sourceNextReusing the payment source

Last updated 2 years ago

See our documentation if you need more information on how to .

update a Stripe payment