WooshPay OpenAPI
Product DocumentAPI ReferenceJS SDK ReferenceSaaS Platform Integration
Product DocumentAPI ReferenceJS SDK ReferenceSaaS Platform Integration
Back to WooshPay Website
  1. Refunds
  • API Introduction
  • Error Code
  • Payment Intents
    • Create a PaymentIntent
      POST
    • Update a PaymentIntent
      POST
    • Cancel a PaymentIntent
      POST
    • Capture a PaymentIntent
      POST
    • Confirm a PaymentIntent
      POST
    • Retrieve a PaymentIntent
      GET
    • List all PaymentIntents
      GET
    • Search PaymentIntents
      GET
  • Charges
    • Retrieve a charge
      GET
    • List all charges
      GET
  • Payment Methods
    • Create a PaymentMethod
      POST
    • Retrieve a PaymentMethod
      GET
    • Retrieve a Customer's PaymentMethod
      GET
    • Update a PaymentMethod
      POST
    • List PaymentMethods
      GET
    • List a Customer's PaymentMethods
      GET
    • Attach a PaymentMethod to a Customer
      POST
    • Detach a PaymentMethod from a Customer
      POST
  • Refunds
    • Create a refund
      POST
    • Retrieve a refund
      GET
  • Webhooks
    • Create a Webhook
      POST
    • List All Webhooks
      GET
    • Retrieve a Webhook
      GET
    • Delete a Webhook
      DELETE
    • Update a Webhook
      POST
  • Events
    • Types of events
    • Retrieve an event
  • Files
    • Files
    • Create a file
    • Retrieve a file
  • Disputes
    • Retrieve a dispute
    • Update a dispute
    • Close a dispute
    • List all disputes
  • Payouts
    • Beneficiary
      • Create a beneficiary
      • Retrieve a beneficiary
      • List all beneficiaries
      • Update a beneficiary
      • Delete a beneficiary
    • Payouts
      • Create a payout
      • Retrieve a Payout
      • Update a Payout
      • List All Payouts
  • Balance
    • Get balance
  • Products
    • Create a Product
    • Retrieve a product
    • Update a product
    • List all products
  • Prices
    • Create a price
    • Retrieve a price
    • Update a price
  • Payment Links
    • Create a payment link
    • Update a payment link
    • Retrieve payment link
    • List all payment links
    • Retrieve a payment link's line items
  • Checkout
    • Create a Session
    • Expire a Session
    • Retreive a Session
    • List All Checkout Sessions
    • Retrieve a Checkout Session's line items
  • Customers
    • Create a customer
    • Retrieve a customer
    • Update a customer
  • Invoices
    • Setup Intents
      • Create a SetupIntent
      • Retrieve a SetupIntent
      • Cancel a SetupIntent
      • List all SetupIntents
      • List all SetupAttempts
      • Update a SetupIntent
      • Confirm a SetupIntent
    • Create an invoice
    • Retrieve an invoice
    • Finalize an invoice
    • Send an invoice for manual payment
    • Delete a draft invoice
    • Void an invoice
    • List all invoices
    • Pay an invoice
  • Invoice Items
    • Create an invoice item
    • Retrieve an invoice item
  • Invoice Line Item
    • Bulk add invoice line items
  • Subscriptions
    • Create a subscription
    • Retrieve a subscription
    • Update a subscription
    • Cancel a subscription
    • List subscriptions
  • Subscription Items
    • Create a subscription item
    • Retrieve a subscription item
    • Delete a subscription item
  • Issuing
    • Authorizations
      • Retrieve an authorization
      • List all authorization
    • Cardholders
      • Create a cardholder
      • Update a cardholder
      • Retrieve a cardholder
      • List all cardholders
    • Cards
      • Create a card
      • Update a card
      • Retrieve a card
      • List all cards
      • Retrieve card remaining limits
    • Transactions
      • Update a transaction
      • Retrieve a transaction
      • List all transactions
  • Coupons
    • Create a Coupon
    • Retrieve a coupon
    • Delete a coupon
  • Promotion Code
    • Create a promotion code
    • Update a promotion code
  • Accounts
    • Retrieve account's paymentmethods
  • Fx Quote
    • Create an FX Quote
  1. Refunds

Create a refund

POST
/v1/refunds
When you create a new refund, you must specify a PaymentIntent object on which to create it. Creating a new refund will refund a charge that has previously been created but not yet refunded. Funds will be refunded to the credit or debit card that was originally charged. You can optionally refund only part of a charge. You can do so multiple times, until the entire charge has been refunded.
Once entirely refunded, a charge can’t be refunded again. This method will return an error when called on an already-refunded charge, or when trying to refund more money than is left on a charge.

Request

Authorization
Send your HTTP requests with an
Authorization
header that contains the word Basic followed by a space and a base64-encoded string username:password
Example:
Authorization: Basic *****************
Header Params
Accept
string 
required
Default:
application/json
Content-Type
string 
required
Default:
application/json
Body Params application/json
amount
string 
optional
A positive integer in cents representing how much of this charge to refund. Can refund only up to the remaining, unrefunded amount of the charge.
metadata
object 
optional
A set of key-value pairs that you can attach to a Refund object. This can be useful for storing additional information about the refund in a structured format. You can unset individual keys if you POST an empty value for that key. You can clear all keys if you POST an empty value for metadata
payment_intent
string 
optional
ID of the PaymentIntent to refund.
reason
enum<string> 
optional
String indicating the reason for the refund. If set, possible values are duplicate , fraudulent , and requested_by_customer.
Allowed values:
duplicatefraudulentrequested_by_customerresolved_dispute
Example
{
    "reason":"requested_by_customer",
    "payment_intent":"pi_1787730829493927936"
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://apitest.wooshpay.com/v1/refunds' \
--header 'Accept;' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic Og==' \
--data-raw '{
    "reason":"requested_by_customer",
    "payment_intent":"pi_1787730829493927936"
}'

Responses

🟢200OK
application/json
Body
id
string 
optional
Unique identifier for the object, like 're_xxxx'.
object
string 
optional
'refund'
amount
integer 
optional
Amount, in cents.
created
integer 
optional
Time at which the object was created. Measured in seconds since the Unix epoch.
currency
string 
optional
Three-letter ISO currency code, in lowercase. Must be a supported currency.
metadata
object 
optional
Set of key-value pairs that you can attach to an object.
payment_intent
string 
optional
ID of the PaymentIntent that was refunded.
reason
enum<string> 
optional
Reason for the refund, either user-provided (duplicate, fraudulent, or requested_by_customer)
Allowed values:
duplicatefraudulentrequested_by_customerexpired_uncaptured_chargeresolved_dispute
status
string 
optional
Status of the refund. For credit card refunds, this can be pending, succeeded, or failed. For other types of refunds, it can be pending, succeeded, failed, or canceled.
description
string 
optional
An arbitrary string attached to the object. Often useful for displaying to users.
failure_reason
enum<string> 
optional
If the refund failed, the reason for refund failure if known. Possible values are lost_or_stolen_card, expired_or_canceled_card, or unknown.
Allowed values:
lost_or_stolen_cardexpired_or_canceled_cardunknown
Example
{
    "id": "string",
    "object": "string",
    "amount": 0,
    "created": 0,
    "currency": "string",
    "metadata": {},
    "payment_intent": "string",
    "reason": "duplicate",
    "status": "string",
    "description": "string",
    "failure_reason": "lost_or_stolen_card"
}
Previous
Detach a PaymentMethod from a Customer
Next
Retrieve a refund
Built with