General
Where can I find a list of BBAN numbers mapped to Danish banks?
There are various lists online, here is one from Mastercard .
What are the timeout for APIs?
There are different timeouts on the individual APIs. The maximum timeout is 30 seconds.
Is payment recalls possible?
You can recall a payment by sending an email to supportbankingservices@lunar.app, then we will help with a recall. It is the same for all currencies.
Will our company name be reflected on the payment somewhere?
Your company will be the sender of a payment shown to the receiver, but only in Denmark and Norway, and for Sweden only applicable for instant transfers.
Intraday in Sweden will show no data, thus being empty and only show amount.
Does the ’*’ sign in the documentation mean a specific field is mandatory?
Yes, * is mandatory.
What is the difference between shortReceiverMessage and longReceiverMessage?
For the markets where both messages are possible, you decide what you want to send in the shortReceiverMessage
and
longReceiverMessage
. If you look at a normal transfer in your webbank/app, the transaction name is the
shortReceiverMessage
and the longReceiverMessage
is an additional text that can be provided.
What is the length of ShortReceiverMessage?
ShortReceiverMessage
chars in each country is limited to
- NO: 70 chars
- SE: 12 chars
- DK: 20 chars
Which Holidays should we consider?
In regards to international payments, they are following they EBA public Holiday calendar . For Lunar internally in regards to help, unless it is critical, we are following they Holidays from Nationalbanken .
For SEK batches (before instant), Holidays from Riksbanken , for NOK batches (before instant) Holidays for Norges Bank .
Where can I find an overview of Bank Account numbers?
- Sweden
- Norway - No public site for account numbers
- Denmark - No public site for account numbers
How can we defund/sweep our DKK account(s)?
For the defunding of your DKK account (this is very specific for DKK), you will need to transfer the amount to a shadow account we will create for you and send an email to bas-liquidity-requests@lunar.app with the amount and receiver message. Both funds and email should arrive at Lunar before 9am CET and Lunar will ensure a transfer is made each business day (if needed each day).
Account number rules for SEK
Depending on the type of the receiver account according to the rules from bankgirot . The following validation is currently being done by Lunar:
Validation rules
Reg. no. | Bank | Modulus validation | Number of digits to use |
---|---|---|---|
1100-1199 | Nordea | mod 11 | 10 |
1200-1399 | DanskeBank | mod 11 | 10 |
1400-2099 | Nordea | mod 11 | 10 |
2300-2399 | Aalandsbanken | mod 11 | 11 |
2400-2499 | DanskeBank | mod 11 | 10 |
3000-3299 | Nordea | mod 11 | 10 |
3301-3399 | Nordea | mod 11 | 10 |
3400-3409 | Lansforsikringar | mod 11 | 10 |
3410-3781 | Nordea | mod 11 | 10 |
3783-3999 | Nordea | mod 11 | 10 |
4000-4999 | Nordea | mod 11 | 11 |
5000-5999 | SEB | mod 11 | 10 |
7000-7999 | Swedbank | mod 11 | 10 |
9020-9029 | Lansforsikringar | mod 11 | 11 |
9040-9049 | Citibank | mod 11 | 11 |
9060-9069 | Lansforsikringar | mod 11 | 10 |
9070-9079 | MultitudeBank | mod 11 | 10 |
9100-9109 | Nordnet | mod 11 | 11 |
9120-9124 | SEB | mod 11 | 10 |
9130-9149 | SEB | mod 11 | 10 |
9150-9169 | Skandia | mod 11 | 11 |
9170-9179 | IKANO | mod 11 | 10 |
9190-9199 | DNB | mod 11 | 11 |
9230-9239 | Marginalen | mod 11 | 10 |
9250-9259 | SBAB | mod 11 | 10 |
9260-9269 | DNB | mod 11 | 11 |
9270-9279 | ICA | mod 11 | 10 |
9280-9289 | Resurs | mod 11 | 10 |
9390-9399 | Landshypotek | mod 11 | 11 |
9460-9469 | Santander | mod 11 | 10 |
9470-9479 | BNP | mod 11 | 11 |
9550-9569 | AvanzaBank | mod 11 | 11 |
9590-9599 | ErikPenser | mod 11 | 11 |
9630-9639 | LaanOgSpar | mod 11 | 10 |
9640-9649 | Nordax | mod 11 | 11 |
9660-9669 | Svea | mod 11 | 11 |
9670-9679 | Jak | mod 11 | 11 |
9680-9689 | BlueStep | mod 11 | 10 |
9700-9709 | Ekobanken | mod 11 | 11 |
9710-9719 | Lunar | mod 11 | 11 |
9750-9759 | Northmill | mod 11 | 11 |
9780-9789 | Klarna | mod 11 | 11 |
9880-9889 | Riksgaelden | mod 11 | 11 |
9580-9589 | AionBank | mod 11 | 10 |
3300-3300 | Nordea | mod 10 | 10 |
3782-3782 | Nordea | mod 10 | 10 |
6000-6999 | Handelsbanken | mod 11 | 9 |
8000-8999 | Swedbank* | mod 10 | 10 |
9180-9189 | DanskeBank | mod 10 | 10 |
9300-9349 | Swedbank | mod 10 | 10 |
9500-9549 | Nordea | mod 10 | 10 |
9570-9579 | Sparbanken | mod 10 | 10 |
9890-9899 | Riksgaelden | mod 10 | 10 |
9960-9969 | Nordea | mod 10 | 10 |
[*] Swedbank 8000_8999 validation: According to Tab 4 in the Bankgirot documentation, the account number consists of 10 Digits. Checksum calculation uses the ten last Digits in the account number using the modulus 10 check. Additionally, the 5th digit is a checksum for the clearing number using mod10.
Furthermore, for some accounts in the 8xxx range, the clearing number is in fact 5 Digits. Swedbank has a page telling their users how to specify the account number in other banks and the normal practice is to prefix with 0’s. See the page here: 5-siffriga clearingnummer som börjar på siffran 8 . Also see the documentation of possible clearing 8xxx numbers with 5 Digits: Swedbank och sparbankerna .
Which payment rails are you currently part of?
- DKK: Straksclearing
- SEK: RIX RTGS, currently testing in production with RiX INST.
- NOK: NICS Netto
How long does it take for a payment to return to our account?
If it fails in validation you will be declined instant and money will not be deducted. If the money for some reason needs to be returned, it is up to the receiving bank and Lunar cannot control the timeframe. If an automatic rejection is set up by the beneficiary bank, you will see the return almost instant and In the posting API you will be able to see a reversal as well as the ID of posting that has been reversed. In Norway and Sweden it is optional to add the ID of the original payment. If the bank did not fill in this information, the payment will have a Reversal; true but no ID of the original payment.
How to truncate names?
When the first name and last name exceed the 35 limit which one is better to truncate the last name or first name? The last name is the most important, if anything needs to be truncated. This is how we do it internally:
Truncation stops when the max combined length is <= the limit.
- Truncate first names to initials starting from the right leaving the first unchanged
- Truncate last names to initials starting from the left leaving the last unchanged
- Remove everything except first word in first name, leaving the last name unchanged
- Remove everything except last word in last name, leaving the first name unchanged
- Truncate first name to initial
- Drop first name completely
- Truncate last name from the end
Is there some indication which accounts are clients’ money and which ones are operational or we select these?
On the web portal it is not mentioned what type of account it is, that information is only available in your account statement you received when accounts were opened. Your Safeguarding accounts are for your client funds and the temporary corporate accounts are for the testing in production
Can you have multiple Swish accounts linked to your Lunar bank account?
Yes. However, we cannot use your organisation ID, since that can only be linked once, but we can enroll you with an alias. Something that we (Lunar) will do - the customer does not have to do anything.
Can we get instant notification of fund settlement with Lunar API?
No, not yet. We are working on a Webhook - TBA.
Posting API is the solution in the meantime.
Expected remittance speed
Depending on the scheme.
DKK, seconds,
NOK is currently batch 4 times a day. When instant it will be seconds.
SEK intraday is batch 4 times a day. Instant is seconds. We are currently sending instant payments to Danske Bank, ICA, SEB.
What happens if the beneficiary account number or SLS details are incorrect
If the account number formatting is incorrect, then Lunar will reject the payment.
If the formatting is correct, but the account number is closed, doesn’t exist etc., then the receiving bank will reject it when receiving it from the scheme
Are both IBAN and local bank account numbers supported for the unique beneficiary account number?
For Denmark and Norway the number must be a BBAN. For Sweden the number must be the clearing number and account number concatenated.
SEK is special and not as easy as Denmark and Norway. Do you have any current validation you can use for SEK? Otherwise, I can send you the validation we are using.
Do you accept IBAN for domestic payments?
No
Supported transaction types
C2C, B2C, C2B, B2B
Percentage requirements for name matching?
You are to send the full name of the ultimate sender and receiver
Merchant and Money Transfer APIs
If a transfer has been POSTED, how will a reversal look like?
The reversal will be a new posting on the account, containing the postingID from the original payment.
Which danish banks do not participate in straksclearing in Denmark?
- Saxo bank, reg number 1149
- CitiBank, reg number 5100
- DNB, reg number 5290
- Maj Bank, reg number 7574
- BNP PARIBAS, reg number 8149
- Banking Circle, reg number 8900
and therefore transferring to these banks the default is noninstantanious intradagclearing.
What are the clearing cycles for intradag clearing?
Denmark (intradag clearing): Is cleared and settled in batches at 01:30, 09:00, 12:00, 14:00 CET/CEST all banking days. This will only be used for the banks not able to receive instant payments.
Norway (NICS Netto): Is cleared and settled in batches at 05:30, 09:30, 11:30, 13:30, 15:30 CET/CEST all banking days. Be aware, banks have cut-off 15 minutes before.
Sweden (Dataclearingen): Is cleared and settled in batches at 07:30, 10:30, 13:05, 15:20 CET/CEST all banking days. Be aware, banks have cut-off 1 hour before.
Instant payment processing time?
For instant transfers there is 24/7 365 availability. In DKK there is however a window during evening/night 22:15-03:15 CET where instant transfers made to your account will be posted later.
How do I see which user access I have?
Your administrator will be able to tell you which user role(s) you have.
Is it possible to do a manual transfer?
Yes, you can perform a payment through the Lunar Web Portal.
Are there any additional cost if using all available fields in the API or web portal?
No, there is no additional cost. So please do what makes the logic for matching better.
How many are supposed to approve a transfer?
API: You have an implicit approval through your authorization token and therefore no one else is needed.
Web portal: We have 4-eye principle.
What is the payments limits per currency?
There is a limit in all clearing schemes. In DK instant it is 500,000 DKK and SE intraday it is 500,000 SEK. NO is very high with around 25MNOK.
When providing instant payments in SEK the limit will still be 500.000 SEK and for NOK it will be 500.000 NOK.
What is the minimum amount of a payment?
0.01 in DKK, SEK and NOK.
What information should be provided in the field senderMessage?
It is up to you what you want to write in the senderMessage
, it is a message for yourself.
Who should be put as a receiver?
We are always to know the ultimate sender and receiver inbound/outbound.
Does Lunar do beneficiary account number checks?
Lunar can validate if the account number matches the logic for the specific scheme and will do so. Lunar is however not able to validate if the account number exist or is open before a payment is processed.
What data will be available on a SEK instant payment?
- Originator bank BIC
- Beneficiary bank BIC
- Debtor account IBAN
- Creditor account IBAN
- Amount
- Debtor and creditor identification
- (Business): BIC or LRI (legal entity identification), CVR
- (Private): Date and place of birth, CPR
Can we make a KID payment?
Yes, in Norway you can make a KID payment.
If a KID payment is rejected, which violation will that be?
"SCHEME_DETAILS_INVALID"
Why is the payment pending when receiver has already received the payment?
In the intraday clearing it can take some time for our partner to reply back to us, that the payment is processed in the clearing - hence the money is sent before we get a reply back.
What to provide under Transfer parties?
You must send the ultimate receiver or sender under Transfer Parties.
What is the payment state sequence?
The state diagram below shows the state sequence:
Is the PENDING, POSTED, REJECTED states for both incoming and outgoing transfers?
The PENDING, POSTED, REJECTED is only something you can see on payments you initiate from the APIs. A payment made to your account is posted when received.
How long does it take for a payment to shift state?
Normally it takes around 1 second to complete a payment - it can be longer due to screening of the payment.
What is the format of receiverAccountNumber?
For Denmark and Norway the number must be a BBAN. For Sweden the number must be the clearing number and account number concatenated.
What is the limits for name and address lines?
- full_name: max 35 iso-8859-1 chars
- address: max 70 iso-8859-1 chars
- country: iso alpha2 code
- city: max 35 iso-8859-1 chars
- postal_code: max 9 iso-8869-1 chars
Which name will be shown to beneficiary on Money Transfers?
Denmark and Norway: Lunar will send both the ultimate sender and your company to the scheme. Receiving bank will show your name, as you are the last sender of the funds.
Sweden: There is currently no way to send any names at all due to the intraday scheme in Sweden.
International payments API
What is the limit for international payments?
There is no limit for international payments in DKK, SEK and NOK.
How can we defund/sweep our NOK/SEK account(s)?
We have a specific international payments API available you can use for this. Lunar needs to whitelist your IBANs for you to be able to make the transfer. IBANs possible to whitelist is the ones owned by you.
Account API
How do I find our account number(s)?
You call the Account API and you will get all of your accounts and their currencies.
Postings API
What data will I see on an incoming NOK payment?
Possible fields: date, name, address (optional), amount, message (optional), account number.
What data will I see on an incoming SEK payment?
In the intraday scheme, the information you will receive on a deposit on your account, will be a reference, a date and amount.
In the instant scheme, the information you will receive is:
- Originator bank BIC
- Beneficiary bank BIC
- Debtor account IBAN
- Creditor account IBAN
- Amount (all mandatory)
- Debtor and creditor identification (optional)
What data will I see on an incoming DKK payment?
Possible fields: date, name, address, amount, message.
Is reversal reason available?
The reason for a reversal will be available on SEK and NOK payments, unfortunately not on DKK payments.
How long does it take for a payment to return to our account?
If it fails in validation you will be declined instant and money will not be extracted. If the money for some reason needs to be returned, it is up to the receiving bank and Lunar cannot control the timeframe. If an automatic rejection is set up by the beneficiary bank, you will see the return almost instant and in the posting API you will be able to see it is a reversal as well as the ID of the posting that has been reversed.
Do we receive a callback notification with the transaction ID if a reversal occurs?
If the bank is making a proper return, it will be connected to the original transfers and we can map it, so you will get a “reversal”: true, and a “reversedPosting”: ID.
We are having trouble generating XX date. We only see old transactions.
The requests only provide the account number, and since no query parameters such as cursor or from/to are provided, you receive the first 100 postings on the account every time (as 100 is the default page size). The API enables clients to use a cursor to keep track of which postings they have seen already.
The nextCursor
is returned on responses and can be provided as the query parameter cursor on the next request.
Below documentation describes other query parameters such as from
/to
/pageSize
:
https://docs.banking-services.lunar.app/spec/postings#tag/postings
We need a monthly Statement of Account for reconciliation purposes. How can we get that?
You can gather all the transactions through our Posting API, for the period you would like to.
Sandbox
Where can I find our IBAN numbers for the sandbox accounts?
As it is a closed environment IBAN will have no meaning or not be used for anything - so you are welcome to make some random for whatever you need.
SWISH merchant onboarding API
What to pass as organisation number when business does not have one?
You can pass a unique identifier you create as Organisation number.
Web Portal
How do I log in to the web portal?
https://banking-services.lunar.app/auth/signin
Where to contact if there is a need to add/remove users in Banking Portal?
For partners with Lunar Auth0 solution: Every partner has an Admin user who can remove/add access in Auth0. If an admin is to be added, name and email should be sent to Lunar supportbankingservices@lunar.app.
For partners with own solution: Lunar cannot add or remove any users for the Banking Portal, please reach out internally.
How to set up own SSO for web portal?
You will need the following data:
redirect_uri
: https://api.prod.lunarway.com/external-oidc/callbackresponse_type
: codegrant_types
: authorization_codeapplication_type
: web
And in return we need:
- client id
- client secret
- issuer url
- email domain
User & Roles:
Any user that does not have a specific role, will be granted default access.
There are currently 3 roles in the web portal:
transfer_initiator
- this role can initiate transfers and FXtransfer_approver
- this role can approve already initiated transfers and FX- “View Only Role” - not a role as such. “View Only” is the default access to the Web Portal, only giving access to viewing and downloading files with no editorial rights
Which you need to propagate in a claim in the id_token.
Let us know which claim contains the list of roles and which roles from our site you want to map to the 3 Lunar roles.
Please also let us know if there is any extra scope that should be specified for the OIDC flow, for getting these roles.
What is the end of day balance in the web portal?
By choosing a date in the web portal, you are also seeing the end of day balance 11:59 PM CET/CEST.