Step 1
Make an agreement with your bank
Prerequisites
The payment recipient ("Payee") must have a business account with a bank. The Payee must enter into an agreement with the bank to use the Electronic Agreement service (Elektronisk avtaleinngåelse).
The Payee must also enter into agreements with the bank to use AvtaleGiro and must have an accounting system that generates KID.
Go to topGo back to Developer
Step 2
Create an HTML form in the company's website
Interaction with E-Agreement is via an HTTP POST request
Create an HTML form in the company's website with one of these URLs to be the recipient of the submitted form:
For test: https://mtf.pvu.avtalegiro.no/ecsa/start
For prod: https://pvu.avtalegiro.no/ecsa/start
The application receives a payee request via a http post. The request can have the following parameters:
Parameter name
|
Mandatory |
Allowed values |
Description |
companyAccountNo |
Yes |
11-digit Norwegian bank account number |
The company's bank account number (only Norwegian accounts are accepted, and the company must have an agreement with their bank to use the service) |
kid |
Yes |
Numeric string |
Unique identification of payer (minimum 3, maximum 25 digits) |
amountLimit |
No |
Positive integer |
The maximum amount that the customer may be charged via AvtaleGiro within a calendar month. If not submitted, it will default to NOK 10000. The value may be changed by the payer. |
notificationDisabled |
No |
true/false |
Sets the default notification setting, which the payer may change. If true, the payer will NOT receive notification of new AvtaleGiro payment claims. |
companyName |
No |
Alphanumeric, min 3 characters |
The name of the company, as it should be displayed to the user. |
returnUrl |
No |
Valid URL |
The URL to which the user should be directed after completing or cancelling the AvtaleGiro onboarding process. |
Code example
<form action="https://mtf.pvu.avtalegiro.no/ecsa/start" method="post">
<input type="hidden" name="companyName" id="companyName" value="INSERT_COMPANY_NAME_HERE" />
<input type="hidden" name="companyAccountNo" id="companyAccountNo" value="11110500019" />
<input type="hidden" name="kid" id="kid" value="285332022028875" />
<input type="hidden" name="amountLimit" id="amountLimit" value="INSERT_SUGGESTED_AMOUNT_LIMIT_HERE" />
<input type="hidden" name="returnUrl" id="returnUrl" value="INSERT_RETURN_URL_HERE" />
<input type="hidden" name="notificationDisabled" id="notificationDisabled" value="true" />
<input type="submit" id="submit" value="submit" />
</form>
Test users
The following test users may be used for BankID authentication in the test environment of E-Agreement. Please ensure that users are not locked due to typing the incorrect OTP/password more than 3 times.
01014634734 |
otp |
qwer1234 |
04066100168 |
otp |
qwer1234 |
Once you reach BankID screen, choose "BankID TestBank Friendly" option -
Test account
The following test account may be used for testing in test environment(MTF).
11110500019 |
285332022028875
|
|
|
|
|
Go to topGo back to Developer
Step 3
Receive status from application
The return URL provided as an input parameter is used in the following scenarios:
1. Once the user completes the signing process, a button with value "Fullfør" is displayed to the user. Upon clicking this button, the user will be directed to the return URL with status "OK".
2.
If the user cancels the process, the user is directed to the return URL with status "Cancel".
3.
If the signing process cannot be completed due to error, the user is directed to the return URL with status "Error".
A "status" parameter is added to the URL in all the above cases and may have the following values:
Description |
Values |
Agreement is signed and will be established |
OK |
Agreement signing has been interupted by the customer |
Cancel |
One or more subsystems are unavailable |
Error
|
Go to topGo back to Developer
{
"error": null,
"ribbons": [
{
"id": "ctl00_PlaceHolderMain_RibbonPanel10_wrapper",
"color": "#141413",
"image": "/SiteCollectionImages/background/mastercard_1920x600_brandcircle_connections.png",
"overlay_alpha": null
},
{
"id": "ctl00_PlaceHolderMain_RibbonPanel11_wrapper",
"color": "#ffffff",
"image": null,
"overlay_alpha": null
},
{
"id": "ctl00_PlaceHolderMain_RibbonPanel12_wrapper",
"color": "#f6f6f6",
"image": null,
"overlay_alpha": null
},
{
"id": "ctl00_PlaceHolderMain_RibbonPanel13_wrapper",
"color": "#ffffff",
"image": null,
"overlay_alpha": null
},
{
"id": "ctl00_PlaceHolderMain_RibbonPanel1_wrapper",
"color": "#ffffff",
"image": null,
"overlay_alpha": null
}
]
}