Documentation

Teya, all rights reserved. 2022 ©

Updated 16.03.2026


Consumer Loans API v3
REST API

Authentication

Contact Teya for access information at hjalp@teya.is or 560 1600.

All API requests require HTTP Basic Authentication. Include the Authorization header with Base64-encoded username:password credentials.

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=


API Endpoints

List of endpoints from the Consumer Loans API v3 are used for the eCommerce loan process:

  • List Payment Methods - GET /online/payment - to display available payment options to the customer.
  • Create Token (Web) - POST /online/token/web - to create a token that authorizes temporary access to Teya's self-service portal.
  • Create Token (SMS) - POST /online/token/sms - to send an SMS with a loan URL and pre-register merchant information.
  • Check Loan Status - GET /online/status - to poll for loan process status.
  • Validate Loan - PUT /online/validate - to validate that the customer successfully created a loan.
  • Cancel Loan - PUT /online/cancel - to cancel the loan process.
  • Loan Advertisement - GET /helpers/advert? - Calculates information for product advertising purposes.

Create Token (Web)

Creates a token and returns it. The merchant uses this token to redirect the customer to Teya's self-service portal for eCommerce loan applications.

Request

POST /online/token/web
Content-Type: application/json

Parameters (JSON Body)

TokenRequest object.

Example Request

{
  "SocialSecurityNumber": "0101502479",
  "Email": "customer@example.is",
  "PhoneNumber": "8111111",
  "ProgressValidMinutes": 10,
  "TokenValidMinutes": 10,
  "LoanInformation": {
    "MerchantNumber": "9635422",
    "LoanTypeId": 23,
    "Amount": 121313,
    "Description": "Product purchase",
    "NumberOfPayments": 12,
    "FlexibleNumberOfPayments": true,
    "SuccessUrl": "https://www.webstore.is/order/success",
    "CancelUrl": "https://www.webstore.is/order/cancel"
  }
}

Response

Returns token as a string (64 characters).

Example Response

4PPURAkB9us9HR7rqGqY5ljN6T8L5Bidr4I7Y0UcbQhJJnXrnxKR5DAMhYnljjSX

HTTP Status Codes

Code Type Description
200 string Token returned
400 FailureResponse Input validation error
403 FailureResponse Merchant access denied
500 FailureResponse Internal service error


Create Token (SMS)

Creates a token and sends an SMS to the customer with a URL to Teya's self-service portal. Used for POS loan applications.

Request

POST /online/token/sms
Content-Type: application/json

Parameters (JSON Body)

TokenSMSRequest object.

Example Request

{
  "SocialSecurityNumber": "0101502479",
  "Email": "customer@example.is",
  "PhoneNumber": "8111111",
  "ProgressValidMinutes": 5,
  "TokenValidMinutes": 2,
  "LoanInformation": {
    "MerchantNumber": "9635422",
    "LoanTypeId": 24,
    "Amount": 64995,
    "Description": "Playstation 4",
    "NumberOfPayments": 12,
    "FlexibleNumberOfPayments": true,
    "SuccessUrl": "https://radgreidslur.saltpay.is/Pos/Success",
    "CancelUrl": "https://radgreidslur.saltpay.is/Pos/Cancel"
  }
}

Response

Returns token as a string (64 characters).

Example Response

4PPURAkB9us9HR7rqGqY5ljN6T8L5Bidr4I7Y0UcbQhJJnXrnxKR5DAMhYnljjSX

HTTP Status Codes

Code Type Description
200 string Token returned
400 FailureResponse Input validation error
403 FailureResponse Merchant access denied
500 FailureResponse Internal service error


List Payment Methods

Returns a list of available payment methods for a given amount and merchant. Returns an empty list if all payment options exceed the allowed APR.

Request

GET /online/payment?amount={amount}&merchantNumber={merchantNumber}

Parameters (Query String)

Field Type Description
amount decimal Loan amount.
merchantNumber string The merchant ID.

Example Request

GET /online/payment?amount=64995&merchantNumber=9635422

Response

Returns a list of PaymentMethodInfo objects.

Example Response

[
  {
    "loanTypeId": 23,
    "paymentName": "Raðgreiðslur án vaxta",
    "paymentInfo": "12 mánaða greiðsluáætlun án vaxta",
    "maxNumberOfPayments": 12,
    "logoUrl": "https://radgreidslur.saltpay.is/logo.png"
  },
  {
    "loanTypeId": 24,
    "paymentName": "Raðgreiðslur með vöxtum",
    "paymentInfo": "Allt að 36 mánaða greiðsluáætlun",
    "maxNumberOfPayments": 36,
    "logoUrl": "https://radgreidslur.saltpay.is/logo.png"
  }
]

HTTP Status Codes

Code Type Description
200 a list of PaymentMethodInfo List of payment methods returned
400 FailureResponse Input validation error
403 FailureResponse Merchant access denied
500 FailureResponse Internal service error


Validate Loan

Validates that a customer has successfully created an online loan. Called after receiving SUCCESS status from the Check Loan Status endpoint.

Request

PUT /online/validate
Content-Type: application/json

Parameters (JSON Body)

ValidateRequest object.

Example Request

{
  "Token": "i73IkhjKDRtKTCABkPwleaep6YvuqVsVk9pyt5Pu7AZroiWBgAyldsGzqgNrpgpE",
  "RedirectUrl": "https://www.webstore.is/order/success?token=i73IkhjKDRtKTCABkPwleaep6YvuqVsVk9pyt5Pu7AZroiWBgAyldsGzqgNrpgpE",
  "MerchantNumber": "9635422"
}

Response

Returns ContractInfoCompact object if loan is valid.

Example Response

{
  "contractNumber": "608012",
  "authorizationNumber": "103145",
  "socialSecurityNumber": "0101502479"
}

HTTP Status Codes

Code Type Description
200 ContractInfoCompact Loan validated successfully
400 FailureResponse Input validation error
403 FailureResponse Merchant access denied
422 FailureResponse Loan could not be validated
500 FailureResponse Internal service error


Cancel Loan

Cancels an online loan by setting its status to CANCELED. Can only be done if the current status is CREATED or INPROGRESS.

Request

PUT /online/cancel?token={token}&merchantNumber={merchantNumber}

Parameters (Query String)

Field Type Description
token string Authentication token from token endpoint.
merchantNumber string The merchant ID.

Example Request

PUT /online/cancel?token=i73IkhjKDRtKTCABkPwleaep6YvuqVsVk9pyt5Pu7AZroiWBgAyldsGzqgNrpgpE&merchantNumber=9635422

Response

Returns HTTP 200 with no body on success.

HTTP Status Codes

Code Type Description
200 Empty Loan canceled
400 FailureResponse Input validation error
403 FailureResponse Merchant access denied
422 FailureResponse Cannot cancel loan in current status
500 FailureResponse Internal service error


Check Loan Status

Returns the current status of a loan application. Used by both eCommerce webstores and POS systems to poll for status changes.

Request

GET /online/status?token={token}&merchantNumber={merchantNumber}

Parameters (Query String)

Field Type Description
token string Authentication token from token endpoint.
merchantNumber string The merchant ID.

Example Request

GET /online/status?token=i73IkhjKDRtKTCABkPwleaep6YvuqVsVk9pyt5Pu7AZroiWBgAyldsGzqgNrpgpE&merchantNumber=9635422

Response

Returns one of the following status codes as a string.

Example Response

INPROGRESS
Status Code Description
CREATED Loan access has been created.
INPROGRESS Token has been used and borrower is in loan progress.
PENDING Loan authorization is in progress.
PROGRESSEXPIRED Loan progress expired and loan cannot be created.
TOKENEXPIRED Token expired before being used.
SUCCESS Loan has been successfully created.
FAILED Loan could not be validated.
CANCELED Borrower or POS canceled the loan process.

HTTP Status Codes

Code Type Description
200 string Status returned
400 FailureResponse Input validation error
403 FailureResponse Merchant access denied
500 FailureResponse Internal service error


Helper Endpoints

Get Loan Advertisement

Calculates key information for consumer loan to be displayed on merchant website for product advertising purposes.

Request

GET /helpers/advert?amount={amount}&loanTypeId={loanTypeId}&numberOfPayments={numberOfPayments}&merchantNumber={merchantNumber}

Parameters (Query String)

Field Type Description
amount decimal The loan amount.
loanTypeId int Loan contract type id from List Payment Methods.
numberOfPayments int Number of payments the loan is divided into.
merchantNumber string The merchant ID.

Response

Returns LoanAdvert object.

Example Response

{
  "aprRatio": 12.5,
  "interestRate": 6.9,
  "loanFeeRate": 1.5,
  "numberOfPayments": 12,
  "totalPayment": 68750,
  "amount": 64995,
  "paymentFee": 195,
  "averagePayment": 5729,
  "created": "2026-03-16T00:00:00",
  "firstPayment": "2026-05-01T00:00:00",
  "lastPayment": "2027-04-01T00:00:00"
}

HTTP Status Codes

Code Type Description
200 LoanAdvert Loan advert returned
400 FailureResponse Input validation error
403 FailureResponse Merchant access denied
422 FailureResponse Cannot cancel loan in current status
500 FailureResponse Internal service error


Objects

TokenRequest

Used for Create Token (Web).

Field Type Required Description
LoanInformation OnlineLoan Yes The online loan information.
SocialSecurityNumber string No Customer social security number (10 digits).
Email string No Customer email address.
PhoneNumber string No Customer mobile phone number (7 digits, starts with 6, 7 or 8).
ProgressValidMinutes int Yes How long customer has to finish loan process (max 40 min).
TokenValidMinutes int Yes How long the redirect URL is valid (max 120 min).

TokenSMSRequest

Used for Create Token (SMS).

Field Type Required Description
LoanInformation OnlineLoan Yes The online loan information.
SocialSecurityNumber string No Customer social security number (10 digits).
Email string No Customer email address.
PhoneNumber string Yes Customer mobile phone number (7 digits, starts with 6, 7 or 8).
ProgressValidMinutes int Yes How long customer has to finish loan process (max 40 min).
TokenValidMinutes int Yes How long the SMS URL is valid (max 120 min).

OnlineLoan

Loan information object used in TokenRequest and TokenSMSRequest.

Field Type Required Description
MerchantNumber string Yes The merchant number (7 digits).
LoanTypeId int Yes Loan contract type id from List Payment Methods.
Amount decimal Yes Loan amount in ISK (1 - 2,999,000).
Description string Yes Product description.
NumberOfPayments int Yes The exact or maximum number of payments (1 - 120).
FlexibleNumberOfPayments bool Yes Allow customer to choose number of payments up to NumberOfPayments. Cannot go lower than APR minimum.
SuccessUrl string Yes Redirect URL for successfully created loan.
CancelUrl string Yes Redirect URL if customer cancels the loan process.

ValidateRequest

Used for Validate Loan.

Field Type Required Description
Token string Yes Authentication token from token creation endpoint.
RedirectUrl string Yes Customer redirect URL from Teya consumer loan website.
MerchantNumber string Yes The merchant ID (7 digits).

ContractInfoCompact

Returned from Validate Loan.

Field Type Description
ContractNumber string Loan contract number/id.
AuthorizationNumber string Credit card authorization number.
SocialSecurityNumber string Borrower social security number.

PaymentMethodInfo

Returned from List Payment Methods.

Field Type Description
LoanTypeId int Unique ID of loan contract type.
PaymentName string Name of payment method.
PaymentInfo string Information about payments.
MaxNumberOfPayments int Maximum number of payments allowed for payment method.
LogoUrl string Raðgreiðslur logo URL.

LoanAdvert

Returned from Get Loan Advertisement.

Field Type Description
AprRatio decimal Annual percentage rate.
InterestRate decimal Loan interest rate.
LoanFeeRate decimal Loan fee percent rate.
NumberOfPayments int Loan payment count.
TotalPayment decimal Total amount to be paid.
Amount decimal Loan principal amount.
PaymentFee decimal Loan payment fee.
AveragePayment decimal Loan average amount per payment.
Created DateTime Loan calculation date.
FirstPayment DateTime Loan first payment date.
LastPayment DateTime Loan last payment date.

FailureResponse

Returned for HTTP 400 and 500 responses.

Field Type Description
ErrorId string Teya error ID for HTTP 400 or 500 responses.
Message string Reason for failure.

Example Response

{
  "errorId": "",
  "message": "The field Amount must be between 1 and 2999000."
}