Internal transfer method

Internal transfers are from xpollens account to xpollens account only.

Definition

📘

Internal 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.

sequenceDiagram
autoNumber
Participant Partner
Participant XPO
Partner ->> XPO: POST /api/v2.0/internal-transfers
XPO ->> Partner: HTTP/200
XPO -->> Partner: Callback InternalTransfer

Status

stateDiagram
  [*] --> Completed: [synchrone]
  [*] --> Rejected: [synchrone]
	Completed --> [*]
	Rejected --> [*]

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.

Debt


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.

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.


IsCorrective internal transfer

For some use cases, Xpollens teams uses internal transfer. In the case, the attribute IsCorrective is true.

Main use cases:

  • balance correction
  • SATD - for more details, please refer to the dedicated 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

🔗Internal Transfer

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
201Rejected--Account limits reachedFor the sender or the receiver
201Rejected--Incorrect account status
200Completed

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


Did this page help you?