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.