Api Direct
API Direct Refund

API Direct Refund

 
       POST https://business.novasend.app/v1/payin/{reference}/refund
 

This endpoint allows you to partially or fully refund a previously completed customer payment (Payin). The refund either credits the customer’s account or cancels the transaction depending on the original payment method.

Refund rules:

  • Payout (Transfer): In case of a failed payment status, Novasend refunds the gross amount (Charged amount + fees) to the Merchant's wallet
  • Payin (Payment): In case of a failed payment status where the Merchant's customer has been debited, Novasend verifies with its partners the transaction status. When it is confirmed that the funds have been collected by the partner, Novasend changes the transaction status from failed to success with a callback (webhook) notification, and credits the Merchant's account within a maximum of 48 hours.

Conditions

  • The payment transaction must have a success status.
  • The transaction must not have been previously refunded.

Request Headers

HeaderDescriptionRequired
AuthorizationUsed to authenticate the API, Basic base64(api_key:api_client)
X-Idempotency-KeyEnsures transaction uniqueness. The value must be a UUID
Content-Typeapplication/json
Accept-LanguageLanguage used for error messages. Supported values: en, fr

Request

ChampTypeDescriptionObligatoire
reasonstringLa raison du remboursement.
externalReferencestringLa référence envoyé par l'API.

 {
   "reason": "Client cancellation",
   "externalReference": "refund_9843b-9911c-qa87"
 }

Response

  {
    "type": "refund",
    "reference": "rf_fhchi842jyimwiugjgszcxvb8n",
    "originalReference": "tr_fhchi842jyimwiugjgszcxvb8n",
    "amount": 150,
    "fee": 0,
    "currency": "XOF",
    "status": "processing",
    "reason": "Client cancellation",
    "refundType": "partial",
    "customerMsisdn": "+2250702968786",
    "customerName": "John",
    "createdAt": "2025-08-23T12:34:48.189Z",
    "transaction": {
      "reference": "tr_rf84dhf9pqiuhd38",
      "status": "pending",
      "processedAt": null
    }
  }

  • Response Fields Description

    FieldDescription
    typeType of operation (refund).
    referenceUnique refund identifier.
    originalReferenceReference of the original payment to be refunded.
    amountAmount to be refunded.
    feeAssociated fees (if applicable).
    currencyRefund currency (XOF, USD, etc.).
    statusRefund status (pending, processing, completed, failed).
    reasonRefund reason provided by the merchant.
    refundTypeRefund type (full or partial).
    customerMsisdnRefunded customer phone number.
    customerNameCustomer name.
    createdAtTimestamp when the refund request was created.
    transactionRefund transaction details on the Core System side.