Skip to main content

Transfers

Introduction​

The Transfers module exposes features for managing transfers.

A transfer is the movement of funds between two wallet accounts. It allows for peer-to-peer transfers as well as the exchange of funds between customer accounts if multi-currency is supported.

The transfer resource goes through several stages before the transaction is complete. Please refer to the statuses enumeration for further details.

Transfer Service​

The TransferService can be used for managing transfers.

A transfer goes through several stages before its completion.

Preview transfer​

Preview is always the first step in creating a transfer and as such the transfer is created in a PREVIEW state. At this point there is no transaction and the operation's primary function is to check transfer parameters and display the fees. Use the preview method to create a transfer for the current customer:

import { Wallet } from '@paysafe/paysafe-wallet-saas-web/wallet';
import { TransferReason } from '@paysafe/paysafe-wallet-saas-web/common';
import { CustomerTransferRequest } from '@paysafe/paysafe-wallet-saas-web/transfers';

const transferPreviewRequest: CustomerTransferRequest = {
amount: 1000,
currencyCode: 'USD',
recipient: {
email: 'jon.doe@paysafe.com'
},
transferDetails: {
reason: TransferReason.PEER_TRANSFER,
description: 'This is transfer request!'
}
};

Wallet.getInstance().getTransferService().preview(transferPreviewRequest)
.then(response => console.log('Create transfer preview', response))
.catch(error => console.error('Error create transfer preview', error));

Create Transfer​

Use create method to perform the required validations and move the transfer to PENDING state. Pass the id from the CustomerTransfer object returned by the preview method.

import { Wallet } from '@paysafe/paysafe-wallet-saas-web/wallet';
import { TransferCreate } from '@paysafe/paysafe-wallet-saas-web/transfers';

const requestBody: TransferCreate = {
id: '1234567890'
}

Wallet.getInstance().getTransferService().create(requestBody)
.then(response => console.log('Create transfer', response))
.catch(error => console.error('Error create transfer', error));

Confirm Transfer​

Use confirm method to confirm the transfer. Pass the id from the CustomerTransfer object returned by the create method.

import { Wallet } from '@paysafe/paysafe-wallet-saas-web/wallet';
import { TransferConfirm } from '@paysafe/paysafe-wallet-saas-web/transfers';

const requestBody: TransferConfirm = {
id: '1234567890'
}

Wallet.getInstance().getTransferService().confirm(requestBody)
.then(response => console.log('Confirm transfer', response))
.catch(error => console.error('Error confirm transfer', error));

Get all outbound transfers​

Use getAll method to retrieve a list of outbound transfers by passing the GetTransferParameters. If no parameters are passed, it will return the last 10 transfers by default.

import { Wallet } from '@paysafe/paysafe-wallet-saas-web/wallet';
import { GetTransferParameters } from '@paysafe/paysafe-wallet-saas-web/transfers';

const getTransferParameters: GetTransferParameters = {
offset: 10,
limit: 10,
merchantRefNum: '1234567890',
slipId: '1234567890',
}

Wallet.getInstance().getTransferService().getAll(getTransferParameters)
.then(response => console.log('Get all outbound transfers', response))
.catch(error => console.error('Error get all outbound transfers', error));

Get outbound transfer​

To retrieve transfer by id use get method.

import { Wallet } from '@paysafe/paysafe-wallet-saas-web/wallet';

const transferId = '1234567890';

Wallet.getInstance().getTransferService().get(transferId)
.then(response => console.log('Get outbound transfer', response))
.catch(error => console.error('Error get outbound transfer', error));
Feature in development

Get all inbound transfers​

Use getAllInbound method to retrieve a list of inbound transfers by passing the GetTransferParameters. If no parameters are passed, it will return the last 10 transfers by default.

import { Wallet } from '@paysafe/paysafe-wallet-saas-web/wallet';
import { GetTransferParameters } from '@paysafe/paysafe-wallet-saas-web/transfers';

const getTransferParameters: GetTransferParameters = {
offset: 10,
limit: 10,
merchantRefNum: '1234567890',
slipId: '1234567890',
}

Wallet.getInstance().getTransferService().getAllInbound(getTransferParameters)
.then(response => console.log('Get all inbound transfers', response))
.catch(error => console.error('Error get all inbound transfers', error));
Feature in development

Get inbound transfer​

To retrieve transfer by id use getInbound method.

import { Wallet } from '@paysafe/paysafe-wallet-saas-web/wallet';

const transferId = '1234567890';

Wallet.getInstance().getTransferService().getInbound(transferId)
.then(response => console.log('Get inbound transfer', response))
.catch(error => console.error('Error get inbound transfer', error));

Request Parameter Clarification​

CustomerTransferRecipient​

Contains transfer recipient information. If used in CustomerTransferRequest context, the system tries to resolve email or mobile to customerId in the system. At least one of the three identifiers is required.

DeviceInfo​

The DeviceInfo contains device profiling information.

TransferDetails​

The RequestTransferDetails model describes transfer metadata.