P2P

Introduction

At a high level, a peer to peer (P2P) transfer is the transfer of money between two accounts, and in the case of Netspend API, this means the transfer of money from one Netspend account to another Netspend account in the same program.

Example Transfer Scenario

Below is a flow showing some of the most relevant interactions with the Netspend API when performing a P2P transfer between a sender and receiver.

Bob wants to send Sue $50. At the onset of this particular scenario, Bob has an account, but Sue does not. The partner can, regardless, initiate the sender’s transfer request and eventually add the receiver once the receiver has created an account.

Steps here include:

  • Bob uses a partner-developed phone application to initiate a transfer to Sue, using her phone number and name to identify her.
  • The partner phone app makes a number of calls to a partner-developed back end server, which in turn makes calls to the Netspend API to initiate a P2P transfer with the receiver information left blank.
  • The partner then does the work of reaching out to Sue with an offer to receive funds from Bob upon creation of a new account.
  • Sue receives the offer, downloads the partner’s phone app, creates an account and accepts the offer.
  • Money is then transferred from Bob’s account to Sue’s account.

State Transitions

Here is a diagram showing the different states a P2P transfer may go through along with the endpoints or errors that will transition the transfer from one state to another.

Eligibility

There are a few things that determine a person’s eligibility to use P2P.

  • The person’s account belongs to a program that offers this feature.
  • The person and person’s account must be active, having satisfied KYC and other requirements.

P2P Transfer Webhooks

Payload data type: “p2p_transfer”

WebhookDescription
P2P Transfer CompletedA P2P transfer has completed
P2P Transfer FailedA P2P transfer attempt has failed, expired, or been cancelled
P2P Transfer PendedA P2P transfer is pending (on hold)

For more information on webhooks, see Webhook.