Create Refund
POST/v2/deposits/:depositId/refunds
Create a deposit refund request. Not all deposit payment options are refundable. Refunds are supported for the following deposit payment options:
- BANK_TRANSFER
- CARD
Additionally, a refund requires completing the deposit and completing the internal reconciliation process. The refundable flag allows us to track if a deposit is refundable.
Refund criteria:
- Deposit status must be COMPLETED
- Deposit must have refundable flag set to
true
. - One refund per deposit is allowed.
- The wallet account funding the refund must have the required refund amount
- Refund is only forwarded back to the instrument associated with the deposit
- Refund amount is up to the deposit amount (partial refund is possible).
- Refund currency is the same as the deposit currency
Refunds are created in a PREVIEW state. It establishes the Refund resource and validates the refund parameters.
To move the payment forward you must request a status change using POST /v2/deposits/{depositId}/refunds/{refundId}/status
. This will move the refund to PENDING
state.
{
"status": "PENDING"
}
To confirm the refund for execution use POST /v2/deposits/{depositId}/refunds/{refundId}/status
:
{
"status": "PROCESSING"
}
Poll for status or leverage webhooks to track the refund progress.
To navigate to a deposit based on
transactionId
from transaction history useGET /v2/customers/{customerId}/deposits?fundingTransaction={transactionId}
, which returns a deposit object for a specific transaction.
Request
Path Parameters
Deposit id.
- application/json
Body
Trigger refund for a deposit.
Refund amount in currency minor units. Refund amount can not exceed the refunded payment amount.
Possible values: >= 3 characters
and <= 3 characters
Currency alphabetic code as specified by ISO 4217
Possible values: <= 255 characters
This is the merchant reference number created by the merchant and submitted as part of the request. It must be unique for each request and allows cross referencing objects from merchant system to embedded wallet objects.
Responses
- 200
- 409
OK
- application/json
- Schema
- Example (from schema)
- CARD_REFUND_RESPONSE
Schema
PREVIEW
- Payment preview.PENDING
- Payment transaction is created and further action is required by the customer.PROCESSING
- Payment is scheduled for processing by the payment provider.COMPLETED
- Payment is completed. Note that some transactions might be completed from Embedded Wallet point of view, but not from customer point of view, since money movement might take some time outside of the Embedded Wallet network.FAILED
- Payment has failed. Check STATUS_REASON property for details.CANCELLED
- Payment have been cancelledREFUNDED
- Payment has been refunded. Valid only for deposits.
Refund amount in currency minor units. Refund amount can not exceed the refunded payment amount.
Possible values: >= 3 characters
and <= 3 characters
Currency alphabetic code as specified by ISO 4217
Possible values: <= 255 characters
This is the merchant reference number created by the merchant and submitted as part of the request. It must be unique for each request and allows cross referencing objects from merchant system to embedded wallet objects.
Refund id generated during creation.
Customer id.
The account funding the refund. Account id deduced from the relevant deposit.
Slip identifier. Slip contains list of transactions associated with the withdrawal operations.
Deposit funding transaction id.
Refund funding transaction id.
Represents RFC 3339, section 5.6 date-time.
Represents RFC 3339, section 5.6 date-time.
Possible values: [RAPID_TRANSFER
, BANK_TRANSFER
, OFFLINE_BANK_TRANSFER
, CARD
, PAYSAFECASH
, PAGO_EFECTIVO
]
Enumeration of supported Payment Option Types
Possible values: [PREVIEW
, PENDING
, PROCESSING
, COMPLETED
, FAILED
, CANCELLED
, REFUNDED
]
The payment status:
Possible values: <= 60 characters
Status reason for FAILED transaction.
Possible values: [PREVIEW
, PENDING
, PROCESSING
, COMPLETED
, FAILED
, CANCELLED
, REFUNDED
]
Provides the next possible status update the client can request, depending on the chosen payment type and option.
{
"amount": 0,
"currencyCode": "EUR",
"merchantRefNum": "4bc2deb3-9766-4598-a08e-a98b60615936",
"id": "112233",
"customerId": "10001",
"accountId": "2100002",
"slipId": "5009964049",
"fundingTransactionId": "500005",
"refundTransactionId": "500005",
"creationTime": "2021-07-15T17:54:12Z",
"expirationTime": "2021-07-15T17:54:12Z",
"paymentOption": "CARD",
"status": "COMPLETED",
"statusReason": "string",
"nextStatus": [
"COMPLETED"
]
}
{
"amount": 10000,
"currencyCode": "EUR",
"merchantRefNum": "4bc2deb3-9766-4598-a08e-a98b60615936",
"id": "112233",
"customerId": "10001",
"accountId": "2100002",
"fundingTransactionId": "500005",
"creationTime": "2021-07-15T17:54:12Z",
"expirationTime": "2021-07-15T17:56:12Z",
"paymentOption": "CARD",
"status": "PREVIEW",
"nextStatus": [
"PENDING"
]
}
Conflict. Various cases where the conditions for Refund are not met.
- application/json
- Schema
- Example (from schema)
Schema
Array [
]
error
object
Represents details of an error.
The error code.
The description of the error.
Details for the errors of any parameter value.
fieldErrors
object[]
List of field errors associated with the main error.
Identifies the JSON request field.
The problem associated with the field.
{
"error": {
"code": "string",
"message": "string",
"details": [
"string"
],
"fieldErrors": [
{
"field": "string",
"error": "string"
}
]
}
}