Push Transfer Method Integration

Overview

Push Transfer enables integrators using Prime Trust to accept inbound push ACH transfers and inbound Wire transfers for their end users.

A Push Transfer Method creates a Bank Zero Balance Account (ZBA) for a Prime Trust Custodial Account so that the Account holder can receive push transfers to a unique account number linked to their Prime Trust Custodial Account and Contact.

For Wires transfers, end users no longer need to rely upon Q-Codes for Wires to be settled since the system can now reference unique account numbers.

See https://documentation.primetrust.com/#tag/Push-Transfer-Methods for the Push Transfer Method API reference.

General usage flow

When an ACH or Wire is received, a Contribution and a Funds Transfer will be created. Steps to accept Push Transfers are as follows.

  1. If it doesn’t already exist, create a Custodial Account for the end user and complete the Know Your Customer (KYC) process.
  2. Create a Push Transfer Method using the POST endpoint for the Push Transfer resource.
  3. The Push Transfer Method will provide instructions to present to users to send Push ACH or Wire.
  4. The end user sends an ACH or Wire.
  5. The Prime Trust system creates a Funds Transfer and Contribution.
  6. For incoming ACH transfers, the Prime Trust system creates an ach-originator object.
  7. The Prime Trust system fires a webhook whenever Funds Transfer is received.
  8. Wires automatically settle as soon as they arrive into the Custodial Account.
  9. ACH settles the next day into the Custodial Account.

Setup

Contact your Prime Trust Account Manager to enable this feature for your Organization in Sandbox and Production environments.

Limitations and requirements

  • Only one Push Transfer Method is allowed per Account/Contact pair

  • Accounts needs to be approved by Prime Trust

  • Contact must have completed KYC and cleared AML and CIP checks

Available APIs

Resource: push-transfer-methods

Resource endpoints:

  • POST /v2/push-transfer-methods

  • GET /v2/push-transfer-methods

  • GET /v2/push-transfer-methods/{push-transfer-method-id}

Testing endpoints:

These endpoints can receive an amount and reference

  • POST /v2/push-transfer-methods/{push-transfer-method-id}/sandbox/inbound-push-ach

  • POST /v2/push-transfer-methods/{push-transfer-method-id}/sandbox/inbound-wire

Create Push Transfer Method

POST /v2/push-transfer-methods

Example request

{
"data":{
"type":"push-transfer-methods",
"attributes":{
"account-id":"string",
"contact-id":"string",
"transfer-types": ["ach"]
}
}
}

Example response

{
"data":{
"type":"push-transfer-methods",
"id":"string",
"attributes":{
"account-id":"string"
"contact-id":"string",
"transfer-types": ["ach"],
"push-instructions": {
"account-number": "string",
"routing-number": "string",
"credit-to": "Prime Trust, LLC",
"beneficiary-address": "",
"depository-bank-name": "string",
"bank-address": "string",
"reference": "string"
}
},
"relationships":{...},
"links":{
"self":"string"
}
}
}

GET /v2/push-transfer-methods/{push-transfer-method-id}

Example response

{
"data":{
"type":"push-transfer-methods",
"id":"string",
"attributes":{
"account-id":"string",
"contact-id":"string",
"transfer-types": ["ach"],
"push-instructions": {
"account-number": "340561111111",
"routing-number": "021214891",
"credit-to": "Prime Trust LLC",
"beneficiary-address": "330 S Rampart Blvd, Las Vegas, NV 89145",
"depository-bank-name": "CROSS RIVER BANK",
"bank-address": "885 TEANECK ROAD, TEANECK, NJ 07666",
"reference": "null"
}
},
"relationships":{...},
"links":{
"self":"string"
}
}
}

Simulate inbound ACH push

POST /v2/push-transfer-methods/{ptm-id}/sandbox/inbound-push-ach

{
"data": {
"type": "push-transfer-methods",
"attributes": {
"amount": "100"
}
}
}

Webhook usage

The Push Transfer Method webhook is triggered by a simulated payment or when a transaction is settled in production.

Example webhook payload

{
"id": "16c3617a-a09f-40cd-a5a5-f645820c729b",
"account-id": "85d64cf5-85d5-448c-a1df-0366e2663f29",
"action": "update",
"data": {
"changes": [
"amount",
"auto-settled-by-funds-transfer.id",
"currency-type",
"clears-on",
"funds-source-name",
"settled-at",
"settlement-details",
"signet-confirmation.id",
"special-type",
"status"
]
},
"resource-id": "410e5a63-5244-4df4-8a13-5d354c295af8",
"resource-type": "funds_transfers",
"account_id": "85d64cf5-85d5-448c-a1df-0366e2663f29",
"resource_id": "410e5a63-5244-4df4-8a13-5d354c295af8",
"resource_type": "funds_transfers"
}

Follow up actions:

  • Call GET /v2/funds-transfers/{resource-id}

  • For ACH, call GET /v2/funds-transfers/{resource-id}?include=ach-originator

Last updated on