Skip to main content

Internal Transfer

Definition

Interal transfers are from xpollens account to xpollens account only.
They are instantaneous. Internal transfer are sometimes called "P2P", meaning "peer to peer" operation.




Feature characteristic

The processUnpaid parameter allows the account to be debited even if there are insufficient funds. This function is particularly useful in the fees and commission use case described below.

The checkLimits parameter allows you to specify whether the limits should be verified before performing a P2P transfer. This feature is commonly used when you want to apply fees regardless of the set limits. If checkLimits = false, the limits are not affected and remain unchanged.

Status




Use cases

Charges, commission

If charges are to be deducted from the account (operating costs, card charges, etc.), the internal transfer must be used.

By using processUnpaid = true, it is possible to debit the account, even if it does not have sufficient funds.
A debt will then be created on the account, which will then have to be recovered.


Transform Sepa Credit Transfer out / Instant Payment out to Internal Transfer

To reduce costs and increase speed, it is possible to transform SCT and IP between two accounts at your premises into P2P.

To do this, each time you receive a transfer request from one of your customers, you need to :
1- check that the bic is SMOEFRP
2- if so, check that the iban exists in your database, or check that the iban contains your sort code
the iban is made up as follows: 

code countryCheck DigitsBank codeSort codeAccount number
2 letters2 digits4 digits8+ 4 digits13 caracters
Example: FRExample: 761652ask to your integration manager

\=> if yes, make a post /api/v2.0/internal-transfers


Debts and fund recovery

When a debt is created - meaning the authorization balance turns negative - an internal transfer is automatically triggered to reset the balance to €0. This transfer is made from the profit and loss account to the user’s account. A debt is then created, see the Debt documentation.

When a customer owes you money, it is your responsibility to recover the funds. To do so, you need to initiate internal transfers from the customer’s account to your profit and loss account.

For more details, please refer to the Debts documentation.


Webdesk

Internal transfers are available in the partner area for manual adjustments. These transfers can be made between customer accounts or between a customer account and one of your own partner accounts.




API, callbacks & technical items

POST api/v2.0/internal-transfers

ErrorStatusCodeMessageComment
400Not created710Opération déjà existante.
400Not created147Votre saisie ne correspond pas à un utilisateur S-money
500Not created1"Une erreur technique est survenue, veuillez réessayer. Si l’erreur persiste, contactez le support client S-money. Object reference not set to an instance of an object.recipient.accountId unvalid
201Rejected--Insufficient fund
200Rejected--Account limits reachedFor the sender or the receiver

internalTransfer

"Payload": {
"type": "InternalTransfer",
"internalTransferId": "thisIsYourInternalTransferId",
"creationDate": "2023-09-25T12:05:29.4246004+00:00",
"status": "Completed",
"reason": null,
"amount": {
"value": "10.00",
"currency": "EUR"
},
"sender": {
"accountId": "rmyrqwhxzj"
},
"recipient": {
"accountId": "locwfbm3dt"
},
"extraDatas": {
"description": "description",
"label1": "label1",
"label2": "label2",
"label3": "label3"
},
"processUnpaid": false,
"checkLimits": boolean
}


FAQ

FAQ1: Are InternalTransfer and InternalDebtTransfer considered the same type of operation?

Yes and no. Both are P2P operations, meaning they involve transferring money between two Xpollens accounts. However, they are considered distinct because an InternalTransfer is initiated by you, while an InternalDebtTransfer is generated by Xpollens in the specific scenario of debt creation.


Best practise

Automatic batch for commission processing and account closure

Accounts with the following statuses must be excluded from this batch:

  • ClosureRequested
  • PendingClosure
  • Closed

Accounts in any of these statuses cannot be debited; therefore, a 40x error will be returned for such requests.

For more details, please refer to the Debts documentation.