Primer notifies you with a PAYMENT.REFUND Webhook when a refund request has been fully processed by a payment processor and the refund has reached a final state.

Check the transaction with the most recent transactionType: "REFUND" in the transactions array:

  • if processorStatus is SETTLED, the refund was successful and the funds have been returned to the customer
  • if processorStatus is FAILED, the refund was unsuccessful

Example refund notification:

{
  "eventType":"PAYMENT.REFUND",
  "date":"2021-02-21T15:36:16.367687",
  "notificationConfig":{
    "id":"cc51f9f0-7e1c-492b-9d37-f83a818f6070",
    "description":"Refund webhook"
  },
  "signedAt": "1689221338",
  "version":"2.1",
  "payment":{
    "id":"DdRZ6YY0",
    "date":"2022-01-01T12:12:12.000000",
    "amount":3000,
    "currencyCode":"GBP",
    "customerId":"cust-123",
    "orderId":"order-123",
    "status":"SETTLED",
    "paymentMethod":{
      "paymentMethodToken":"-lcWjvBASh2EpYaHgVwxNjUzNTYzNjIy",
      "analyticsId":"LUi5pETUV2EpYaHgV77SEamK25L",
      "paymentMethodType":"PAYMENT_CARD",
      "paymentMethodData":{
        "paymentType":"FIRST_PAYMENT",
        "last4Digits":"1111",
        "expirationMonth":"03",
        "expirationYear":"2030",
        "cardholderName":"ADYEN",
        "network":"Visa",
        "isNetworkTokenized":false,
        "binData":{
          "network":"VISA",
          "issuerCountryCode":"US",
          "issuerName":"JPMORGAN CHASE BANK, N.A.",
          "regionalRestriction":"UNKNOWN",
          "accountNumberType":"UNKNOWN",
          "accountFundingType":"UNKNOWN",
          "prepaidReloadableIndicator":"NOT_APPLICABLE",
          "productUsageType":"UNKNOWN",
          "productCode":"UNKNOWN",
          "productName":"UNKNOWN"
        }
      },
      "threeDSecureAuthentication":{
        "responseCode":"NOT_PERFORMED"
      }
    },
    "processor":{
      "name":"STRIPE",
      "processorMerchantId":"acct_1G2EpYaHgVZqNWFwi8c",
      "amountCaptured":3000,
      "amountRefunded":3000
    },
    "transactions":[
      {
        "date":"2022-05-26T11:14:11.946300",
        "amount":3000,
        "currencyCode":"GBP",
        "transactionType":"SALE",
        "processorTransactionId":"pi_3L3ed23NWFwiNWFwi8c1iget38p",
        "processorName":"STRIPE",
        "processorMerchantId":"acct_1GORcaGv23NWFwi8c",
        "processorStatus":"SETTLED"
      },
      {
        "date":"2022-05-26T11:14:11.946300",
        "amount":3001,
        "currencyCode":"GBP",
        "transactionType":"REFUND",
        "processorTransactionId":"pi_3L3ed23NWFwiNWFwi8c1iget38p",
        "processorName":"STRIPE",
        "processorMerchantId":"acct_1GORcaGv23NWFwi8c",
        "processorStatus":"FAILED",
        "processorStatusReason":{
          "type":"APPLICATION_ERROR",
          "declineType":"SOFT_DECLINE",
          "code":"UNKNOWN",
          "message":"Refund amount too large"
        }
      }
    ]
  }
}

Learn more about how Primer handles webhooks.

Language
Authorization
Header
URL
Click Try It! to start a request and see the response here!