| Methode | Pfad | Zusammenfassung |
|---|---|---|
| GET | /workspaces/{workspaceId}/read-consents | List read consents granted to access banking data |
| POST | /workspaces/{workspaceId}/read-consents | Create a new read consent with a banking provider |
| POST | /workspaces/{workspaceId}/read-consents/{consentId}/finalize | Finalize a read consent after the provider authorization step |
| POST | /workspaces/{workspaceId}/read-consents/{consentId}/renew | Renew an expiring or expired read consent |
| POST | /workspaces/{workspaceId}/read-consents/{consentId}/revoke | Revoke an active read consent |
| POST | /workspaces/{workspaceId}/read-consents/{consentId}/solve | Solve a pending read consent issue requiring user action |
| POST | /workspaces/{workspaceId}/write-consents | Create a write consent to enable initiating payments |
GET-Endpunkte brauchen consents:read, die übrigen consents:write.
Das Objekt ReadConsent
firestoreIdstringerforderlichID of the read consent.
expirationDateTimestringdate-timeauthorizationStatusobjecterforderlich2 untergeordnete Felder anzeigen
statusstringerforderlichWertependingauthorisedrejectedrevokedconsumedexpired
updateDateTimestringdate-timeerforderlichproductsstring[]erforderlichBanking product, a group of bank services that a consent can cover.
15 Werte anzeigen
identityIdentity of the account holder.
read_consentsConsents that give read access to account data.
write_consentsConsents that allow payments.
accountsBank accounts and their details.
beneficiariesPayees saved at the bank.
balancesBalances of the accounts.
transactionsTransactions of the accounts.
statementsStatements of the accounts.
cardsPayment cards of the accounts.
variable_recurring_paymentsRecurring payments with variable amounts.
direct_debitsDirect debits of the accounts.
draft_paymentsPayments submitted to the bank and approved by the account holder in e-banking.
single_paymentsOne-time payments that the bank executes.
scheduled_paymentsPayments that the bank executes at a later date.
standing_order_paymentsStanding orders, recurring payments of a fixed amount.
featuresstring[]erforderlichBanking feature, a capability of the banking product named before the dot.
44 Werte anzeigen
identity.detailsReads the identity details of the account holder.
read_consents.multiple_consents_allowedAllows several read consents at the bank, each for its own accounts.
read_consents.single_consent_allowedAllows one read consent at the bank; a new consent replaces the previous one.
read_consents.redirectAuthorises read consents on the website or app of the bank.
read_consents.embeddedAuthorises read consents without leaving Sway.
write_consents.redirectAuthorises payment consents on the website or app of the bank.
write_consents.embeddedAuthorises payment consents without leaving Sway.
accounts.listLists the bank accounts.
accounts.detailsReads the details of a bank account.
beneficiaries.listLists the payees saved at the bank.
beneficiaries.detailsReads the details of a saved payee.
balances.intradayReads the balance during the day.
balances.closingReads the closing balance of each day.
transactions.intradayReads the transactions of the current day.
transactions.historyReads the past transactions.
statements.listLists the account statements.
statements.iso_camt053_xmlProvides account statements as ISO 20022 camt.053 XML files.
statements.pdfProvides account statements as PDF files.
direct_debits.listLists the direct debits.
direct_debits.detailsReads the details of a direct debit.
draft_payments.revolut_csvSubmits payments as a CSV file in the Revolut format.
draft_payments.iso_pain001_ch_xmlSubmits payments as an ISO 20022 pain.001 XML file in the Swiss variant.
draft_payments.iso_pain001_xmlSubmits payments as an ISO 20022 pain.001 XML file.
draft_payments.domesticSubmits domestic payments.
draft_payments.internationalSubmits international payments.
draft_payments.bulkSubmits several payments at once.
draft_payments.listLists the submitted payments.
draft_payments.detailsReads the details of a submitted payment.
single_payments.domesticExecutes domestic one-time payments.
single_payments.internationalExecutes international one-time payments.
single_payments.instantExecutes domestic instant payments.
single_payments.bulkExecutes several one-time payments at once.
single_payments.listLists the one-time payments.
single_payments.detailsReads the details of a one-time payment.
scheduled_payments.domesticSchedules domestic payments.
scheduled_payments.internationalSchedules international payments.
scheduled_payments.bulkSchedules several payments at once.
scheduled_payments.listLists the scheduled payments.
scheduled_payments.detailsReads the details of a scheduled payment.
standing_order_payments.domesticSets up domestic standing orders.
standing_order_payments.internationalSets up international standing orders.
standing_order_payments.bulkSets up several standing orders at once.
standing_order_payments.listLists the standing orders.
standing_order_payments.detailsReads the details of a standing order.
rangeobject2 untergeordnete Felder anzeigen
fromDateTimestringdate-timetoDateTimestringdate-timereferencestringerforderlichAlle 11 Felder anzeigenFeldliste ausblenden
serviceProviderIdstringerforderlichID of the service provider.
workspaceIdstringerforderlichID of the workspace.
creationobjecterforderlichWhen and by whom the resource was created.
2 untergeordnete Felder anzeigen
creationDateTimestringdate-timeerforderlichDate and time when the resource was created.
createdBystringID of the user who created the resource, when recorded.
solvedbooleanerforderlich{
"firestoreId": "rcons_UkVBRC0wMDQy",
"expirationDateTime": "2026-03-02T09:30:00.000Z",
"authorizationStatus": {
"status": "pending",
"updateDateTime": "2026-03-02T09:30:00.000Z"
},
"products": [
"identity"
],
"features": [
"identity.details"
],
"range": {
"fromDateTime": "2026-03-02T09:30:00.000Z",
"toDateTime": "2026-03-02T09:30:00.000Z"
},
"reference": "string",
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"creation": {
"creationDateTime": "2026-03-02T09:15:00.000Z",
"createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"solved": true
}/workspaces/{workspaceId}/read-consentsList read consents granted to access banking data
Bereichconsents:read
Pfadparameter
workspaceIdstringerforderlichID of the workspace.
Abfrageparameter
limitintegerMaximum number of items to return, from 1 to 100. A missing, invalid or non-positive value falls back to 20, and a larger value to 100.
Standard20
startAfterstringCursor of the page to return: the nextCursor of the previous page.
fieldsstringComma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.
idsstring[]Comma-separated IDs of the items to return, up to 30. When set, limit, startAfter and the filters are ignored.
Rückgabe
List of items
Items of the page, in list order.
limitintegererforderlichPage size of the request, or the number of requested ids.
nextCursorstringCursor of the next page, to pass as startAfter. Absent when the page holds fewer items than limit; a full last page still has one, and the page it points to is empty.
curl 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents' \
-H "Authorization: Bearer $SWAY_API_KEY"const response = await fetch('https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents', {
headers: {
Authorization: `Bearer ${process.env.SWAY_API_KEY}`,
},
});
console.log(await response.json());import os
import requests
response = requests.get(
"https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents",
headers={"Authorization": f"Bearer {os.environ['SWAY_API_KEY']}"},
)
print(response.json()){
"data": [
{
"firestoreId": "rcons_UkVBRC0wMDQy",
"expirationDateTime": "2026-03-02T09:30:00.000Z",
"authorizationStatus": {
"status": "pending",
"updateDateTime": "2026-03-02T09:30:00.000Z"
},
"products": [
"identity"
],
"features": [
"identity.details"
],
"range": {
"fromDateTime": "2026-03-02T09:30:00.000Z",
"toDateTime": "2026-03-02T09:30:00.000Z"
},
"reference": "string",
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"creation": {
"creationDateTime": "2026-03-02T09:15:00.000Z",
"createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"solved": true
}
],
"limit": 0,
"nextCursor": "string"
}{
"error": {
"code": "invalid-argument",
"message": "Invalid request"
}
}{
"error": {
"code": "unauthenticated",
"message": "Invalid or expired credentials"
}
}{
"error": {
"code": "permission-denied",
"message": "Missing required scope: invoices:read"
}
}{
"error": {
"code": "not-found",
"message": "Resource not found"
}
}{
"error": {
"code": "internal",
"message": "An internal error occurred"
}
}/workspaces/{workspaceId}/read-consentsCreate a new read consent with a banking provider
Bereichconsents:write
Pfadparameter
workspaceIdstringerforderlichID of the workspace.
Abfrageparameter
fieldsstringComma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.
Request-Body
serviceProviderIdstringerforderlichID of the service provider.
referencestringerforderlichconsentIdstringID of an earlier read consent to revoke and replace; the new consent keeps its reference.
Rückgabe
Successful response
curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents' \
-H "Authorization: Bearer $SWAY_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"reference": "string",
"consentId": "rcons_UkVBRC0wMDQy"
}'const response = await fetch('https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SWAY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"reference": "string",
"consentId": "rcons_UkVBRC0wMDQy"
}),
});
console.log(await response.json());import os
import requests
response = requests.post(
"https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents",
headers={"Authorization": f"Bearer {os.environ['SWAY_API_KEY']}"},
json={
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"reference": "string",
"consentId": "rcons_UkVBRC0wMDQy",
},
)
print(response.json()){
"data": {
"firestoreId": "rcons_UkVBRC0wMDQy",
"expirationDateTime": "2026-03-02T09:30:00.000Z",
"authorizationStatus": {
"status": "pending",
"updateDateTime": "2026-03-02T09:30:00.000Z"
},
"products": [
"identity"
],
"features": [
"identity.details"
],
"range": {
"fromDateTime": "2026-03-02T09:30:00.000Z",
"toDateTime": "2026-03-02T09:30:00.000Z"
},
"reference": "string",
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"creation": {
"creationDateTime": "2026-03-02T09:15:00.000Z",
"createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"solved": true
}
}{
"error": {
"code": "invalid-argument",
"message": "Invalid request"
}
}{
"error": {
"code": "unauthenticated",
"message": "Invalid or expired credentials"
}
}{
"error": {
"code": "permission-denied",
"message": "Missing required scope: invoices:read"
}
}{
"error": {
"code": "not-found",
"message": "Resource not found"
}
}{
"error": {
"code": "internal",
"message": "An internal error occurred"
}
}/workspaces/{workspaceId}/read-consents/{consentId}/finalizeFinalize a read consent after the provider authorization step
Bereichconsents:write
Pfadparameter
workspaceIdstringerforderlichID of the workspace.
consentIdstringerforderlichID of the read consent.
Abfrageparameter
fieldsstringComma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.
Rückgabe
Successful response
curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents/rcons_UkVBRC0wMDQy/finalize' \
-H "Authorization: Bearer $SWAY_API_KEY"const response = await fetch('https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents/rcons_UkVBRC0wMDQy/finalize', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SWAY_API_KEY}`,
},
});
console.log(await response.json());import os
import requests
response = requests.post(
"https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents/rcons_UkVBRC0wMDQy/finalize",
headers={"Authorization": f"Bearer {os.environ['SWAY_API_KEY']}"},
)
print(response.json()){
"data": {
"firestoreId": "rcons_UkVBRC0wMDQy",
"expirationDateTime": "2026-03-02T09:30:00.000Z",
"authorizationStatus": {
"status": "pending",
"updateDateTime": "2026-03-02T09:30:00.000Z"
},
"products": [
"identity"
],
"features": [
"identity.details"
],
"range": {
"fromDateTime": "2026-03-02T09:30:00.000Z",
"toDateTime": "2026-03-02T09:30:00.000Z"
},
"reference": "string",
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"creation": {
"creationDateTime": "2026-03-02T09:15:00.000Z",
"createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"solved": true
}
}{
"error": {
"code": "invalid-argument",
"message": "Invalid request"
}
}{
"error": {
"code": "unauthenticated",
"message": "Invalid or expired credentials"
}
}{
"error": {
"code": "permission-denied",
"message": "Missing required scope: invoices:read"
}
}{
"error": {
"code": "not-found",
"message": "Resource not found"
}
}{
"error": {
"code": "internal",
"message": "An internal error occurred"
}
}/workspaces/{workspaceId}/read-consents/{consentId}/renewRenew an expiring or expired read consent
Bereichconsents:write
Pfadparameter
workspaceIdstringerforderlichID of the workspace.
consentIdstringerforderlichID of the read consent.
Abfrageparameter
fieldsstringComma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.
Request-Body
serviceProviderIdstringerforderlichID of the service provider.
referencestringerforderlichRückgabe
Successful response
curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents/rcons_UkVBRC0wMDQy/renew' \
-H "Authorization: Bearer $SWAY_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"reference": "string"
}'const response = await fetch('https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents/rcons_UkVBRC0wMDQy/renew', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SWAY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"reference": "string"
}),
});
console.log(await response.json());import os
import requests
response = requests.post(
"https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents/rcons_UkVBRC0wMDQy/renew",
headers={"Authorization": f"Bearer {os.environ['SWAY_API_KEY']}"},
json={
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"reference": "string",
},
)
print(response.json()){
"data": {
"firestoreId": "rcons_UkVBRC0wMDQy",
"expirationDateTime": "2026-03-02T09:30:00.000Z",
"authorizationStatus": {
"status": "pending",
"updateDateTime": "2026-03-02T09:30:00.000Z"
},
"products": [
"identity"
],
"features": [
"identity.details"
],
"range": {
"fromDateTime": "2026-03-02T09:30:00.000Z",
"toDateTime": "2026-03-02T09:30:00.000Z"
},
"reference": "string",
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"creation": {
"creationDateTime": "2026-03-02T09:15:00.000Z",
"createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"solved": true
}
}{
"error": {
"code": "invalid-argument",
"message": "Invalid request"
}
}{
"error": {
"code": "unauthenticated",
"message": "Invalid or expired credentials"
}
}{
"error": {
"code": "permission-denied",
"message": "Missing required scope: invoices:read"
}
}{
"error": {
"code": "not-found",
"message": "Resource not found"
}
}{
"error": {
"code": "internal",
"message": "An internal error occurred"
}
}/workspaces/{workspaceId}/read-consents/{consentId}/revokeRevoke an active read consent
Bereichconsents:write
Pfadparameter
workspaceIdstringerforderlichID of the workspace.
consentIdstringerforderlichID of the read consent.
Rückgabe
No content
curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents/rcons_UkVBRC0wMDQy/revoke' \
-H "Authorization: Bearer $SWAY_API_KEY"const response = await fetch('https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents/rcons_UkVBRC0wMDQy/revoke', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SWAY_API_KEY}`,
},
});
console.log(response.status);import os
import requests
response = requests.post(
"https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents/rcons_UkVBRC0wMDQy/revoke",
headers={"Authorization": f"Bearer {os.environ['SWAY_API_KEY']}"},
)
print(response.status_code){
"error": {
"code": "invalid-argument",
"message": "Invalid request"
}
}{
"error": {
"code": "unauthenticated",
"message": "Invalid or expired credentials"
}
}{
"error": {
"code": "permission-denied",
"message": "Missing required scope: invoices:read"
}
}{
"error": {
"code": "not-found",
"message": "Resource not found"
}
}{
"error": {
"code": "internal",
"message": "An internal error occurred"
}
}/workspaces/{workspaceId}/read-consents/{consentId}/solveSolve a pending read consent issue requiring user action
Bereichconsents:write
Pfadparameter
workspaceIdstringerforderlichID of the workspace.
consentIdstringerforderlichID of the read consent.
Rückgabe
No content
curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents/rcons_UkVBRC0wMDQy/solve' \
-H "Authorization: Bearer $SWAY_API_KEY"const response = await fetch('https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents/rcons_UkVBRC0wMDQy/solve', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SWAY_API_KEY}`,
},
});
console.log(response.status);import os
import requests
response = requests.post(
"https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/read-consents/rcons_UkVBRC0wMDQy/solve",
headers={"Authorization": f"Bearer {os.environ['SWAY_API_KEY']}"},
)
print(response.status_code){
"error": {
"code": "invalid-argument",
"message": "Invalid request"
}
}{
"error": {
"code": "unauthenticated",
"message": "Invalid or expired credentials"
}
}{
"error": {
"code": "permission-denied",
"message": "Missing required scope: invoices:read"
}
}{
"error": {
"code": "not-found",
"message": "Resource not found"
}
}{
"error": {
"code": "internal",
"message": "An internal error occurred"
}
}/workspaces/{workspaceId}/write-consentsCreate a write consent to enable initiating payments
Bereichconsents:write
Pfadparameter
workspaceIdstringerforderlichID of the workspace.
Abfrageparameter
fieldsstringComma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.
Request-Body
serviceProviderIdstringerforderlichID of the service provider.
paymentDataobjecterforderlich11 untergeordnete Felder anzeigen
scopestring | nullScope of the payment, which depends on the countries and currencies of the debtor and creditor accounts.
domesticA GBP payment between two accounts in the United Kingdom, or a EUR payment between two accounts in SEPA countries.
internationalAny other payment, which needs the BIC of the creditor bank.
idempotencyIdstring | nullexecutionDatestringerforderlichamountnumbererforderlichAmount of the payment, in currency.
currencystringerforderlichreferencestring | nullcommunicationstring | nullinvoiceIdstring | nullID of the invoice.
chargeBearerstring | nullWerteCREDDEBTSHARSLEV
debtorobjecterforderlich4 untergeordnete Felder anzeigen
bankAccountIdstringerforderlichID of the bank account.
namestringerforderlichaccountIdentificationsobject[]erforderlich2 untergeordnete Felder anzeigen
typestringerforderlichKind of identifier of a bank account or of its bank.
14 Werte anzeigen
bicBank Identifier Code of the bank.
sortCodeSix-digit code of a bank and branch in the United Kingdom.
ibanInternational Bank Account Number.
bbanBasic Bank Account Number, the country-specific format of an account number.
accountNumberAccount number that the bank assigns, unique within the bank or the branch.
panPrimary Account Number, the number of a credit or debit card.
emailEmail address that identifies the account.
msisdnMobile phone number that identifies the account.
virtualAccountIdIdentifier of a virtual sub-account of a main account.
globalWalletIdentifier of a digital wallet that holds and pays in several currencies.
clabeCLABE, the 18-digit standardized bank code of a Mexican bank account.
bitcoinAddressSingle Bitcoin address, the only address the account tracks.
bitcoinXpubBitcoin extended public key (xpub, ypub or zpub), from which the addresses of the wallet are derived.
otherAnother kind of identifier.
valuestringerforderlichValue of the identifier, for example the IBAN or the BIC.
currencystringerforderlichcreditorobjecterforderlich6 untergeordnete Felder anzeigen
counterpartyIdstringerforderlichID of the counterparty.
counterpartyCashAccountIdstringerforderlichnamestringerforderlichaccountIdentificationsobject[]erforderlich2 untergeordnete Felder anzeigen
typestringerforderlichKind of identifier of a bank account or of its bank.
14 Werte anzeigen
bicBank Identifier Code of the bank.
sortCodeSix-digit code of a bank and branch in the United Kingdom.
ibanInternational Bank Account Number.
bbanBasic Bank Account Number, the country-specific format of an account number.
accountNumberAccount number that the bank assigns, unique within the bank or the branch.
panPrimary Account Number, the number of a credit or debit card.
emailEmail address that identifies the account.
msisdnMobile phone number that identifies the account.
virtualAccountIdIdentifier of a virtual sub-account of a main account.
globalWalletIdentifier of a digital wallet that holds and pays in several currencies.
clabeCLABE, the 18-digit standardized bank code of a Mexican bank account.
bitcoinAddressSingle Bitcoin address, the only address the account tracks.
bitcoinXpubBitcoin extended public key (xpub, ypub or zpub), from which the addresses of the wallet are derived.
otherAnother kind of identifier.
valuestringerforderlichValue of the identifier, for example the IBAN or the BIC.
currencystringerforderlichaddressobject12 untergeordnete Felder anzeigen
countrystringISO 3166-1 alpha-2 country code
postCodestringPost code of the address.
townNamestringName of the town or city.
streetNamestringName of the street.
buildingNumberstringNumber of the building in the street.
namestringName of the building or place.
sortingCodestringAdditional sorting code of the postal service, used in a few countries such as France.
postBoxstringPost office box.
administrativeAreastringRegion of the country, such as a canton or a state.
recipientsstring[]Names of the people the address is for.
organizationstringName of the organization at the address.
sourcestring[]Text the address was read from, one item per line.
callbackParamsRecord<string, string | number | boolean>Rückgabe
Successful response
dataWriteConsenterforderlich12 untergeordnete Felder anzeigen
firestoreIdstringerforderlichID of the write consent.
expirationDateTimestringdate-timeauthorizationStatusobjecterforderlich2 untergeordnete Felder anzeigen
statusstringerforderlichWertependingauthorisedrejectedrevokedconsumedexpired
updateDateTimestringdate-timeerforderlichauthorizationUristringuriproductsstring[]erforderlichBanking product, a group of bank services that a consent can cover.
15 Werte anzeigen
identityIdentity of the account holder.
read_consentsConsents that give read access to account data.
write_consentsConsents that allow payments.
accountsBank accounts and their details.
beneficiariesPayees saved at the bank.
balancesBalances of the accounts.
transactionsTransactions of the accounts.
statementsStatements of the accounts.
cardsPayment cards of the accounts.
variable_recurring_paymentsRecurring payments with variable amounts.
direct_debitsDirect debits of the accounts.
draft_paymentsPayments submitted to the bank and approved by the account holder in e-banking.
single_paymentsOne-time payments that the bank executes.
scheduled_paymentsPayments that the bank executes at a later date.
standing_order_paymentsStanding orders, recurring payments of a fixed amount.
featuresstring[]erforderlichBanking feature, a capability of the banking product named before the dot.
44 Werte anzeigen
identity.detailsReads the identity details of the account holder.
read_consents.multiple_consents_allowedAllows several read consents at the bank, each for its own accounts.
read_consents.single_consent_allowedAllows one read consent at the bank; a new consent replaces the previous one.
read_consents.redirectAuthorises read consents on the website or app of the bank.
read_consents.embeddedAuthorises read consents without leaving Sway.
write_consents.redirectAuthorises payment consents on the website or app of the bank.
write_consents.embeddedAuthorises payment consents without leaving Sway.
accounts.listLists the bank accounts.
accounts.detailsReads the details of a bank account.
beneficiaries.listLists the payees saved at the bank.
beneficiaries.detailsReads the details of a saved payee.
balances.intradayReads the balance during the day.
balances.closingReads the closing balance of each day.
transactions.intradayReads the transactions of the current day.
transactions.historyReads the past transactions.
statements.listLists the account statements.
statements.iso_camt053_xmlProvides account statements as ISO 20022 camt.053 XML files.
statements.pdfProvides account statements as PDF files.
direct_debits.listLists the direct debits.
direct_debits.detailsReads the details of a direct debit.
draft_payments.revolut_csvSubmits payments as a CSV file in the Revolut format.
draft_payments.iso_pain001_ch_xmlSubmits payments as an ISO 20022 pain.001 XML file in the Swiss variant.
draft_payments.iso_pain001_xmlSubmits payments as an ISO 20022 pain.001 XML file.
draft_payments.domesticSubmits domestic payments.
draft_payments.internationalSubmits international payments.
draft_payments.bulkSubmits several payments at once.
draft_payments.listLists the submitted payments.
draft_payments.detailsReads the details of a submitted payment.
single_payments.domesticExecutes domestic one-time payments.
single_payments.internationalExecutes international one-time payments.
single_payments.instantExecutes domestic instant payments.
single_payments.bulkExecutes several one-time payments at once.
single_payments.listLists the one-time payments.
single_payments.detailsReads the details of a one-time payment.
scheduled_payments.domesticSchedules domestic payments.
scheduled_payments.internationalSchedules international payments.
scheduled_payments.bulkSchedules several payments at once.
scheduled_payments.listLists the scheduled payments.
scheduled_payments.detailsReads the details of a scheduled payment.
standing_order_payments.domesticSets up domestic standing orders.
standing_order_payments.internationalSets up international standing orders.
standing_order_payments.bulkSets up several standing orders at once.
standing_order_payments.listLists the standing orders.
standing_order_payments.detailsReads the details of a standing order.
rangeobject2 untergeordnete Felder anzeigen
fromDateTimestringdate-timetoDateTimestringdate-timereferencestringserviceProviderIdstringerforderlichID of the service provider.
workspaceIdstringerforderlichID of the workspace.
creationobjecterforderlichWhen and by whom the resource was created.
2 untergeordnete Felder anzeigen
creationDateTimestringdate-timeerforderlichDate and time when the resource was created.
createdBystringID of the user who created the resource, when recorded.
paymentDataobjecterforderlich11 untergeordnete Felder anzeigen
scopestringScope of the payment, which depends on the countries and currencies of the debtor and creditor accounts.
domesticA GBP payment between two accounts in the United Kingdom, or a EUR payment between two accounts in SEPA countries.
internationalAny other payment, which needs the BIC of the creditor bank.
idempotencyIdstringexecutionDatestringerforderlichamountnumbererforderlichcurrencystringerforderlichreferencestringcommunicationstringinvoiceIdstringID of the invoice.
chargeBearerstringWerteCREDDEBTSHARSLEV
debtorobjecterforderlich4 untergeordnete Felder anzeigen
bankAccountIdstringerforderlichID of the bank account.
namestringerforderlichaccountIdentificationsobject[]erforderlich2 untergeordnete Felder anzeigen
typestringerforderlichKind of identifier of a bank account or of its bank.
14 Werte anzeigen
bicBank Identifier Code of the bank.
sortCodeSix-digit code of a bank and branch in the United Kingdom.
ibanInternational Bank Account Number.
bbanBasic Bank Account Number, the country-specific format of an account number.
accountNumberAccount number that the bank assigns, unique within the bank or the branch.
panPrimary Account Number, the number of a credit or debit card.
emailEmail address that identifies the account.
msisdnMobile phone number that identifies the account.
virtualAccountIdIdentifier of a virtual sub-account of a main account.
globalWalletIdentifier of a digital wallet that holds and pays in several currencies.
clabeCLABE, the 18-digit standardized bank code of a Mexican bank account.
bitcoinAddressSingle Bitcoin address, the only address the account tracks.
bitcoinXpubBitcoin extended public key (xpub, ypub or zpub), from which the addresses of the wallet are derived.
otherAnother kind of identifier.
valuestringerforderlichValue of the identifier, for example the IBAN or the BIC.
currencystringerforderlichcreditorobjecterforderlich6 untergeordnete Felder anzeigen
counterpartyIdstringerforderlichID of the counterparty.
counterpartyCashAccountIdstringerforderlichnamestringerforderlichaccountIdentificationsobject[]erforderlich2 untergeordnete Felder anzeigen
typestringerforderlichKind of identifier of a bank account or of its bank.
14 Werte anzeigen
bicBank Identifier Code of the bank.
sortCodeSix-digit code of a bank and branch in the United Kingdom.
ibanInternational Bank Account Number.
bbanBasic Bank Account Number, the country-specific format of an account number.
accountNumberAccount number that the bank assigns, unique within the bank or the branch.
panPrimary Account Number, the number of a credit or debit card.
emailEmail address that identifies the account.
msisdnMobile phone number that identifies the account.
virtualAccountIdIdentifier of a virtual sub-account of a main account.
globalWalletIdentifier of a digital wallet that holds and pays in several currencies.
clabeCLABE, the 18-digit standardized bank code of a Mexican bank account.
bitcoinAddressSingle Bitcoin address, the only address the account tracks.
bitcoinXpubBitcoin extended public key (xpub, ypub or zpub), from which the addresses of the wallet are derived.
otherAnother kind of identifier.
valuestringerforderlichValue of the identifier, for example the IBAN or the BIC.
currencystringerforderlichaddressobject12 untergeordnete Felder anzeigen
countrystringISO 3166-1 alpha-2 country code
postCodestringPost code of the address.
townNamestringName of the town or city.
streetNamestringName of the street.
buildingNumberstringNumber of the building in the street.
namestringName of the building or place.
sortingCodestringAdditional sorting code of the postal service, used in a few countries such as France.
postBoxstringPost office box.
administrativeAreastringRegion of the country, such as a canton or a state.
recipientsstring[]Names of the people the address is for.
organizationstringName of the organization at the address.
sourcestring[]Text the address was read from, one item per line.
curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/write-consents' \
-H "Authorization: Bearer $SWAY_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"paymentData": {
"scope": "domestic",
"idempotencyId": "string",
"executionDate": "2026-03-02",
"amount": 0,
"currency": "string",
"reference": "string",
"communication": "string",
"invoiceId": "Iv5zP2nK7wRt3xMq9bLd",
"chargeBearer": "CRED",
"debtor": {
"bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
"name": "string",
"accountIdentifications": [
{
"type": "bic",
"value": "string"
}
],
"currency": "string"
},
"creditor": {
"counterpartyId": "Cp2nG7vB4xLq9wRt5hMz",
"counterpartyCashAccountId": "string",
"name": "string",
"accountIdentifications": [
{
"type": "bic",
"value": "string"
}
],
"currency": "string",
"address": {
"country": "CH",
"postCode": "string",
"townName": "string",
"streetName": "string",
"buildingNumber": "string",
"name": "string",
"sortingCode": "string",
"postBox": "string",
"administrativeArea": "string",
"recipients": [
"string"
],
"organization": "string",
"source": [
"string"
]
}
}
},
"callbackParams": {
"key": "string"
}
}'const response = await fetch('https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/write-consents', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SWAY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"paymentData": {
"scope": "domestic",
"idempotencyId": "string",
"executionDate": "2026-03-02",
"amount": 0,
"currency": "string",
"reference": "string",
"communication": "string",
"invoiceId": "Iv5zP2nK7wRt3xMq9bLd",
"chargeBearer": "CRED",
"debtor": {
"bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
"name": "string",
"accountIdentifications": [
{
"type": "bic",
"value": "string"
}
],
"currency": "string"
},
"creditor": {
"counterpartyId": "Cp2nG7vB4xLq9wRt5hMz",
"counterpartyCashAccountId": "string",
"name": "string",
"accountIdentifications": [
{
"type": "bic",
"value": "string"
}
],
"currency": "string",
"address": {
"country": "CH",
"postCode": "string",
"townName": "string",
"streetName": "string",
"buildingNumber": "string",
"name": "string",
"sortingCode": "string",
"postBox": "string",
"administrativeArea": "string",
"recipients": [
"string"
],
"organization": "string",
"source": [
"string"
]
}
}
},
"callbackParams": {
"key": "string"
}
}),
});
console.log(await response.json());import os
import requests
response = requests.post(
"https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/write-consents",
headers={"Authorization": f"Bearer {os.environ['SWAY_API_KEY']}"},
json={
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"paymentData": {
"scope": "domestic",
"idempotencyId": "string",
"executionDate": "2026-03-02",
"amount": 0,
"currency": "string",
"reference": "string",
"communication": "string",
"invoiceId": "Iv5zP2nK7wRt3xMq9bLd",
"chargeBearer": "CRED",
"debtor": {
"bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
"name": "string",
"accountIdentifications": [
{
"type": "bic",
"value": "string",
},
],
"currency": "string",
},
"creditor": {
"counterpartyId": "Cp2nG7vB4xLq9wRt5hMz",
"counterpartyCashAccountId": "string",
"name": "string",
"accountIdentifications": [
{
"type": "bic",
"value": "string",
},
],
"currency": "string",
"address": {
"country": "CH",
"postCode": "string",
"townName": "string",
"streetName": "string",
"buildingNumber": "string",
"name": "string",
"sortingCode": "string",
"postBox": "string",
"administrativeArea": "string",
"recipients": [
"string",
],
"organization": "string",
"source": [
"string",
],
},
},
},
"callbackParams": {
"key": "string",
},
},
)
print(response.json()){
"data": {
"firestoreId": "wcons_V1JJVEUtMDA0Mg",
"expirationDateTime": "2026-03-02T09:30:00.000Z",
"authorizationStatus": {
"status": "pending",
"updateDateTime": "2026-03-02T09:30:00.000Z"
},
"authorizationUri": "https://example.com",
"products": [
"identity"
],
"features": [
"identity.details"
],
"range": {
"fromDateTime": "2026-03-02T09:30:00.000Z",
"toDateTime": "2026-03-02T09:30:00.000Z"
},
"reference": "string",
"serviceProviderId": "sprov_SUlEUDAwMjMw",
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"creation": {
"creationDateTime": "2026-03-02T09:15:00.000Z",
"createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"paymentData": {
"scope": "domestic",
"idempotencyId": "string",
"executionDate": "2026-03-02",
"amount": 0,
"currency": "string",
"reference": "string",
"communication": "string",
"invoiceId": "Iv5zP2nK7wRt3xMq9bLd",
"chargeBearer": "CRED",
"debtor": {
"bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
"name": "string",
"accountIdentifications": [
{
"type": "bic",
"value": "string"
}
],
"currency": "string"
},
"creditor": {
"counterpartyId": "Cp2nG7vB4xLq9wRt5hMz",
"counterpartyCashAccountId": "string",
"name": "string",
"accountIdentifications": [
{
"type": "bic",
"value": "string"
}
],
"currency": "string",
"address": {
"country": "CH",
"postCode": "8001",
"townName": "Zürich",
"streetName": "Bahnhofstrasse",
"buildingNumber": "10",
"name": "Haus zur Linde",
"sortingCode": "string",
"postBox": "Postfach 1234",
"administrativeArea": "Zürich",
"recipients": [
"Anna Meier"
],
"organization": "Muster AG",
"source": [
"Muster AG",
"Bahnhofstrasse 10",
"8001 Zürich"
]
}
}
}
}
}{
"error": {
"code": "invalid-argument",
"message": "Invalid request"
}
}{
"error": {
"code": "unauthenticated",
"message": "Invalid or expired credentials"
}
}{
"error": {
"code": "permission-denied",
"message": "Missing required scope: invoices:read"
}
}{
"error": {
"code": "not-found",
"message": "Resource not found"
}
}{
"error": {
"code": "internal",
"message": "An internal error occurred"
}
}