Migrating to Smart Transfers API
Let Trice route your payment instruction to the correct rail (RTP or FedNow) based on what rails the account supports, the bank's status (signed on or off), and the preferences that you indicate.
If you're creating transfers using the rtp_transfers or fednow_transfers endpoints, this guide will help you migrate to the new Smart Transfer API.
1. Discontinue using deprecated fields
- Account request and response fields
capabilities
party_underwriter
andunderwriter
-> moved to Bank Capabilities APIintermediary_rtp_v_2_9
,intermediary_rtp_v_3_0
,rfp_rtp_v_2_9
,rfp_rtp_v_3_0
,rtp_rfps
,rtp_transfers
, andtransaction_monitor_parent
-> moved to Enrollments API
enrollments
-> moved to Enrollments APIverified
-> useverified_for
field
- Person request and response fields
verified
-> useverified_for
field
- Party request and response fields
verified
-> useverified_for
field
2. Add fednow.sender scope to your access token
curl --request POST \
--url https://api-sandbox.trice.co/auth/v1/oauth2/token \
--header 'accept: application/json' \
--header 'authorization: Basic <base64(username:password)>' \
--header 'content-type: application/x-www-form-urlencoded' \
--data grant_type=client_credentials \
--data 'scope=fednow.sender rtp.sender'
3. Check your enrollment's capabilities
Check that your enrollment has the following capabilities active: rtp_transfers
and fednow_transfers
curl --request GET \
--url https://api-sandbox.trice.co/hub/v1/enrollments \
--header 'accept: application/json' \
--header 'authorization: Bearer <your-token>'
# Response
{
"data": [
{
...
"capabilities": {
"fednow_transfers": "active",
"rtp_transfers": "active",
...
},
...
}
],
"has_more": false,
"object": "list",
"url": "/v1/enrollments"
}
4. Get ready for FedNow webhook events (if using webhooks)
We added 2 new types of webhook configurations:
fednow_transfer_outbound
fednow_transfer_inbound
If you have a webhook configuration with type=default
, you will start receiving FedNow webhook events without any further changes.
5. Update your integration to use Smart Transfer API
- Change endpoint to
smart_transfer
from eitherrtp_transfer
orfednow_transfer
. - The request payload is the same, with some new fields to indicate your rail preferences.
- The response contains
report
object and eitherrtp_transfer
orfednow_transfer
object based on which rail was used
curl --request POST \
--url https://api-sandbox.trice.co/hub/v1/smart_transfer \
--header 'accept: application/json' \
--header 'authorization: Bearer <your-token>' \
--header 'content-type: application/json' \
--data '
{
"amount": 10000,
"enrollment": "669774a5-dbbc-481f-99ab-8c7c99d57777",
"internal_description": "Can use this for reconciliation or support",
"memo": "This is sent to the receiving bank",
"reference_number": "bill5439trice"
}
'
# Response
{
"report": [
{
"network": "rtp",
"reason": "transfer sent to network successfully",
"status": "success"
},
{
"network": "fednow",
"reason": "not needed, transfer already successfully sent to network",
"status": "omitted"
}
],
"rtp_transfer": {
"amount": 1,
"completed": null,
"created": "2024-10-23 17:45:20.434032",
"enrollment": {
...
},
"fee": 0,
"id": "929d02ee-9166-11ef-b6d6-f146864c5276",
"internal_description": "Transfer for bills that need paid.",
"memo": "TRICE ACCOUNT REAL TIME PAYMENT TRANSFER",
"party": {
...
},
"reference_number": "bill5439trice",
"returned": null,
"rtp_rfp_id": null,
"sender": null,
"state_details": null,
"status": "created",
"type": "outbound",
"ultimate_receiving_party": null,
"ultimate_sending_party": null
}
}
See Create an RTP or FedNow transfer docs
6. Test your integration in sandbox (available now!)
7. Start using the new APIs in production (available now!)
Updated 15 days ago