Seamless Link
Create a direct-to-bank payment link through the payments API.
Using a seamless link, you will get a link directly to the debtor's bank for a limited one-time session of authentication and session approval.
Prerequisites
Before you start make sure you have everything set up according to the getting started guide:
- organization ID
- Private key
- environment
The seamless flow requires you to provide the following details for every payment:
- Amount
-
Currency
-
Creditor account
-
Debtor ID (and optionally - account)
Step by step guide for seamless link generation
- Get a bearer token through the token generation API.
- Make a POST request with your payment details to the Payments API.
- Receive a direct-to-bank payment link in the response.
- Redirect the debtor to this link
- Monitor for payment status updates.
1.Create a bearer token.
- Create a JSON out of this payload:
{
"sub": "sub",
"iss": "tpp/{TPP_ID}",
"srv": "seamless/tpp",
"iat": 1728986260,
"exp": 1728986860,
"ttl": 600
}| Field | Type | Required | Description |
|---|---|---|---|
sub | string | Yes | Subject used for the API user path. Do not include PII if the value may appear in a URL. |
iss | string | Yes | Issuer in the format tpp/{TPP_ID}. |
srv | string | Yes | Use seamless/tpp. |
iat | number | Yes | Issued-at timestamp. |
exp | number | Yes | Expiration timestamp. Use current time plus 600 seconds. |
ttl | number | Yes | Token TTL. Use 600. |
-
Sign the JWT with the
RS512algorithm.
Convert the JSON from the previous step into a JWT (JSON Web Token):
Sign the JWT with the private key that matches the public key you sent to Feezback.For manual JWT signing see https://www.jwt.io/.
Setting Value Algorithm RS512Issuer format tpp/{TPP_ID}Request origin Whitelisted backend IP address -
Send this JWT to the Token Generation API:
curl --location --request POST 'https://{ENVIRONMENT}.feezback.cloud/token' \ --header 'Content-Type: application/json' \ --data-raw '{ "token": "{GENERATED_JWT_TOKEN}" }'Replace
{ENVIRONMENT}with one of these values:Environment Token endpoint Integration https://lgs-integ01.feezback.cloud/tokenProduction https://lgs-prod.feezback.cloud/tokenThe response token is valid for 600 seconds.
- The JSON response will include a token.
Use the token value from the body for authenticating as Bearer against the TPP API, for the next 600 seconds.
2.Make a POST request with your payment details to the Payments API.
Make a POST request to Payments API with the token generated in the previous steps:
Integration domain: integ01-tpp
Production domain: prod-tpp
curl --location --request POST 'https\://{ENVIRONMENT}.feezback.cloud/tpp/v1/users/{SUB}@{TPP_ID}/payments'
--header 'Authorization: Bearer {GENERATED_TOKEN_FROM_PREVIOUS_STEP}'request body:
Configure the request body according to the configuration guide.
3.Receive a direct-to-bank payment link in the response.
The response will contain:
- A direct link to complete the payment at the aspsp’s website/mobile app.
- Error or issue notice in case of issues with the service provider (the bank) or the request content. See Error Handling page.
Example:
{
"redirectUri": "https://example-bank-redirect.example/authorize-payment",
"aspspIssues": []
}4.Redirect the debtor to this link
The link is for one session limited in timeThe link expires in 5-10 minutes according to the service provider.
- At the end of the process the debtor will be redirected back to the url you provided in the request body, according to the payment status: accepted, rejected, partially-accepted or inconclusive.
5.Monitor for payment status updates.
Feezback monitors the transaction and sends you notifications with every payment status update - from redirecting to the bank to receiving the funds. Read more on webhook updates.
Updated 4 days ago