Pular para o conteúdo

Authorise payment

Completes the JSR payment after the payer performs the FIDO2 gesture (navigator.credentials.get()). Send enrollmentId, optional paymentRequestId (the id from Create payment consent), riskSignals, and fidoAssertion matching the WebAuthn credential.

The ASPSP authorises and settles the Pix; the envelope data follows RetornoPaymentRequestDto (request-level status, payments[], etc.).

POST/api/v1/jsr/payments

Authorise consent and make payment

Submits FIDO assertion and risk signals to execute the JSR Pix payment.

Auth: Bearer Token

Cabeçalhos

2 campos
subTenantId
headerstring

Subtenant identifier.

x-client-ip
headerstring

End-user client IP.

Corpo da requisição

4 campos
enrollmentId
bodystring

Authorised enrollment used for this payment.

paymentRequestId
bodystring

Payment request id from Create payment consent (`data.id`). Optional in OpenAPI — send when your integration requires it.

riskSignals
bodyobject

Risk signals. OpenAPI lists many optional fields (geolocation, integrity, etc.); below are commonly required ones.

deviceId
bodystring
osVersion
bodystring
userTimeZoneOffset
bodystring
language
bodystring
screenDimensions
bodyobject
width
bodynumber
height
bodynumber
accountTenure
bodystring

User registration date on your platform.

isRootedDevice
bodyboolean

Android/iOS restrictions may apply.

screenBrightness
bodynumber

Platform-specific brightness.

elapsedTimeSinceBoot
bodynumber

Milliseconds since boot.

geolocation
bodyobject

Optional — latitude, longitude, type COARSE|FINE|INFERRED.

latitude
bodynumber
longitude
bodynumber
type
bodystring
fidoAssertion
bodyobject

WebAuthn assertion from navigator.credentials.get.

id
bodystring

Credential id base64url.

rawId
bodystring

Same as id mapping.

type
bodystring
response
bodyobject
clientDataJSON
bodystring

Base64url.

authenticatorData
bodystring

Base64url.

signature
bodystring

Base64url.

userHandle
bodystring

Base64url or empty string if absent.

clientExtensionResults
bodyobject

Browser extension results.

curl --request POST \
  --url 'https://embedded-payment-manager.hml.linaob.com.br/api/v1/jsr/payments' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer <SEU_TOKEN>' \
  --header 'subTenantId: subtenant_abc123' \
  --header 'x-client-ip: 198.21.104.1' \
  --data '{
  "enrollmentId": "enr_abc123",
  "paymentRequestId": "pay_req_xyz",
  "riskSignals": {
    "deviceId": "00aa11bb22cc33dd",
    "osVersion": "17.2",
    "userTimeZoneOffset": "-03:00",
    "language": "pt",
    "screenDimensions": {
      "width": 390,
      "height": 844
    },
    "accountTenure": "2023-01-01",
    "geolocation": {
      "latitude": -23.5,
      "longitude": -46.6,
      "type": "COARSE"
    }
  },
  "fidoAssertion": {
    "type": "public-key"
  }
}'

Response

200Payment processed; payment request payload returned.
Response body
object
  • dataobjectrequired

    RetornoPaymentRequestDto — full creditor/debitor in OpenAPI.

    • idstringrequired

      Payment request id.

    • consentIdstring· nullable

      Consent id.

    • valuenumberrequired

      Total value BRL.

    • statusstringrequired

      PENDENTE | EM_PROCESSAMENTO | CONSUMIDO | EXPIRADO | CANCELADO | ERRO_NA_DETENTORA | ERRO

    • creditorobjectrequired
    • paymentsarray of objectsrequired

      Installments / legs with statuses.

  • messagestring

    Response message.

  • typestring

    Envelope type.

  • statusCodeinteger· nullable

    HTTP status in envelope.

200 · Payment processed; payment request payload returned.
{
  "data": {
    "id": "pay_req_xyz",
    "consentId": "consent_xyz",
    "value": 1500.5,
    "status": "CONSUMIDO",
    "creditor": {
      "name": "Merchant SA",
      "personType": "PESSOA_JURIDICA",
      "cpfCnpj": "12345678000195",
      "accountNumber": "1234567890",
      "accountIssuer": "0001",
      "accountIspb": "12345678",
      "accountType": "CACC"
    },
    "payments": [
      {
        "id": "pay_leg_1",
        "dueDate": "2024-06-01T12:00:00Z",
        "status": "PAGO",
        "txId": "E12345678202406101200abcd1234"
      }
    ]
  },
  "message": "OK",
  "type": "success",
  "statusCode": 200
}

Next steps

  • Compare payment leg status values with Instant Pix status tables for UX copy.