Skip to main content
Authenticate as a user or with a resource to obtain a JWT bearer token.
POST /api/v1/auth/sign-in Authenticate using one of three methods: mobile device credentials, a resource code (for payment contexts), or email and password.

Parameters

Body

NameTypeRequiredDescription
typeenumYesmobile-device, resource, or email-password
dataobjectYesCredential data — shape depends on type
When type is mobile-device:
NameTypeRequiredDescription
data.installationIdstringYesDevice installation ID, 32–128 characters
data.passwordstringYesDevice password, 32–256 characters
When type is resource:
NameTypeRequiredDescription
data.resourcestringYesResource identifier, 4–128 characters. Format: voucher::context::code::<code>
When type is email-password:
NameTypeRequiredDescription
data.emailstringYesEmail address, 3–128 characters
data.passwordstringYesAccount password, 8–256 characters

Request examples

Payer sign-in (mobile device)

curl --request POST 'https://payments.bleepay.com/api/v1/auth/sign-in' \
  --header 'Content-Type: application/json' \
  --data '{
    "type": "mobile-device",
    "data": {
      "installationId": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6",
      "password": "your-device-password-minimum-32-chars"
    }
  }'

Payee sign-in (resource / context code)

curl --request POST 'https://payments.bleepay.com/api/v1/auth/sign-in' \
  --header 'Content-Type: application/json' \
  --data '{
    "type": "resource",
    "data": {
      "resource": "voucher::context::code::A1B2C3"
    }
  }'

Email sign-in

curl --request POST 'https://payments.bleepay.com/api/v1/auth/sign-in' \
  --header 'Content-Type: application/json' \
  --data '{
    "type": "email-password",
    "data": {
      "email": "user@example.com",
      "password": "your-password"
    }
  }'

Response

Response schema

FieldTypeDescription
authorizationobjectAuthorization payload
authorization.tokenstringJWT bearer token for subsequent requests

Example response

{
  "authorization": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
  }
}

Error responses

StatusCodeDescription
400invalid_credentialsThe provided credentials are invalid
400invalid_typeThe type field is missing or unsupported
429rate_limitToo many sign-in attempts — wait and retry