Skip to main content
POST
curl

Authorizations

Authorization
string
header
required

Your PayBridgeNP API key. Obtain one from the dashboard under Settings → API Keys. Prefix: sk_test_ for testing, sk_live_ for production.

Body

application/json
paymentId
string
required

ID of the payment to refund (prefix: pay_).

Example:

"pay_01j9x2k3m4n5p6q7r8s9t0u1v2"

amount
integer
required

Amount to refund in paisa. Must be ≤ the remaining refundable amount.

Example:

10000

reason
enum<string>
required

Reason for the refund.

Available options:
customer_request,
duplicate,
fraudulent,
other
Example:

"customer_request"

notes
string

Internal note visible in the dashboard. Not shown to customers.

Example:

"Customer contacted support, order not delivered."

mobileNumber
string

Customer mobile number. Required by some Khalti configurations.

Example:

"9801234567"

Response

Refund created.

id
string
Example:

"ref_01j9x2k3m4n5p6q7r8s9t0u1v2"

livemode
boolean

true when created with a live key, false for sandbox.

paymentId
string
Example:

"pay_01j9x2k3m4n5p6q7r8s9t0u1v2"

projectId
string
mode
enum<string>
Available options:
sandbox,
live
amount
integer

Refunded amount in paisa.

Example:

10000

currency
string
Example:

"NPR"

reason
enum<string>
Available options:
customer_request,
duplicate,
fraudulent,
other
status
enum<string>

succeeded - refund processed. requires_action - eSewa: must be processed manually via merchant portal. failed - provider rejected the refund.

Available options:
processing,
succeeded,
failed,
requires_action
providerRefundId
string | null

Provider's refund reference (Khalti only).

failureReason
string | null

Set when status is failed or requires_action.

notes
string | null
mobileNumber
string | null
createdAt
string<date-time>
updatedAt
string<date-time>