Download OpenAPI specification:Download
Ztl Payment solution api
You can download the full spec on the button above or at https://docs.ztlpay.io/ztl-api.full.yaml
client_id required | string |
client_secret required | string |
grant_type required | string |
scope required | string |
{- "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IkE1NEZCQjFGRjgzRTZFRUFEQUI1MTg4QTJBMkVGRDhGNTUzMEUzNDkiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJwVS03SF9nLWJ1cmF0UmlLS2k3OWoxVXc0MGsifQ.eyJuYmYiOjE1NjI4MzE1OTIsImV4cCI6MTU2MjgzNTE5MiwiaXNzIjoiaHR0cHM6Ly9vaWRjLnp0bC5zdGFjY2Zsb3cubmV0IiwiYXVkIjpbImh0dHBzOi8vb2lkYy56dGwuc3RhY2NmbG93Lm5ldC9yZXNvdXJjZXMiLCJ6dGwtYXBpIiwicG9ydGFsLWFwaSJdLCJjbGllbnRfaWQiOiJkZXZjbGllbnQiLCJzY29wZSI6WyJwYXltZW50cyIsInBvcnRhbC1hcGkiXX0.dJuDJNTsSBhQ_xmN3ruqbBZvJdyn2nUkUW3NEwbgXw_l-UA3_XRmtp16rWWdhMLbh-D_HywwG2a0h-MK2tX17C-ggsfp_pDxj8iy8aLleI3dY1qt0VkQY8rOw5_YtWa40HWwIBK9Ll8MqovwBK4lg9Pkq_KLGdkoz87n63QezS5u0JeWYJJnHFuY5ojX_M5szAdSYoVYOyvL0tr30ynxb3joglKrVWlkeawRZztRV4chFN00tlv_Tn54vDYOyDPtBWK6JpMVqhHla8a5JnslJu5dUP82qtgms_lFYOiR1oD2jaa-t0QTE6MVwspG3kwQBSSSZawe-9G4yEBg-nFSGg",
- "expires_in": 3600,
- "token_type": "Bearer"
}
organizationId required | string |
webhookUrl | string |
redirectUrl | string |
{- "organizationId": "981078365",
}
{- "flowId": "8665acd8-c033-4386-b9ca-ccc6c6a81243",
}
flowId required | string Onboarding flowId, returned after when you initiate an onboarding. |
{- "orgName": "Ztl",
- "orgNo": "12345678",
- "status": "completed",
- "tasks": [ ],
- "webhookStatuses": {
- "complete": {
- "status": "success",
- "timestamp": "2021-12-16T18:19:55.267Z"
}
}
}
List of supported Banks, with known constraints. Due to variations in the PSD2 APIs of the different banks, initiating a payment with certain banks may be subject to some limitations
countryCode required | string <ISO-3166> Example: NO Country code, ISO-3166, currently the only supported country code is 'NO' |
[- {
- "bic": "DNBANOKK",
- "constraints": {
- "maxBasketSize": 20,
- "maxInformationFieldLength": 35,
- "maxUnstructuredRemittanceInfoLength": 108,
- "aisMaxDateRangeMonths": 12,
- "cancelSCARequired": true,
- "validInformationFieldCharactersPattern": "[A-ZÆØÅa-zæøå0-9\\\\D]"
}, - "countryCode": "NO",
- "name": "DNB BANK ASA",
- "supportedProducts": [
- "PAYMENT_DOMESTIC"
]
}
]
consentAuthorizationId required | string Consent Authorization Id |
{- "reason": "string",
- "status": "string",
- "authorizationType": "SINGLE_AIS",
- "consentState": {
- "aisExpired": true,
- "pisExpired": true,
- "cafExpired": true
}, - "expirationDate": "2019-08-24T14:15:22Z"
}
Idempotency-Key required | string <UUID> Example: 49ae0cfe-6b72-4310-81f5-ad4eef897fe3 Unique identifier for idempotency |
PSU-IP-Address required | string <ipv4> Example: 192.158.1.38 PSU-IP-Address - The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. If not available, the TPP can use the IP Address used by the TPP when submitting this request. |
Consent request object
callbackUrl required | string^(http|https)://.*$ Sca callback url can be configured here |
accountOwnerSsn required | string Private identification number |
accountOwnerOrganizationReference required | string Corporate ID required for corporate consent creation at ASPSP. |
debtorBankBic required | string Bic to identify the bank |
instructionId required | string <= 36 characters Instruction id |
{- "callbackUrl": "string",
- "accountOwnerSsn": "string",
- "accountOwnerOrganizationReference": "string",
- "debtorBankBic": "string",
- "instructionId": "string"
}
{- "scaUrl": "string",
- "consentAuthorizationId": "string",
- "status": "string",
- "reason": "string",
- "expirationDate": "2019-08-24T14:15:22Z"
}
Consent-Reference required | string <UUID> Example: b0fc2430-3d87-470d-83f5-a4e94d540f6f Consent Reference to be revoked |
{- "type": "urn:input-validation-failed",
- "title": "Bad Request",
- "detail": "Missing required header Consent-Reference"
}
Retrieve the current available and booked balance for the account or accounts specified in the authorized query.
accountId required | string The ID of the account, as retrieved from the list of accounts. The account ID is sometimes the same as the account bban, but this is not always the case. Also, the account ID may change each time a consent is created/refreshed. |
consentAuthorizationId required | string The Consent Authorization Id, as retrieved from the |
consentReference required | string <uuid> Example: consentReference=b0fc2430-3d87-470d-83f5-a4e94d540f6f The Consent Reference, as retrieved from the |
PSU-IP-Address | string <ipv4> Example: 192.158.1.38 PSU-IP-Address - The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. If not available, the TPP can use the IP Address used by the TPP when submitting this request. |
PSU-User-Agent | string PSU-User-Agent - The forwarded Agent header field of the HTTP request between PSU and TPP, if available. Example: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) |
PSU-Geo-Location | string PSU-Geo-Location - The forwarded Geo Location of the corresponding HTTP request between PSU and TPP if available. Example: GEO:52.506931,13.144558 |
{- "id": "22cc5740-f8f5-1234-abcd-b90e42531234",
- "name": "Spending account",
- "bic": "DNBANOKK",
- "bban": 12043175449,
- "iban": "NO0812043175449",
- "country": "NO",
- "type": "Debit",
- "currency": "NOK",
- "balance": {
- "booked": {
- "amount": "150.00",
- "currency": "NOK"
}, - "available": {
- "amount": "100.00",
- "currency": "NOK"
}
}
}
Retrieve the latest transaction entries on the account or accounts specified in the authorized query.
accountId required | string The ID of the account, as retrieved from the list of accounts. The account ID is sometimes the same as the account bban, but this is not always the case. Also, the account ID may change each time a consent is created/refreshed. |
consentAuthorizationId required | string The Consent Authorization Id, as retrieved from the |
consentReference required | string <uuid> Example: consentReference=b0fc2430-3d87-470d-83f5-a4e94d540f6f Consent Reference |
fromDate | string <date, ISO-8601> Example: fromDate=2022-01-01 Entries start date, inclusive |
toDate | string <date, ISO-8601> Example: toDate=2022-01-02 Entries end date, inclusive |
PSU-IP-Address | string <ipv4> Example: 192.158.1.38 PSU-IP-Address - The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. If not available, the TPP can use the IP Address used by the TPP when submitting this request. |
PSU-User-Agent | string PSU-User-Agent - The forwarded Agent header field of the HTTP request between PSU and TPP, if available. Example: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) |
PSU-Geo-Location | string PSU-Geo-Location - The forwarded Geo Location of the corresponding HTTP request between PSU and TPP if available. Example: GEO:52.506931,13.144558 |
{- "account": {
- "id": "11ab5740-f8f5-1234-abcd-b90e4253b7b8",
- "name": "Main savings account",
- "bic": "DNBANOKK",
- "bban": "12043175449",
- "iban": "NO0812043175449",
- "country": "NO",
- "type": "Debit",
- "currency": "NOK",
- "ownerName": "string"
}, - "accountEntries": [
- {
- "transactionId": "d1f669f2-1234-abcd-aabb-ff0cc229b485",
- "postedAmount": {
- "amount": "99.50",
- "currency": "NOK"
}, - "type": "Debit",
- "status": "Pending",
- "bookingDateTime": "2022-01-02",
- "valueDateTime": "2022-01-01",
- "purposeText": "Overføring Innland",
- "remittanceInformation": {
- "reference": 75025049,
- "unstructured": "Transfer of funds"
}, - "creditor": {
- "name": "string",
- "bban": 12043175449,
- "iban": "NO0812043175449"
}, - "debtor": {
- "name": "string",
- "bban": 12043175449,
- "iban": "NO0812043175449"
}, - "endToEndId": "string"
}
]
}
Retrieve a list and general information about the account or accounts specified in the authorized account query. Note that this information can only be fetched during 1 hour after created consent.
consentAuthorizationId required | string Consent Authorization Id |
consentReference required | string <uuid> Example: consentReference=b0fc2430-3d87-470d-83f5-a4e94d540f6f Consent Reference |
withBalance | boolean With Balance - Whether or not balance information should be added to the account details. |
withCard | boolean With Card - Whether or not card information should be added to the multiple accounts |
PSU-IP-Address | string <ipv4> Example: 192.158.1.38 PSU-IP-Address - The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. If not available, the TPP can use the IP Address used by the TPP when submitting this request. |
PSU-User-Agent | string PSU-User-Agent - The forwarded Agent header field of the HTTP request between PSU and TPP, if available. Example: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) |
PSU-Geo-Location | string PSU-Geo-Location - The forwarded Geo Location of the corresponding HTTP request between PSU and TPP if available. Example: GEO:52.506931,13.144558 |
{- "accounts": [
- {
- "id": "11ab5740-f8f5-1234-abcd-b90e4253b7b8",
- "name": "Main savings account",
- "bic": "DNBANOKK",
- "bban": "12043175449",
- "iban": "NO0812043175449",
- "country": "NO",
- "type": "Debit",
- "currency": "NOK",
- "ownerName": "string"
}
]
}
PSU-IP-Address required | string <ipv4> Example: 192.158.1.38 IP Address of the end-user initiating the payment. |
PSU-Geo-Location | string Geo Location of the one initiating the payment |
PSU-User-Agent | string User agent of the one initiating the payment |
idempotencyKey required | string <uuid> Unique identifier for the payment request. This could also be used as a query parameter in the scaRedirectUrl for identifying the payment when the user returns from SCA. |
organizationId required | string The organization number of the debtor |
countryCode required | string <ISO 3166-1 alpha-2> Country code for the organization |
consentReference required | string The consent reference given when creating a consent. |
scaRedirectUrl required | string The url the user is redirected to after confirming payment with SCA |
base64Pain001 required | string <iso20022 Payment initiation v03 (PAIN)> Encoded in base64. See https://docs.ztlpay.io/#initiate-payment for details. |
{- "idempotencyKey": "123123-123-12-2222",
- "countryCode": "NO",
- "organizationId": "123456789",
- "consentReference": "123123-123123-123123-2",
- "base64Pain001": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiP...mZJbml0bj4NCjwvRG9jdW1lbnQ+DQo="
}
{- "flowId": "8665acd8-c033-4386-b9ca-ccc6c6a81243",
}
PSU-IP-Address required | string <ipv4> Example: 192.158.1.38 IP Address of the end-user initiating the payment. |
PSU-Geo-Location | string Geo Location of the one initiating the payment |
PSU-User-Agent | string User agent of the one initiating the payment |
idempotencyKey required | string <uuid> Unique identifier for the payment request. This could also be used as a query parameter in the scaRedirectUrl for identifying the payment when the user returns from SCA. |
organizationId required | string The organization number of the debtor |
countryCode required | string <ISO 3166-1 alpha-2> Country code for the organization |
consentReference required | string The consent reference given when creating a consent. |
scaRedirectUrl required | string The url the user is redirected to after confirming payment with SCA |
base64Pain001 required | string <iso20022 Payment initiation v03 (PAIN)> Encoded in base64. See https://docs.ztlpay.io/#initiate-payment for details. |
{- "idempotencyKey": "123123-123-12-2222",
- "countryCode": "NO",
- "organizationId": "123456789",
- "consentReference": "123123-123123-123123-2",
- "base64Pain001": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiP...mZJbml0bj4NCjwvRG9jdW1lbnQ+DQo="
}
{- "type": "urn:pain-invalid",
- "title": "Invalid Pain",
- "detail": "There are 2 errors",
- "detail2": "",
- "errors": [
- {
- "type": "transaction",
- "endToEndId": "966700472476787235510074468580",
- "errors": [
- {
- "code": "urn:max-length-exceeded",
- "path": "CstmrCdtTrfInitn.PmtInf[0].CdtTrfTxInf[0].rmtInf",
- "message": "Payment reference is too long for the receiver's bank",
- "developerText": "Unstructured remittance info is too long for debtor agent DNBANOKK. The current length is 46, while the maximum length is 35."
}
]
}, - {
- "type": "general",
- "errors": [
- {
- "code": "urn:country-missing",
- "path": "cstmrCdtTrfInitn.PmtInf[0].Dbtr.PstlAdr.Ctry",
- "message": "Country is required for debtor postal address",
- "developerText": "Country tag <Ctry> is required for <Dbtr><PstlAdr>"
}
]
}
], - "traceId": "03f55df4-d7d7-416a-add6-0f427eec7f92"
}
flowId required | string <uuid> Payment ID |
{- "flowId": "6613c5c0-642f-4ae7-98ee-a8ccdaa486bb",
- "processStatus": "active",
- "scaStatus": "Accepted",
- "messageId": "20200415-0741-4280-BECA-3A8B2BD86091",
- "transactions": [
- {
- "endToEndID": "296edf186a374b0a89edfa8e9fd054c5",
- "status": "AcceptedSettlementInProgress",
- "statusReason": "Payment accepted at Aspsp and needs to be signed by PSU. Please initiate payment signing process",
- "purposeCode": "OTHR",
- "transactionAmount": {
- "amount": "1235",
- "currency": "NOK"
}, - "commission": {
- "amount": "0",
- "currency": "NOK"
}, - "fromCurrency": "NOK",
- "toCurrency": "NOK",
- "exchangeRate": 1,
- "paymentId": "0fsdfasdfsa3e4d46218b80179d5c19f796",
- "dueDate": "2022-02-08"
}, - {
- "endToEndID": "wd459dp10b7plasjdl202aas5",
- "status": "AcceptedSettlementInProgress",
- "statusReason": "Payment accepted at Aspsp and needs to be signed by PSU. Please initiate payment signing process",
- "purposeCode": "OTHR",
- "transactionAmount": {
- "amount": "9608.8",
- "currency": "SEK"
}, - "commission": {
- "amount": "1.5",
- "currency": "NOK"
}, - "fromCurrency": "NOK",
- "toCurrency": "SEK",
- "exchangeRate": 0.9688,
- "displayExchangeRate": 96.88,
- "exchangeRateExpiration": "2022-08-05T14:48:14.133+02:00",
- "paymentId": "5fdff9c50523460585c7fc93038791ae",
- "dueDate": "2022-02-08"
}
]
}
initiatingCountry required | string <ISO-3166> Example: NO Initiating country code, currently the only supported country code is 'NO' |
amount required | string The monetary amount, two decimals, max value 999999999999.99, always positive |
toCurrency required | string The currency used in the payment |
debtorBic required | string Debtor's bank BIC |
{- "amount": "string",
- "toCurrency": "string",
- "debtorBic": "string"
}
[- "2022-03-24",
- "2022-03-26"
]
required | object (PaymentAvailabilityRequestFrom) | ||||||
| |||||||
required | object (PaymentAvailabilityRequestTo) | ||||||
|
{- "from": {
- "currency": "NOK",
- "bic": "DNBANOKK"
}, - "to": {
- "currency": "NOK",
- "bic": "DNBANOKK",
- "amount": "99.50"
}
}
{- "resultCode": "NOT_SUPPORTED",
- "messages": [
- {
- "type": "urn:not-supported",
- "message": "We don't support THB"
}
], - "paymentRequirementInformation": {
- "paymentRequirements": [
- {
- "type": "BIC",
- "validationPattern": "[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}",
- "description": "Invalid BIC"
}
], - "validDates": [
- "2022-11-15"
]
}
}
Creates a payment cancellation that is authorized by an existing consent
consentReference required | string <UUID> Example: consentReference=b0fc2430-3d87-470d-83f5-a4e94d540f6f Unique Reference ID given to the Generic Consent request after SCA is completed along with the sca_status, provided in TPP callback URL |
Idempotency-Key required | string <UUID> Example: 49ae0cfe-6b72-4310-81f5-ad4eef897fe3 Unique identifier for idempotency |
PSU-IP-Address | string Example: 153.110.241.229 The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. If not available, the TPP shall use the IP Address used by the TPP when submitting this request |
PSU-User-Agent | string Example: Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/63.0 The forwarded Agent header field of the HTTP request between PSU and TPP, if available |
PSU-Geo-Location | string Example: GEO:52.506931,13.144558 The forwarded value of the Geo Location of the corresponding HTTP request between the PSU and TPP, if available |
Payment Cancellation Request
paymentId required | string PSD2 Payment ID, available from the payment status endpoint |
callbackUrl required | string will be used by the bank to generate a URL where the end user has to provide Strong Customer Authentication. This callbackUrl will include the provided instructionId, allowing the user to track which payment is being cancelled |
instructionId required | string TPP reference for this payment cancellation, used for callback |
{- "paymentId": "dba8a99a40f24ca594e6c313d1e88018",
- "callbackUrl": "string",
- "instructionId": "62f930b774464383ab47576c54fef125"
}
{- "statusReason": {
- "reason": "Payment accepted at Aspsp and needs to be signed by PSU. Please initiate payment signing process",
- "status": "AuthorizationRequired",
- "origin": "NAAS"
}, - "scaUrl": "string"
}
Initiation of ZTL Direct payments. This interface is currently in Alpha and available on request only.
International payment validation request. Currently only available for selected customers. Please contact us if you're interested in testing this.
Authorization | string <Base64 JWT> Example: eyJhbGciOiJSUzI1NiIsImtpZCI6IkE1NEZCQjFGRjgzRTZFRUFEQUI1MTg4QTJBMkVGRDhGNTUzMEUzNDkiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJwVS03SF9nLWJ1cmF0UmlLS2k3OWoxVXc0MGsifQ.eyJuYmYiOjE1NjI4MzE1OTIsImV4cCI6MTU2MjgzNTE5MiwiaXNzIjoiaHR0cHM6Ly9vaWRjLnp0bC5zdGFjY2Zsb3cubmV0IiwiYXVkIjpbImh0dHBzOi8vb2lkYy56dGwuc3RhY2NmbG93Lm5ldC9yZXNvdXJjZXMiLCJ6dGwtYXBpIiwicG9ydGFsLWFwaSJdLCJjbGllbnRfaWQiOiJkZXZjbGllbnQiLCJzY29wZSI6WyJwYXltZW50cyIsInBvcnRhbC1hcGkiXX0.dJuDJNTsSBhQ_xmN3ruqbBZvJdyn2nUkUW3NEwbgXw_l-UA3_XRmtp16rWWdhMLbh-D_HywwG2a0h-MK2tX17C-ggsfp_pDxj8iy8aLleI3dY1qt0VkQY8rOw5_YtWa40HWwIBK9Ll8MqovwBK4lg9Pkq_KLGdkoz87n63QezS5u0JeWYJJnHFuY5ojX_M5szAdSYoVYOyvL0tr30ynxb3joglKrVWlkeawRZztRV4chFN00tlv_Tn54vDYOyDPtBWK6JpMVqhHla8a5JnslJu5dUP82qtgms_lFYOiR1oD2jaa-t0QTE6MVwspG3kwQBSSSZawe-9G4yEBg-nFSGg Authorization token - A JWT token used to authenticate the request. Please refer to the Authorization section of our docs. |
required | object Metadata for quote request | ||||||||||||||||||||
| |||||||||||||||||||||
required | object Information about the debtor | ||||||||||||||||||||
| |||||||||||||||||||||
required | object Information about the creditor | ||||||||||||||||||||
| |||||||||||||||||||||
required | object The amount and currency for the quote | ||||||||||||||||||||
| |||||||||||||||||||||
dueDate required | string <date, ISO-8601> The due date for the payment. NOTE: Currently only the today (i.e. current date) is allowed. Future dates will be enabled in the future | ||||||||||||||||||||
required | object Remittance information | ||||||||||||||||||||
| |||||||||||||||||||||
purposeCode | string A code stating the purpose of the payment. (Required by some countries) |
{- "metadata": {
- "organizationCountryCode": "NO",
- "organizationNumber": 920970931,
- "endToEndId": "73300aef-d849-4872-b0c6-f44e07a841f3"
}, - "from": {
- "bban": 12341212345,
- "bic": "DNBANOKK",
- "contactInformation": {
- "name": "ZTL Payment Solution AS",
- "address": {
- "streetName": "Kristian IVs gate",
- "buildingNumber": 15,
- "city": "Oslo",
- "postCode": "0164",
- "country": "NO"
}
}, - "currency": "NOK",
- "country": "NO"
}, - "to": {
- "account": {
- "iban": "SE7250000000012341212345",
- "bban": 12341212345,
- "bic": "ESSESESS",
- "clearingCode": 1234
}, - "contactInformation": {
- "name": "ZTL Payment Solution AS",
- "address": {
- "streetName": "Eriksbergsgatan",
- "buildingNumber": 10,
- "city": "Sweden",
- "postCode": 11430,
- "country": "SE"
}
}
}, - "amount": {
- "amount": 1000,
- "currency": "SEK"
}, - "dueDate": "2023-01-15",
- "remittanceInformation": {
- "unstructured": "Payment for consulting services"
}, - "purposeCode": "S1008"
}
[- {
- "code": "InvalidBBAN",
- "reason": "Sender's account number is invalid",
- "text": "Invalid debtor BBAN 854095477406"
}
]
International payment quote request. Currently only available for selected customers. Please contact us if you're interested in testing this.
Authorization | string <Base64 JWT> Example: eyJhbGciOiJSUzI1NiIsImtpZCI6IkE1NEZCQjFGRjgzRTZFRUFEQUI1MTg4QTJBMkVGRDhGNTUzMEUzNDkiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJwVS03SF9nLWJ1cmF0UmlLS2k3OWoxVXc0MGsifQ.eyJuYmYiOjE1NjI4MzE1OTIsImV4cCI6MTU2MjgzNTE5MiwiaXNzIjoiaHR0cHM6Ly9vaWRjLnp0bC5zdGFjY2Zsb3cubmV0IiwiYXVkIjpbImh0dHBzOi8vb2lkYy56dGwuc3RhY2NmbG93Lm5ldC9yZXNvdXJjZXMiLCJ6dGwtYXBpIiwicG9ydGFsLWFwaSJdLCJjbGllbnRfaWQiOiJkZXZjbGllbnQiLCJzY29wZSI6WyJwYXltZW50cyIsInBvcnRhbC1hcGkiXX0.dJuDJNTsSBhQ_xmN3ruqbBZvJdyn2nUkUW3NEwbgXw_l-UA3_XRmtp16rWWdhMLbh-D_HywwG2a0h-MK2tX17C-ggsfp_pDxj8iy8aLleI3dY1qt0VkQY8rOw5_YtWa40HWwIBK9Ll8MqovwBK4lg9Pkq_KLGdkoz87n63QezS5u0JeWYJJnHFuY5ojX_M5szAdSYoVYOyvL0tr30ynxb3joglKrVWlkeawRZztRV4chFN00tlv_Tn54vDYOyDPtBWK6JpMVqhHla8a5JnslJu5dUP82qtgms_lFYOiR1oD2jaa-t0QTE6MVwspG3kwQBSSSZawe-9G4yEBg-nFSGg Authorization token - A JWT token used to authenticate the request. Please refer to the Authorization section of our docs. |
required | object Metadata for quote request | ||||||||||||||||||||
| |||||||||||||||||||||
required | object Information about the debtor | ||||||||||||||||||||
| |||||||||||||||||||||
required | object Information about the creditor | ||||||||||||||||||||
| |||||||||||||||||||||
required | object The amount and currency for the quote | ||||||||||||||||||||
| |||||||||||||||||||||
dueDate required | string <date, ISO-8601> The due date for the payment. NOTE: Currently only the today (i.e. current date) is allowed. Future dates will be enabled in the future | ||||||||||||||||||||
required | object Remittance information | ||||||||||||||||||||
| |||||||||||||||||||||
purposeCode | string A code stating the purpose of the payment. (Required by some countries) |
{- "metadata": {
- "organizationCountryCode": "NO",
- "organizationNumber": 920970931,
- "endToEndId": "73300aef-d849-4872-b0c6-f44e07a841f3"
}, - "from": {
- "bban": 12341212345,
- "bic": "DNBANOKK",
- "contactInformation": {
- "name": "ZTL Payment Solution AS",
- "address": {
- "streetName": "Kristian IVs gate",
- "buildingNumber": 15,
- "city": "Oslo",
- "postCode": "0164",
- "country": "NO"
}
}, - "currency": "NOK",
- "country": "NO"
}, - "to": {
- "account": {
- "iban": "SE7250000000012341212345",
- "bban": 12341212345,
- "bic": "ESSESESS",
- "clearingCode": 1234
}, - "contactInformation": {
- "name": "ZTL Payment Solution AS",
- "address": {
- "streetName": "Eriksbergsgatan",
- "buildingNumber": 10,
- "city": "Sweden",
- "postCode": 11430,
- "country": "SE"
}
}
}, - "amount": {
- "amount": 1000,
- "currency": "SEK"
}, - "dueDate": "2023-01-15",
- "remittanceInformation": {
- "unstructured": "Payment for consulting services"
}, - "purposeCode": "S1008"
}
{- "quoteId": "d6f06bfe-4830-4358-b483-c24c66cfb431",
- "endToEndId": "7c628b2e-9094-4bf8-af23-1d517c6fc4f5",
- "requestedAmount": {
- "amount": 1000,
- "currency": "SEK"
}, - "costAmount": {
- "amount": 1034.62,
- "currency": "NOK"
}, - "exchangeRate": 1.0346,
- "quoteExpiryTime": "2023-01-15T09:32:00+01:00",
- "referenceCode": "ZTL-d6f06bfe",
- "intermediaryAccount": {
- "account": {
- "iban": "SE7250000000012341212345",
- "bban": 12341212345,
- "bic": "ESSESESS",
- "clearingCode": 1234
}, - "contactInformation": {
- "name": "ZTL Payment Solution AS",
- "address": {
- "streetName": "Eriksbergsgatan",
- "buildingNumber": 10,
- "city": "Sweden",
- "postCode": 11430,
- "country": "SE"
}
}
}
}
International payment confirmation. Currently only available for selected customers. Please contact us if you're interested in testing this.
quoteId required | string quote id as for payment |
Authorization | string <Base64 JWT> Example: eyJhbGciOiJSUzI1NiIsImtpZCI6IkE1NEZCQjFGRjgzRTZFRUFEQUI1MTg4QTJBMkVGRDhGNTUzMEUzNDkiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJwVS03SF9nLWJ1cmF0UmlLS2k3OWoxVXc0MGsifQ.eyJuYmYiOjE1NjI4MzE1OTIsImV4cCI6MTU2MjgzNTE5MiwiaXNzIjoiaHR0cHM6Ly9vaWRjLnp0bC5zdGFjY2Zsb3cubmV0IiwiYXVkIjpbImh0dHBzOi8vb2lkYy56dGwuc3RhY2NmbG93Lm5ldC9yZXNvdXJjZXMiLCJ6dGwtYXBpIiwicG9ydGFsLWFwaSJdLCJjbGllbnRfaWQiOiJkZXZjbGllbnQiLCJzY29wZSI6WyJwYXltZW50cyIsInBvcnRhbC1hcGkiXX0.dJuDJNTsSBhQ_xmN3ruqbBZvJdyn2nUkUW3NEwbgXw_l-UA3_XRmtp16rWWdhMLbh-D_HywwG2a0h-MK2tX17C-ggsfp_pDxj8iy8aLleI3dY1qt0VkQY8rOw5_YtWa40HWwIBK9Ll8MqovwBK4lg9Pkq_KLGdkoz87n63QezS5u0JeWYJJnHFuY5ojX_M5szAdSYoVYOyvL0tr30ynxb3joglKrVWlkeawRZztRV4chFN00tlv_Tn54vDYOyDPtBWK6JpMVqhHla8a5JnslJu5dUP82qtgms_lFYOiR1oD2jaa-t0QTE6MVwspG3kwQBSSSZawe-9G4yEBg-nFSGg Authorization token - A JWT token used to authenticate the request. Please refer to the Authorization section of our docs. |
{- "paymentId": "0db94e47-858c-4486-a0e9-a453e4da025d",
}
International payment funding payment confirmation. Currently only available for selected customers. Please contact us if you're interested in testing this.
paymentId required | string paymentId for the payment to be confirmedPaid |
Authorization | string <Base64 JWT> Example: eyJhbGciOiJSUzI1NiIsImtpZCI6IkE1NEZCQjFGRjgzRTZFRUFEQUI1MTg4QTJBMkVGRDhGNTUzMEUzNDkiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJwVS03SF9nLWJ1cmF0UmlLS2k3OWoxVXc0MGsifQ.eyJuYmYiOjE1NjI4MzE1OTIsImV4cCI6MTU2MjgzNTE5MiwiaXNzIjoiaHR0cHM6Ly9vaWRjLnp0bC5zdGFjY2Zsb3cubmV0IiwiYXVkIjpbImh0dHBzOi8vb2lkYy56dGwuc3RhY2NmbG93Lm5ldC9yZXNvdXJjZXMiLCJ6dGwtYXBpIiwicG9ydGFsLWFwaSJdLCJjbGllbnRfaWQiOiJkZXZjbGllbnQiLCJzY29wZSI6WyJwYXltZW50cyIsInBvcnRhbC1hcGkiXX0.dJuDJNTsSBhQ_xmN3ruqbBZvJdyn2nUkUW3NEwbgXw_l-UA3_XRmtp16rWWdhMLbh-D_HywwG2a0h-MK2tX17C-ggsfp_pDxj8iy8aLleI3dY1qt0VkQY8rOw5_YtWa40HWwIBK9Ll8MqovwBK4lg9Pkq_KLGdkoz87n63QezS5u0JeWYJJnHFuY5ojX_M5szAdSYoVYOyvL0tr30ynxb3joglKrVWlkeawRZztRV4chFN00tlv_Tn54vDYOyDPtBWK6JpMVqhHla8a5JnslJu5dUP82qtgms_lFYOiR1oD2jaa-t0QTE6MVwspG3kwQBSSSZawe-9G4yEBg-nFSGg Authorization token - A JWT token used to authenticate the request. Please refer to the Authorization section of our docs. |
{- "paymentId": "0db94e47-858c-4486-a0e9-a453e4da025d",
}
International payment status inquiry. Currently only available for selected customers. Please contact us if you're interested in testing this.
paymentId required | string paymentId for the payment |
Authorization | string <Base64 JWT> Example: eyJhbGciOiJSUzI1NiIsImtpZCI6IkE1NEZCQjFGRjgzRTZFRUFEQUI1MTg4QTJBMkVGRDhGNTUzMEUzNDkiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJwVS03SF9nLWJ1cmF0UmlLS2k3OWoxVXc0MGsifQ.eyJuYmYiOjE1NjI4MzE1OTIsImV4cCI6MTU2MjgzNTE5MiwiaXNzIjoiaHR0cHM6Ly9vaWRjLnp0bC5zdGFjY2Zsb3cubmV0IiwiYXVkIjpbImh0dHBzOi8vb2lkYy56dGwuc3RhY2NmbG93Lm5ldC9yZXNvdXJjZXMiLCJ6dGwtYXBpIiwicG9ydGFsLWFwaSJdLCJjbGllbnRfaWQiOiJkZXZjbGllbnQiLCJzY29wZSI6WyJwYXltZW50cyIsInBvcnRhbC1hcGkiXX0.dJuDJNTsSBhQ_xmN3ruqbBZvJdyn2nUkUW3NEwbgXw_l-UA3_XRmtp16rWWdhMLbh-D_HywwG2a0h-MK2tX17C-ggsfp_pDxj8iy8aLleI3dY1qt0VkQY8rOw5_YtWa40HWwIBK9Ll8MqovwBK4lg9Pkq_KLGdkoz87n63QezS5u0JeWYJJnHFuY5ojX_M5szAdSYoVYOyvL0tr30ynxb3joglKrVWlkeawRZztRV4chFN00tlv_Tn54vDYOyDPtBWK6JpMVqhHla8a5JnslJu5dUP82qtgms_lFYOiR1oD2jaa-t0QTE6MVwspG3kwQBSSSZawe-9G4yEBg-nFSGg Authorization token - A JWT token used to authenticate the request. Please refer to the Authorization section of our docs. |
{- "status": "PaymentFailed",
- "message": "Technical error."
}
International payment funding payment confirmation. Currently only available for selected customers. Please contact us if you're interested in testing this.
paymentId required | string paymentId for the payment to cancel |
Authorization | string <Base64 JWT> Example: eyJhbGciOiJSUzI1NiIsImtpZCI6IkE1NEZCQjFGRjgzRTZFRUFEQUI1MTg4QTJBMkVGRDhGNTUzMEUzNDkiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJwVS03SF9nLWJ1cmF0UmlLS2k3OWoxVXc0MGsifQ.eyJuYmYiOjE1NjI4MzE1OTIsImV4cCI6MTU2MjgzNTE5MiwiaXNzIjoiaHR0cHM6Ly9vaWRjLnp0bC5zdGFjY2Zsb3cubmV0IiwiYXVkIjpbImh0dHBzOi8vb2lkYy56dGwuc3RhY2NmbG93Lm5ldC9yZXNvdXJjZXMiLCJ6dGwtYXBpIiwicG9ydGFsLWFwaSJdLCJjbGllbnRfaWQiOiJkZXZjbGllbnQiLCJzY29wZSI6WyJwYXltZW50cyIsInBvcnRhbC1hcGkiXX0.dJuDJNTsSBhQ_xmN3ruqbBZvJdyn2nUkUW3NEwbgXw_l-UA3_XRmtp16rWWdhMLbh-D_HywwG2a0h-MK2tX17C-ggsfp_pDxj8iy8aLleI3dY1qt0VkQY8rOw5_YtWa40HWwIBK9Ll8MqovwBK4lg9Pkq_KLGdkoz87n63QezS5u0JeWYJJnHFuY5ojX_M5szAdSYoVYOyvL0tr30ynxb3joglKrVWlkeawRZztRV4chFN00tlv_Tn54vDYOyDPtBWK6JpMVqhHla8a5JnslJu5dUP82qtgms_lFYOiR1oD2jaa-t0QTE6MVwspG3kwQBSSSZawe-9G4yEBg-nFSGg Authorization token - A JWT token used to authenticate the request. Please refer to the Authorization section of our docs. |
{- "message": "Payment not found.",
- "correlationId": "7757cdcb-128f-41ba-b3a6-58722e56b0f8"
}
PSU-IP-Address required | string <ipv4> Example: 192.158.1.38 IP Address of the end-user initiating the payment |
PSU-Geo-Location | string Geo Location of the one initiating the payment |
PSU-User-Agent | string User agent of the one initiating the payment |
base64Pain001 required | string A base64 encoded pain001 xml file |
legalId required | string The organization identifier of the one initiating the payroll payment |
consentReference required | string The ID of the payment consent |
callbackUrl required | string The url the customer is redirected to after confirming payment with SCA |
fundingWithdrawalDate | string <date> The preferred date for withdrawal of funding payment from customer's account to ZTL's client account |
{- "base64Pain001": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiP...mZJbml0bj4NCjwvRG9jdW1lbnQ+DQo=",
- "legalId": "NO754987902",
- "consentReference": "hf7f7ds-f454g",
- "fundingWithdrawalDate": "2022-11-22"
}
{- "payrollId": "8665acd8-c033-4386-b9ca-ccc6c6a81243",
}
payrollId required | string <uuid> Payroll Payment ID |
{- "statusName": "SETTLEMENT_IN_PROGRESS",
- "statusReason": "Initiated Payment has been accepted for execution",
- "timestamp": "021-11-30T10:54:34.489808485+01:00"
}
Creates a payroll payment cancellation that is authorized by an existing consent
Idempotency-Key required | string <uuid> Example: 49ae0cfe-6b72-4310-81f5-ad4eef897fe3 Unique identifier for idempotency |
PSU-IP-Address | string Example: 153.110.241.229 The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. If not available, the TPP shall use the IP Address used by the TPP when submitting this request |
PSU-User-Agent | string Example: Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/63.0 The forwarded Agent header field of the HTTP request between PSU and TPP, if available |
PSU-Geo-Location | string Example: GEO:52.506931,13.144558 The forwarded value of the Geo Location of the corresponding HTTP request between the PSU and TPP, if available |
Payroll Cancellation Request
payrollId required | string The payroll ID used to uniquely identify the payroll payment |
consentReference required | string The ID of the payroll consent |
callbackUrl required | string will be used by the bank to generate a URL where the end user has to provide Strong Customer Authentication. This callbackUrl will include the provided instructionId, allowing the user to track which payroll is being cancelled |
instructionId required | string TPP reference for this payment cancellation, used for callback |
{- "payrollId": "3738a8d3-9f39-49d4-8b4f-6657abb0469f",
- "consentReference": "hf7f7ds-f454g",
- "instructionId": "62f930b774464383ab47576c54fef125"
}
{- "statusReason": {
- "reason": "Payment accepted at Aspsp and needs to be signed by PSU. Please initiate payment signing process",
- "status": "AuthorizationRequired",
- "origin": "NAAS"
}, - "scaUrl": "string"
}
Our next generation payments API for ERPs. This interface is currently in Alpha and available on request only.
WARNING: This is currently even pre-alpha and changes to the API will be introduced without warning. The flow of events should be fairly stable though.
Highlights:
Validate and initiate payment
Authorization | string <Base64 JWT> Example: eyJhbGciOiJSUzI1NiIsImtpZCI6IkE1NEZCQjFGRjgzRTZFRUFEQUI1MTg4QTJBMkVGRDhGNTUzMEUzNDkiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJwVS03SF9nLWJ1cmF0UmlLS2k3OWoxVXc0MGsifQ.eyJuYmYiOjE1NjI4MzE1OTIsImV4cCI6MTU2MjgzNTE5MiwiaXNzIjoiaHR0cHM6Ly9vaWRjLnp0bC5zdGFjY2Zsb3cubmV0IiwiYXVkIjpbImh0dHBzOi8vb2lkYy56dGwuc3RhY2NmbG93Lm5ldC9yZXNvdXJjZXMiLCJ6dGwtYXBpIiwicG9ydGFsLWFwaSJdLCJjbGllbnRfaWQiOiJkZXZjbGllbnQiLCJzY29wZSI6WyJwYXltZW50cyIsInBvcnRhbC1hcGkiXX0.dJuDJNTsSBhQ_xmN3ruqbBZvJdyn2nUkUW3NEwbgXw_l-UA3_XRmtp16rWWdhMLbh-D_HywwG2a0h-MK2tX17C-ggsfp_pDxj8iy8aLleI3dY1qt0VkQY8rOw5_YtWa40HWwIBK9Ll8MqovwBK4lg9Pkq_KLGdkoz87n63QezS5u0JeWYJJnHFuY5ojX_M5szAdSYoVYOyvL0tr30ynxb3joglKrVWlkeawRZztRV4chFN00tlv_Tn54vDYOyDPtBWK6JpMVqhHla8a5JnslJu5dUP82qtgms_lFYOiR1oD2jaa-t0QTE6MVwspG3kwQBSSSZawe-9G4yEBg-nFSGg Authorization token - A JWT token used to authenticate the request. Please refer to the Authorization section of our docs. |
required | object Quote request metadata | ||||||||||||||||
| |||||||||||||||||
required | object | ||||||||||||||||
| |||||||||||||||||
required | object Account information for creditor | ||||||||||||||||
| |||||||||||||||||
required | object | ||||||||||||||||
| |||||||||||||||||
dueDate required | string <date, ISO-8601> The due date for the payment. NOTE: Currently only the today (i.e. current date) is allowed. Future dates will be enabled in the future | ||||||||||||||||
required | object non-empty One type of remittance information is required | ||||||||||||||||
| |||||||||||||||||
purposeCode | string A code stating the purpose of the payment. (Required by some countries) |
{- "metadata": {
- "organizationCountryCode": "NO",
- "organizationNumber": 920970931,
- "endToEndId": "73300aef-d849-4872-b0c6-f44e07a841f3"
}, - "from": {
- "bban": 54321212121,
- "bic": "ESSESESS",
- "contactInformation": {
- "name": "ZTL Payment Solution AS",
- "address": {
- "streetName": "Eriksbergsgatan",
- "buildingNumber": 10,
- "city": "Sweden",
- "postCode": 11430,
- "country": "SE"
}
}, - "currency": "SEK",
- "country": "SE"
}, - "to": {
- "bban": 12341212345,
- "bic": "ESSESESS",
- "clearingCode": 1234,
- "contactInformation": {
- "name": "ZTL Payment Solution AS",
- "address": {
- "streetName": "Eriksbergsgatan",
- "buildingNumber": 10,
- "city": "Sweden",
- "postCode": 11430,
- "country": "SE"
}
}
}, - "amount": {
- "amount": 1000,
- "currency": "SEK"
}, - "dueDate": "2023-01-15",
- "remittanceInformation": {
- "unstructured": "Payment for consulting services",
- "structured": "1234-5678"
}, - "purposeCode": "S1008"
}
{- "paymentId": "7c628b2e-9094-4bf8-af23-1d517c6fc4f5",
- "status": "ApprovalRequired",
- "_links": [
- {
- "rel": "status",
}
]
}
Initiate approval of transactions
Authorization | string <Base64 JWT> Example: eyJhbGciOiJSUzI1NiIsImtpZCI6IkE1NEZCQjFGRjgzRTZFRUFEQUI1MTg4QTJBMkVGRDhGNTUzMEUzNDkiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJwVS03SF9nLWJ1cmF0UmlLS2k3OWoxVXc0MGsifQ.eyJuYmYiOjE1NjI4MzE1OTIsImV4cCI6MTU2MjgzNTE5MiwiaXNzIjoiaHR0cHM6Ly9vaWRjLnp0bC5zdGFjY2Zsb3cubmV0IiwiYXVkIjpbImh0dHBzOi8vb2lkYy56dGwuc3RhY2NmbG93Lm5ldC9yZXNvdXJjZXMiLCJ6dGwtYXBpIiwicG9ydGFsLWFwaSJdLCJjbGllbnRfaWQiOiJkZXZjbGllbnQiLCJzY29wZSI6WyJwYXltZW50cyIsInBvcnRhbC1hcGkiXX0.dJuDJNTsSBhQ_xmN3ruqbBZvJdyn2nUkUW3NEwbgXw_l-UA3_XRmtp16rWWdhMLbh-D_HywwG2a0h-MK2tX17C-ggsfp_pDxj8iy8aLleI3dY1qt0VkQY8rOw5_YtWa40HWwIBK9Ll8MqovwBK4lg9Pkq_KLGdkoz87n63QezS5u0JeWYJJnHFuY5ojX_M5szAdSYoVYOyvL0tr30ynxb3joglKrVWlkeawRZztRV4chFN00tlv_Tn54vDYOyDPtBWK6JpMVqhHla8a5JnslJu5dUP82qtgms_lFYOiR1oD2jaa-t0QTE6MVwspG3kwQBSSSZawe-9G4yEBg-nFSGg Authorization token - A JWT token used to authenticate the request. Please refer to the Authorization section of our docs. |
payments required | Array of uuid non-empty unique | ||||
required | ApprovalRedirectRequestDetails (object) or ApprovalDetachedRequestDetails (object) | ||||
Any of
|
{- "payments": [
- "175be5fc-4185-4cf1-af70-df34ead1a9ec",
- "4b24e1e8-f2ba-4d84-86a4-f5d5e4ae9af7"
], - "approvalData": {
- "method": "redirect",
- "confirmationUrl": "https://www.mypartner.comm/approval/013dda96-12c2-45a2-b1f3-10f361dc8385/return"
}
}
{- "approvalId": "7c628b2e-9094-4bf8-af23-1d517c6fc4f5",
- "status": "Started",
- "approvalData": {
- "method": "redirect",
}, - "_links": [
- {
- "rel": "status",
}
]
}