Request Refunds
Try it
Parameters
Bodyapplication/json
Request sample
curl -X POST 'https://one.ozow.com/v1/refunds' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: string' \
-H 'X-Correlation-ID: 00000000-0000-0000-0000-000000000000' \
-d '[
{
"transactionId": "00000000-0000-0000-0000-000000000000",
"amount": {
"currency": "ZAR",
"value": 50
},
"reason": "<reason>",
"notifyUrl": "https://example.com/notifyurl",
"realTimePayment": false
}
]'Response example
Built from the response schema. Values are placeholders, not real data.
https://one.ozow.com/v1/refundsProductionBuild with AI 2 packages
A build package is every page for one task, with the API operations they use. Copy the prompt into a coding assistant, or hand it the package itself: slim links to each page, full inlines all of them in one document.
- Refund a paymentEverything needed to refund a completed payment through One API, in full or in part, and to handle the statuses a refund moves through.
- Migrate refunds from the Payments API to One APIEverything needed to move an existing refunds integration onto One API, with the legacy guide and its One API counterpart side by side.
Request refunds for the specified transactions.
Authentication
- OAuth 2.0scopes
refunds
Header parameters
Idempotency-KeystringThe unique key idempotency keyIdempotency A request is idempotent when sending it twice has the same effect as sending it once. It matters most where a retry after a timeout could otherwise take a payment twice.IETF draft as per the following IETF Draft
X-Correlation-IDstringOptional correlation id for the request, if not supplied a new one will be generated and passed onto all underlying requests and returned as a header.
Request body
Responses
X-Correlation-IDheaderThe correlation id for the request that was processed.
X-Correlation-IDheaderThe correlation id for the request that was processed.
linksobject requiredLinks related to this resource.
selfstring uri requiredThe unique URI to this resource.
cancelstring
idstring uuid requiredThe unique identifier for this refund.
transactionIdstring uuid requiredThe transactions identifier of the payment that is being refunded.
The refund amount.
Fields of
Amountcurrencystring requiredThe ISO 4217ISO 4217 The three-letter currency codes, such as
ZARfor the South African rand. Always uppercase.Wikipedia current code.min length3max length3valuenumber float requiredThe amount in the currency specified.
min0.01
requestedstring date-time requiredThe date and time the refund was requested.
completedstring date-timeThe date and time the refund was completed.
statusstring requiredThe refund status. Possible values are:
- Pending - The refund request has been submitted and accepted.
- Complete - The refund has been paid successfully.
- Submitted - The refund has been assigned to a batch and is being processed.
- Failed - The refund payment has failed.
- Cancelled - The refund has been cancelled before it was submitted.
- Returned - The refund payment has been returned because the account that was being refunded no longer exists.
values"Pending""Complete""Submitted""Failed""Cancelled""Returned"reasonstringThe reason for the status of the refund.
paidToRefundPaidToThe bank details of where the refund was paid to.
Fields of
RefundPaidToaccountNumberstring requiredThe bank account number the refund was paid into.
institutionstring requiredThe display name of the institution holding the account.
branchCodestring nullableThe branch codeBranch code The six-digit number identifying a South African bank branch, the equivalent of a sort code or a routing number elsewhere. Each bank publishes one universal branch code that works for every account it holds, which is the one to use unless you have been given another. of the account.
max length10
realTimePaymentboolean requiredWhether or not this payment should happen in real time. Please refer to the Ozow Pricing page for more information.
defaultfalse
X-Correlation-IDheaderThe correlation id for the request that was processed.
idstring uuid requireda unique identifier for this particular occurrence of the problem.
linksobject nullablePresent on an authentication or authorisation failure, and null otherwise.
aboutstring uriA link that leads to further details about this particular occurrence of the problem. When derefenced, this URI SHOULD return a human-readable description of the error.
typestring uriA link that identifies the type of error that this particular error is an instance of. This URI SHOULD be dereferencable to a human-readable explanation of the general error.
codestring requiredAn application-specific error code, expressed as a string value. Key on this rather than on
titleordetail, which are written for a person. A rejection at the transport level uses the status name, one ofBadRequest,Unauthorized,Forbidden,NotFound,NotAllowed,Conflict,UnsupportedMediaType,BadGatewayorInternalServerError. An operation refusing a request on its own rules returns a code of its own.titlestring requiredA short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.
detailstring requiredA human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.
sourceobject nullableWhere in the request the problem was found. All three keys are present whenever
sourceis, with the ones that do not apply set to null.sourceitself is null where the failure is not about a part of the request.pointerstring json-pointer nullablea JSON PointerJSON Pointer A path into a JSON document, written as
/data/attributes/title. An error response uses one to say exactly which value caused the problem.RFC 6901 RFC6901 to the value in the request document that caused the error [e.g. "/data" for a primary data object, or "/data/attributes/title" for a specific attribute]. This MUST point to a value in the request document that exists; if it doesn’t, the client SHOULD simply ignore the pointer.parameterstring nullableA string indicating which URI query parameter caused the error.
headerstring nullableA string indicating the name of a single request header which caused the error.
metaobject nullableA meta object containing non-standard meta-information about the error. Null where the request carried no
X-Correlation-ID, and on an authentication failure, which does not echo it.correlationIdstringThe
X-Correlation-IDsent with the request, echoed back so it can be quoted to support. Absent when the request carried no correlation header.
{
"id": "3a6c9e01-5f2b-4d8a-9c47-1e0b7d5a2f83",
"links": null,
"code": "BadRequest",
"title": "Bad Request",
"detail": "amount: Amount must be greater than 0",
"source": {
"pointer": "/amount",
"parameter": null,
"header": null
},
"meta": {
"correlationId": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}X-Correlation-IDheaderThe correlation id for the request that was processed.
idstring uuid requireda unique identifier for this particular occurrence of the problem.
linksobject nullablePresent on an authentication or authorisation failure, and null otherwise.
aboutstring uriA link that leads to further details about this particular occurrence of the problem. When derefenced, this URI SHOULD return a human-readable description of the error.
typestring uriA link that identifies the type of error that this particular error is an instance of. This URI SHOULD be dereferencable to a human-readable explanation of the general error.
codestring requiredAn application-specific error code, expressed as a string value. Key on this rather than on
titleordetail, which are written for a person. A rejection at the transport level uses the status name, one ofBadRequest,Unauthorized,Forbidden,NotFound,NotAllowed,Conflict,UnsupportedMediaType,BadGatewayorInternalServerError. An operation refusing a request on its own rules returns a code of its own.titlestring requiredA short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.
detailstring requiredA human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.
sourceobject nullableWhere in the request the problem was found. All three keys are present whenever
sourceis, with the ones that do not apply set to null.sourceitself is null where the failure is not about a part of the request.pointerstring json-pointer nullablea JSON PointerJSON Pointer A path into a JSON document, written as
/data/attributes/title. An error response uses one to say exactly which value caused the problem.RFC 6901 RFC6901 to the value in the request document that caused the error [e.g. "/data" for a primary data object, or "/data/attributes/title" for a specific attribute]. This MUST point to a value in the request document that exists; if it doesn’t, the client SHOULD simply ignore the pointer.parameterstring nullableA string indicating which URI query parameter caused the error.
headerstring nullableA string indicating the name of a single request header which caused the error.
metaobject nullableA meta object containing non-standard meta-information about the error. Null where the request carried no
X-Correlation-ID, and on an authentication failure, which does not echo it.correlationIdstringThe
X-Correlation-IDsent with the request, echoed back so it can be quoted to support. Absent when the request carried no correlation header.
{
"id": "1cecc2b7-1c29-418a-b26a-bf7546926083",
"links": {
"about": "https://ozow.stoplight.io/docs/one-api/zi18vomr0jm8c-generate-authentication-token",
"type": "https://tools.ietf.org/html/rfc7235#section-3.1"
},
"code": "Unauthorized",
"title": "Unauthorized Request",
"detail": "Authorization header is missing or invalid.",
"source": {
"pointer": null,
"parameter": null,
"header": "Authorization"
},
"meta": null
}X-Correlation-IDheaderThe correlation id for the request that was processed.
idstring uuid requireda unique identifier for this particular occurrence of the problem.
linksobject nullablePresent on an authentication or authorisation failure, and null otherwise.
aboutstring uriA link that leads to further details about this particular occurrence of the problem. When derefenced, this URI SHOULD return a human-readable description of the error.
typestring uriA link that identifies the type of error that this particular error is an instance of. This URI SHOULD be dereferencable to a human-readable explanation of the general error.
codestring requiredAn application-specific error code, expressed as a string value. Key on this rather than on
titleordetail, which are written for a person. A rejection at the transport level uses the status name, one ofBadRequest,Unauthorized,Forbidden,NotFound,NotAllowed,Conflict,UnsupportedMediaType,BadGatewayorInternalServerError. An operation refusing a request on its own rules returns a code of its own.titlestring requiredA short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.
detailstring requiredA human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.
sourceobject nullableWhere in the request the problem was found. All three keys are present whenever
sourceis, with the ones that do not apply set to null.sourceitself is null where the failure is not about a part of the request.pointerstring json-pointer nullablea JSON PointerJSON Pointer A path into a JSON document, written as
/data/attributes/title. An error response uses one to say exactly which value caused the problem.RFC 6901 RFC6901 to the value in the request document that caused the error [e.g. "/data" for a primary data object, or "/data/attributes/title" for a specific attribute]. This MUST point to a value in the request document that exists; if it doesn’t, the client SHOULD simply ignore the pointer.parameterstring nullableA string indicating which URI query parameter caused the error.
headerstring nullableA string indicating the name of a single request header which caused the error.
metaobject nullableA meta object containing non-standard meta-information about the error. Null where the request carried no
X-Correlation-ID, and on an authentication failure, which does not echo it.correlationIdstringThe
X-Correlation-IDsent with the request, echoed back so it can be quoted to support. Absent when the request carried no correlation header.
{
"id": "c47a2e08-9b31-4f6d-85a0-7e2c1d9f3b56",
"links": {
"about": "https://ozow.stoplight.io/docs/one-api/zi18vomr0jm8c-generate-authentication-token",
"type": "https://tools.ietf.org/html/rfc7235#section-3.1"
},
"code": "Forbidden",
"title": "Forbidden Request",
"detail": "Request is forbidden, most likely scope does not match required scope to perform requested action.",
"source": {
"pointer": null,
"parameter": null,
"header": "Authorization"
},
"meta": {
"correlationId": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}X-Correlation-IDheaderThe correlation id for the request that was processed.
idstring uuid requireda unique identifier for this particular occurrence of the problem.
linksobject nullablePresent on an authentication or authorisation failure, and null otherwise.
aboutstring uriA link that leads to further details about this particular occurrence of the problem. When derefenced, this URI SHOULD return a human-readable description of the error.
typestring uriA link that identifies the type of error that this particular error is an instance of. This URI SHOULD be dereferencable to a human-readable explanation of the general error.
codestring requiredAn application-specific error code, expressed as a string value. Key on this rather than on
titleordetail, which are written for a person. A rejection at the transport level uses the status name, one ofBadRequest,Unauthorized,Forbidden,NotFound,NotAllowed,Conflict,UnsupportedMediaType,BadGatewayorInternalServerError. An operation refusing a request on its own rules returns a code of its own.titlestring requiredA short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.
detailstring requiredA human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.
sourceobject nullableWhere in the request the problem was found. All three keys are present whenever
sourceis, with the ones that do not apply set to null.sourceitself is null where the failure is not about a part of the request.pointerstring json-pointer nullablea JSON PointerJSON Pointer A path into a JSON document, written as
/data/attributes/title. An error response uses one to say exactly which value caused the problem.RFC 6901 RFC6901 to the value in the request document that caused the error [e.g. "/data" for a primary data object, or "/data/attributes/title" for a specific attribute]. This MUST point to a value in the request document that exists; if it doesn’t, the client SHOULD simply ignore the pointer.parameterstring nullableA string indicating which URI query parameter caused the error.
headerstring nullableA string indicating the name of a single request header which caused the error.
metaobject nullableA meta object containing non-standard meta-information about the error. Null where the request carried no
X-Correlation-ID, and on an authentication failure, which does not echo it.correlationIdstringThe
X-Correlation-IDsent with the request, echoed back so it can be quoted to support. Absent when the request carried no correlation header.
{
"id": "2f8b6d40-1c7e-49a5-b03f-8d5a2e1c9704",
"links": null,
"code": "Conflict",
"title": "Conflict",
"detail": "Idempotency key and request data do not match a previous request.",
"source": {
"pointer": null,
"parameter": null,
"header": "Idempotency-Key"
},
"meta": {
"correlationId": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}X-Correlation-IDheaderThe correlation id for the request that was processed.
idstring uuid requireda unique identifier for this particular occurrence of the problem.
linksobject nullablePresent on an authentication or authorisation failure, and null otherwise.
aboutstring uriA link that leads to further details about this particular occurrence of the problem. When derefenced, this URI SHOULD return a human-readable description of the error.
typestring uriA link that identifies the type of error that this particular error is an instance of. This URI SHOULD be dereferencable to a human-readable explanation of the general error.
codestring requiredAn application-specific error code, expressed as a string value. Key on this rather than on
titleordetail, which are written for a person. A rejection at the transport level uses the status name, one ofBadRequest,Unauthorized,Forbidden,NotFound,NotAllowed,Conflict,UnsupportedMediaType,BadGatewayorInternalServerError. An operation refusing a request on its own rules returns a code of its own.titlestring requiredA short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.
detailstring requiredA human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.
sourceobject nullableWhere in the request the problem was found. All three keys are present whenever
sourceis, with the ones that do not apply set to null.sourceitself is null where the failure is not about a part of the request.pointerstring json-pointer nullablea JSON PointerJSON Pointer A path into a JSON document, written as
/data/attributes/title. An error response uses one to say exactly which value caused the problem.RFC 6901 RFC6901 to the value in the request document that caused the error [e.g. "/data" for a primary data object, or "/data/attributes/title" for a specific attribute]. This MUST point to a value in the request document that exists; if it doesn’t, the client SHOULD simply ignore the pointer.parameterstring nullableA string indicating which URI query parameter caused the error.
headerstring nullableA string indicating the name of a single request header which caused the error.
metaobject nullableA meta object containing non-standard meta-information about the error. Null where the request carried no
X-Correlation-ID, and on an authentication failure, which does not echo it.correlationIdstringThe
X-Correlation-IDsent with the request, echoed back so it can be quoted to support. Absent when the request carried no correlation header.
{
"id": "9e0d5a83-6b24-4c19-8f7a-2d1b3e6c0a97",
"links": null,
"code": "InternalServerError",
"title": "Internal Server Error",
"detail": "Error occurred while processing request.",
"source": {
"pointer": "/data",
"parameter": null,
"header": null
},
"meta": {
"correlationId": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
}