Payments
The payments resource allows you to send payments to yourself or a 3rd party on behalf of the end-user from their account. Currently the only supported payment scheme is Zelle, but others will be added in the future.
Zelle
Zelle payments can be initiated from checking accounts. The funds are debited immediately from the payer account and are usually received by the beneficiary instantly. In cases where the receiving financial institution is not a member of the Zelle network, the funds will settle via ACH with the beneficiary receiving the funds around 3 days after.
Create a Payee
Creates a beneficiary for sending payments from the given account.
The financial institution may require the account owner to perform MFA when creating a payee. If MFA is required the response body from Teller will contain the property connect_token
. The token is then used to initialize Teller Connect (see connectToken
in the Teller Connect Guide), which will prompt the user with the steps required to save the payee. Your implementation must handle this case.
Request Properties
- Name
scheme
- Type
- string
- Description
zelle
for Zelle payments.
- Name
address
- Type
- string
- Description
The email address or cellphone number of the payment beneficiary.
- Name
name
- Type
- string
- Description
The payment beneficiary's name.
- Name
type
- Type
- string
- Description
Whether the payment beneficiary is a
person
orbusiness
.
Request
curl -X POST https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000/payees \
-u test_token_ky6igyqi3qxa4: \
-H 'Content-Type: application/json' \
-d '{
"scheme": "zelle",
"address": "jackson.lewis@teller.io",
"name": "Jackson Lewis",
"type": "person"
}'
MFA Response
// The financial institution requires the end-user
// to perform MFA to complete the payment
{
"connect_token": "xxxxxxxxxxxxxx"
}
Success Response
{
"scheme": "zelle",
"address": "jackson.lewis@teller.io",
"name": "Jackson Lewis",
"type": "person",
"account_id": "acc_oiin624kqjrg2mp2ea000",
"links": {
"account": "https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000"
}
}
Discover Supported Payment Schemes
Discover which payment schemes are supported by the account. Not all types of financial account support payment origination.
First and foremost you should reference the links
collection of the account entity. If it does not have a payments
element it does not support payments, if it does you may make an OPTIONS
request to the payments resource to discover which payment schemes are supported.
At this time only Zelle is supported but other schemes will be added in the future.
Request
curl -X OPTIONS https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000/payments
-u test_token_ky6igyqi3qxa4: \
Example Response
{
"schemes": [
{
"scheme": "zelle",
}
]
}
Initiate a Payment
Initiates a payment to the beneficiary from the given account.
The financial institution may require the account owner to perform MFA before executing the payment request. If MFA is required the response body from Teller will contain the property connect_token
. The token is then used to initialize Teller Connect (see connectToken
in the Teller Connect Guide), which will prompt the user with the steps required to execute the payment. Your implementation must handle this case.
This endpoint supports idempotent requests. Use the Idempotency-Key
request header with a unique value per payment request. We store the key and keep the behavior associated to it for 72 hours.
Request Properties
- Name
amount
- Type
- string
- Description
The payment amount in dollars and cents (optional) as a string, e.g. "13.37", "10.00", "5".
- Name
memo
- Type
- string
- Description
A short description of the nature of the payment.
- Name
payee
- Type
- object
- Description
An object with the attributes of the payee. To make a payment to an existing payee, it's sufficient to specify the payee's
scheme
andaddress
only. To make a payment to a new payee, specify all payee's attributes.
Existing payee
curl -X POST https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000/payments \
-u test_token_ky6igyqi3qxa4: \
-H 'Content-Type: application/json' \
-d '{
"amount": "10.48",
"memo": "Drinks",
"payee": {
"scheme": "zelle",
"address": "jackson.lewis@teller.io"
}
}'
New payee
curl -X POST https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000/payments \
-u test_token_ky6igyqi3qxa4: \
-H 'Content-Type: application/json' \
-d '{
"amount": "10.48",
"memo": "Drinks",
"payee": {
"scheme": "zelle",
"address": "jackson.lewis@teller.io",
"name": "Jackson Lewis",
"type": "person"
}
}'
MFA Response
// The financial institution requires the end-user
// to perform MFA to complete the payment
{
"connect_token": "xxxxxxxxxxxxxx"
}
Success Response
{
"id": "zpay_o2iauakr4qme4v7uku000",
"amount": "10.48",
"memo": "Drinks",
"reference": "GQ3C2MRQGIZC2MBXFUZDMLJVHEZDILKENFXG4ZLS",
"date": "2023-09-04",
"payee": {
"scheme": "zelle",
"type": "person",
"name": "Jackson Lewis",
"address": "jackson.lewis@teller.io",
},
"links": {
"self": "https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000/payments/zpay_o2iauakr4qme4v7uku000",
"account": "https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000"
}
}
List Payments
Returns a list of all payments that have been initiated via Teller API.
Request
curl https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000/payments \
-u test_token_ky6igyqi3qxa4:
Response
[
{
"id": "zpay_o2iauakr4qme4v7uku000",
"amount": "10.48",
"memo": "Drinks",
"reference": "GQ3C2MRQGIZC2MBXFUZDMLJVHEZDILKENFXG4ZLS",
"date": "2023-09-04",
"payee": {
"scheme": "zelle",
"type": "person",
"name": "Jackson Lewis",
"address": "jackson.lewis@teller.io",
},
"links": {
"self": "https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000/payments/zpay_o2iauakr4qme4v7uku000",
"account": "https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000"
}
}
,
...
]
Get Payment
Retrieve a specific payment by its id.
Request
curl https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000/payments/zpay_o2iauakr4qme4v7uku000 \
-u test_token_ky6igyqi3qxa4:
Response
{
"id": "zpay_o2iauakr4qme4v7uku000",
"amount": "10.48",
"memo": "Drinks",
"reference": "GQ3C2MRQGIZC2MBXFUZDMLJVHEZDILKENFXG4ZLS",
"date": "2023-09-04",
"payee": {
"scheme": "zelle",
"type": "person",
"name": "Jackson Lewis",
"address": "jackson.lewis@teller.io",
},
"links": {
"self": "https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000/payments/zpay_o2iauakr4qme4v7uku000",
"account": "https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000"
}
}
List Supported Schemes
Returns a list of supported payment schemes for the specified account. Only zelle
is currently supported.
Request
curl -X OPTIONS https://api.teller.io/accounts/acc_oiin624kqjrg2mp2ea000/payments \
-u test_token_ky6igyqi3qxa4:
Response
{
"schemes": [
{"name": "zelle"}
]
}