Create optimized binding
Creates the Open Finance data consent and the JSR enrollment in a single call, so the payer authenticates only once at the account holder. This is the entry point of the Linked Journey (JSR) — for the Sweeping variant, see Linked journey (Smart Pix) and Create optimized automatic payment.
The request body is the same contract as
Create enrollment (POST /jsr/enrollments). The only difference is
server-side: the data consent is created automatically and correlated to the enrollment via the
journey field sent to the account holder, so the holder presents a single combined authorisation
screen (data + payment) instead of two separate ones.
On 201 Created, persist data.id (the enrollment id — use it exactly like a normal JSR
enrollment, in Enrollment device options,
Register enrollment device, and later JSR payments) and
data.dataConsentId (use it on
Get data consent), plus data.flowId for
observability — then redirect the payer to data.redirectUrl.
/api/v1/linked-journey/jsrCreate optimized binding
Creates the data consent and the JSR enrollment in one call and returns redirectUrl and dataConsentId.
Headers
2 campossubTenantId●Target sub-tenant of the request, used together with the token to resolve the tenant context.
X-Client-IP●End-user client IP, forwarded to the account holder as part of the risk signals.
Request body
10 campospaymentIdId of the single payment associated with this binding (mutually optional with automaticPaymentId).
automaticPaymentIdId of the automatic payment associated with this binding (mutually optional with paymentId).
organisationId●OrganisationId from Get registered participants (max 36 characters).
authorisationServerId●Authorisation server id from Get registered participants (max 36 characters).
businessTypeBusiness document type, when the holder is a legal entity.
businessIdentityBusiness document number (digits only) used on the data consent, when applicable.
productTypeProduct type label.
enrollment●Enrollment metadata and optional debtor account hints.
document●Payer document (CPF) of the enrollment holder.
externalIdYour correlation id for the enrollment.
deviceNameHuman-readable device label.
debtorOptional debtor account hints.
accountNumber●accountIssuer●accountIspb●accountType●riskSignals●Risk signals for the enrollment step. Additional optional fields exist in the OpenAPI spec.
deviceId●userTimeZoneOffset●language●screenDimensions●width●height●accountTenure●Date since when the payer is registered on your platform.
osVersionOS version.
elapsedTimeSinceBootMilliseconds since boot.
screenBrightnessScreen brightness where applicable.
isRootedDeviceWhether the device is rooted.
redirectUri●Relying-party URL after bank confirmation. Must parse fragment parameters code, state, and id_token.
curl --request POST \
--url 'https://embedded-payment-manager.hml.linaob.com.br/api/v1/linked-journey/jsr' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <SEU_TOKEN>' \
--header 'subTenantId: subtenant_abc123' \
--header 'X-Client-IP: 198.21.104.1' \
--data '{
"paymentId": "payment123",
"automaticPaymentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"organisationId": "74e929d9-33b6-4d85-8ba7-c146c867a817",
"authorisationServerId": "c8f0bf49-4744-4933-8960-7add6e590841",
"businessType": "CNPJ",
"businessIdentity": "12345678000195",
"productType": "single_payment",
"enrollment": {
"document": "39033521016",
"externalId": "ext123",
"deviceName": "device123",
"debtor": {
"accountNumber": "1234567890",
"accountIssuer": "0001",
"accountIspb": "12345678",
"accountType": "CACC"
}
},
"riskSignals": {
"deviceId": "00aa11bb22cc33dd",
"userTimeZoneOffset": "-03",
"language": "pt",
"screenDimensions": {
"width": 1920,
"height": 1080
},
"accountTenure": "2023-01-01",
"osVersion": "14",
"elapsedTimeSinceBoot": 6356027,
"screenBrightness": 255,
"isRootedDevice": false
},
"redirectUri": "https://example.com/redirect"
}'Response
- dataobjectrequired
- idstringrequired
Enrollment identifier — use it in device registration and later JSR payment calls.
- redirectUrlstring
URL where the payer authorises both the data consent and the enrollment at the account holder.
- dataConsentIdstring· nullable
Data consent created at Data Link in this journey — use it on Get data consent.
- flowIdstring· nullable
Flow correlation identifier, used for observability in Datadog.
- messagestring
Response message.
- typestring
Envelope type (for example success).
- statusCodeinteger· nullable
HTTP status code.
{
"type": "success",
"message": "Enrollment created successfully",
"data": {
"id": "enr_abc123",
"redirectUrl": "https://auth.holder.example.com.br/auth?request=eyJhbGciOi...",
"dataConsentId": "urn:raidiambank:consent:460338f5-1fa6-4434-92dd-be47be181d18",
"flowId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}Next steps
- Get data consent — poll
dataConsentIduntilstatusisAUTHORISEDand readuserId. - Get user accounts — list the payer accounts once the data consent is authorised.
- Enrollment device options — exchange the bank redirect's fragment parameters for FIDO2 registration options; from here on the flow is identical to a plain JSR enrollment.