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). |
| 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). |
| 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."
}