Error codes
Lina Pay API error guide for integrators. For each code: what happened, why, what to do, whether you can retry, and when to contact Lina.
What an error response looks like
A single contract, the same on every route. Use errorCode to decide how to
handle the error and keep the traceId: it is what Lina needs to investigate.
message is always a list.
{
"message": ["paymentRequestId must be a valid UUID."],
"type": "error",
"errorCode": "A003-27",
"traceId": "3f2c9a1e-7b4d-4e0a-9c2f-1d5e6a7b8c90",
"statusCode": 400
}P003-21 = domain P, type 003, route 21. Type 001 = internal
failure, 002 = not found, 003 = invalid request, 004 = no permission, 005 = 401
(A/P) or 409 (J), 006 = conflict. Note: the type does not guarantee the
HTTP status; handle errors by statusCode and errorCode together.
An unforeseen scenario becomes EPM-<status> with a generic message. Account
holder rejections may arrive with the holder's own code (E0xx) or EC00x
and status 424.
Can I retry?
Policy for every Lina 500 error. Retry with backoff (2s, 4s, 8s), up to 3
attempts. If it persists, contact Lina with the traceId, errorCode,
endpoint, and time.
Retrying does not create or change anything beyond what was intended. Use backoff (2s, 4s, 8s) and at most 3 attempts.
The request is wrong. Fix the indicated field/credential; resending it as is returns the same error.
The operation may have happened. Query the resource (GET) and only redo it if it is confirmed that nothing was created.
The resource state or a business rule prevents the operation. Retrying does not change the result.
Depends on configuration or a fix at Lina, or is an external infrastructure
failure (account holder, SPI, DICT, ICP). Do not retry; open a ticket with
the traceId, errorCode, endpoint, and time.
There is not enough evidence in the code to guarantee a policy. When in doubt
about a financial operation, treat it as CHECK_STATUS_FIRST.
Origin is where the failure started. Who acts is who needs to do something. An account holder rejection (origin) usually requires the integrator to guide the user (who acts).
Integrator fixes the call or checks the state · End user resolves account, balance, limit, or authorization (the integrator guides them) · Lina support configuration, credentials, and internal failures.
Send the traceId, errorCode, method and endpoint, date/time (with time
zone), and the resource identifier (paymentRequestId, consentId,
enrollmentId). Do not send tokens or the user's personal data.
Catalog by domain
Filter by domain, status, retry policy, who acts, and audience, or search by code, route, message, or action. Click a code to see its scenarios, what to do, and an example response.
A001-1500Internal EPM failure while creating the automatic payment request.SAFE_RETRY/CONTACT_SUPPORT
POST /automatic-payments- Message
There was an internal error in the create automatic payment request function- What happened
- Internal EPM failure while creating the automatic payment request.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the create automatic payment request function"
],
"type": "error",
"errorCode": "A001-1",
"traceId": "<uuid>",
"statusCode": 500
}A003-1400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /automatic-payments · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: recurringConsent, redirectUri; optional: canBeAutomaticallyRevoked, requestExpiresAt.
- Message
Invalid automatic payment configuration. You need to provide at least one of the two options: firstPayment or paymentConfig- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Invalid automatic payment configuration. You need to provide at least one of the two options: firstPayment or paymentConfig
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The data provided in the request is invalid- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The data provided in the request is invalid
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Start Date] Start date must be greater than current date- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Start Date] Start date must be greater than current date
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Expiration Date] Expiration date must be greater than current date- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Expiration Date] Expiration date must be greater than current date
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Reference Start Date] Reference start date must be greater than current date- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Reference Start Date] Reference start date must be greater than current date
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[First Payment Date] First payment date must be in YYYY-MM-DD format- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [First Payment Date] First payment date must be in YYYY-MM-DD format
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[First Payment Date] First payment date must be greater than current date- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [First Payment Date] First payment date must be greater than current date
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Logged User] CPF/CNPJ must be valid- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Logged User] CPF/CNPJ must be valid
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Business Entity] CPF/CNPJ must be valid- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Business Entity] CPF/CNPJ must be valid
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Creditor] Multiple creditors are not allowed, only one is expected- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Creditor] Multiple creditors are not allowed, only one is expected
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Creditor] One creditor must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Creditor] One creditor must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Creditor] Person type must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Creditor] Person type must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Creditor] Person type must be "PESSOA_JURIDICA"- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Creditor] Person type must be "PESSOA_JURIDICA"
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Creditor] CPF/CNPJ must be valid- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Creditor] CPF/CNPJ must be valid
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Creditor] Name must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Creditor] Name must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Contract Debtor] CPF/CNPJ must be valid- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Contract Debtor] CPF/CNPJ must be valid
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Debitor] Account type must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Debitor] Account type must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Debitor] Issuer must be provided for CACC or SVGS account type- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Debitor] Issuer must be provided for CACC or SVGS account type
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Debitor] Account type must be "CACC", "SVGS" or "TRAN"- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Debitor] Account type must be "CACC", "SVGS" or "TRAN"
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Recurring Configuration] Both fixed and maximum variable amount cannot be provided simultaneously- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Recurring Configuration] Both fixed and maximum variable amount cannot be provided simultaneously
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Recurring Configuration] Fixed amount and minimum variable amount cannot be provided simultaneously- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Recurring Configuration] Fixed amount and minimum variable amount cannot be provided simultaneously
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Recurring Configuration] Fixed amount must be greater than 0- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Recurring Configuration] Fixed amount must be greater than 0
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Recurring Configuration] Maximum variable amount must be greater than 0- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Recurring Configuration] Maximum variable amount must be greater than 0
- What to do
- Adjust the data indicated in message[] and resend.
- Message
[Recurring Configuration] Minimum variable amount must be less than maximum variable amount- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- [Recurring Configuration] Minimum variable amount must be less than maximum variable amount
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "A003-1",
"traceId": "<uuid>",
"statusCode": 400
}A004-1403The resource belongs to another tenant or sub-tenant. · The credentials used are not allowed to perform this operation.RETRY_AFTER_FIXCONTACT_SUPPORT
POST /automatic-payments · the same code covers different scenarios: read message[] to tell them apart- Message
You do not have permission to perform this operation- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-1",
"traceId": "<uuid>",
"statusCode": 403
}A005-1401Missing, invalid, or expired access token.RETRY_AFTER_FIX
POST /automatic-payments- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-1",
"traceId": "<uuid>",
"statusCode": 401
}A001-2500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /automatic-payments/requests- Message
Internal problem in the function that lists automatic payment requests- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that lists automatic payment requests"
],
"type": "error",
"errorCode": "A001-2",
"traceId": "<uuid>",
"statusCode": 500
}A004-2403The credentials used are not allowed to perform this operation.CONTACT_SUPPORT
GET /automatic-payments/requests- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-2",
"traceId": "<uuid>",
"statusCode": 403
}A005-2401Missing, invalid, or expired access token.RETRY_AFTER_FIX
GET /automatic-payments/requests- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-2",
"traceId": "<uuid>",
"statusCode": 401
}A001-3500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /automatic-payments/:userCpf- Message
Internal problem in the function that fetches the user's automatic payment requests- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that fetches the user's automatic payment requests"
],
"type": "error",
"errorCode": "A001-3",
"traceId": "<uuid>",
"statusCode": 500
}A002-3404There are no records for the filter provided.DO_NOT_RETRY
GET /automatic-payments/:userCpf- Message
No payment request found for the provided CPF- What happened
- There are no records for the filter provided.
- Likely cause
- Query returned no results. This is not a failure.
- What to do
- Treat it as an empty list in your application.
{
"message": [
"No payment request found for the provided CPF"
],
"type": "error",
"errorCode": "A002-3",
"traceId": "<uuid>",
"statusCode": 404
}A004-3403The credentials used are not allowed to perform this operation.CONTACT_SUPPORT
GET /automatic-payments/:userCpf- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-3",
"traceId": "<uuid>",
"statusCode": 403
}A005-3401Missing, invalid, or expired access token.RETRY_AFTER_FIX
GET /automatic-payments/:userCpf- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-3",
"traceId": "<uuid>",
"statusCode": 401
}A001-4500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /automatic-payments/subtenants/:cpf- Message
Internal problem in the function that fetches the user's sub-tenants- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that fetches the user's sub-tenants"
],
"type": "error",
"errorCode": "A001-4",
"traceId": "<uuid>",
"statusCode": 500
}A002-4404There are no records for the filter provided.DO_NOT_RETRY
GET /automatic-payments/subtenants/:cpf- Message
No sub-tenant found for the provided CPF- What happened
- There are no records for the filter provided.
- Likely cause
- Query returned no results. This is not a failure.
- What to do
- Treat it as an empty list in your application.
{
"message": [
"No sub-tenant found for the provided CPF"
],
"type": "error",
"errorCode": "A002-4",
"traceId": "<uuid>",
"statusCode": 404
}A004-4403The credentials used are not allowed to perform this operation.CONTACT_SUPPORT
GET /automatic-payments/subtenants/:cpf- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-4",
"traceId": "<uuid>",
"statusCode": 403
}A005-4401Missing, invalid, or expired access token.RETRY_AFTER_FIX
GET /automatic-payments/subtenants/:cpf- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-4",
"traceId": "<uuid>",
"statusCode": 401
}A001-5500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /automatic-payments/sub-tenants/:subTenantId- Message
Internal problem in the function that lists the sub-tenant's payment requests- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that lists the sub-tenant's payment requests"
],
"type": "error",
"errorCode": "A001-5",
"traceId": "<uuid>",
"statusCode": 500
}A002-5404The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
GET /automatic-payments/sub-tenants/:subTenantId- Message
- dynamic message
- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
A004-5403The credentials used are not allowed to perform this operation.CONTACT_SUPPORT
GET /automatic-payments/sub-tenants/:subTenantId- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-5",
"traceId": "<uuid>",
"statusCode": 403
}A005-5401Missing, invalid, or expired access token.RETRY_AFTER_FIX
GET /automatic-payments/sub-tenants/:subTenantId- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-5",
"traceId": "<uuid>",
"statusCode": 401
}A001-6500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /automatic-payments/tenants/:tenantId- Message
Internal problem in the function that lists the tenant's payment requests- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that lists the tenant's payment requests"
],
"type": "error",
"errorCode": "A001-6",
"traceId": "<uuid>",
"statusCode": 500
}A002-6404There are no records for the filter provided.DO_NOT_RETRY
GET /automatic-payments/tenants/:tenantId- Message
No payment request found for the provided tenant- What happened
- There are no records for the filter provided.
- Likely cause
- Query returned no results. This is not a failure.
- What to do
- Treat it as an empty list in your application.
{
"message": [
"No payment request found for the provided tenant"
],
"type": "error",
"errorCode": "A002-6",
"traceId": "<uuid>",
"statusCode": 404
}A004-6403The credentials used are not allowed to perform this operation.CONTACT_SUPPORT
GET /automatic-payments/tenants/:tenantId- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-6",
"traceId": "<uuid>",
"statusCode": 403
}A005-6401Missing, invalid, or expired access token.RETRY_AFTER_FIX
GET /automatic-payments/tenants/:tenantId- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-6",
"traceId": "<uuid>",
"statusCode": 401
}A001-7500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /automatic-payments/payments/tenants/:tenantId- Message
Internal problem in the function that lists the tenant's payments- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that lists the tenant's payments"
],
"type": "error",
"errorCode": "A001-7",
"traceId": "<uuid>",
"statusCode": 500
}A002-7404There are no records for the filter provided.DO_NOT_RETRY
GET /automatic-payments/payments/tenants/:tenantId- Message
No payment found for the provided tenant- What happened
- There are no records for the filter provided.
- Likely cause
- Query returned no results. This is not a failure.
- What to do
- Treat it as an empty list in your application.
{
"message": [
"No payment found for the provided tenant"
],
"type": "error",
"errorCode": "A002-7",
"traceId": "<uuid>",
"statusCode": 404
}A003-7400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /automatic-payments/payments/tenants/:tenantId- Message
tenantId is required- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- tenantId is required
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"tenantId is required"
],
"type": "error",
"errorCode": "A003-7",
"traceId": "<uuid>",
"statusCode": 400
}A004-7403The credentials used are not allowed to perform this operation.CONTACT_SUPPORT
GET /automatic-payments/payments/tenants/:tenantId- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-7",
"traceId": "<uuid>",
"statusCode": 403
}A005-7401Missing, invalid, or expired access token.RETRY_AFTER_FIX
GET /automatic-payments/payments/tenants/:tenantId- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-7",
"traceId": "<uuid>",
"statusCode": 401
}A001-8500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /automatic-payments/payments/sub-tenants/:subTenantId- Message
Internal problem in the function that lists the sub-tenant's payments- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that lists the sub-tenant's payments"
],
"type": "error",
"errorCode": "A001-8",
"traceId": "<uuid>",
"statusCode": 500
}A002-8404The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
GET /automatic-payments/payments/sub-tenants/:subTenantId- Message
- dynamic message
- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
A004-8403The credentials used are not allowed to perform this operation.CONTACT_SUPPORT
GET /automatic-payments/payments/sub-tenants/:subTenantId- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-8",
"traceId": "<uuid>",
"statusCode": 403
}A005-8401Missing, invalid, or expired access token.RETRY_AFTER_FIX
GET /automatic-payments/payments/sub-tenants/:subTenantId- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-8",
"traceId": "<uuid>",
"statusCode": 401
}A001-9500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /automatic-payments/request/:automaticPaymentsRequestId- Message
Internal problem in the function that fetches the automatic payment request- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that fetches the automatic payment request"
],
"type": "error",
"errorCode": "A001-9",
"traceId": "<uuid>",
"statusCode": 500
}A002-9404The requested resource was not found.RETRY_AFTER_FIX
GET /automatic-payments/request/:automaticPaymentsRequestId · the same code covers different scenarios: read message[] to tell them apart- Message
Payment request not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Automatic payment request with ID <id> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Payment request not found"
],
"type": "error",
"errorCode": "A002-9",
"traceId": "<uuid>",
"statusCode": 404
}A004-9403The credentials used are not allowed to perform this operation.CONTACT_SUPPORT
GET /automatic-payments/request/:automaticPaymentsRequestId- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-9",
"traceId": "<uuid>",
"statusCode": 403
}A005-9401Missing, invalid, or expired access token.RETRY_AFTER_FIX
GET /automatic-payments/request/:automaticPaymentsRequestId- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-9",
"traceId": "<uuid>",
"statusCode": 401
}A001-10500Internal EPM failure.SAFE_RETRY/CONTACT_SUPPORT
PATCH /automatic-payments/request/:paymentRequestId/details- Message
Internal problem in the function that updates the automatic payment request details- What happened
- Internal EPM failure.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that updates the automatic payment request details"
],
"type": "error",
"errorCode": "A001-10",
"traceId": "<uuid>",
"statusCode": 500
}A002-10404The requested resource was not found.RETRY_AFTER_FIX
PATCH /automatic-payments/request/:paymentRequestId/details- Message
Payment request not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Payment request not found"
],
"type": "error",
"errorCode": "A002-10",
"traceId": "<uuid>",
"statusCode": 404
}A003-10400The request body or parameters failed format validation. · A path identifier is not a valid UUID. · +1RETRY_AFTER_FIX
PATCH /automatic-payments/request/:paymentRequestId/details · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — optional: additionalInformation, remittanceInformation, maximumVariableAmount.
- Message
paymentRequestId must be a valid UUID.- What happened
- A path identifier is not a valid UUID.
- Likely cause
- paymentRequestId must be a valid UUID.
- What to do
- Send the identifier in UUID format (e.g. 550e8400-e29b-41d4-a716-446655440000), exactly as returned by the API.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- invalidDetailsMessage must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- invalidDetailsMessage must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- invalidDetailsMessage must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "A003-10",
"traceId": "<uuid>",
"statusCode": 400
}A004-10403The resource belongs to another tenant or sub-tenant. · The credentials used are not allowed to perform this operation.RETRY_AFTER_FIXCONTACT_SUPPORT
PATCH /automatic-payments/request/:paymentRequestId/details · the same code covers different scenarios: read message[] to tell them apart- Message
Payment request does not belong to the sub-tenant of the authenticated user- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Payment request does not belong to the sub-tenant of the authenticated user"
],
"type": "error",
"errorCode": "A004-10",
"traceId": "<uuid>",
"statusCode": 403
}A005-10401Missing, invalid, or expired access token.RETRY_AFTER_FIX
PATCH /automatic-payments/request/:paymentRequestId/details- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-10",
"traceId": "<uuid>",
"statusCode": 401
}A001-11500Internal EPM failure during an operation that may already have been sent to the account holder.SAFE_RETRY/CONTACT_SUPPORT
POST /automatic-payments/recurring-consents- Message
There was an internal error in the create recurring consent function- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the create recurring consent function"
],
"type": "error",
"errorCode": "A001-11",
"traceId": "<uuid>",
"statusCode": 500
}A002-11404The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
POST /automatic-payments/recurring-consents · the same code covers different scenarios: read message[] to tell them apart- Message
No creditor found for automatic payment request- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Recurring configuration not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"No creditor found for automatic payment request"
],
"type": "error",
"errorCode": "A002-11",
"traceId": "<uuid>",
"statusCode": 404
}A003-11400The request was rejected by an EPM validation rule. · The request body or parameters failed format validation.RETRY_AFTER_FIX
POST /automatic-payments/recurring-consents · the same code covers different scenarios: read message[] to tell them apart- Message
Unsupported interval type: <interval>- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Unsupported interval type: <interval>
- What to do
- Adjust the data indicated in message[] and resend.
- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: organisationId, authorisationServerId; optional: recurringConsent, paymentRequestId, platform, redirectUri, requestExpiresAt.
- Message
It is necessary to provide recurringConsent or paymentRequestId in the request body- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- It is necessary to provide recurringConsent or paymentRequestId in the request body
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The fields recurringConsent and paymentRequestId cannot both be provided at the same time- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The fields recurringConsent and paymentRequestId cannot both be provided at the same time
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The provided request data is invalid- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The provided request data is invalid
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"Unsupported interval type: <interval>"
],
"type": "error",
"errorCode": "A003-11",
"traceId": "<uuid>",
"statusCode": 400
}A004-11403The credentials used are not allowed to perform this operation.CONTACT_SUPPORT
POST /automatic-payments/recurring-consents- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-11",
"traceId": "<uuid>",
"statusCode": 403
}A005-11401Missing, invalid, or expired access token.RETRY_AFTER_FIX
POST /automatic-payments/recurring-consents- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-11",
"traceId": "<uuid>",
"statusCode": 401
}A001-12500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /automatic-payments/recurring-consents/:recurringConsentId- Message
There was an internal error in the find recurring consent function- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the find recurring consent function"
],
"type": "error",
"errorCode": "A001-12",
"traceId": "<uuid>",
"statusCode": 500
}A002-12404The requested resource was not found.RETRY_AFTER_FIX
GET /automatic-payments/recurring-consents/:recurringConsentId · the same code covers different scenarios: read message[] to tell them apart- Message
ConsentId must be informed- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Automatic payment with ConsentId <consentId> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Recurring consent not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"ConsentId must be informed"
],
"type": "error",
"errorCode": "A002-12",
"traceId": "<uuid>",
"statusCode": 404
}A003-12400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /automatic-payments/recurring-consents/:recurringConsentId- Message
Payment request is missing organisationId or authorisationServerId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Payment request is missing organisationId or authorisationServerId
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"Payment request is missing organisationId or authorisationServerId"
],
"type": "error",
"errorCode": "A003-12",
"traceId": "<uuid>",
"statusCode": 400
}A004-12403The resource belongs to another tenant or sub-tenant. · Operation not allowed for these credentials. · +1RETRY_AFTER_FIXNOT_VALIDATEDCONTACT_SUPPORT
GET /automatic-payments/recurring-consents/:recurringConsentId · the same code covers different scenarios: read message[] to tell them apart- Message
Recurring consent does not belong to the sub-tenant of the authenticated user- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
Error fetching token- What happened
- Operation not allowed for these credentials.
- Likely cause
- Error fetching token
- What to do
- Check the credentials and sub-tenant used. If it persists, contact Lina support with the traceId.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Recurring consent does not belong to the sub-tenant of the authenticated user"
],
"type": "error",
"errorCode": "A004-12",
"traceId": "<uuid>",
"statusCode": 403
}A005-12401Missing, invalid, or expired access token.RETRY_AFTER_FIX
GET /automatic-payments/recurring-consents/:recurringConsentId- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-12",
"traceId": "<uuid>",
"statusCode": 401
}A001-13500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /automatic-payments/recurring-consents/:recurringConsentId/request- Message
Internal problem in the function that fetches the automatic payment request by recurring consent- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that fetches the automatic payment request by recurring consent"
],
"type": "error",
"errorCode": "A001-13",
"traceId": "<uuid>",
"statusCode": 500
}A002-13404The requested resource was not found.RETRY_AFTER_FIX
GET /automatic-payments/recurring-consents/:recurringConsentId/request- Message
Payment request not found for the provided recurring consent- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Payment request not found for the provided recurring consent"
],
"type": "error",
"errorCode": "A002-13",
"traceId": "<uuid>",
"statusCode": 404
}A004-13403The resource belongs to another tenant or sub-tenant. · The credentials used are not allowed to perform this operation.RETRY_AFTER_FIXCONTACT_SUPPORT
GET /automatic-payments/recurring-consents/:recurringConsentId/request · the same code covers different scenarios: read message[] to tell them apart- Message
Payment request does not belong to the sub-tenant of the authenticated user- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Payment request does not belong to the sub-tenant of the authenticated user"
],
"type": "error",
"errorCode": "A004-13",
"traceId": "<uuid>",
"statusCode": 403
}A005-13401Missing, invalid, or expired access token.RETRY_AFTER_FIX
GET /automatic-payments/recurring-consents/:recurringConsentId/request- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-13",
"traceId": "<uuid>",
"statusCode": 401
}A001-14500The change/revocation may have been applied at the account holder, but the EPM failed to save it.SAFE_RETRY/CONTACT_SUPPORT
PATCH /automatic-payments/recurring-consents/:recurringConsentId- Message
There was an internal error in the update/revoke recurring consent function- What happened
- The change/revocation may have been applied at the account holder, but the EPM failed to save it.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the update/revoke recurring consent function"
],
"type": "error",
"errorCode": "A001-14",
"traceId": "<uuid>",
"statusCode": 500
}A002-14404The requested resource was not found.RETRY_AFTER_FIX
PATCH /automatic-payments/recurring-consents/:recurringConsentId- Message
Recurring consent not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Recurring consent not found"
],
"type": "error",
"errorCode": "A002-14",
"traceId": "<uuid>",
"statusCode": 404
}A003-14400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
PATCH /automatic-payments/recurring-consents/:recurringConsentId- Message
The provided update data is invalid- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The provided update data is invalid
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"The provided update data is invalid"
],
"type": "error",
"errorCode": "A003-14",
"traceId": "<uuid>",
"statusCode": 400
}A004-14403Operation not allowed for these credentials. · The credentials used are not allowed to perform this operation.NOT_VALIDATEDCONTACT_SUPPORT
PATCH /automatic-payments/recurring-consents/:recurringConsentId · the same code covers different scenarios: read message[] to tell them apart- Message
Error fetching token- What happened
- Operation not allowed for these credentials.
- Likely cause
- Error fetching token
- What to do
- Check the credentials and sub-tenant used. If it persists, contact Lina support with the traceId.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Error fetching token"
],
"type": "error",
"errorCode": "A004-14",
"traceId": "<uuid>",
"statusCode": 403
}A005-14401Missing, invalid, or expired access token.RETRY_AFTER_FIX
PATCH /automatic-payments/recurring-consents/:recurringConsentId- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-14",
"traceId": "<uuid>",
"statusCode": 401
}A001-15500Internal EPM failure during an operation that may already have been sent to the account holder.SAFE_RETRY/CONTACT_SUPPORT
POST /automatic-payments/recurring-payments/validate- Message
There was an internal error in the validate recurring payment function- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the validate recurring payment function"
],
"type": "error",
"errorCode": "A001-15",
"traceId": "<uuid>",
"statusCode": 500
}A003-15400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /automatic-payments/recurring-payments/validate · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: state, code, idToken, tenantId; optional: platform.
- Message
The payment data is invalid or the consent was not found- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The payment data is invalid or the consent was not found
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "A003-15",
"traceId": "<uuid>",
"statusCode": 400
}A004-15403Operation not allowed for these credentials. · The credentials used are not allowed to perform this operation.NOT_VALIDATEDCONTACT_SUPPORT
POST /automatic-payments/recurring-payments/validate · the same code covers different scenarios: read message[] to tell them apart- Message
Error fetching token- What happened
- Operation not allowed for these credentials.
- Likely cause
- Error fetching token
- What to do
- Check the credentials and sub-tenant used. If it persists, contact Lina support with the traceId.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Error fetching token"
],
"type": "error",
"errorCode": "A004-15",
"traceId": "<uuid>",
"statusCode": 403
}A005-15401Missing, invalid, or expired access token.RETRY_AFTER_FIX
POST /automatic-payments/recurring-payments/validate- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-15",
"traceId": "<uuid>",
"statusCode": 401
}A001-16500Internal EPM failure during an operation that may already have been sent to the account holder.SAFE_RETRY/CONTACT_SUPPORT
POST /automatic-payments/consents/:consentId/recurring-payments- Message
There was an internal error in the process recurring payment function- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the process recurring payment function"
],
"type": "error",
"errorCode": "A001-16",
"traceId": "<uuid>",
"statusCode": 500
}A002-16404The requested resource was not found.RETRY_AFTER_FIX
POST /automatic-payments/consents/:consentId/recurring-payments- Message
Consent not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Consent not found"
],
"type": "error",
"errorCode": "A002-16",
"traceId": "<uuid>",
"statusCode": 404
}A004-16403Operation not allowed for these credentials. · The credentials used are not allowed to perform this operation.NOT_VALIDATEDCONTACT_SUPPORT
POST /automatic-payments/consents/:consentId/recurring-payments · the same code covers different scenarios: read message[] to tell them apart- Message
Error fetching token- What happened
- Operation not allowed for these credentials.
- Likely cause
- Error fetching token
- What to do
- Check the credentials and sub-tenant used. If it persists, contact Lina support with the traceId.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Error fetching token"
],
"type": "error",
"errorCode": "A004-16",
"traceId": "<uuid>",
"statusCode": 403
}A005-16401Missing, invalid, or expired access token.RETRY_AFTER_FIX
POST /automatic-payments/consents/:consentId/recurring-payments- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-16",
"traceId": "<uuid>",
"statusCode": 401
}A001-17500Internal EPM failure while creating the recurring payment; the institution may already have received the request.SAFE_RETRY/CONTACT_SUPPORT
POST /automatic-payments/recurring-payments- Message
There was an internal error in the create recurring payment function- What happened
- Internal EPM failure while creating the recurring payment; the institution may already have received the request.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the create recurring payment function"
],
"type": "error",
"errorCode": "A001-17",
"traceId": "<uuid>",
"statusCode": 500
}A003-17400The account holder rejected the payment creation with 400/404. · The request was rejected by an EPM validation rule. · +2RETRY_AFTER_FIXDO_NOT_RETRY
POST /automatic-payments/recurring-payments · the same code covers different scenarios: read message[] to tell them apart- Message
Invalid orgId or asId provided- What happened
- The account holder rejected the payment creation with 400/404.
- Likely cause
- Any 400/404 from the account holder becomes this message: it may be an incorrect orgId/asId or a payment content error. The message does not distinguish between them.
- What to do
- Check the consent's organisationId/authorisationServerId and the payment payload. If they are correct, contact Lina support with the traceId (the actual reason is only in the log).
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
The request body cannot be empty- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The request body cannot be empty
- What to do
- Adjust the data indicated in message[] and resend.
- Message
When you are creating the first payment, you must inform all the required fields- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- When you are creating the first payment, you must inform all the required fields
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Invalid Payload, please check if you have filled all the required fields- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Invalid Payload, please check if you have filled all the required fields
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Invalid Payload, please check if you have filled all the required fields- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Invalid Payload, please check if you have filled all the required fields
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Payment body validation messages built at runtime.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Invalid Payload, please check if you have filled all the required fields- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Invalid Payload, please check if you have filled all the required fields
- What to do
- Adjust the data indicated in message[] and resend.
- Message
creditorAccount is required for Sweeping payments- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- creditorAccount is required for Sweeping payments
- What to do
- Adjust the data indicated in message[] and resend.
- Message
riskSignals is required for Sweeping payments- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- riskSignals is required for Sweeping payments
- What to do
- Adjust the data indicated in message[] and resend.
- Message
authorisationFlow is required for Sweeping payments- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- authorisationFlow is required for Sweeping payments
- What to do
- Adjust the data indicated in message[] and resend.
- Message
localInstrument is required for Sweeping payments- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- localInstrument is required for Sweeping payments
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Payment body validation messages built at runtime.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Error, the amount of the payment must be equal to the fixed amount- What happened
- The payment amount violates the recurring consent limits.
- Likely cause
- Error, the amount of the payment must be equal to the fixed amount
- What to do
- Adjust the amount (or date) to respect the consent's fixed amount, variable minimum/maximum, or period/total limits. If the limit needs to change, the end user must authorize a new consent.
- Message
Error, the amount of the payment must be less than the maximum variable amount- What happened
- The payment amount violates the recurring consent limits.
- Likely cause
- Error, the amount of the payment must be less than the maximum variable amount
- What to do
- Adjust the amount (or date) to respect the consent's fixed amount, variable minimum/maximum, or period/total limits. If the limit needs to change, the end user must authorize a new consent.
- Message
Error, the amount of the payment must be greater than the minimum variable amount- What happened
- The payment amount violates the recurring consent limits.
- Likely cause
- Error, the amount of the payment must be greater than the minimum variable amount
- What to do
- Adjust the amount (or date) to respect the consent's fixed amount, variable minimum/maximum, or period/total limits. If the limit needs to change, the end user must authorize a new consent.
- Message
Sweeping configuration not found for this payment request- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Sweeping configuration not found for this payment request
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Error, the amount of the payment (<amountCents>) must be less than or equal to the transaction limit (<transactionLimitCents>)- What happened
- The payment amount violates the recurring consent limits.
- Likely cause
- Error, the amount of the payment (<amountCents>) must be less than or equal to the transaction limit (<transactionLimitCents>)
- What to do
- Adjust the amount (or date) to respect the consent's fixed amount, variable minimum/maximum, or period/total limits. If the limit needs to change, the end user must authorize a new consent.
- Message
Error, the total amount (<totalCents>) would exceed the total allowed amount (<totalAllowedCents>)- What happened
- The payment amount violates the recurring consent limits.
- Likely cause
- Error, the total amount (<totalCents>) would exceed the total allowed amount (<totalAllowedCents>)
- What to do
- Adjust the amount (or date) to respect the consent's fixed amount, variable minimum/maximum, or period/total limits. If the limit needs to change, the end user must authorize a new consent.
- Message
Error, the total amount for period <period> (<periodCents>) would exceed the periodic limit (<limitCents>)- What happened
- The payment amount violates the recurring consent limits.
- Likely cause
- Error, the total amount for period <period> (<periodCents>) would exceed the periodic limit (<limitCents>)
- What to do
- Adjust the amount (or date) to respect the consent's fixed amount, variable minimum/maximum, or period/total limits. If the limit needs to change, the end user must authorize a new consent.
- Message
Error, the number of payments for period <period> (<periodCount>) would exceed the periodic quantity limit (<quantityLimit>)- What happened
- The payment amount violates the recurring consent limits.
- Likely cause
- Error, the number of payments for period <period> (<periodCount>) would exceed the periodic quantity limit (<quantityLimit>)
- What to do
- Adjust the amount (or date) to respect the consent's fixed amount, variable minimum/maximum, or period/total limits. If the limit needs to change, the end user must authorize a new consent.
- Message
The payment data is invalid- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The payment data is invalid
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Payments can only be created for an automatic payment request with status <AUTORIZADO>. Current status: <status>- What happened
- The automatic payment request is not AUTORIZADO.
- Likely cause
- Payments can only be created after the user has authorized the recurring consent.
- What to do
- Query the request (GET /automatic-payments/request/:id). If it is pending, complete the authorization with the user; if revoked/expired, start a new consent.
- Message
Sweeping payments require FullBodyRecurringPaymentDto with creditorAccount and riskSignals- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Sweeping payments require FullBodyRecurringPaymentDto with creditorAccount and riskSignals
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"Invalid orgId or asId provided"
],
"type": "error",
"errorCode": "A003-17",
"traceId": "<uuid>",
"statusCode": 400
}A004-17403The resource belongs to another tenant or sub-tenant. · The credentials used are not allowed to perform this operation.RETRY_AFTER_FIXCONTACT_SUPPORT
POST /automatic-payments/recurring-payments · the same code covers different scenarios: read message[] to tell them apart- Message
SubTenant <id> does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"SubTenant <id> does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "A004-17",
"traceId": "<uuid>",
"statusCode": 403
}A005-17401Missing, invalid, or expired access token.RETRY_AFTER_FIX
POST /automatic-payments/recurring-payments- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-17",
"traceId": "<uuid>",
"statusCode": 401
}A001-18500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /automatic-payments/recurring-payments/:recurringPaymentId- Message
There was an internal error in the find recurring payment function- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the find recurring payment function"
],
"type": "error",
"errorCode": "A001-18",
"traceId": "<uuid>",
"statusCode": 500
}A002-18404The requested resource was not found.RETRY_AFTER_FIX
GET /automatic-payments/recurring-payments/:recurringPaymentId- Message
Recurring payment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Recurring payment not found"
],
"type": "error",
"errorCode": "A002-18",
"traceId": "<uuid>",
"statusCode": 404
}A004-18403The credentials used are not allowed to perform this operation.CONTACT_SUPPORT
GET /automatic-payments/recurring-payments/:recurringPaymentId- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-18",
"traceId": "<uuid>",
"statusCode": 403
}A005-18401Missing, invalid, or expired access token.RETRY_AFTER_FIX
GET /automatic-payments/recurring-payments/:recurringPaymentId- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-18",
"traceId": "<uuid>",
"statusCode": 401
}A001-19500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /automatic-payments/recurring-payments/external/:recurringPaymentId- Message
There was an internal error in the find recurring payment at the holder function- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the find recurring payment at the holder function"
],
"type": "error",
"errorCode": "A001-19",
"traceId": "<uuid>",
"statusCode": 500
}A002-19404The requested resource was not found.RETRY_AFTER_FIX
GET /automatic-payments/recurring-payments/external/:recurringPaymentId- Message
Recurring payment not found at the holder- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Recurring payment not found at the holder"
],
"type": "error",
"errorCode": "A002-19",
"traceId": "<uuid>",
"statusCode": 404
}A004-19403The resource belongs to another tenant or sub-tenant. · Operation not allowed for these credentials. · +1RETRY_AFTER_FIXNOT_VALIDATEDCONTACT_SUPPORT
GET /automatic-payments/recurring-payments/external/:recurringPaymentId · the same code covers different scenarios: read message[] to tell them apart- Message
Recurring payment does not belong to the sub-tenant of the authenticated user- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
Error fetching token- What happened
- Operation not allowed for these credentials.
- Likely cause
- Error fetching token
- What to do
- Check the credentials and sub-tenant used. If it persists, contact Lina support with the traceId.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Recurring payment does not belong to the sub-tenant of the authenticated user"
],
"type": "error",
"errorCode": "A004-19",
"traceId": "<uuid>",
"statusCode": 403
}A005-19401Missing, invalid, or expired access token.RETRY_AFTER_FIX
GET /automatic-payments/recurring-payments/external/:recurringPaymentId- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-19",
"traceId": "<uuid>",
"statusCode": 401
}A001-20500Internal failure while cancelling the recurring payment.SAFE_RETRY/CONTACT_SUPPORT
PATCH /automatic-payments/recurring-payments/:recurringPaymentId · the same code covers different scenarios: read message[] to tell them apart- Message
Internal problem in the function that updates the recurring payment- What happened
- Internal failure while cancelling the recurring payment.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
Internal problem in the function that updates the recurring payment- What happened
- Internal failure while cancelling the recurring payment.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that updates the recurring payment"
],
"type": "error",
"errorCode": "A001-20",
"traceId": "<uuid>",
"statusCode": 500
}A002-20404The requested resource was not found.RETRY_AFTER_FIX
PATCH /automatic-payments/recurring-payments/:recurringPaymentId · the same code covers different scenarios: read message[] to tell them apart- Message
Recurring payment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Recurring payment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Recurring payment not found"
],
"type": "error",
"errorCode": "A002-20",
"traceId": "<uuid>",
"statusCode": 404
}A003-20400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
PATCH /automatic-payments/recurring-payments/:recurringPaymentId · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: cpfCancelledBy.
- Message
The provided update data is invalid- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The provided update data is invalid
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "A003-20",
"traceId": "<uuid>",
"statusCode": 400
}A004-20403The resource belongs to another tenant or sub-tenant. · The credentials used are not allowed to perform this operation.RETRY_AFTER_FIXCONTACT_SUPPORT
PATCH /automatic-payments/recurring-payments/:recurringPaymentId · the same code covers different scenarios: read message[] to tell them apart- Message
You do not have permission to perform this operation- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-20",
"traceId": "<uuid>",
"statusCode": 403
}A005-20401Missing, invalid, or expired access token.RETRY_AFTER_FIX
PATCH /automatic-payments/recurring-payments/:recurringPaymentId- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-20",
"traceId": "<uuid>",
"statusCode": 401
}A001-21500Internal failure while updating the retry permission. · The retry may have been accepted by the account holder, but the EPM failed to save the result.SAFE_RETRY/CONTACT_SUPPORT
POST /automatic-payments/recurring-payments/:originalRecurringPaymentId/retry · the same code covers different scenarios: read message[] to tell them apart- Message
Failed to update retry permition: <internal technical detail>- What happened
- Internal failure while updating the retry permission.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
There was an internal error in the retry recurring payment function- What happened
- The retry may have been accepted by the account holder, but the EPM failed to save the result.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
There was an internal error in the retry recurring payment function- What happened
- The retry may have been accepted by the account holder, but the EPM failed to save the result.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Failed to update retry permition: <internal technical detail>"
],
"type": "error",
"errorCode": "A001-21",
"traceId": "<uuid>",
"statusCode": 500
}A002-21404The requested resource was not found.RETRY_AFTER_FIX
POST /automatic-payments/recurring-payments/:originalRecurringPaymentId/retry · the same code covers different scenarios: read message[] to tell them apart- Message
Payment with externalPaymentId <originalRecurringPaymentId> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Payment with paymentId <originalRecurringPaymentId> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Payment request with consentId <recurringConsentId> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Payment with externalPaymentId <originalRecurringPaymentId> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Payment request with consentId <automaticPaymentRequest> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Resource not found. Contact support informing the traceId of this response.- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Payment with externalPaymentId <originalRecurringPaymentId> not found"
],
"type": "error",
"errorCode": "A002-21",
"traceId": "<uuid>",
"statusCode": 404
}A003-21400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule. · +3RETRY_AFTER_FIXDO_NOT_RETRYCONTACT_SUPPORTCHECK_STATUS_FIRST
POST /automatic-payments/recurring-payments/:originalRecurringPaymentId/retry · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: date; optional: endToEndId.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Message built at runtime; see message[] in the response.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Payment with externalPaymentId <originalRecurringPaymentId> is not allowed to retry- What happened
- The original payment can no longer be retried.
- Likely cause
- The payment does not allow retries (isRetryAllowed = false), for example because it has already been retried.
- What to do
- Do not retry. Inform the user/payee; the charge must go through the next cycle or another channel.
- Message
Payment with externalPaymentId <originalRecurringPaymentId> cannot be retried. Minimum <minDaysRequired> days required before due date (<daysUntilDueDate> days remaining)- What happened
- The original payment can no longer be retried.
- Likely cause
- Retry window closed: 7 days after the scheduled date (5 days for weekly frequency). Note: the number in the message is days elapsed, not remaining.
- What to do
- Do not retry. Inform the user/payee; the charge must go through the next cycle or another channel.
- Message
Payment with externalPaymentId <originalRecurringPaymentId> cannot be retried. It is the last day of the current cycle- What happened
- The original payment can no longer be retried.
- Likely cause
- It is the last day of the billing cycle.
- What to do
- Do not retry. Inform the user/payee; the charge must go through the next cycle or another channel.
- Message
Failed to send retry payment: <internal technical detail>- What happened
- The account holder rejected the retry.
- Likely cause
- Failed to send retry payment: <internal technical detail>
- What to do
- Do not retry automatically. Query the original payment and contact Lina support with the traceId. The message may contain internal technical text.
- Contact Lina
- Yes, to resolve it. Include the traceId.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Message built at runtime; see message[] in the response.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The payment to be retried is not rejected at the account holder.
- Likely cause
- Message built at runtime; see message[] in the response.
- What to do
- Query the payment (GET /automatic-payments/recurring-payments/external/:recurringPaymentId). Retrying only makes sense for a payment REJEITADO (RJCT) at the account holder.
- Message
- dynamic message
- What happened
- The payment to be retried is not rejected at the account holder.
- Likely cause
- Message built at runtime; see message[] in the response.
- What to do
- Query the payment (GET /automatic-payments/recurring-payments/external/:recurringPaymentId). Retrying only makes sense for a payment REJEITADO (RJCT) at the account holder.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Message built at runtime; see message[] in the response.
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "A003-21",
"traceId": "<uuid>",
"statusCode": 400
}A004-21403The resource belongs to another tenant or sub-tenant. · Operation not allowed for these credentials. · +1RETRY_AFTER_FIXNOT_VALIDATEDCONTACT_SUPPORT
POST /automatic-payments/recurring-payments/:originalRecurringPaymentId/retry · the same code covers different scenarios: read message[] to tell them apart- Message
You do not have permission to perform this operation- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
Error fetching token- What happened
- Operation not allowed for these credentials.
- Likely cause
- Error fetching token
- What to do
- Check the credentials and sub-tenant used. If it persists, contact Lina support with the traceId.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-21",
"traceId": "<uuid>",
"statusCode": 403
}A005-21401Missing, invalid, or expired access token.RETRY_AFTER_FIX
POST /automatic-payments/recurring-payments/:originalRecurringPaymentId/retry- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-21",
"traceId": "<uuid>",
"statusCode": 401
}A001-22500Internal EPM failure during an operation that may already have been sent to the account holder.SAFE_RETRY/CONTACT_SUPPORT
POST /automatic-payments/recurring-consents/update-consents- Message
Internal problem in the function that updates recurring consents- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that updates recurring consents"
],
"type": "error",
"errorCode": "A001-22",
"traceId": "<uuid>",
"statusCode": 500
}A004-22403The credentials used are not allowed to perform this operation.CONTACT_SUPPORT
POST /automatic-payments/recurring-consents/update-consents- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-22",
"traceId": "<uuid>",
"statusCode": 403
}A005-22401Missing, invalid, or expired access token.RETRY_AFTER_FIX
POST /automatic-payments/recurring-consents/update-consents- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-22",
"traceId": "<uuid>",
"statusCode": 401
}A004-23403The credentials used are not allowed to perform this operation.CONTACT_SUPPORT
PATCH /automatic-payments/request/:paymentRequestId/sweeping (authentication guard)- Message
You do not have permission to perform this operation- What happened
- The credentials used are not allowed to perform this operation.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Confirm you are using the correct client (tenant x sub-tenant). If so, ask Lina to grant the role/feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"You do not have permission to perform this operation"
],
"type": "error",
"errorCode": "A004-23",
"traceId": "<uuid>",
"statusCode": 403
}A005-23401Missing, invalid, or expired access token.RETRY_AFTER_FIX
PATCH /automatic-payments/request/:paymentRequestId/sweeping (authentication guard)- Message
Invalid or missing authentication token- What happened
- Missing, invalid, or expired access token.
- Likely cause
- Authorization header without a valid Bearer issued by Lina's identity provider.
- What to do
- Obtain a new access token (client credentials) and resend with Authorization: Bearer <token>.
{
"message": [
"Invalid or missing authentication token"
],
"type": "error",
"errorCode": "A005-23",
"traceId": "<uuid>",
"statusCode": 401
}A003-23400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /automatic-payments/values- Message
Each object must have at least one payment and a value- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Each object must have at least one payment and a value
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"Each object must have at least one payment and a value"
],
"type": "error",
"errorCode": "A003-23",
"traceId": "<uuid>",
"statusCode": 400
}A002-25404The requested resource was not found.RETRY_AFTER_FIX
PATCH /automatic-payments/future-payments/:paymentId- Message
Payment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Payment not found"
],
"type": "error",
"errorCode": "A002-25",
"traceId": "<uuid>",
"statusCode": 404
}A003-25400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
PATCH /automatic-payments/future-payments/:paymentId · the same code covers different scenarios: read message[] to tell them apart- Message
Invalid date format: <date>. Expected format: YYYY-MM-DD- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Invalid date format: <date>. Expected format: YYYY-MM-DD
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Invalid date: <date>. Date is not valid.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Invalid date: <date>. Date is not valid.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Invalid date: <date>. The date does not exist (e.g., 2026-02-31 or 2026-03-32).- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Invalid date: <date>. The date does not exist (e.g., 2026-02-31 or 2026-03-32).
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Date must be within payment cycle: <startDateCycle.toISOString().slice(0, 10> to <endDateCycle.toISOString().slice(0, 10)>. Received: <date>- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Date must be within payment cycle: <startDateCycle.toISOString().slice(0, 10> to <endDateCycle.toISOString().slice(0, 10)>. Received: <date>
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"Invalid date format: <date>. Expected format: YYYY-MM-DD"
],
"type": "error",
"errorCode": "A003-25",
"traceId": "<uuid>",
"statusCode": 400
}A002-26404The requested resource was not found.RETRY_AFTER_FIX
PATCH /automatic-payments/future-payments/request/:paymentRequestId- Message
Payment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Payment not found"
],
"type": "error",
"errorCode": "A002-26",
"traceId": "<uuid>",
"statusCode": 404
}A003-26400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
PATCH /automatic-payments/future-payments/request/:paymentRequestId- Message
Date must be valid with this payment cycle- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Date must be valid with this payment cycle
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"Date must be valid with this payment cycle"
],
"type": "error",
"errorCode": "A003-26",
"traceId": "<uuid>",
"statusCode": 400
}A001-27500Internal failure while updating the sweeping configuration.SAFE_RETRY/CONTACT_SUPPORT
PATCH /automatic-payments/request/:paymentRequestId/sweeping- Message
- dynamic message
- What happened
- Internal failure while updating the sweeping configuration.
- Likely cause
- Unexpected error. The message sent is "Error updating sweeping configuration".
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
A002-27404The requested resource was not found.RETRY_AFTER_FIX
PATCH /automatic-payments/request/:paymentRequestId/sweeping- Message
Payment request not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Payment request not found"
],
"type": "error",
"errorCode": "A002-27",
"traceId": "<uuid>",
"statusCode": 404
}A003-27400The request body or parameters failed format validation. · A path identifier is not a valid UUID. · +3RETRY_AFTER_FIXDO_NOT_RETRY
PATCH /automatic-payments/request/:paymentRequestId/sweeping · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — optional: totalAllowedAmount, transactionLimit, periodicLimits, startDateTime, expirationDateTime.
- Message
paymentRequestId must be a valid UUID.- What happened
- A path identifier is not a valid UUID.
- Likely cause
- paymentRequestId must be a valid UUID.
- What to do
- Send the identifier in UUID format (e.g. 550e8400-e29b-41d4-a716-446655440000), exactly as returned by the API.
- Message
Provide at least one sweeping field to update- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Provide at least one sweeping field to update
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Payment request does not have a sweeping configuration- What happened
- The request has no sweeping configuration.
- Likely cause
- Payment request does not have a sweeping configuration
- What to do
- Use this route only for sweeping requests (smart transfers).
- Message
Sweeping configuration cannot be updated because the payment request is not in pending status- What happened
- The sweeping configuration can only be changed while the request is PENDENTE.
- Likely cause
- Sweeping configuration cannot be updated because the payment request is not in pending status
- What to do
- Query the request. If it has already been authorized, the change requires a new consent.
- Message
periodicLimits.<period> must keep at least one of quantityLimit or transactionLimit- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- periodicLimits.<period> must keep at least one of quantityLimit or transactionLimit
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "A003-27",
"traceId": "<uuid>",
"statusCode": 400
}A004-27403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
PATCH /automatic-payments/request/:paymentRequestId/sweeping- Message
Payment request does not belong to the sub-tenant of the authenticated user- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"Payment request does not belong to the sub-tenant of the authenticated user"
],
"type": "error",
"errorCode": "A004-27",
"traceId": "<uuid>",
"statusCode": 403
}A001-28500Failed to cancel the associated data consent.SAFE_RETRY/CONTACT_SUPPORT
PATCH /automatic-payments/request/:paymentRequestId/data-consent/cancel- Message
- dynamic message
- What happened
- Failed to cancel the associated data consent.
- Likely cause
- Unexpected error when calling the data partner. The message sent is "Error cancelling data consent".
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
A002-28404The requested resource was not found.RETRY_AFTER_FIX
PATCH /automatic-payments/request/:paymentRequestId/data-consent/cancel- Message
Payment request not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Payment request not found"
],
"type": "error",
"errorCode": "A002-28",
"traceId": "<uuid>",
"statusCode": 404
}A003-28400A path identifier is not a valid UUID. · The request has no data consent to cancel.RETRY_AFTER_FIXDO_NOT_RETRY
PATCH /automatic-payments/request/:paymentRequestId/data-consent/cancel · the same code covers different scenarios: read message[] to tell them apart- Message
paymentRequestId must be a valid UUID.- What happened
- A path identifier is not a valid UUID.
- Likely cause
- paymentRequestId must be a valid UUID.
- What to do
- Send the identifier in UUID format (e.g. 550e8400-e29b-41d4-a716-446655440000), exactly as returned by the API.
- Message
The payment request does not have a dataConsentId to cancel- What happened
- The request has no data consent to cancel.
- Likely cause
- The payment request does not have a dataConsentId to cancel
- What to do
- Nothing to cancel; treat it as completed.
{
"message": [
"paymentRequestId must be a valid UUID."
],
"type": "error",
"errorCode": "A003-28",
"traceId": "<uuid>",
"statusCode": 400
}A004-28403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
PATCH /automatic-payments/request/:paymentRequestId/data-consent/cancel- Message
Payment request does not belong to the sub-tenant of the authenticated user- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"Payment request does not belong to the sub-tenant of the authenticated user"
],
"type": "error",
"errorCode": "A004-28",
"traceId": "<uuid>",
"statusCode": 403
}C004-1403The CPF was blocked by the anti-fraud check.Cross-cuttingDO_NOT_RETRY
Anti-fraud IDwall — JSR, open-integration, automatic payments, and retry- Message
CPF identified in a fraud occurrence- What happened
- The CPF was blocked by the anti-fraud check.
- Likely cause
- CPF identified in a fraud occurrence (IDwall).
- What to do
- Tell the user the operation cannot be completed through this channel. Do not retry and do not expose the "fraud" reason to the end user.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"CPF identified in a fraud occurrence"
],
"type": "error",
"errorCode": "C004-1",
"traceId": "<uuid>",
"statusCode": 403
}C002-1404Client not found in Lina's identity provider.Cross-cuttingCONTACT_SUPPORT
Identity provider — tenant client (tenant and sub-tenant creation/management) · the same code covers different scenarios: read message[] to tell them apart- Message
Client Not Found- What happened
- Client not found in Lina's identity provider.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Contact Lina support.
- Contact Lina
- Yes, to resolve it. Include the traceId.
- Message
Client Not Found- What happened
- Client not found in Lina's identity provider.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Contact Lina support.
- Contact Lina
- Yes, to resolve it. Include the traceId.
- Message
Client Not Found- What happened
- Client not found in Lina's identity provider.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Contact Lina support.
- Contact Lina
- Yes, to resolve it. Include the traceId.
- Message
Client Not Found- What happened
- Client not found in Lina's identity provider.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Contact Lina support.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Client Not Found"
],
"type": "error",
"errorCode": "C002-1",
"traceId": "<uuid>",
"statusCode": 404
}C003-1400The tenant or sub-tenant of the credentials is inactive.Cross-cuttingCONTACT_SUPPORT
Tenant middleware — any route authenticated by sub-tenant- Message
Tenant is inactive- What happened
- The tenant or sub-tenant of the credentials is inactive.
- Likely cause
- Registration deactivated at Lina.
- What to do
- Contact your Lina account manager/support to reactivate the registration. Do not retry.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Tenant is inactive"
],
"type": "error",
"errorCode": "C003-1",
"traceId": "<uuid>",
"statusCode": 400
}C002-2404RP client not found in Lina's identity provider.Cross-cuttingCONTACT_SUPPORT
Identity provider — RP client secret · the same code covers different scenarios: read message[] to tell them apart- Message
Client Not Found- What happened
- RP client not found in Lina's identity provider.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Contact Lina support with the traceId.
- Contact Lina
- Yes, to resolve it. Include the traceId.
- Message
Client Not Found- What happened
- RP client not found in Lina's identity provider.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Contact Lina support with the traceId.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Client Not Found"
],
"type": "error",
"errorCode": "C002-2",
"traceId": "<uuid>",
"statusCode": 404
}G002-3404The tenant/sub-tenant registration required for the operation was not found or is incomplete.Portal / tenant managementRETRY_AFTER_FIX
PATCH /tenants/:tenantId- Message
Tenant with tenantId:'<tenantId>' not found.- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"Tenant with tenantId:'<tenantId>' not found."
],
"type": "error",
"errorCode": "G002-3",
"traceId": "<uuid>",
"statusCode": 404
}G003-8400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
POST /sub-tenants · the same code covers different scenarios: read message[] to tell them apart- Message
Tenant with tenantId:'<tenantClientId>' not exists.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Tenant with tenantId:'<tenantClientId>' not exists.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Sub Tenant with SubTenantId:'<subTenantId>' arread exist.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Sub Tenant with SubTenantId:'<subTenantId>' arread exist.
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"Tenant with tenantId:'<tenantClientId>' not exists."
],
"type": "error",
"errorCode": "G003-8",
"traceId": "<uuid>",
"statusCode": 400
}G002-9404The tenant/sub-tenant registration required for the operation was not found or is incomplete.Portal / tenant managementRETRY_AFTER_FIX
PATCH /sub-tenants- Message
SubTenant with subTenantId <subTenantId> not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"SubTenant with subTenantId <subTenantId> not found"
],
"type": "error",
"errorCode": "G002-9",
"traceId": "<uuid>",
"statusCode": 404
}G002-10404The tenant/sub-tenant registration required for the operation was not found or is incomplete.Portal / tenant managementRETRY_AFTER_FIX
POST /sub-tenants/domains- Message
SubTenant with subTenantId <subTenantId> not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"SubTenant with subTenantId <subTenantId> not found"
],
"type": "error",
"errorCode": "G002-10",
"traceId": "<uuid>",
"statusCode": 404
}G003-10400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
POST /sub-tenants/domains- Message
Domain already added to this subTenant:'<subTenantId>'.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Domain already added to this subTenant:'<subTenantId>'.
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"Domain already added to this subTenant:'<subTenantId>'."
],
"type": "error",
"errorCode": "G003-10",
"traceId": "<uuid>",
"statusCode": 400
}G002-11404The tenant/sub-tenant registration required for the operation was not found or is incomplete. · The requested resource was not found.Portal / tenant managementRETRY_AFTER_FIX
GET /sub-tenants · the same code covers different scenarios: read message[] to tell them apart- Message
SubTenant with subTenantId <subTenantId> not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
SubTenant with subTenantId <subTenantId> not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
ConsentId must be informed- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
SubTenant with ConsentId <consentId> not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
EnrollmentId must be informed- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
SubTenant with EnrollmentId <enrollmentId> not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"SubTenant with subTenantId <subTenantId> not found"
],
"type": "error",
"errorCode": "G002-11",
"traceId": "<uuid>",
"statusCode": 404
}G002-12404The tenant/sub-tenant registration required for the operation was not found or is incomplete.Portal / tenant managementRETRY_AFTER_FIX
GET /sub-tenants/lina/:subTenantId- Message
SubTenant with subTenantId <subTenantId> not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"SubTenant with subTenantId <subTenantId> not found"
],
"type": "error",
"errorCode": "G002-12",
"traceId": "<uuid>",
"statusCode": 404
}G002-13404The requested resource was not found.RETRY_AFTER_FIX
GET /sub-tenants/:subTenantId/participants/most-used- Message
SubTenantId must be informed- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"SubTenantId must be informed"
],
"type": "error",
"errorCode": "G002-13",
"traceId": "<uuid>",
"statusCode": 404
}G002-16404The tenant/sub-tenant registration required for the operation was not found or is incomplete.Portal / tenant managementRETRY_AFTER_FIX
PATCH /sub-tenants/:subTenantId/deactivate- Message
SubTenant with subTenantId <subTenantId> not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"SubTenant with subTenantId <subTenantId> not found"
],
"type": "error",
"errorCode": "G002-16",
"traceId": "<uuid>",
"statusCode": 404
}G003-16400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
PATCH /sub-tenants/:subTenantId/deactivate- Message
SubTenant with subTenantId <subTenantId> is already deactivated- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- SubTenant with subTenantId <subTenantId> is already deactivated
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"SubTenant with subTenantId <subTenantId> is already deactivated"
],
"type": "error",
"errorCode": "G003-16",
"traceId": "<uuid>",
"statusCode": 400
}G002-17404The tenant/sub-tenant registration required for the operation was not found or is incomplete.Portal / tenant managementRETRY_AFTER_FIX
PATCH /sub-tenants/:subTenantId/reactivate- Message
SubTenant with subTenantId <subTenantId> not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"SubTenant with subTenantId <subTenantId> not found"
],
"type": "error",
"errorCode": "G002-17",
"traceId": "<uuid>",
"statusCode": 404
}G003-17400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
PATCH /sub-tenants/:subTenantId/reactivate · the same code covers different scenarios: read message[] to tell them apart- Message
SubTenant with subTenantId <subTenantId> is already active- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- SubTenant with subTenantId <subTenantId> is already active
- What to do
- Adjust the data indicated in message[] and resend.
- Message
SubTenant with subTenantId <subTenantId> cannot be reactivated while its tenant is inactive- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- SubTenant with subTenantId <subTenantId> cannot be reactivated while its tenant is inactive
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"SubTenant with subTenantId <subTenantId> is already active"
],
"type": "error",
"errorCode": "G003-17",
"traceId": "<uuid>",
"statusCode": 400
}G002-18404The tenant/sub-tenant registration required for the operation was not found or is incomplete.Portal / tenant managementRETRY_AFTER_FIX
PATCH /sub-tenants/:subTenantId/participants-preference- Message
SubTenant with subTenantId <subTenantId> not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"SubTenant with subTenantId <subTenantId> not found"
],
"type": "error",
"errorCode": "G002-18",
"traceId": "<uuid>",
"statusCode": 404
}G002-20404The requested resource was not found.RETRY_AFTER_FIX
GET /sub-tenants-accounts/bank-identifiers/:ispb- Message
Bank identifier with ISPB <ispb> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Bank identifier with ISPB <ispb> not found"
],
"type": "error",
"errorCode": "G002-20",
"traceId": "<uuid>",
"statusCode": 404
}G002-21404The tenant/sub-tenant registration required for the operation was not found or is incomplete.Portal / tenant managementRETRY_AFTER_FIX
POST /sub-tenants-accounts/:subTenantId/receiving-accounts- Message
SubTenant with subTenantId <subTenantId> not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"SubTenant with subTenantId <subTenantId> not found"
],
"type": "error",
"errorCode": "G002-21",
"traceId": "<uuid>",
"statusCode": 404
}G003-21400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
POST /sub-tenants-accounts/:subTenantId/receiving-accounts- Message
ISPB <ispb> is not registered in the bank identifier catalog- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- ISPB <ispb> is not registered in the bank identifier catalog
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"ISPB <ispb> is not registered in the bank identifier catalog"
],
"type": "error",
"errorCode": "G003-21",
"traceId": "<uuid>",
"statusCode": 400
}G002-23404The requested resource was not found.Portal / tenant managementRETRY_AFTER_FIX
GET /sub-tenants-accounts/:subTenantId/receiving-accounts/:accountId- Message
Receiving account <accountId> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Receiving account <accountId> not found"
],
"type": "error",
"errorCode": "G002-23",
"traceId": "<uuid>",
"statusCode": 404
}G002-24404The requested resource was not found.Portal / tenant managementRETRY_AFTER_FIX
PATCH /sub-tenants-accounts/:subTenantId/receiving-accounts/:accountId- Message
Receiving account <accountId> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Receiving account <accountId> not found"
],
"type": "error",
"errorCode": "G002-24",
"traceId": "<uuid>",
"statusCode": 404
}G002-25404The requested resource was not found.Portal / tenant managementRETRY_AFTER_FIX
DELETE /sub-tenants-accounts/:subTenantId/receiving-accounts/:accountId- Message
Receiving account <accountId> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Receiving account <accountId> not found"
],
"type": "error",
"errorCode": "G002-25",
"traceId": "<uuid>",
"statusCode": 404
}G002-26404The tenant/sub-tenant registration required for the operation was not found or is incomplete.Portal / tenant managementRETRY_AFTER_FIX
POST /users- Message
User created not found in Keycloak- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"User created not found in Keycloak"
],
"type": "error",
"errorCode": "G002-26",
"traceId": "<uuid>",
"statusCode": 404
}G003-26400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
POST /users · the same code covers different scenarios: read message[] to tell them apart- Message
You do not have permission to create a user with this tenant- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- You do not have permission to create a user with this tenant
- What to do
- Adjust the data indicated in message[] and resend.
- Message
You do not have permission to create a user with these groups- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- You do not have permission to create a user with these groups
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"You do not have permission to create a user with this tenant"
],
"type": "error",
"errorCode": "G003-26",
"traceId": "<uuid>",
"statusCode": 400
}G003-27400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
GET /users- Message
pageSize cannot exceed 50 users per request- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- pageSize cannot exceed 50 users per request
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"pageSize cannot exceed 50 users per request"
],
"type": "error",
"errorCode": "G003-27",
"traceId": "<uuid>",
"statusCode": 400
}G004-30403The resource belongs to another tenant or sub-tenant.Portal / tenant managementRETRY_AFTER_FIX
PUT /users/:userId/disable- Message
You do not have permission to disable this user. Tenant mismatch.- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"You do not have permission to disable this user. Tenant mismatch."
],
"type": "error",
"errorCode": "G004-30",
"traceId": "<uuid>",
"statusCode": 403
}G004-31403The resource belongs to another tenant or sub-tenant.Portal / tenant managementRETRY_AFTER_FIX
GET /users/:userId/groups- Message
You do not have permission to fetch groups. Tenant mismatch.- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"You do not have permission to fetch groups. Tenant mismatch."
],
"type": "error",
"errorCode": "G004-31",
"traceId": "<uuid>",
"statusCode": 403
}G004-32403The resource belongs to another tenant or sub-tenant.Portal / tenant managementRETRY_AFTER_FIX
PUT /users/:userId · the same code covers different scenarios: read message[] to tell them apart- Message
You do not have permission to edit this user. Tenant mismatch.- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
You can only assign users to your own tenant.- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
You can only assign users to subtenants under your tenant.- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"You do not have permission to edit this user. Tenant mismatch."
],
"type": "error",
"errorCode": "G004-32",
"traceId": "<uuid>",
"statusCode": 403
}G004-33403The resource belongs to another tenant or sub-tenant.Portal / tenant managementRETRY_AFTER_FIX
PUT /users/:userId/profile- Message
You do not have permission to edit this user. Tenant mismatch.- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"You do not have permission to edit this user. Tenant mismatch."
],
"type": "error",
"errorCode": "G004-33",
"traceId": "<uuid>",
"statusCode": 403
}G003-34400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
PUT /users/:userId/reset-password- Message
User email is required to reset password- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- User email is required to reset password
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"User email is required to reset password"
],
"type": "error",
"errorCode": "G003-34",
"traceId": "<uuid>",
"statusCode": 400
}J001-1500Failure during enrollment creation or device registration; the account holder may already have created the resource. · Internal EPM failure.SAFE_RETRY/CONTACT_SUPPORT
POST /jsr/enrollments · the same code covers different scenarios: read message[] to tell them apart- Message
There was an internal error in the create enrollment function- What happened
- Failure during enrollment creation or device registration; the account holder may already have created the resource.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
Error altering payment request: <internal technical detail>- What happened
- Internal EPM failure.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
Error finding payment request: <internal technical detail>- What happened
- Internal EPM failure.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the create enrollment function"
],
"type": "error",
"errorCode": "J001-1",
"traceId": "<uuid>",
"statusCode": 500
}J002-1404The tenant/sub-tenant registration required for the operation was not found or is incomplete. · The requested resource was not found.RETRY_AFTER_FIX
POST /jsr/enrollments · the same code covers different scenarios: read message[] to tell them apart- Message
Sub-tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
User not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Sub-tenant not found"
],
"type": "error",
"errorCode": "J002-1",
"traceId": "<uuid>",
"statusCode": 404
}J003-1400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /jsr/enrollments · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: organisationId, authorisationServerId, enrollment, riskSignals, redirectUri; optional: paymentId, automaticPaymentId, enrollmentRequestId, businessType, businessIdentity, productType.
- Message
X-Client-IP must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- X-Client-IP must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The field enrollment is required in the request body- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The field enrollment is required in the request body
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The field riskSignals is required- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The field riskSignals is required
- What to do
- Adjust the data indicated in message[] and resend.
- Message
O header X-Client-IP deve ser informado- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- O header X-Client-IP deve ser informado
- What to do
- Adjust the data indicated in message[] and resend.
- Message
O header X-Client-IP deve ser informado- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- O header X-Client-IP deve ser informado
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The fields paymentId and automaticPaymentId cannot be informed at the same time- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The fields paymentId and automaticPaymentId cannot be informed at the same time
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The field enrollmentRequestId cannot be informed with paymentId or automaticPaymentId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The field enrollmentRequestId cannot be informed with paymentId or automaticPaymentId
- What to do
- Adjust the data indicated in message[] and resend.
- Message
O header X-Client-IP deve ser informado- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- O header X-Client-IP deve ser informado
- What to do
- Adjust the data indicated in message[] and resend.
- Message
paymentRequestId must be a valid UUID.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- paymentRequestId must be a valid UUID.
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-1",
"traceId": "<uuid>",
"statusCode": 400
}J004-1403The EPM could not authenticate with the account holder institution.CONTACT_SUPPORT
POST /jsr/enrollments- Message
Could not authenticate with the holder institution- What happened
- The EPM could not authenticate with the account holder institution.
- Likely cause
- Failed to obtain the RP client token (EPM credentials/certificate with the account holder). Does not depend on the integrator's request.
- What to do
- Do not retry in a loop. Contact Lina support with the traceId.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Could not authenticate with the holder institution"
],
"type": "error",
"errorCode": "J004-1",
"traceId": "<uuid>",
"statusCode": 403
}J001-2500Internal EPM failure.SAFE_RETRY/CONTACT_SUPPORT
POST /jsr/enrollments/validate- Message
There was an internal error in the validate enrollment function- What happened
- Internal EPM failure.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the validate enrollment function"
],
"type": "error",
"errorCode": "J001-2",
"traceId": "<uuid>",
"statusCode": 500
}J002-2404The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
POST /jsr/enrollments/validate · the same code covers different scenarios: read message[] to tell them apart- Message
Tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"Tenant not found"
],
"type": "error",
"errorCode": "J002-2",
"traceId": "<uuid>",
"statusCode": 404
}J003-2400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /jsr/enrollments/validate · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: state, code, idToken, tenantId, platform; optional: rp.
- Message
tenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- tenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
O campo tenantId deve ser informado- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- O campo tenantId deve ser informado
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-2",
"traceId": "<uuid>",
"statusCode": 400
}J004-2403The EPM could not authenticate with the account holder institution.CONTACT_SUPPORT
POST /jsr/enrollments/validate- Message
Could not authenticate with the holder institution- What happened
- The EPM could not authenticate with the account holder institution.
- Likely cause
- Failed to obtain the RP client token (EPM credentials/certificate with the account holder). Does not depend on the integrator's request.
- What to do
- Do not retry in a loop. Contact Lina support with the traceId.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Could not authenticate with the holder institution"
],
"type": "error",
"errorCode": "J004-2",
"traceId": "<uuid>",
"statusCode": 403
}J001-3500Internal EPM failure.SAFE_RETRY/CONTACT_SUPPORT
POST /jsr/enrollments/:enrollmentId/device/options · the same code covers different scenarios: read message[] to tell them apart- Message
Internal problem in the function that saves the enrollment user- What happened
- Internal EPM failure.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
There was an internal error in the register device options function- What happened
- Internal EPM failure.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that saves the enrollment user"
],
"type": "error",
"errorCode": "J001-3",
"traceId": "<uuid>",
"statusCode": 500
}J002-3404The tenant/sub-tenant registration required for the operation was not found or is incomplete. · The requested resource was not found.RETRY_AFTER_FIX
POST /jsr/enrollments/:enrollmentId/device/options · the same code covers different scenarios: read message[] to tell them apart- Message
Sub-tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Enrollment request not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
{ id: registerOptions.data.user.id, username: enrollmentRequest.enrollmentCpf, }- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Sub-tenant not found"
],
"type": "error",
"errorCode": "J002-3",
"traceId": "<uuid>",
"statusCode": 404
}J003-3400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /jsr/enrollments/:enrollmentId/device/options · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: tenantId, platform; optional: rp.
- Message
enrollmentId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- enrollmentId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
tenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- tenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
X-Client-IP must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- X-Client-IP must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The fields enrollmentId, tenantId, and clientIp must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The fields enrollmentId, tenantId, and clientIp must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The enrollment does not have an organisationId/authorisationServerId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The enrollment does not have an organisationId/authorisationServerId
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-3",
"traceId": "<uuid>",
"statusCode": 400
}J004-3403The EPM could not authenticate with the account holder institution.CONTACT_SUPPORT
POST /jsr/enrollments/:enrollmentId/device/options- Message
Could not authenticate with the holder institution- What happened
- The EPM could not authenticate with the account holder institution.
- Likely cause
- Failed to obtain the RP client token (EPM credentials/certificate with the account holder). Does not depend on the integrator's request.
- What to do
- Do not retry in a loop. Contact Lina support with the traceId.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Could not authenticate with the holder institution"
],
"type": "error",
"errorCode": "J004-3",
"traceId": "<uuid>",
"statusCode": 403
}J005-3409The enrollment user already exists.DO_NOT_RETRY
POST /jsr/enrollments/:enrollmentId/device/options- Message
The user already exists- What happened
- The enrollment user already exists.
- Likely cause
- The user already exists
- What to do
- Do not recreate the user; continue the flow with the existing user (GET /jsr/enrollments/users/:userName).
{
"message": [
"The user already exists"
],
"type": "error",
"errorCode": "J005-3",
"traceId": "<uuid>",
"statusCode": 409
}J001-4500Internal EPM failure.SAFE_RETRY/CONTACT_SUPPORT
POST /jsr/enrollments/device/options · the same code covers different scenarios: read message[] to tell them apart- Message
Internal problem in the function that saves the enrollment user- What happened
- Internal EPM failure.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
There was an internal error in the generate register device options function- What happened
- Internal EPM failure.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that saves the enrollment user"
],
"type": "error",
"errorCode": "J001-4",
"traceId": "<uuid>",
"statusCode": 500
}J002-4404The tenant/sub-tenant registration required for the operation was not found or is incomplete. · The requested resource was not found.RETRY_AFTER_FIX
POST /jsr/enrollments/device/options · the same code covers different scenarios: read message[] to tell them apart- Message
Sub-tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Enrollment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
{ id: registerOptions.data.user.id, username: enrollmentOrm.enrollmentCpf, }- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Sub-tenant not found"
],
"type": "error",
"errorCode": "J002-4",
"traceId": "<uuid>",
"statusCode": 404
}J003-4400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /jsr/enrollments/device/options · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: state, code, idToken, tenantId, platform; optional: rp.
- Message
tenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- tenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
X-Client-IP must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- X-Client-IP must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The fields tenantId and clientIp must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The fields tenantId and clientIp must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The enrollment does not have an organisationId/authorisationServerId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The enrollment does not have an organisationId/authorisationServerId
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-4",
"traceId": "<uuid>",
"statusCode": 400
}J004-4403The EPM could not authenticate with the account holder institution.CONTACT_SUPPORT
POST /jsr/enrollments/device/options- Message
Could not authenticate with the holder institution- What happened
- The EPM could not authenticate with the account holder institution.
- Likely cause
- Failed to obtain the RP client token (EPM credentials/certificate with the account holder). Does not depend on the integrator's request.
- What to do
- Do not retry in a loop. Contact Lina support with the traceId.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Could not authenticate with the holder institution"
],
"type": "error",
"errorCode": "J004-4",
"traceId": "<uuid>",
"statusCode": 403
}J005-4409The enrollment user already exists.DO_NOT_RETRY
POST /jsr/enrollments/device/options- Message
The user already exists- What happened
- The enrollment user already exists.
- Likely cause
- The user already exists
- What to do
- Do not recreate the user; continue the flow with the existing user (GET /jsr/enrollments/users/:userName).
{
"message": [
"The user already exists"
],
"type": "error",
"errorCode": "J005-4",
"traceId": "<uuid>",
"statusCode": 409
}J001-5500Failure during enrollment creation or device registration; the account holder may already have created the resource.SAFE_RETRY/CONTACT_SUPPORT
POST /jsr/enrollments/:enrollmentId/device- Message
There was an internal error in the register device function- What happened
- Failure during enrollment creation or device registration; the account holder may already have created the resource.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the register device function"
],
"type": "error",
"errorCode": "J001-5",
"traceId": "<uuid>",
"statusCode": 500
}J002-5404The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
POST /jsr/enrollments/:enrollmentId/device · the same code covers different scenarios: read message[] to tell them apart- Message
Sub-tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Enrollment not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"Sub-tenant not found"
],
"type": "error",
"errorCode": "J002-5",
"traceId": "<uuid>",
"statusCode": 404
}J003-5400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /jsr/enrollments/:enrollmentId/device · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: id, rawId, response; optional: type, authenticatorAttachment, clientExtensionResults.
- Message
enrollmentId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- enrollmentId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
tenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- tenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
X-Client-IP must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- X-Client-IP must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The fields enrollmentId, tenantId, and clientIp must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The fields enrollmentId, tenantId, and clientIp must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The enrollment does not have an organisationId/authorisationServerId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The enrollment does not have an organisationId/authorisationServerId
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-5",
"traceId": "<uuid>",
"statusCode": 400
}J004-5403The EPM could not authenticate with the account holder institution.CONTACT_SUPPORT
POST /jsr/enrollments/:enrollmentId/device- Message
Could not authenticate with the holder institution- What happened
- The EPM could not authenticate with the account holder institution.
- Likely cause
- Failed to obtain the RP client token (EPM credentials/certificate with the account holder). Does not depend on the integrator's request.
- What to do
- Do not retry in a loop. Contact Lina support with the traceId.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Could not authenticate with the holder institution"
],
"type": "error",
"errorCode": "J004-5",
"traceId": "<uuid>",
"statusCode": 403
}J001-6500Internal EPM failure during an operation that may already have been sent to the account holder.SAFE_RETRY/CONTACT_SUPPORT
POST /jsr/consents · the same code covers different scenarios: read message[] to tell them apart- Message
There was an internal error in the create consent and FIDO sign options function- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
Error creating payment: <internal technical detail>- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
Error altering payment request: <internal technical detail>- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
Error altering payment request: <internal technical detail>- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the create consent and FIDO sign options function"
],
"type": "error",
"errorCode": "J001-6",
"traceId": "<uuid>",
"statusCode": 500
}J002-6404The requested resource was not found.RETRY_AFTER_FIX
POST /jsr/consents · the same code covers different scenarios: read message[] to tell them apart- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
The FIDO sign options (fidoSignOptions) were not generated- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Enrollment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Error alter status payment: <internal technical detail>- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"The FIDO sign options (fidoSignOptions) were not generated"
],
"type": "error",
"errorCode": "J002-6",
"traceId": "<uuid>",
"statusCode": 404
}J003-6400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /jsr/consents · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: fidoSignOptions, enrollmentId; optional: organisationId, authorisationServerId, paymentId, automaticPaymentRequestId, payment, automaticPaymentRequest.
- Message
subTenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
X-Client-IP must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- X-Client-IP must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
enrollmentId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- enrollmentId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The fields subTenantId, clientIp, and enrollmentId must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The fields subTenantId, clientIp, and enrollmentId must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The enrollment does not have a registered passKeyId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The enrollment does not have a registered passKeyId
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The enrollment does not have an organisationId/authorisationServerId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The enrollment does not have an organisationId/authorisationServerId
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Unknown schedule type: <type>- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Unknown schedule type: <type>
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Unknown schedule type: <type>- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Unknown schedule type: <type>
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Unknown schedule type: <type>- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Unknown schedule type: <type>
- What to do
- Adjust the data indicated in message[] and resend.
- Message
No valid schedule field was filled, or more than one field was filled.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- No valid schedule field was filled, or more than one field was filled.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
No valid schedule field was filled, or more than one field was filled.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- No valid schedule field was filled, or more than one field was filled.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The txId must match the quantity of Payments".- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The txId must match the quantity of Payments".
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The originalRecurringPaymentId cannot be used with a scheduled payment. Please use the originalRecurringPaymentId only for one-time payments.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The originalRecurringPaymentId cannot be used with a scheduled payment. Please use the originalRecurringPaymentId only for one-time payments.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The originalRecurringPaymentId <originalRecurringPaymentId> does not exist.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The originalRecurringPaymentId <originalRecurringPaymentId> does not exist.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The originalRecurringPaymentId <originalRecurringPaymentId> is not allowed to be used for a new payment.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The originalRecurringPaymentId <originalRecurringPaymentId> is not allowed to be used for a new payment.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
id must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- id must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
updatePaymentStatus must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- updatePaymentStatus must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Tenant CNPJ must be informed to generate payment endToEndId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Tenant CNPJ must be informed to generate payment endToEndId
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Schedule must be informed for scheduled payments- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Schedule must be informed for scheduled payments
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Date is not within the allowed range D+1 and D+730.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Date is not within the allowed range D+1 and D+730.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
No valid schedule field was filled, or more than one field was filled.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- No valid schedule field was filled, or more than one field was filled.
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-6",
"traceId": "<uuid>",
"statusCode": 400
}J001-7500Internal EPM failure during an operation that may already have been sent to the account holder.SAFE_RETRY/CONTACT_SUPPORT
POST /jsr/automatic-consents- Message
There was an internal error in the create automatic consent and FIDO sign options function- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the create automatic consent and FIDO sign options function"
],
"type": "error",
"errorCode": "J001-7",
"traceId": "<uuid>",
"statusCode": 500
}J002-7404The requested resource was not found.RETRY_AFTER_FIX
POST /jsr/automatic-consents · the same code covers different scenarios: read message[] to tell them apart- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
The FIDO sign options (fidoSignOptions) were not generated- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Enrollment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"The FIDO sign options (fidoSignOptions) were not generated"
],
"type": "error",
"errorCode": "J002-7",
"traceId": "<uuid>",
"statusCode": 404
}J003-7400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /jsr/automatic-consents · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: fidoSignOptions, enrollmentId, organisationId, authorisationServerId, automaticPaymentRequestId.
- Message
Automatic payment cannot be created because it is not in pending status- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Automatic payment cannot be created because it is not in pending status
- What to do
- Adjust the data indicated in message[] and resend.
- Message
subTenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
X-Client-IP must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- X-Client-IP must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
enrollmentId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- enrollmentId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
automaticPaymentRequestId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- automaticPaymentRequestId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The fields subTenantId, clientIp, enrollmentId, and automaticPaymentRequestId must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The fields subTenantId, clientIp, enrollmentId, and automaticPaymentRequestId must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The enrollment does not have a registered passKeyId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The enrollment does not have a registered passKeyId
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-7",
"traceId": "<uuid>",
"statusCode": 400
}J001-8500Failed to authorize the consent and make the payment with biometrics.SAFE_RETRY/CONTACT_SUPPORT
POST /jsr/payments- Message
There was an internal error in the authorize consent and make payment function- What happened
- Failed to authorize the consent and make the payment with biometrics.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the authorize consent and make payment function"
],
"type": "error",
"errorCode": "J001-8",
"traceId": "<uuid>",
"statusCode": 500
}J002-8404The requested resource was not found. · The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
POST /jsr/payments · the same code covers different scenarios: read message[] to tell them apart- Message
Payment request not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Enrollment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Payment request not found"
],
"type": "error",
"errorCode": "J002-8",
"traceId": "<uuid>",
"statusCode": 404
}J003-8400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /jsr/payments · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: enrollmentId, riskSignals, fidoAssertion; optional: paymentRequestId, automaticPaymentRequestId.
- Message
subTenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
X-Client-IP must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- X-Client-IP must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
enrollmentId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- enrollmentId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The field paymentRequestId is required and automaticPaymentRequestId is not accepted on this route- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The field paymentRequestId is required and automaticPaymentRequestId is not accepted on this route
- What to do
- Adjust the data indicated in message[] and resend.
- Message
subTenant must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenant must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The payment request does not have a consentId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The payment request does not have a consentId
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The payment request does not have an organisationId/authorisationServerId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The payment request does not have an organisationId/authorisationServerId
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-8",
"traceId": "<uuid>",
"statusCode": 400
}J001-9500Failed to authorize the consent and make the payment with biometrics.SAFE_RETRY/CONTACT_SUPPORT
POST /jsr/automatic-payments · the same code covers different scenarios: read message[] to tell them apart- Message
Error finding payment: <internal technical detail>- What happened
- Failed to authorize the consent and make the payment with biometrics.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
Error updating automatic payment request: <internal technical detail>- What happened
- Failed to authorize the consent and make the payment with biometrics.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
There was an internal error in the authorize automatic consent and make automatic payment function- What happened
- Failed to authorize the consent and make the payment with biometrics.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error finding payment: <internal technical detail>"
],
"type": "error",
"errorCode": "J001-9",
"traceId": "<uuid>",
"statusCode": 500
}J002-9404The requested resource was not found. · The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
POST /jsr/automatic-payments · the same code covers different scenarios: read message[] to tell them apart- Message
ConsentId must be informed- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Payment with ConsentId <consentId> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Payment request with ID <apr> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Enrollment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"ConsentId must be informed"
],
"type": "error",
"errorCode": "J002-9",
"traceId": "<uuid>",
"statusCode": 404
}J003-9400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /jsr/automatic-payments · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: enrollmentId, automaticPaymentRequestId, riskSignals, fidoAssertion.
- Message
subTenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
X-Client-IP must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- X-Client-IP must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
enrollmentId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- enrollmentId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The field automaticPaymentRequestId is required- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The field automaticPaymentRequestId is required
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The field paymentRequestId is not accepted on this route- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The field paymentRequestId is not accepted on this route
- What to do
- Adjust the data indicated in message[] and resend.
- Message
subTenant must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenant must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The payment request does not have a consentId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The payment request does not have a consentId
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The payment request does not have an organisationId/authorisationServerId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The payment request does not have an organisationId/authorisationServerId
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-9",
"traceId": "<uuid>",
"statusCode": 400
}J004-9403The automatic payment request belongs to another sub-tenant.RETRY_AFTER_FIX
POST /jsr/automatic-payments- Message
The automatic payment request does not belong to the authenticated sub-tenant- What happened
- The automatic payment request belongs to another sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the sub-tenant that owns the request.
{
"message": [
"The automatic payment request does not belong to the authenticated sub-tenant"
],
"type": "error",
"errorCode": "J004-9",
"traceId": "<uuid>",
"statusCode": 403
}J001-11500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /jsr/enrollments/:enrollmentId- Message
There was an internal error in the find enrollment function- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the find enrollment function"
],
"type": "error",
"errorCode": "J001-11",
"traceId": "<uuid>",
"statusCode": 500
}J002-11404The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
GET /jsr/enrollments/:enrollmentId · the same code covers different scenarios: read message[] to tell them apart- Message
Sub-tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Enrollment not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"Sub-tenant not found"
],
"type": "error",
"errorCode": "J002-11",
"traceId": "<uuid>",
"statusCode": 404
}J003-11400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /jsr/enrollments/:enrollmentId · the same code covers different scenarios: read message[] to tell them apart- Message
enrollmentId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- enrollmentId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
X-Client-IP must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- X-Client-IP must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The fields enrollmentId and clientIp must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The fields enrollmentId and clientIp must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The enrollment does not have an organisationId/authorisationServerId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The enrollment does not have an organisationId/authorisationServerId
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"enrollmentId must be informed"
],
"type": "error",
"errorCode": "J003-11",
"traceId": "<uuid>",
"statusCode": 400
}J004-11403The EPM could not authenticate with the account holder institution.CONTACT_SUPPORT
GET /jsr/enrollments/:enrollmentId- Message
Could not authenticate with the holder institution- What happened
- The EPM could not authenticate with the account holder institution.
- Likely cause
- Failed to obtain the RP client token (EPM credentials/certificate with the account holder). Does not depend on the integrator's request.
- What to do
- Do not retry in a loop. Contact Lina support with the traceId.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Could not authenticate with the holder institution"
],
"type": "error",
"errorCode": "J004-11",
"traceId": "<uuid>",
"statusCode": 403
}J002-12404The tenant/sub-tenant registration required for the operation was not found or is incomplete. · The requested resource was not found.RETRY_AFTER_FIX
GET /jsr/enrollments/:enrollmentId/challenge · the same code covers different scenarios: read message[] to tell them apart- Message
Sub-tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Enrollment not found or without a registered passKeyId- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Sub-tenant not found"
],
"type": "error",
"errorCode": "J002-12",
"traceId": "<uuid>",
"statusCode": 404
}J003-12400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /jsr/enrollments/:enrollmentId/challenge · the same code covers different scenarios: read message[] to tell them apart- Message
enrollmentId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- enrollmentId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
subTenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
rp must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- rp must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"enrollmentId must be informed"
],
"type": "error",
"errorCode": "J003-12",
"traceId": "<uuid>",
"statusCode": 400
}J002-13404The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
GET /jsr/enrollments/:enrollmentId/payments · the same code covers different scenarios: read message[] to tell them apart- Message
Sub-tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Enrollment not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"Sub-tenant not found"
],
"type": "error",
"errorCode": "J002-13",
"traceId": "<uuid>",
"statusCode": 404
}J003-13400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /jsr/enrollments/:enrollmentId/payments · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — optional: cancelDataConsent.
- Message
enrollmentId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- enrollmentId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
subTenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
filters.startDate as string- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- filters.startDate as string
- What to do
- Adjust the data indicated in message[] and resend.
- Message
filters.endDate as string- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- filters.endDate as string
- What to do
- Adjust the data indicated in message[] and resend.
- Message
startDate must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- startDate must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-13",
"traceId": "<uuid>",
"statusCode": 400
}J004-13403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
GET /jsr/enrollments/:enrollmentId/payments- Message
The sub-tenant does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"The sub-tenant does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "J004-13",
"traceId": "<uuid>",
"statusCode": 403
}J001-14500Internal EPM failure.Portal / tenant managementSAFE_RETRY/CONTACT_SUPPORT
PUT /jsr/enrollments/:enrollmentId- Message
There was an internal error in the update enrollment function- What happened
- Internal EPM failure.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the update enrollment function"
],
"type": "error",
"errorCode": "J001-14",
"traceId": "<uuid>",
"statusCode": 500
}J002-14404The tenant/sub-tenant registration required for the operation was not found or is incomplete. · The requested resource was not found.Portal / tenant managementRETRY_AFTER_FIX
PUT /jsr/enrollments/:enrollmentId · the same code covers different scenarios: read message[] to tell them apart- Message
Sub-tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Enrollment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Sub-tenant not found"
],
"type": "error",
"errorCode": "J002-14",
"traceId": "<uuid>",
"statusCode": 404
}J003-14400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
PUT /jsr/enrollments/:enrollmentId · the same code covers different scenarios: read message[] to tell them apart- Message
enrollmentId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- enrollmentId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
tenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- tenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
X-Client-IP must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- X-Client-IP must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The fields enrollmentId, tenantId, and clientIp must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The fields enrollmentId, tenantId, and clientIp must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The enrollment does not have an organisationId/authorisationServerId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The enrollment does not have an organisationId/authorisationServerId
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"enrollmentId must be informed"
],
"type": "error",
"errorCode": "J003-14",
"traceId": "<uuid>",
"statusCode": 400
}J004-14403The EPM could not authenticate with the account holder institution.Portal / tenant managementCONTACT_SUPPORT
PUT /jsr/enrollments/:enrollmentId- Message
Could not authenticate with the holder institution- What happened
- The EPM could not authenticate with the account holder institution.
- Likely cause
- Failed to obtain the RP client token (EPM credentials/certificate with the account holder). Does not depend on the integrator's request.
- What to do
- Do not retry in a loop. Contact Lina support with the traceId.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Could not authenticate with the holder institution"
],
"type": "error",
"errorCode": "J004-14",
"traceId": "<uuid>",
"statusCode": 403
}J001-15500Internal EPM failure during an operation that may already have been sent to the account holder.SAFE_RETRY/CONTACT_SUPPORT
PATCH /jsr/enrollments/:enrollmentId- Message
There was an internal error in the revoke enrollment function- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the revoke enrollment function"
],
"type": "error",
"errorCode": "J001-15",
"traceId": "<uuid>",
"statusCode": 500
}J002-15404The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
PATCH /jsr/enrollments/:enrollmentId · the same code covers different scenarios: read message[] to tell them apart- Message
Sub-tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Enrollment not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Sub-tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Enrollment not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"Sub-tenant not found"
],
"type": "error",
"errorCode": "J002-15",
"traceId": "<uuid>",
"statusCode": 404
}J003-15400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
PATCH /jsr/enrollments/:enrollmentId · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — optional: cancelDataConsent.
- Message
enrollmentId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- enrollmentId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
tenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- tenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
X-Client-IP must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- X-Client-IP must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The fields enrollmentId, tenantId, and clientIp must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The fields enrollmentId, tenantId, and clientIp must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The enrollment does not have an organisationId/authorisationServerId- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The enrollment does not have an organisationId/authorisationServerId
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The fields enrollmentId, tenantId, and clientIp must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The fields enrollmentId, tenantId, and clientIp must be provided
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-15",
"traceId": "<uuid>",
"statusCode": 400
}J004-15403The EPM could not authenticate with the account holder institution.CONTACT_SUPPORT
PATCH /jsr/enrollments/:enrollmentId · the same code covers different scenarios: read message[] to tell them apart- Message
Could not authenticate with the holder institution- What happened
- The EPM could not authenticate with the account holder institution.
- Likely cause
- Failed to obtain the RP client token (EPM credentials/certificate with the account holder). Does not depend on the integrator's request.
- What to do
- Do not retry in a loop. Contact Lina support with the traceId.
- Contact Lina
- Yes, to resolve it. Include the traceId.
- Message
Could not authenticate with the holder institution- What happened
- The EPM could not authenticate with the account holder institution.
- Likely cause
- Failed to obtain the RP client token (EPM credentials/certificate with the account holder). Does not depend on the integrator's request.
- What to do
- Do not retry in a loop. Contact Lina support with the traceId.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Could not authenticate with the holder institution"
],
"type": "error",
"errorCode": "J004-15",
"traceId": "<uuid>",
"statusCode": 403
}J001-16500Internal EPM failure during an operation that may already have been sent to the account holder.SAFE_RETRY/CONTACT_SUPPORT
PATCH /jsr/enrollments/:enrollmentId/data-consent/cancel- Message
There was an internal error in the cancel data consent function- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"There was an internal error in the cancel data consent function"
],
"type": "error",
"errorCode": "J001-16",
"traceId": "<uuid>",
"statusCode": 500
}J002-16404The requested resource was not found.RETRY_AFTER_FIX
PATCH /jsr/enrollments/:enrollmentId/data-consent/cancel- Message
Enrollment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Enrollment not found"
],
"type": "error",
"errorCode": "J002-16",
"traceId": "<uuid>",
"statusCode": 404
}J003-16400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
PATCH /jsr/enrollments/:enrollmentId/data-consent/cancel · the same code covers different scenarios: read message[] to tell them apart- Message
enrollmentId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- enrollmentId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
tenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- tenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The enrollment does not have a dataConsentId to cancel- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The enrollment does not have a dataConsentId to cancel
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"enrollmentId must be informed"
],
"type": "error",
"errorCode": "J003-16",
"traceId": "<uuid>",
"statusCode": 400
}J001-17500Internal EPM failure.SAFE_RETRY/CONTACT_SUPPORT
POST /jsr/enrollments/users- Message
Internal problem in the function that saves the enrollment user- What happened
- Internal EPM failure.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Internal problem in the function that saves the enrollment user"
],
"type": "error",
"errorCode": "J001-17",
"traceId": "<uuid>",
"statusCode": 500
}J002-17404The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
POST /jsr/enrollments/users- Message
Sub-tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"Sub-tenant not found"
],
"type": "error",
"errorCode": "J002-17",
"traceId": "<uuid>",
"statusCode": 404
}J003-17400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /jsr/enrollments/users · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: id, username.
- Message
subTenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
username must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- username must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-17",
"traceId": "<uuid>",
"statusCode": 400
}J005-17409The enrollment user already exists.DO_NOT_RETRY
POST /jsr/enrollments/users- Message
The user already exists- What happened
- The enrollment user already exists.
- Likely cause
- The user already exists
- What to do
- Do not recreate the user; continue the flow with the existing user (GET /jsr/enrollments/users/:userName).
{
"message": [
"The user already exists"
],
"type": "error",
"errorCode": "J005-17",
"traceId": "<uuid>",
"statusCode": 409
}J002-18404The tenant/sub-tenant registration required for the operation was not found or is incomplete. · The requested resource was not found.RETRY_AFTER_FIX
GET /jsr/enrollments/users/:userName · the same code covers different scenarios: read message[] to tell them apart- Message
Sub-tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Sub-tenant not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Enrollment user not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Sub-tenant not found"
],
"type": "error",
"errorCode": "J002-18",
"traceId": "<uuid>",
"statusCode": 404
}J003-18400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /jsr/enrollments/users/:userName · the same code covers different scenarios: read message[] to tell them apart- Message
subTenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
username must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- username must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"subTenantId must be informed"
],
"type": "error",
"errorCode": "J003-18",
"traceId": "<uuid>",
"statusCode": 400
}J004-18403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
GET /jsr/enrollments/users/:userName- Message
The sub-tenant does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"The sub-tenant does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "J004-18",
"traceId": "<uuid>",
"statusCode": 403
}J002-19404The requested resource was not found.RETRY_AFTER_FIX
POST /jsr/enrollment-requests- Message
SubTenant with subTenantId <subTenantId> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"SubTenant with subTenantId <subTenantId> not found"
],
"type": "error",
"errorCode": "J002-19",
"traceId": "<uuid>",
"statusCode": 404
}J003-19400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /jsr/enrollment-requests · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — optional: document, businessIdentity, displayMode, redirectUri, externalId.
- Message
subTenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The field document (CPF of the representative) is required when businessIdentity is informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The field document (CPF of the representative) is required when businessIdentity is informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The field redirectUri must contain a valid URL- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The field redirectUri must contain a valid URL
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-19",
"traceId": "<uuid>",
"statusCode": 400
}J004-19403The resource belongs to another tenant or sub-tenant. · The enrollment-without-payment feature is not enabled for the sub-tenant.RETRY_AFTER_FIXCONTACT_SUPPORT
POST /jsr/enrollment-requests · the same code covers different scenarios: read message[] to tell them apart- Message
The sub-tenant does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
The sub-tenant does not have the <ENROLLMENT_STANDALONE_FEATURE> feature- What happened
- The enrollment-without-payment feature is not enabled for the sub-tenant.
- Likely cause
- The API client does not have the role required by the route, or the feature is not enabled for the sub-tenant.
- What to do
- Ask Lina to enable the feature.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"The sub-tenant does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "J004-19",
"traceId": "<uuid>",
"statusCode": 403
}J002-20404The requested resource was not found.RETRY_AFTER_FIX
GET /jsr/enrollment-requests/:enrollmentRequestId- Message
Enrollment request not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Enrollment request not found"
],
"type": "error",
"errorCode": "J002-20",
"traceId": "<uuid>",
"statusCode": 404
}J003-20400A path identifier is not a valid UUID.RETRY_AFTER_FIX
GET /jsr/enrollment-requests/:enrollmentRequestId- Message
enrollmentRequestId must be a valid UUID.- What happened
- A path identifier is not a valid UUID.
- Likely cause
- enrollmentRequestId must be a valid UUID.
- What to do
- Send the identifier in UUID format (e.g. 550e8400-e29b-41d4-a716-446655440000), exactly as returned by the API.
{
"message": [
"enrollmentRequestId must be a valid UUID."
],
"type": "error",
"errorCode": "J003-20",
"traceId": "<uuid>",
"statusCode": 400
}J004-20403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
GET /jsr/enrollment-requests/:enrollmentRequestId- Message
The sub-tenant does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"The sub-tenant does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "J004-20",
"traceId": "<uuid>",
"statusCode": 403
}J002-21404The requested resource was not found.RETRY_AFTER_FIX
PATCH /jsr/enrollment-requests/:enrollmentRequestId/cancel- Message
Enrollment request not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Enrollment request not found"
],
"type": "error",
"errorCode": "J002-21",
"traceId": "<uuid>",
"statusCode": 404
}J003-21400A path identifier is not a valid UUID.RETRY_AFTER_FIX
PATCH /jsr/enrollment-requests/:enrollmentRequestId/cancel- Message
enrollmentRequestId must be a valid UUID.- What happened
- A path identifier is not a valid UUID.
- Likely cause
- enrollmentRequestId must be a valid UUID.
- What to do
- Send the identifier in UUID format (e.g. 550e8400-e29b-41d4-a716-446655440000), exactly as returned by the API.
{
"message": [
"enrollmentRequestId must be a valid UUID."
],
"type": "error",
"errorCode": "J003-21",
"traceId": "<uuid>",
"statusCode": 400
}J004-21403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
PATCH /jsr/enrollment-requests/:enrollmentRequestId/cancel- Message
The sub-tenant does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"The sub-tenant does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "J004-21",
"traceId": "<uuid>",
"statusCode": 403
}J005-21409The enrollment request is already in a final state and cannot be cancelled.DO_NOT_RETRY
PATCH /jsr/enrollment-requests/:enrollmentRequestId/cancel- Message
An enrollment request with status <status> cannot be cancelled- What happened
- The enrollment request is already in a final state and cannot be cancelled.
- Likely cause
- An enrollment request with status <status> cannot be cancelled
- What to do
- Query the request (GET /jsr/enrollment-requests/:id). Cancelling a request that is already CANCELADO returns success.
{
"message": [
"An enrollment request with status <status> cannot be cancelled"
],
"type": "error",
"errorCode": "J005-21",
"traceId": "<uuid>",
"statusCode": 409
}J002-22404The requested resource was not found.RETRY_AFTER_FIX
PATCH /jsr/enrollment-requests/:enrollmentRequestId/document- Message
Enrollment request not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Enrollment request not found"
],
"type": "error",
"errorCode": "J002-22",
"traceId": "<uuid>",
"statusCode": 404
}J003-22400The request body or parameters failed format validation. · A path identifier is not a valid UUID. · +1RETRY_AFTER_FIX
PATCH /jsr/enrollment-requests/:enrollmentRequestId/document · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: document; optional: businessIdentity.
- Message
enrollmentRequestId must be a valid UUID.- What happened
- A path identifier is not a valid UUID.
- Likely cause
- enrollmentRequestId must be a valid UUID.
- What to do
- Send the identifier in UUID format (e.g. 550e8400-e29b-41d4-a716-446655440000), exactly as returned by the API.
- Message
The field document must be a valid CPF- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The field document must be a valid CPF
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The field businessIdentity must be a valid CNPJ- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The field businessIdentity must be a valid CNPJ
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "J003-22",
"traceId": "<uuid>",
"statusCode": 400
}J004-22403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
PATCH /jsr/enrollment-requests/:enrollmentRequestId/document- Message
The sub-tenant does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"The sub-tenant does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "J004-22",
"traceId": "<uuid>",
"statusCode": 403
}J005-22409The document can only be provided while the request is PENDENTE. · The enrollment request already has a document.DO_NOT_RETRY
PATCH /jsr/enrollment-requests/:enrollmentRequestId/document · the same code covers different scenarios: read message[] to tell them apart- Message
The document of an enrollment request with status <status> cannot be changed- What happened
- The document can only be provided while the request is PENDENTE.
- Likely cause
- The document of an enrollment request with status <status> cannot be changed
- What to do
- Query the request. If it has expired or been cancelled, create a new enrollment request.
- Message
The enrollment request already has a document- What happened
- The enrollment request already has a document.
- Likely cause
- The enrollment request already has a document
- What to do
- Do not send it again; continue to POST /jsr/enrollments with the enrollmentRequestId.
{
"message": [
"The document of an enrollment request with status <status> cannot be changed"
],
"type": "error",
"errorCode": "J005-22",
"traceId": "<uuid>",
"statusCode": 409
}J002-23404The requested resource was not found.RETRY_AFTER_FIX
POST /jsr/enrollments (with enrollmentRequestId)- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
J005-23409The enrollment request status does not allow starting the enrollment. · The enrollment request has expired. · +1DO_NOT_RETRYRETRY_AFTER_FIX
POST /jsr/enrollments (with enrollmentRequestId) · the same code covers different scenarios: read message[] to tell them apart- Message
An enrollment request with status <status> cannot start an enrollment- What happened
- The enrollment request status does not allow starting the enrollment.
- Likely cause
- An enrollment request with status <status> cannot start an enrollment
- What to do
- Query the request; if it is in a final state, create a new one.
- Message
The enrollment request has expired- What happened
- The enrollment request has expired.
- Likely cause
- The enrollment request has expired
- What to do
- Create a new enrollment request (POST /jsr/enrollment-requests).
- Message
The enrollment request has no user document yet- What happened
- The enrollment request does not have the user's document yet.
- Likely cause
- The enrollment request has no user document yet
- What to do
- Provide the document (PATCH /jsr/enrollment-requests/:id/document) and try again.
{
"message": [
"An enrollment request with status <status> cannot start an enrollment"
],
"type": "error",
"errorCode": "J005-23",
"traceId": "<uuid>",
"statusCode": 409
}P001-1500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /open-integration/participants/available- Message
Error find subTenant: <internal technical detail>- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error find subTenant: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-1",
"traceId": "<uuid>",
"statusCode": 500
}P002-1404The tenant/sub-tenant registration required for the operation was not found or is incomplete. · The requested resource was not found.RETRY_AFTER_FIX
GET /open-integration/participants/available · the same code covers different scenarios: read message[] to tell them apart- Message
SubTenant with subTenantId <subTenantId> not found- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
SubTenantId must be informed- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"SubTenant with subTenantId <subTenantId> not found"
],
"type": "error",
"errorCode": "P002-1",
"traceId": "<uuid>",
"statusCode": 404
}P003-1400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /open-integration/participants/available- Message
Payment ID or payment DTO must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Payment ID or payment DTO must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"Payment ID or payment DTO must be informed"
],
"type": "error",
"errorCode": "P003-1",
"traceId": "<uuid>",
"statusCode": 400
}P001-2500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /open-integration/participants/registered- Message
Error find subTenant: <internal technical detail>- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error find subTenant: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-2",
"traceId": "<uuid>",
"statusCode": 500
}P002-2404The requested resource was not found.RETRY_AFTER_FIX
GET /open-integration/participants/registered- Message
SubTenantId must be informed- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"SubTenantId must be informed"
],
"type": "error",
"errorCode": "P002-2",
"traceId": "<uuid>",
"statusCode": 404
}P002-3404The requested resource was not found. · The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
POST /open-integration/consents · the same code covers different scenarios: read message[] to tell them apart- Message
Payment request not found: <paymentRequestId>- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Tenant not found: <tenantId>- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"Payment request not found: <paymentRequestId>"
],
"type": "error",
"errorCode": "P002-3",
"traceId": "<uuid>",
"statusCode": 404
}P003-3400The request body or parameters failed format validation. · The payment request has already been consumed (paid). · +2RETRY_AFTER_FIXDO_NOT_RETRY
POST /open-integration/consents · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: organisationId, authorisationServerId; optional: paymentId, payment, redirectUri, platform.
- Message
Payment already consumed: <paymentRequestId>- What happened
- The payment request has already been consumed (paid).
- Likely cause
- The request has already generated a payment.
- What to do
- Do not create another consent for this request. Check the result (GET /payments/consents/:consentId/external or GET /payments/requests/:paymentRequestId). To charge again, create a new request.
- Message
Payment request expired: <paymentRequestId>- What happened
- The payment request has expired.
- Likely cause
- The request deadline (requestExpiresAt) has passed.
- What to do
- Create a new payment request (POST /payments) and restart the journey with the user.
- Message
The payment value is required- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The payment value is required
- What to do
- Adjust the data indicated in message[] and resend.
- Message
qrCode must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- qrCode must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
url must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- url must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "P003-3",
"traceId": "<uuid>",
"statusCode": 400
}P001-4500Failed to cancel at the account holder (timeout, 5xx, or unconfirmed rejection).SAFE_RETRY/CONTACT_SUPPORT
PATCH /open-integration/consents/:consentId/payments/cancel · the same code covers different scenarios: read message[] to tell them apart- Message
Error cancel consent payment: <internal technical detail>- What happened
- Failed to cancel at the account holder (timeout, 5xx, or unconfirmed rejection).
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
Error finding payment: <internal technical detail>- What happened
- Failed to cancel at the account holder (timeout, 5xx, or unconfirmed rejection).
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error cancel consent payment: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-4",
"traceId": "<uuid>",
"statusCode": 500
}P002-4404The tenant/sub-tenant registration required for the operation was not found or is incomplete. · The requested resource was not found.RETRY_AFTER_FIX
PATCH /open-integration/consents/:consentId/payments/cancel · the same code covers different scenarios: read message[] to tell them apart- Message
- dynamic message
- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
- dynamic message
- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
ConsentId must be informed- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"ConsentId must be informed"
],
"type": "error",
"errorCode": "P002-4",
"traceId": "<uuid>",
"statusCode": 404
}P004-4403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
PATCH /open-integration/consents/:consentId/payments/cancel · the same code covers different scenarios: read message[] to tell them apart- Message
SubTenant <id> does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
Payment request does not belong to the subtenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"SubTenant <id> does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "P004-4",
"traceId": "<uuid>",
"statusCode": 403
}P006-4409The consent has no cancellable payments.DO_NOT_RETRY
PATCH /open-integration/consents/:consentId/payments/cancel- Message
Consent with ID <consentId> has no cancellable payments- What happened
- The consent has no cancellable payments.
- Likely cause
- Only PENDENTE, RECEBIDO, EM_PROCESSAMENTO, or PROGRAMADO payments can be cancelled.
- What to do
- Query the consent's payments; the other states are already final.
{
"message": [
"Consent with ID <consentId> has no cancellable payments"
],
"type": "error",
"errorCode": "P006-4",
"traceId": "<uuid>",
"statusCode": 409
}P001-5500Internal EPM failure.SAFE_RETRY/CONTACT_SUPPORT
POST /open-integration/validate · the same code covers different scenarios: read message[] to tell them apart- Message
Error in callback validate- What happened
- Internal EPM failure.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
Error creating consent: <internal technical detail>- What happened
- Internal EPM failure.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error in callback validate"
],
"type": "error",
"errorCode": "P001-5",
"traceId": "<uuid>",
"statusCode": 500
}P002-5404The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
POST /open-integration/validate · the same code covers different scenarios: read message[] to tell them apart- Message
Tenant not found: <tenantId>- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
SubTenant not found: <consentId>- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"Tenant not found: <tenantId>"
],
"type": "error",
"errorCode": "P002-5",
"traceId": "<uuid>",
"statusCode": 404
}P002-6404The tenant/sub-tenant registration required for the operation was not found or is incomplete. · The requested resource was not found.RETRY_AFTER_FIX
POST /open-integration/error-callback/resolve · the same code covers different scenarios: read message[] to tell them apart- Message
Tenant not found: <tenantId>- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
No consent resolved for state <state>- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
No payment record found for state <state>- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Tenant not found: <tenantId>"
],
"type": "error",
"errorCode": "P002-6",
"traceId": "<uuid>",
"statusCode": 404
}P001-7500Failed to create the payment at the account holder, or after creating it. The actual result may be unknown.CONTACT_SUPPORT
POST /open-integration/consents/:consentId/payments- Message
Error creating consent: <internal technical detail>- What happened
- Failed to create the payment at the account holder, or after creating it. The actual result may be unknown.
- Likely cause
- Timeout (30s), network error, or internal failure after the call to the account holder. The EPM marks the request as ERRO, but the payment may have been created without the externalPaymentId being saved.
- What to do
- External infrastructure failure (account holder). Do not retry the operation: contact Lina support with the traceId before offering a new payment to the user. To check the state, use GET /payments/consents/:consentId/external (CONSUMED means a payment was made).
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Error creating consent: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-7",
"traceId": "<uuid>",
"statusCode": 500
}P001-8500Failed to create the payment at the account holder, or after creating it. The actual result may be unknown.CONTACT_SUPPORT
POST /open-integration/payments- Message
Error creating consent: <internal technical detail>- What happened
- Failed to create the payment at the account holder, or after creating it. The actual result may be unknown.
- Likely cause
- Timeout (30s), network error, or internal failure after the call to the account holder. The EPM marks the request as ERRO, but the payment may have been created without the externalPaymentId being saved.
- What to do
- External infrastructure failure (account holder). Do not retry the operation: contact Lina support with the traceId before offering a new payment to the user. To check the state, use GET /payments/consents/:consentId/external (CONSUMED means a payment was made).
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"Error creating consent: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-8",
"traceId": "<uuid>",
"statusCode": 500
}P002-8404The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
POST /open-integration/payments- Message
Tenant not found: <tenantId>- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"Tenant not found: <tenantId>"
],
"type": "error",
"errorCode": "P002-8",
"traceId": "<uuid>",
"statusCode": 404
}P001-9500Failed to cancel at the account holder (timeout, 5xx, or unconfirmed rejection).SAFE_RETRY/CONTACT_SUPPORT
PATCH /open-integration/payments/:paymentId/cancel · the same code covers different scenarios: read message[] to tell them apart- Message
Error cancelling payment: <internal technical detail>- What happened
- Failed to cancel at the account holder (timeout, 5xx, or unconfirmed rejection).
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
Error finding payment: <internal technical detail>- What happened
- Failed to cancel at the account holder (timeout, 5xx, or unconfirmed rejection).
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error cancelling payment: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-9",
"traceId": "<uuid>",
"statusCode": 500
}P002-9404The tenant/sub-tenant registration required for the operation was not found or is incomplete. · The requested resource was not found.RETRY_AFTER_FIX
PATCH /open-integration/payments/:paymentId/cancel · the same code covers different scenarios: read message[] to tell them apart- Message
- dynamic message
- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
- dynamic message
- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
P004-9403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
PATCH /open-integration/payments/:paymentId/cancel · the same code covers different scenarios: read message[] to tell them apart- Message
SubTenant <id> does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
Payment request does not belong to the subtenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"SubTenant <id> does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "P004-9",
"traceId": "<uuid>",
"statusCode": 403
}P006-9409The payment is already cancelled.DO_NOT_RETRY
PATCH /open-integration/payments/:paymentId/cancel- Message
Payment with ID <paymentId> is already cancelled- What happened
- The payment is already cancelled.
- Likely cause
- Payment with ID <paymentId> is already cancelled
- What to do
- Nada a fazer: trate como cancelado.
{
"message": [
"Payment with ID <paymentId> is already cancelled"
],
"type": "error",
"errorCode": "P006-9",
"traceId": "<uuid>",
"statusCode": 409
}P001-10500Internal failure while creating the payment request.SAFE_RETRY/CONTACT_SUPPORT
POST /payments- Message
Error creating payment: <internal technical detail>- What happened
- Internal failure while creating the payment request.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error creating payment: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-10",
"traceId": "<uuid>",
"statusCode": 500
}P002-10404The requested resource was not found.RETRY_AFTER_FIX
POST /payments · the same code covers different scenarios: read message[] to tell them apart- Message
SubTenant with subTenantId <subTenantId> not found / … has no tenant- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
SubTenant with subTenantId <subTenantId> not found / … has no tenant- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"SubTenant with subTenantId <subTenantId> not found / … has no tenant"
],
"type": "error",
"errorCode": "P002-10",
"traceId": "<uuid>",
"statusCode": 404
}P003-10400The request was rejected by an EPM validation rule. · The request body or parameters failed format validation.RETRY_AFTER_FIX
POST /payments · the same code covers different scenarios: read message[] to tell them apart- Message
The data provided is invalid- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The data provided is invalid
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The data provided is invalid- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The data provided is invalid
- What to do
- Adjust the data indicated in message[] and resend.
- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: redirectUri, cpfCnpj, value, creditor; optional: details, externalId, qrCode, debitor, originalRecurringPaymentId, schedule, txId, requestExpiresAt, businessCnpj.
- Message
subTenantId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
qrCode must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- qrCode must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
qrPayload must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- qrPayload must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- invalidDataMessage must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- invalidDataMessage must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
redirectUri must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- redirectUri must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- invalidDataMessage must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- invalidDataMessage must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- invalidDataMessage must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- invalidDataMessage must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
cpfCnpj must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- cpfCnpj must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
accountIspb must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- accountIspb must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- invalidDataMessage must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
qrCode must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- qrCode must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
pixKey must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- pixKey must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"The data provided is invalid"
],
"type": "error",
"errorCode": "P003-10",
"traceId": "<uuid>",
"statusCode": 400
}P004-10403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
POST /payments- Message
The sub-tenant does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"The sub-tenant does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "P004-10",
"traceId": "<uuid>",
"statusCode": 403
}P001-11500Internal EPM failure during an operation that may already have been sent to the account holder.SAFE_RETRY/CONTACT_SUPPORT
PATCH /payments/:paymentId- Message
Error creating payment: <internal technical detail>- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error creating payment: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-11",
"traceId": "<uuid>",
"statusCode": 500
}P002-11404The requested resource was not found.RETRY_AFTER_FIX
PATCH /payments/:paymentId · the same code covers different scenarios: read message[] to tell them apart- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
P003-11400The request body or parameters failed format validation. · A path identifier is not a valid UUID. · +1RETRY_AFTER_FIX
PATCH /payments/:paymentId · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — optional: details, document, externalId, redirectUri, cpfCnpj, value, creditor, debitor, consentId, externalPaymentId.
- Message
paymentId must be a valid UUID.- What happened
- A path identifier is not a valid UUID.
- Likely cause
- paymentId must be a valid UUID.
- What to do
- Send the identifier in UUID format (e.g. 550e8400-e29b-41d4-a716-446655440000), exactly as returned by the API.
- Message
id must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- id must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
paymentDto must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- paymentDto must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "P003-11",
"traceId": "<uuid>",
"statusCode": 400
}P001-12500Internal EPM failure during an operation that may already have been sent to the account holder.SAFE_RETRY/CONTACT_SUPPORT
PATCH /payments/:paymentId/status- Message
Error alter status payment: <internal technical detail>- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error alter status payment: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-12",
"traceId": "<uuid>",
"statusCode": 500
}P002-12404The requested resource was not found.RETRY_AFTER_FIX
PATCH /payments/:paymentId/status · the same code covers different scenarios: read message[] to tell them apart- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
P003-12400The request body or parameters failed format validation. · A path identifier is not a valid UUID. · +1RETRY_AFTER_FIX
PATCH /payments/:paymentId/status · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: status; optional: requestStatus, debitor, externalPaymentId, endToEndId, consentId, orgId, asId, cpfCnpj, localInstrument, apiVersion, paymentCancelledBy, rejectionReason, rejectionReasonDetail, cancellationReason, cancelledFrom, cancelledAt.
- Message
paymentId must be a valid UUID.- What happened
- A path identifier is not a valid UUID.
- Likely cause
- paymentId must be a valid UUID.
- What to do
- Send the identifier in UUID format (e.g. 550e8400-e29b-41d4-a716-446655440000), exactly as returned by the API.
- Message
id must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- id must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
updatePaymentStatus must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- updatePaymentStatus must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "P003-12",
"traceId": "<uuid>",
"statusCode": 400
}P001-13500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /payments · the same code covers different scenarios: read message[] to tell them apart- Message
Error getting tenant: <internal technical detail>- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
Error finding payments: <internal technical detail>- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error getting tenant: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-13",
"traceId": "<uuid>",
"statusCode": 500
}P002-13404The requested resource was not found.RETRY_AFTER_FIX
GET /payments · the same code covers different scenarios: read message[] to tell them apart- Message
SubTenantId must be informed- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"SubTenantId must be informed"
],
"type": "error",
"errorCode": "P002-13",
"traceId": "<uuid>",
"statusCode": 404
}P003-13400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /payments · the same code covers different scenarios: read message[] to tell them apart- Message
The provided status filter is not a valid value- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The provided status filter is not a valid value
- What to do
- Adjust the data indicated in message[] and resend.
- Message
limitPerPage must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- limitPerPage must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
page must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- page must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
startDate must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- startDate must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
endDate must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- endDate must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
startDateFormatted must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- startDateFormatted must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"The provided status filter is not a valid value"
],
"type": "error",
"errorCode": "P003-13",
"traceId": "<uuid>",
"statusCode": 400
}P004-13403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
GET /payments- Message
The sub-tenant does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"The sub-tenant does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "P004-13",
"traceId": "<uuid>",
"statusCode": 403
}P001-14500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /payments/requests- Message
Error finding payments: <internal technical detail>- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error finding payments: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-14",
"traceId": "<uuid>",
"statusCode": 500
}P002-14404The requested resource was not found.RETRY_AFTER_FIX
GET /payments/requests · the same code covers different scenarios: read message[] to tell them apart- Message
SubTenantId must be informed- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"SubTenantId must be informed"
],
"type": "error",
"errorCode": "P002-14",
"traceId": "<uuid>",
"statusCode": 404
}P003-14400The request body or parameters failed format validation. · The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /payments/requests · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Check the endpoint contract (Swagger) for the expected types.
- Message
Admin users must provide subTenantId or cpfCnpj- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Admin users must provide subTenantId or cpfCnpj
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The provided status filter has invalid value(s)- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The provided status filter has invalid value(s)
- What to do
- Adjust the data indicated in message[] and resend.
- Message
The provided type filter has invalid value(s)- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The provided type filter has invalid value(s)
- What to do
- Adjust the data indicated in message[] and resend.
- Message
limitPerPage must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- limitPerPage must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
page must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- page must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
startDate must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- startDate must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
endDate must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- endDate must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
startDateFormatted must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- startDateFormatted must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "P003-14",
"traceId": "<uuid>",
"statusCode": 400
}P001-15500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /payments/requests/:paymentRequestId- Message
Error finding payment request: <internal technical detail>- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error finding payment request: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-15",
"traceId": "<uuid>",
"statusCode": 500
}P002-15404The requested resource was not found.RETRY_AFTER_FIX
GET /payments/requests/:paymentRequestId- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
P003-15400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /payments/requests/:paymentRequestId- Message
paymentRequestId must be a valid UUID.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- paymentRequestId must be a valid UUID.
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"paymentRequestId must be a valid UUID."
],
"type": "error",
"errorCode": "P003-15",
"traceId": "<uuid>",
"statusCode": 400
}P004-15403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
GET /payments/requests/:paymentRequestId- Message
SubTenant <id> does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"SubTenant <id> does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "P004-15",
"traceId": "<uuid>",
"statusCode": 403
}P001-16500Internal EPM failure during an operation that may already have been sent to the account holder.SAFE_RETRY/CONTACT_SUPPORT
PATCH /payments/requests/:paymentRequestId- Message
Error updating payment request CPF/CNPJ: <internal technical detail>- What happened
- Internal EPM failure during an operation that may already have been sent to the account holder.
- Likely cause
- Unexpected error. The EPM does not guarantee that nothing was created/changed before the failure.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error updating payment request CPF/CNPJ: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-16",
"traceId": "<uuid>",
"statusCode": 500
}P002-16404The requested resource was not found.RETRY_AFTER_FIX
PATCH /payments/requests/:paymentRequestId- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
P003-16400The request body or parameters failed format validation. · A path identifier is not a valid UUID. · +1RETRY_AFTER_FIX
PATCH /payments/requests/:paymentRequestId · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: cpfCnpj.
- Message
paymentRequestId must be a valid UUID.- What happened
- A path identifier is not a valid UUID.
- Likely cause
- paymentRequestId must be a valid UUID.
- What to do
- Send the identifier in UUID format (e.g. 550e8400-e29b-41d4-a716-446655440000), exactly as returned by the API.
- Message
The provided CPF/CNPJ data for the update is invalid- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The provided CPF/CNPJ data for the update is invalid
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "P003-16",
"traceId": "<uuid>",
"statusCode": 400
}P004-16403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
PATCH /payments/requests/:paymentRequestId- Message
SubTenant <id> does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"SubTenant <id> does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "P004-16",
"traceId": "<uuid>",
"statusCode": 403
}P001-17500Internal EPM failure.SAFE_RETRY/CONTACT_SUPPORT
PATCH /payments/requests/:paymentRequestId/description- Message
Error updating payment request description: <internal technical detail>- What happened
- Internal EPM failure.
- Likely cause
- Unexpected processing error.
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error updating payment request description: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-17",
"traceId": "<uuid>",
"statusCode": 500
}P002-17404The requested resource was not found.RETRY_AFTER_FIX
PATCH /payments/requests/:paymentRequestId/description- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
P003-17400The request body or parameters failed format validation. · A path identifier is not a valid UUID. · +1RETRY_AFTER_FIX
PATCH /payments/requests/:paymentRequestId/description · the same code covers different scenarios: read message[] to tell them apart- Message
List of validation messages, one per invalid field- What happened
- The request body or parameters failed format validation.
- Likely cause
- Missing required field, wrong type, or invalid format. Each item in message[] names the field (nested fields appear as [parent].[child]: …).
- What to do
- Fix exactly the fields listed in message[] and resend. Request body — required: externalComment.
- Message
paymentRequestId must be a valid UUID.- What happened
- A path identifier is not a valid UUID.
- Likely cause
- paymentRequestId must be a valid UUID.
- What to do
- Send the identifier in UUID format (e.g. 550e8400-e29b-41d4-a716-446655440000), exactly as returned by the API.
- Message
The provided description data is invalid- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- The provided description data is invalid
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"List of validation messages, one per invalid field"
],
"type": "error",
"errorCode": "P003-17",
"traceId": "<uuid>",
"statusCode": 400
}P004-17403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
PATCH /payments/requests/:paymentRequestId/description- Message
SubTenant <id> does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"SubTenant <id> does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "P004-17",
"traceId": "<uuid>",
"statusCode": 403
}P002-18404The requested resource was not found. · The tenant/sub-tenant registration required for the operation was not found or is incomplete.RETRY_AFTER_FIX
GET /payments/:paymentId/external · the same code covers different scenarios: read message[] to tell them apart- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
- dynamic message
- What happened
- The tenant/sub-tenant registration required for the operation was not found or is incomplete.
- Likely cause
- No sub-tenant exists for the identifier sent, or the registration has no tenant/CNPJ/configuration.
- What to do
- Check the subTenantId sent. If it is correct, contact Lina support: the registration needs to be completed.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
- Message
Payment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Payment not found"
],
"type": "error",
"errorCode": "P002-18",
"traceId": "<uuid>",
"statusCode": 404
}P003-18400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /payments/:paymentId/external · the same code covers different scenarios: read message[] to tell them apart- Message
paymentId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- paymentId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Message built at runtime; see message[] in the response.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Message built at runtime; see message[] in the response.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Message built at runtime; see message[] in the response.
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"paymentId must be informed"
],
"type": "error",
"errorCode": "P003-18",
"traceId": "<uuid>",
"statusCode": 400
}P004-18403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
GET /payments/:paymentId/external · the same code covers different scenarios: read message[] to tell them apart- Message
- dynamic message
- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
- dynamic message
- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
P005-18401The account holder institution rejected the authentication of the query made by the EPM.CONTACT_SUPPORT
GET /payments/:paymentId/external- Message
The account holder institution rejected the call authentication- What happened
- The account holder institution rejected the authentication of the query made by the EPM.
- Likely cause
- EPM credentials with the account holder. Does not depend on the integrator's token.
- What to do
- Contact Lina support with the traceId.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"The account holder institution rejected the call authentication"
],
"type": "error",
"errorCode": "P005-18",
"traceId": "<uuid>",
"statusCode": 401
}P006-18409The account holder returned a conflict on the query.NOT_VALIDATED
GET /payments/:paymentId/external- Message
The account holder institution returned a conflict when querying the payment- What happened
- The account holder returned a conflict on the query.
- Likely cause
- The account holder institution returned a conflict when querying the payment
- What to do
- Wait a few seconds and query again; if it persists, contact Lina support.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"The account holder institution returned a conflict when querying the payment"
],
"type": "error",
"errorCode": "P006-18",
"traceId": "<uuid>",
"statusCode": 409
}P001-19500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /payments/:paymentId- Message
Error finding payment: <internal technical detail>- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error finding payment: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-19",
"traceId": "<uuid>",
"statusCode": 500
}P002-19404The requested resource was not found.RETRY_AFTER_FIX
GET /payments/:paymentId- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
P003-19400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /payments/:paymentId · the same code covers different scenarios: read message[] to tell them apart- Message
id must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- id must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
subTenantClientId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantClientId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"id must be informed"
],
"type": "error",
"errorCode": "P003-19",
"traceId": "<uuid>",
"statusCode": 400
}P004-19403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
GET /payments/:paymentId- Message
SubTenant <id> does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"SubTenant <id> does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "P004-19",
"traceId": "<uuid>",
"statusCode": 403
}P001-20500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /payments/consent/:consent_id- Message
Error finding payment: <internal technical detail>- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error finding payment: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-20",
"traceId": "<uuid>",
"statusCode": 500
}P002-20404The requested resource was not found.RETRY_AFTER_FIX
GET /payments/consent/:consent_id · the same code covers different scenarios: read message[] to tell them apart- Message
Payment not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Payment not found"
],
"type": "error",
"errorCode": "P002-20",
"traceId": "<uuid>",
"statusCode": 404
}P002-21404The requested resource was not found.RETRY_AFTER_FIX
GET /payments/consents/:consentId/external · the same code covers different scenarios: read message[] to tell them apart- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
- Message
Consent not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Consent not found"
],
"type": "error",
"errorCode": "P002-21",
"traceId": "<uuid>",
"statusCode": 404
}P003-21400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /payments/consents/:consentId/external- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Message built at runtime; see message[] in the response.
- What to do
- Adjust the data indicated in message[] and resend.
P004-21403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
GET /payments/consents/:consentId/external · the same code covers different scenarios: read message[] to tell them apart- Message
- dynamic message
- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
- Message
- dynamic message
- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
P005-21401The account holder institution rejected the authentication of the query made by the EPM.CONTACT_SUPPORT
GET /payments/consents/:consentId/external- Message
The account holder institution rejected the call authentication- What happened
- The account holder institution rejected the authentication of the query made by the EPM.
- Likely cause
- EPM credentials with the account holder. Does not depend on the integrator's token.
- What to do
- Contact Lina support with the traceId.
- Contact Lina
- Yes, to resolve it. Include the traceId.
{
"message": [
"The account holder institution rejected the call authentication"
],
"type": "error",
"errorCode": "P005-21",
"traceId": "<uuid>",
"statusCode": 401
}P006-21409The account holder returned a conflict on the query.NOT_VALIDATED
GET /payments/consents/:consentId/external- Message
The account holder institution returned a conflict when querying the consent- What happened
- The account holder returned a conflict on the query.
- Likely cause
- The account holder institution returned a conflict when querying the consent
- What to do
- Wait a few seconds and query again; if it persists, contact Lina support.
- Contact Lina
- If it persists or the state is inconclusive. Include the traceId.
{
"message": [
"The account holder institution returned a conflict when querying the consent"
],
"type": "error",
"errorCode": "P006-21",
"traceId": "<uuid>",
"statusCode": 409
}P001-22500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /payments/external/:externalId- Message
Error finding payment: <internal technical detail>- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error finding payment: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-22",
"traceId": "<uuid>",
"statusCode": 500
}P002-22404The requested resource was not found.RETRY_AFTER_FIX
GET /payments/external/:externalId- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
P004-22403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
GET /payments/external/:externalId- Message
SubTenant <id> does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"SubTenant <id> does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "P004-22",
"traceId": "<uuid>",
"statusCode": 403
}P001-23500Internal EPM failure while processing the query.SAFE_RETRY/CONTACT_SUPPORT
GET /payments/txid/:txId · the same code covers different scenarios: read message[] to tell them apart- Message
Error finding payment: <internal technical detail>- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
- Message
Error finding payment: <internal technical detail>- What happened
- Internal EPM failure while processing the query.
- Likely cause
- Unexpected processing error (database, internal dependency, or account holder).
- What to do
- Retry with backoff (2s, 4s, 8s), up to 3 attempts. If the error persists, contact Lina support with the traceId.
- Contact Lina
- Yes, if the error persists after 3 attempts. Include the traceId.
{
"message": [
"Error finding payment: <internal technical detail>"
],
"type": "error",
"errorCode": "P001-23",
"traceId": "<uuid>",
"statusCode": 500
}P002-23404The requested resource was not found.RETRY_AFTER_FIX
GET /payments/txid/:txId- Message
- dynamic message
- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
P003-23400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
GET /payments/txid/:txId · the same code covers different scenarios: read message[] to tell them apart- Message
txId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- txId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
subTenantClientId must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantClientId must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- invalidTxIdMessage must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"txId must be informed"
],
"type": "error",
"errorCode": "P003-23",
"traceId": "<uuid>",
"statusCode": 400
}P004-23403The resource belongs to another tenant or sub-tenant.RETRY_AFTER_FIX
GET /payments/txid/:txId- Message
SubTenant <id> does not belong to the authenticated tenant- What happened
- The resource belongs to another tenant or sub-tenant.
- Likely cause
- The subTenantId (or resource) provided does not belong to the tenant of the credentials used.
- What to do
- Use the credentials of the tenant that owns the resource, or fix the subTenantId sent.
{
"message": [
"SubTenant <id> does not belong to the authenticated tenant"
],
"type": "error",
"errorCode": "P004-23",
"traceId": "<uuid>",
"statusCode": 403
}R003-2400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
GET /schedule-reports/daily- Message
SubTenant with id '<subTenantId>' not found- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- SubTenant with id '<subTenantId>' not found
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"SubTenant with id '<subTenantId>' not found"
],
"type": "error",
"errorCode": "R003-2",
"traceId": "<uuid>",
"statusCode": 400
}R003-3400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
GET /schedule-reports/summary · the same code covers different scenarios: read message[] to tell them apart- Message
startDate must be before or equal to endDate- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- startDate must be before or equal to endDate
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Tenant with id '<userTenantId>' not found- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Tenant with id '<userTenantId>' not found
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Access denied: SubTenant '<subTenantId>' does not belong to your tenant- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Access denied: SubTenant '<subTenantId>' does not belong to your tenant
- What to do
- Adjust the data indicated in message[] and resend.
- Message
SubTenant with id '<subTenantId>' not found- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- SubTenant with id '<subTenantId>' not found
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"startDate must be before or equal to endDate"
],
"type": "error",
"errorCode": "R003-3",
"traceId": "<uuid>",
"statusCode": 400
}R003-4400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
GET /schedule-reports/fails · the same code covers different scenarios: read message[] to tell them apart- Message
reportIds query parameter must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- reportIds query parameter must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
At least one report ID must be provided- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- At least one report ID must be provided
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Tenant with id '<userTenantId>' not found- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Tenant with id '<userTenantId>' not found
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"reportIds query parameter must be provided"
],
"type": "error",
"errorCode": "R003-4",
"traceId": "<uuid>",
"statusCode": 400
}R002-7404The requested resource was not found.Portal / tenant managementRETRY_AFTER_FIX
GET /payments-view/automatic-payment-request/:automaticPaymentRequestId/payments- Message
Automatic payment request <automaticPaymentRequestId> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Automatic payment request <automaticPaymentRequestId> not found"
],
"type": "error",
"errorCode": "R002-7",
"traceId": "<uuid>",
"statusCode": 404
}R002-8404The requested resource was not found.Portal / tenant managementRETRY_AFTER_FIX
GET /payments-view/automatic-payment/:automaticPaymentId/retried-payments- Message
Resource <automaticPaymentOrPaymentId> not found as automatic payment or payment- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Resource <automaticPaymentOrPaymentId> not found as automatic payment or payment"
],
"type": "error",
"errorCode": "R002-8",
"traceId": "<uuid>",
"statusCode": 404
}W003-1400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
POST /webhooks · the same code covers different scenarios: read message[] to tell them apart- Message
SubTenant with subTenantId:'<subTenantId>' do not exists.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- SubTenant with subTenantId:'<subTenantId>' do not exists.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Webhook with type:'<type>' already exists.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Webhook with type:'<type>' already exists.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
toSave must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- toSave must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"SubTenant with subTenantId:'<subTenantId>' do not exists."
],
"type": "error",
"errorCode": "W003-1",
"traceId": "<uuid>",
"statusCode": 400
}W003-2400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
PATCH /webhooks/:webhookId · the same code covers different scenarios: read message[] to tell them apart- Message
SubTenant with subTenantId:'<subTenantId>' do not exists.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- SubTenant with subTenantId:'<subTenantId>' do not exists.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
webhookId is required- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- webhookId is required
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Webhook with ID <webhookId> not found- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Webhook with ID <webhookId> not found
- What to do
- Adjust the data indicated in message[] and resend.
- Message
webhookReturn must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- webhookReturn must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"SubTenant with subTenantId:'<subTenantId>' do not exists."
],
"type": "error",
"errorCode": "W003-2",
"traceId": "<uuid>",
"statusCode": 400
}W006-2409The current state of the resource does not allow this operation.Portal / tenant managementCHECK_STATUS_FIRST
PATCH /webhooks/:webhookId- Message
Webhook with type:'<type>' already exists.- What happened
- The current state of the resource does not allow this operation.
- Likely cause
- Webhook with type:'<type>' already exists.
- What to do
- Query the resource (GET) to learn its current state before any new action. Do not resend the same request.
{
"message": [
"Webhook with type:'<type>' already exists."
],
"type": "error",
"errorCode": "W006-2",
"traceId": "<uuid>",
"statusCode": 409
}W003-3400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
PATCH /webhooks/sub-tenant/:subTenantId · the same code covers different scenarios: read message[] to tell them apart- Message
subTenantId is required- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantId is required
- What to do
- Adjust the data indicated in message[] and resend.
- Message
type is required- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- type is required
- What to do
- Adjust the data indicated in message[] and resend.
- Message
SubTenant with subTenantId:'<subTenantId>' do not exists.- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- SubTenant with subTenantId:'<subTenantId>' do not exists.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
Webhook not found- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Webhook not found
- What to do
- Adjust the data indicated in message[] and resend.
- Message
webhookReturn must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- webhookReturn must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"subTenantId is required"
],
"type": "error",
"errorCode": "W003-3",
"traceId": "<uuid>",
"statusCode": 400
}W002-4404The requested resource was not found.Portal / tenant managementRETRY_AFTER_FIX
GET /webhooks/:webhookId- Message
Webhook with ID <webhookId> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Webhook with ID <webhookId> not found"
],
"type": "error",
"errorCode": "W002-4",
"traceId": "<uuid>",
"statusCode": 404
}W003-4400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
GET /webhooks/:webhookId- Message
webhookId is required- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- webhookId is required
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"webhookId is required"
],
"type": "error",
"errorCode": "W003-4",
"traceId": "<uuid>",
"statusCode": 400
}W002-5404The requested resource was not found.Portal / tenant managementRETRY_AFTER_FIX
GET /webhooks- Message
Webhooks not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Webhooks not found"
],
"type": "error",
"errorCode": "W002-5",
"traceId": "<uuid>",
"statusCode": 404
}W003-5400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
GET /webhooks- Message
subTenantId is required- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- subTenantId is required
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"subTenantId is required"
],
"type": "error",
"errorCode": "W003-5",
"traceId": "<uuid>",
"statusCode": 400
}W002-6404The requested resource was not found.Portal / tenant managementRETRY_AFTER_FIX
DELETE /webhooks/:webhookId- Message
Webhook with ID <webhookId> not found- What happened
- The requested resource was not found.
- Likely cause
- Identifier does not exist, belongs to another environment (sandbox x production), or to another sub-tenant.
- What to do
- Check the identifier sent (use the value returned when the resource was created) and the environment.
{
"message": [
"Webhook with ID <webhookId> not found"
],
"type": "error",
"errorCode": "W002-6",
"traceId": "<uuid>",
"statusCode": 404
}W003-6400The request was rejected by an EPM validation rule.Portal / tenant managementRETRY_AFTER_FIX
DELETE /webhooks/:webhookId- Message
webhookId is required- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- webhookId is required
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"webhookId is required"
],
"type": "error",
"errorCode": "W003-6",
"traceId": "<uuid>",
"statusCode": 400
}X003-1400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /pix/details · the same code covers different scenarios: read message[] to tell them apart- Message
Exactly one of pixKey or qrCode must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Exactly one of pixKey or qrCode must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
- dynamic message
- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Message built at runtime; see message[] in the response.
- What to do
- Adjust the data indicated in message[] and resend.
- Message
qrPayload must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- qrPayload must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
qrPayload must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- qrPayload must be informed
- What to do
- Adjust the data indicated in message[] and resend.
- Message
pixKey must be informed- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- pixKey must be informed
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"Exactly one of pixKey or qrCode must be informed"
],
"type": "error",
"errorCode": "X003-1",
"traceId": "<uuid>",
"statusCode": 400
}X003-2400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /linked-journey/jsr- Message
enrollment.enrollment.document is required for the data consent- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- enrollment.enrollment.document is required for the data consent
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"enrollment.enrollment.document is required for the data consent"
],
"type": "error",
"errorCode": "X003-2",
"traceId": "<uuid>",
"statusCode": 400
}X003-3400The request was rejected by an EPM validation rule.RETRY_AFTER_FIX
POST /linked-journey/automatic-payments · the same code covers different scenarios: read message[] to tell them apart- Message
Only recurringConfiguration.sweeping is allowed in the optimized automatic payments journey- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- Only recurringConfiguration.sweeping is allowed in the optimized automatic payments journey
- What to do
- Adjust the data indicated in message[] and resend.
- Message
recurringConsent.loggedUser.document.identification is required for the data consent- What happened
- The request was rejected by an EPM validation rule.
- Likely cause
- recurringConsent.loggedUser.document.identification is required for the data consent
- What to do
- Adjust the data indicated in message[] and resend.
{
"message": [
"Only recurringConfiguration.sweeping is allowed in the optimized automatic payments journey"
],
"type": "error",
"errorCode": "X003-3",
"traceId": "<uuid>",
"statusCode": 400
}Account holder business errors (EC001–EC004)
Known account holder rejections with an EPM-specific message. They take
precedence over the E0xx codes.
| errorCode | Status | What happened | What to do | Retry |
|---|---|---|---|---|
EC001 | 400 | The authorization returned by the institution has expired or is invalid (authorization callback). | Do not resend the same code/state. Restart the consent flow with the user. | DO_NOT_RETRY |
EC002 | 400 | Payment date invalid for the account holder. | For single payments, use the current date (Brasília time zone). Fix it and create a new consent. | RETRY_AFTER_FIX |
EC003 | 424 | The institution's platform could not resolve the request. | Check organisationId and authorisationServerId (use the values from GET /open-integration/participants/available). Correct? Contact Lina. | RETRY_AFTER_FIX |
EC004 | 424 | The institution could not resolve the request (generic platform error). | Check the resource state; if it persists, advise the user to try later or choose another institution, and contact Lina. | NOT_VALIDATED |
Account holder rejections (E001–E070)
These codes are returned to the client as errorCode when the account
holder responds 422 with a cataloged name: status 424 and message
"<operation>: <ERROR_NAME>" (e.g. Error updating RP Payment: SALDO_INSUFICIENTE).
In other flows the same rejection may arrive as EPM-424, EPM-500, or an
internal route code. The classification below is inferred from the OFB
semantics of the name, not from testing.
| Code | Name | Origin | Who acts | Retry | Guidance | Suggested user-facing text |
|---|---|---|---|---|---|---|
| E001 | CHALLENGE_INVALIDO | JSR / Enrollments | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | Oops! Something went wrong. We couldn't enable biometric payments. We'll redirect you to your bank's app to authorize your account registration again. (Restart step) |
| E002 | CONTA_DEBITO_DIVERGENTE_CONSENTIMENTO_VINCULO | JSR / Enrollments | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | Oops! Something went wrong. We couldn't complete your payment right now. No amount was debited from your account. To pay now, you can complete the transaction without enabling biometric payments. (Pay without enrollment) |
| E003 | CONTA_INVALIDA | JSR / Enrollments | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | Oops! Something went wrong. We couldn't open your institution's app because the account is not compatible with biometric payments or does not exist. To pay, choose another bank and try again. (Restart everything) |
| E004 | ERRO_IDEMPOTENCIA | JSR / Enrollments | Integrator | CHECK_STATUS_FIRST | Idempotency conflict at the account holder: the same key was used with different content. Check the state; do not resend. | Oops! Something went wrong. We couldn't open your institution's app due to a temporary problem. Please try again in a few moments. (Try again) |
| E005 | EXTENSION_INVALIDA | JSR / Enrollments | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | Oops! Something went wrong. We couldn't enable biometric payments. We'll redirect you to your bank's app to authorize your account registration again. (Restart step) |
| E006 | FALTAM_SINAIS_OBRIGATORIOS_DA_PLATAFORMA | JSR / Enrollments | Lina support | CONTACT_SUPPORT | Platform/participant configuration. Contact Lina support with the traceId. | Oops! Something went wrong. We couldn't open your institution's app due to a temporary problem. Please try again in a few moments. (Try again) |
| E007 | MAXIMO_CHALLENGES_ATINGIDO | JSR / Enrollments | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | Oops! Something went wrong. We couldn't process your institution's authorization. We'll redirect you to your bank's app to authorize your account registration again. (Restart step) |
| E008 | MOTIVO_REJEICAO | JSR / Enrollments | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E009 | MOTIVO_REVOGACAO | JSR / Enrollments | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E010 | ORIGEM_FIDO_INVALIDA | JSR / Enrollments | Lina support | CONTACT_SUPPORT | Platform/participant configuration. Contact Lina support with the traceId. | Oops! Something went wrong. We couldn't enable biometric payments. We'll redirect you to your bank's app to authorize your account registration again. (Restart step) |
| E011 | PARAMETRO_INVALIDO | JSR / Enrollments | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | Oops! Something went wrong. We couldn't open your institution's app due to a temporary problem. Please try again in a few moments. (Try again) |
| E012 | PARAMETRO_NAO_INFORMADO | JSR / Enrollments | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | Oops! Something went wrong. We couldn't open your institution's app. To pay, choose the bank again and try again. (Restart everything) |
| E013 | PERMISSAO_INVALIDA_VINCULO_CONSENTIMENTO | JSR / Enrollments | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | Oops! Something went wrong. We couldn't process your payment right now. No amount was debited from your account. To pay now, you can complete the transaction without enabling biometric payments. (Pay without enrollment) |
| E014 | PERMISSOES_INVALIDAS | JSR / Enrollments | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | Oops! Something went wrong. We couldn't open your institution's app. To pay, choose the bank again and try again. (Restart everything) |
| E015 | PUBLIC_KEY_INVALIDA | JSR / Enrollments | Lina support | CONTACT_SUPPORT | Platform/participant configuration. Contact Lina support with the traceId. | Oops! Something went wrong. We couldn't enable biometric payments. We'll redirect you to your bank's app to authorize your account registration again. (Restart step) |
| E016 | REJEITADO_OUTRO_SEM_DETALHES | JSR / Enrollments | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E017 | REVOGADO_OUTRO_SEM_DETALHES | JSR / Enrollments | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E018 | RISCO | JSR / Enrollments | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | Oops! Something went wrong. We couldn't complete your payment right now for security reasons. To pay, choose a bank and try again. (Restart everything) |
| E019 | RP_ID_HASH_INVALIDO | JSR / Enrollments | Lina support | CONTACT_SUPPORT | Platform/participant configuration. Contact Lina support with the traceId. | Oops! Something went wrong. We couldn't enable biometric payments. We'll redirect you to your bank's app to authorize your account registration again. (Restart step) |
| E020 | RP_INVALIDA | JSR / Enrollments | Lina support | CONTACT_SUPPORT | Platform/participant configuration. Contact Lina support with the traceId. | Oops! Something went wrong. We couldn't process your institution's authorization. We'll redirect you to your bank's app to authorize your account registration again. (Restart step) |
| E021 | STATUS_CONSENTIMENTO_INVALIDO | JSR / Enrollments | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | Oops! Something went wrong. We couldn't process your payment right now due to a temporary problem. No amount was debited from your account. Please try again in a few moments. (Try again) |
| E022 | STATUS_INVALIDO | JSR / Enrollments | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E023 | STATUS_VINCULO_INVALIDO | JSR / Enrollments | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | Oops! Something went wrong. We couldn't open your institution's app due to a temporary problem. Please try again in a few moments. (Try again) |
| E024 | AUTENTICACAO_DIVERGENTE | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E025 | CAMPO_NAO_PERMITIDO | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E026 | CANCELAMENTO_FORA_PERIODO_PERMITIDO | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E027 | CHAVE_PIX_DIVERGENTE_AGENDAMENTO_LIQUIDACAO | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E028 | COBRANCA_INVALIDA | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E029 | CONSENTIMENTO_INVALIDO | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E030 | CONSENTIMENTO_NAO_PERMITE_CANCELAMENTO | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E031 | CONSENTIMENTO_PENDENTE_AUTORIZACAO | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E032 | CONTA_NAO_PERMITE_PAGAMENTO | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E033 | CONTAS_ORIGEM_DESTINO_IGUAIS | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E034 | DATA_PAGAMENTO_INVALIDA | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E035 | DETALHE_EDICAO_INVALIDO | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E036 | DETALHE_PAGAMENTO_INVALIDO | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E037 | DETALHE_TENTATIVA_INVALIDO | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E038 | FALHA_AGENDAMENTO_PAGAMENTOS | Payments / Automatic | Lina support | CONTACT_SUPPORT | Infrastructure failure at the account holder/SPI/DICT/ICP. Do not retry the operation: contact Lina support with the traceId. To check the state, query the resource (GET). | |
| E039 | FALHA_INFRAESTRUTURA | Payments / Automatic | Lina support | CONTACT_SUPPORT | Infrastructure failure at the account holder/SPI/DICT/ICP. Do not retry the operation: contact Lina support with the traceId. To check the state, query the resource (GET). | |
| E040 | FALHA_INFRAESTRUTURA_DETENTORA | Payments / Automatic | Lina support | CONTACT_SUPPORT | Infrastructure failure at the account holder/SPI/DICT/ICP. Do not retry the operation: contact Lina support with the traceId. To check the state, query the resource (GET). | |
| E041 | FALHA_INFRAESTRUTURA_DICT | Payments / Automatic | Lina support | CONTACT_SUPPORT | Infrastructure failure at the account holder/SPI/DICT/ICP. Do not retry the operation: contact Lina support with the traceId. To check the state, query the resource (GET). | |
| E042 | FALHA_INFRAESTRUTURA_ICP | Payments / Automatic | Lina support | CONTACT_SUPPORT | Infrastructure failure at the account holder/SPI/DICT/ICP. Do not retry the operation: contact Lina support with the traceId. To check the state, query the resource (GET). | |
| E043 | FALHA_INFRAESTRUTURA_PSP_RECEBEDOR | Payments / Automatic | Lina support | CONTACT_SUPPORT | Infrastructure failure at the account holder/SPI/DICT/ICP. Do not retry the operation: contact Lina support with the traceId. To check the state, query the resource (GET). | |
| E044 | FALHA_INFRAESTRUTURA_SPI | Payments / Automatic | Lina support | CONTACT_SUPPORT | Infrastructure failure at the account holder/SPI/DICT/ICP. Do not retry the operation: contact Lina support with the traceId. To check the state, query the resource (GET). | |
| E045 | FALTAM_SINAIS_OBRIGATORIOS_PLATAFORMA | Payments / Automatic | Lina support | CONTACT_SUPPORT | Platform/participant configuration. Contact Lina support with the traceId. | |
| E046 | FLUXO_NAO_SUPORTADO_PRODUTO | Payments / Automatic | Lina support | CONTACT_SUPPORT | Platform/participant configuration. Contact Lina support with the traceId. | |
| E047 | FORA_PRAZO_PERMITIDO | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E048 | FORMA_PAGAMENTO_INVALIDA | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E049 | FUNCIONALIDADE_NAO_HABILITADA | Payments / Automatic | Lina support | CONTACT_SUPPORT | Platform/participant configuration. Contact Lina support with the traceId. | |
| E050 | LIMITE_PERIODO_QUANTIDADE_EXCEDIDO | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E051 | LIMITE_PERIODO_VALOR_EXCEDIDO | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E053 | LIMITE_VALOR_TOTAL_CONSENTIMENTO_EXCEDIDO | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E054 | LIMITE_VALOR_TRANSACAO_CONSENTIMENTO_EXCEDIDO | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E055 | NAO_INFORMADO | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E056 | NAO_PERMITIDO | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E057 | PAGAMENTO_DIVERGENTE_CONSENTIMENTO | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E058 | PAGAMENTO_NAO_PERMITE_CANCELAMENTO | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E059 | PAGAMENTO_RECUSADO_DETENTORA | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E060 | PAGAMENTO_RECUSADO_SPI | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E061 | PERMISSAO_INSUFICIENTE | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E062 | PROPOSITO_INVALIDO | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). | |
| E063 | QRCODE_INVALIDO | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E064 | REJEITADO_USUARIO | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E065 | SALDO_INSUFICIENTE | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E066 | TEMPO_EXPIRADO_AUTORIZACAO | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E067 | TEMPO_EXPIRADO_CONSUMO | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E068 | TITULARIDADE_INCONSISTENTE | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E069 | VALOR_ACIMA_LIMITE | Payments / Automatic | End user | DO_NOT_RETRY | Rejection related to the account, authorization, limit, or a user/institution decision. Guide the user; a new attempt only makes sense after they resolve the cause (e.g. balance, limit) or start a new flow. | |
| E070 | VALOR_INVALIDO | Payments / Automatic | Integrator | RETRY_AFTER_FIX | Data sent does not comply with the account holder's rule. Fix the indicated field and redo the operation (new flow, if the consent has already been consumed). |
Generic and non-standard codes
Generic codes (EPM-<status>) appear when the exception has no mapped
errorCode. The message is generic and ends with “Contact support informing the
traceId of this response.”
| errorCode | Status | When it appears | What to do | Retry |
|---|---|---|---|---|
EPM-400 | 400 | Validation without a route code (e.g. POST /automatic-payments/recurring-payments, /linked-journey/*) or a malformed identifier. | Fix the field; the generic message does not say which one — compare with the contract. | RETRY_AFTER_FIX |
EPM-401 | 401 | Missing, invalid, or expired token (routes without a specific code). | Renew the access token and resend. | RETRY_AFTER_FIX |
EPM-403 | 403 | The client does not have the role required by the route. | Confirm you are using the right credentials (tenant x sub-tenant); if so, ask Lina to grant access. | CONTACT_SUPPORT |
EPM-404 | 404 | Resource not found in a scenario without a code. | Check the identifier and the environment. | RETRY_AFTER_FIX |
EPM-409 | 409 | State conflict in a scenario without a code. | Query the resource before acting. | CHECK_STATUS_FIRST |
EPM-424 | 424 | The account holder rejected the request (422 without a cataloged name) or responded 5xx. | External failure (account holder infrastructure or a rejection without a cataloged name). Do not retry; contact Lina with the traceId. To check the state, query the resource (GET). | CONTACT_SUPPORT |
EPM-500 | 500 | Unexpected error, including timeout or network error with the account holder when creating consents and recurring payments. | Retry with backoff (2s, 4s, 8s), up to 3 attempts. If it persists, contact Lina with the traceId. | SAFE_RETRY/CONTACT_SUPPORT |
PAYMENT_NOT_ALLOWED | 422 | Payer or payee on a restricted list. | Tell the user the operation cannot be completed. Do not retry. | DO_NOT_RETRY |
EPM-MTLS-001 | 400 | mTLS certificate domain not authorized for the tenant. | Use the registered domain or ask Lina to register the new domain. | RETRY_AFTER_FIX |
MISSING_API_KEYINVALID_API_KEY | 401 | /wake/* routes: X-Api-Key header missing or invalid. | Send the current API key provided by Lina. | RETRY_AFTER_FIX |