API reference
The Partner API is a JSON over HTTPS API. Every route is under /partner/v1 and every field is camelCase.
Base URL
| Environment | Base URL |
|---|---|
| Sandbox | https://gateway.sandbox.rynopay.io/api |
| Production | https://prod.rynopay.io/api |
A full route is the base URL plus the endpoint path, for example https://gateway.sandbox.rynopay.io/api/partner/v1/business-profiles.
Authentication
Send an access token from the token endpoint on every request.
Authorization: Bearer <access_token>
GET routes need the partner.read scope. POST and PATCH routes need partner.write. See Scopes.
Resources
Create, update and look up business customers and their owners.
Upload supporting documents for compliance review.
Read the compliance outcome for a customer.
Receive signed events instead of polling.
Responses
A successful response wraps the result in value.
{
"isSuccess": true,
"error": { "code": "", "description": "", "type": 0 },
"value": { }
}
Read value when isSuccess is true. Ignore error on success.
Errors
A failed request returns an RFC 7807 problem response. Branch on code. The title and detail text can change.
{
"type": null,
"title": "Resource not found",
"status": 404,
"detail": "Business customer with ID '...' not found",
"code": "Customer.NotFound",
"traceId": "0HN..."
}
Include traceId when you contact support.
A field that fails validation returns 400 with code ValidationControl.Error. Every field message is joined into error.description.
{
"isSuccess": false,
"error": {
"code": "ValidationControl.Error",
"description": "Website is required; Registration number must not exceed 50 characters",
"type": 0
},
"value": null
}
A few query parameters are checked before your request reaches the API. They return { "statusCode": 400, "message": "...", "errors": { "<field>": ["..."] } }. Treat it the same way.
Common errors
These can come from any endpoint. Each endpoint page lists its own errors.
| Code | HTTP | Meaning |
|---|---|---|
| 401 | The token is missing, invalid or expired. Request a new one. | |
| 403 | The token lacks the scope this route needs. | |
| 429 | Rate limit exceeded. See Rate limits. | |
Partner.NotAuthenticated | 401 | The token has no partner identity. Contact support. |
Partner.NotFound | 404 | Your partner account no longer exists. Contact support. |
Partner.NotApproved | 409 | Your partner account is not approved to onboard customers yet. |
Partner.NotAuthorized | 403 | The customerId belongs to another partner. Do not retry. |
Customer.NotFound | 404 | No customer you own matches this id. |
Customer.NotBusiness | 400 | The id is not a business customer. Contact support. |
ValidationControl.Error | 400 | A request field is invalid. Fix it using error.description. |
Gateway errors for 401, 429 and 503 use a different body. See Errors.