Generate Authentication Token
Try it
Parameters
Bodyapplication/x-www-form-urlencoded
Request sample
curl -X POST 'https://one.ozow.com/v1/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'X-Correlation-ID: 00000000-0000-0000-0000-000000000000' \
-d 'client_id=asdfjasdljfasdkjf&client_secret=string&scope=payments%20refunds%20settlements&grant_type=client_credentials'Response example
Built from the response schema. Values are placeholders, not real data.
https://one.ozow.com/v1/tokenProductionBuild with AI 6 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.
- Take a paymentEverything needed to take a payment end to end with One API, from credentials through the hosted page to the webhook that confirms it, and the test cases that prove each outcome before you go live.
- Take a recurring paymentEverything needed to collect from a customer on a schedule with One API, from the consent the customer gives once through to each collection and the webhook that reports it.
- Migrate a payin from the Payments API to One APIEverything needed to move an existing redirect payin onto One API, with the legacy guide and its One API counterpart side by side.
Retrieve an authentication token as per the OpenAuth 2.0 Client Credential Flow.
Authentication
This operation takes no credentials.
Header parameters
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
client_idstring requiredThe unique client id provided to the merchant during credential exchange.
client_secretstring requiredThe secret provided to the merchant during credential exchange.
scopestring requiredThe scope of permissions required. Can be just one or a list of space-delimited, case-sensitive strings.
grant_typestring requiredMust be client_credentials.
Responses
X-Correlation-IDheaderThe correlation id for the request that was processed.
access_tokenstring requiredThe access token issued by the authorization server.
token_typestring requiredMust be
beareras in RFC 6750.expires_instring requiredThe lifetime in seconds of the access token. For example, the value "3600" denotes that the access token will expire in one hour from the time the response was generated.
scopestringOPTIONAL, if identical to the scope requested by the client; otherwise, REQUIRED.
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": "4f7c0d2b-8a15-4e93-b06d-7c2e9f1a5b48",
"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": "Consumer does not have access to requested scope",
"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": "cccb6fb8-505e-4ff9-90b5-815ecf42424e",
"links": null,
"code": "NotFound",
"title": "Not Found",
"detail": "Consumer could not be found for client id YOUR_CLIENT_ID.",
"source": {
"pointer": "/data/clientId",
"parameter": "/v1/token",
"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": "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"
}
}Guides
- Quick start: accept your first paymentAccept your first Ozow payment with One API. Get a token, create a payment request, redirect the customer, and read the webhook that confirms it.
- Migrating to One APIMap a redirect payin and refunds integration from the Payments API to One API: what changes, what does not, and the order to make the changes in.
- Redirect to OzowBuild a redirect payin with One API. Create a payment request, send the customer to Ozow's hosted page, and confirm the result from the webhook.
- Recurring paymentsCollect repeat payments with One API. One consent the customer approves, then merchant-initiated collections that need no further customer action.
- Refund a paymentIssue a refund with One API. Refunds are merchant-initiated backend operations with no customer-facing step, so the whole flow is in your backend.
- Reconcile settlementsPull settlement data from One API and tie it back to the deposits in your bank account and the records in your own system, line item by line item.