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

  1. Get a bearer token through the token generation API.
  2. Make a POST request with your payment details to the Payments API.
  3. Receive a direct-to-bank payment link in the response.
  4. Redirect the debtor to this link
  5. Monitor for payment status updates.

1.Create a bearer token.

  1. Create a JSON out of this payload:
{
  "sub": "sub",
  "iss": "tpp/{TPP_ID}",
  "srv": "seamless/tpp",
  "iat": 1728986260,
  "exp": 1728986860,
  "ttl": 600
}
FieldTypeRequiredDescription
substringYesSubject used for the API user path. Do not include PII if the value may appear in a URL.
issstringYesIssuer in the format tpp/{TPP_ID}.
srvstringYesUse seamless/tpp.
iatnumberYesIssued-at timestamp.
expnumberYesExpiration timestamp. Use current time plus 600 seconds.
ttlnumberYesToken TTL. Use 600.

  1. Sign the JWT with the RS512 algorithm.
    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/.

    SettingValue
    AlgorithmRS512
    Issuer formattpp/{TPP_ID}
    Request originWhitelisted backend IP address
  2. 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:

    EnvironmentToken endpoint
    Integrationhttps://lgs-integ01.feezback.cloud/token
    Productionhttps://lgs-prod.feezback.cloud/token
    The response token is valid for 600 seconds.
  1. 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 time

The 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.



Did this page help you?