| Méthode | Chemin | Résumé |
|---|---|---|
| GET | …/draft-payments | List draft payments in the workspace |
| POST | …/draft-payments | Create a single draft payment |
| GET | …/draft-payments/{draftPaymentId}/draft-transfers | List transfers belonging to a draft payment |
| GET | …/draft-payments/search | Search draft payments by attributes |
Les chemins commencent par /workspaces/{workspaceId}. Les endpoints GET demandent draft-payments:read, les autres draft-payments:write.
L’objet DraftPayment
firestoreIdstringobligatoireID of the draft payment.
messageIdstringobligatoireendToEndIdsstring[]obligatoiretransferIdsstring[]obligatoireworkspaceIdstringobligatoireID of the workspace.
bankAccountIdstringobligatoireID of the bank account.
counterpartyIdsstring[]obligatoireAfficher les 14 champsMasquer la liste des champs
transferCounterpartyIdsRecord<string, string>obligatoirecreationobjectobligatoireWhen and by whom the resource was created.
Afficher les 2 champs enfants
creationDateTimestringdate-timeobligatoireDate and time when the resource was created.
createdBystringID of the user who created the resource, when recorded.
invoiceIdsstring[]instructionobjectobligatoireAfficher les 7 champs enfants
executionDatestringpaymentMethodstringpaymentInformationIdstringdebtorNamestringdebtorIbanstringdebtorCurrencystringdebtorBicstringsubmissionStatusobjectAfficher les 2 champs enfants
statusstringcreationDateTimestringinstructionStatusobjectAfficher 1 champ enfant
statusstringrelationshipsobjectobligatoireAfficher 1 champ enfant
firstTransfersDraftPaymentTransfer[]obligatoireAfficher les 8 champs enfants
firestoreIdstringobligatoireID of the draft payment transfer.
workspaceIdstringobligatoireID of the workspace.
draftPaymentIdstringobligatoireID of the draft payment.
bankAccountIdstringobligatoireID of the bank account.
counterpartyIdstringobligatoireID of the counterparty.
transferCreditTransferobligatoireAfficher les 8 champs enfants
instructionIdstringendToEndIdstringobligatoireamountnumbercurrencystringcreditorNamestringcreditorIbanstringcommunicationstringstructuredReferencestringtransferStatusobjectAfficher les 2 champs enfants
statusstringacceptanceDateTimestringrelationshipsobjectobligatoireAfficher 1 champ enfant
{
"firestoreId": "dpay_RFAtMjAyNjAzMDI",
"messageId": "string",
"endToEndIds": [
"string"
],
"transferIds": [
"string"
],
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
"counterpartyIds": [
"string"
],
"transferCounterpartyIds": {
"key": "string"
},
"creation": {
"creationDateTime": "2026-03-02T09:15:00.000Z",
"createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"invoiceIds": [
"string"
],
"instruction": {
"executionDate": "string",
"paymentMethod": "string",
"paymentInformationId": "string",
"debtorName": "string",
"debtorIban": "string",
"debtorCurrency": "string",
"debtorBic": "string"
},
"submissionStatus": {
"status": "string",
"creationDateTime": "string"
},
"instructionStatus": {
"status": "string"
},
"relationships": {
"firstTransfers": [
{
"firestoreId": "dtrans_RFQtMjAyNjAzMDI",
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"draftPaymentId": "dpay_RFAtMjAyNjAzMDI",
"bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
"counterpartyId": "Cp2nG7vB4xLq9wRt5hMz",
"transfer": {
"instructionId": "string",
"endToEndId": "string",
"amount": 0,
"currency": "string",
"creditorName": "string",
"creditorIban": "string",
"communication": "string",
"structuredReference": "string"
},
"transferStatus": {
"status": "string",
"acceptanceDateTime": "string"
},
"relationships": {
"counterparty": {
"firestoreId": "Cp2nG7vB4xLq9wRt5hMz",
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"creation": {
"creationDateTime": "2026-03-02T09:15:00.000Z",
"createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"activation": {
"enabled": true,
"updateDateTime": "2026-03-02T09:15:00.000Z",
"updatedBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"entityType": "individual",
"name": "string",
"phones": [
"string"
],
"emails": [
"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"
]
},
"contactPersons": [
{
"name": "string",
"phone": "string",
"email": "string"
}
],
"taxIdentification": "string",
"notes": "string",
"cashAccounts": [
{
"identifications": [
{
"type": "bic",
"value": "string"
}
],
"currency": "CHF",
"bankAddress": {
"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"
]
},
"internalId": "string",
"nickname": "string",
"verification": {
"id": "3f2c8a1e-6b4d-4e7a-9c15-8d2b7f0e4a61",
"status": "verified",
"holderName": "string",
"dateTime": "2026-03-02T09:30:00.000Z"
}
}
],
"cashAccountIdentifications": [
"string"
],
"approvedCashAccountIds": [
"string"
],
"bankAccountId": "string"
}
}
}
]
}
}/workspaces/{workspaceId}/draft-paymentsList draft payments in the workspace
Portéedraft-payments:read
Paramètres de chemin
workspaceIdstringobligatoireID of the workspace.
Paramètres de requête
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.
Par défaut20
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.
Renvoie
List of items
Items of the page, in list order.
limitintegerobligatoirePage 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/draft-payments' \
-H "Authorization: Bearer $SWAY_API_KEY"const response = await fetch('https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/draft-payments', {
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/draft-payments",
headers={"Authorization": f"Bearer {os.environ['SWAY_API_KEY']}"},
)
print(response.json()){
"data": [
{
"firestoreId": "dpay_RFAtMjAyNjAzMDI",
"messageId": "string",
"endToEndIds": [
"string"
],
"transferIds": [
"string"
],
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
"counterpartyIds": [
"string"
],
"transferCounterpartyIds": {
"key": "string"
},
"creation": {
"creationDateTime": "2026-03-02T09:15:00.000Z",
"createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"invoiceIds": [
"string"
],
"instruction": {
"executionDate": "string",
"paymentMethod": "string",
"paymentInformationId": "string",
"debtorName": "string",
"debtorIban": "string",
"debtorCurrency": "string",
"debtorBic": "string"
},
"submissionStatus": {
"status": "string",
"creationDateTime": "string"
},
"instructionStatus": {
"status": "string"
},
"relationships": {…}
}
],
"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}/draft-paymentsCreate a single draft payment
Portéedraft-payments:write
Paramètres de chemin
workspaceIdstringobligatoireID of the workspace.
Paramètres de requête
fieldsstringComma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.
Corps de la requête
bankAccountIdstringobligatoireID of the bank account.
executionDatestringobligatoireamountnumberobligatoirecurrencystringISO 4217 currency code
counterpartyIdstringobligatoireID of the counterparty.
counterpartyCashAccountIdstringobligatoirereferencestringcommunicationstringobligatoireinvoiceIdstringID of the invoice.
Renvoie
Successful response
curl -X POST 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/draft-payments' \
-H "Authorization: Bearer $SWAY_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
"executionDate": "2026-03-02",
"amount": 0,
"currency": "CHF",
"counterpartyId": "Cp2nG7vB4xLq9wRt5hMz",
"counterpartyCashAccountId": "string",
"reference": "string",
"communication": "string",
"invoiceId": "Iv5zP2nK7wRt3xMq9bLd"
}'const response = await fetch('https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/draft-payments', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SWAY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
"executionDate": "2026-03-02",
"amount": 0,
"currency": "CHF",
"counterpartyId": "Cp2nG7vB4xLq9wRt5hMz",
"counterpartyCashAccountId": "string",
"reference": "string",
"communication": "string",
"invoiceId": "Iv5zP2nK7wRt3xMq9bLd"
}),
});
console.log(await response.json());import os
import requests
response = requests.post(
"https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/draft-payments",
headers={"Authorization": f"Bearer {os.environ['SWAY_API_KEY']}"},
json={
"bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
"executionDate": "2026-03-02",
"amount": 0,
"currency": "CHF",
"counterpartyId": "Cp2nG7vB4xLq9wRt5hMz",
"counterpartyCashAccountId": "string",
"reference": "string",
"communication": "string",
"invoiceId": "Iv5zP2nK7wRt3xMq9bLd",
},
)
print(response.json()){
"data": {
"firestoreId": "dpay_RFAtMjAyNjAzMDI",
"messageId": "string",
"endToEndIds": [
"string"
],
"transferIds": [
"string"
],
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
"counterpartyIds": [
"string"
],
"transferCounterpartyIds": {
"key": "string"
},
"creation": {
"creationDateTime": "2026-03-02T09:15:00.000Z",
"createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"invoiceIds": [
"string"
],
"instruction": {
"executionDate": "string",
"paymentMethod": "string",
"paymentInformationId": "string",
"debtorName": "string",
"debtorIban": "string",
"debtorCurrency": "string",
"debtorBic": "string"
},
"submissionStatus": {
"status": "string",
"creationDateTime": "string"
},
"instructionStatus": {
"status": "string"
},
"relationships": {…}
}
}{
"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}/draft-payments/{draftPaymentId}/draft-transfersList transfers belonging to a draft payment
Portéedraft-payments:read
Paramètres de chemin
workspaceIdstringobligatoireID of the workspace.
draftPaymentIdstringobligatoireID of the draft payment.
Paramètres de requête
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.
Par défaut20
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.
Renvoie
List of items
dataDraftPaymentTransfer[]obligatoireItems of the page, in list order.
Afficher les 8 champs enfants
firestoreIdstringobligatoireID of the draft payment transfer.
workspaceIdstringobligatoireID of the workspace.
draftPaymentIdstringobligatoireID of the draft payment.
bankAccountIdstringobligatoireID of the bank account.
counterpartyIdstringobligatoireID of the counterparty.
transferCreditTransferobligatoireAfficher les 8 champs enfants
instructionIdstringendToEndIdstringobligatoireamountnumbercurrencystringcreditorNamestringcreditorIbanstringcommunicationstringstructuredReferencestringtransferStatusobjectAfficher les 2 champs enfants
statusstringacceptanceDateTimestringrelationshipsobjectobligatoireAfficher 1 champ enfant
limitintegerobligatoirePage 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/draft-payments/dpay_RFAtMjAyNjAzMDI/draft-transfers' \
-H "Authorization: Bearer $SWAY_API_KEY"const response = await fetch('https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/draft-payments/dpay_RFAtMjAyNjAzMDI/draft-transfers', {
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/draft-payments/dpay_RFAtMjAyNjAzMDI/draft-transfers",
headers={"Authorization": f"Bearer {os.environ['SWAY_API_KEY']}"},
)
print(response.json()){
"data": [
{
"firestoreId": "dtrans_RFQtMjAyNjAzMDI",
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"draftPaymentId": "dpay_RFAtMjAyNjAzMDI",
"bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
"counterpartyId": "Cp2nG7vB4xLq9wRt5hMz",
"transfer": {
"instructionId": "string",
"endToEndId": "string",
"amount": 0,
"currency": "string",
"creditorName": "string",
"creditorIban": "string",
"communication": "string",
"structuredReference": "string"
},
"transferStatus": {
"status": "string",
"acceptanceDateTime": "string"
},
"relationships": {
"counterparty": {
"firestoreId": "Cp2nG7vB4xLq9wRt5hMz",
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"creation": {
"creationDateTime": "2026-03-02T09:15:00.000Z",
"createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"activation": {
"enabled": true,
"updateDateTime": "2026-03-02T09:15:00.000Z",
"updatedBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"entityType": "individual",
"name": "string",
"phones": [
"string"
],
"emails": [
"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"
]
},
"contactPersons": [
{
"name": "string",
"phone": "string",
"email": "string"
}
],
"taxIdentification": "string",
"notes": "string",
"cashAccounts": [
{
"identifications": [
{
"type": "bic",
"value": "string"
}
],
"currency": "CHF",
"bankAddress": {
"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"
]
},
"internalId": "string",
"nickname": "string",
"verification": {
"id": "3f2c8a1e-6b4d-4e7a-9c15-8d2b7f0e4a61",
"status": "verified",
"holderName": "string",
"dateTime": "2026-03-02T09:30:00.000Z"
}
}
],
"cashAccountIdentifications": [
"string"
],
"approvedCashAccountIds": [
"string"
],
"bankAccountId": "string"
}
}
}
],
"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}/draft-payments/searchSearch draft payments by attributes
Portéedraft-payments:read
Paramètres de chemin
workspaceIdstringobligatoireID of the workspace.
Paramètres de requête
fieldsstringComma-separated property paths to include in the response, or in each item of a list. Use dots for nested paths.
querystringobligatoirepageintegerPar défaut0
sizeintegerPar défaut20
Renvoie
Successful response
curl 'https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/draft-payments/search?query=string' \
-H "Authorization: Bearer $SWAY_API_KEY"const response = await fetch('https://api.business.swayapp.io/v1/workspaces/Wk7fQ2xR9bLm4tZp8sNv/draft-payments/search?query=string', {
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/draft-payments/search?query=string",
headers={"Authorization": f"Bearer {os.environ['SWAY_API_KEY']}"},
)
print(response.json()){
"data": [
{
"firestoreId": "dpay_RFAtMjAyNjAzMDI",
"messageId": "string",
"endToEndIds": [
"string"
],
"transferIds": [
"string"
],
"workspaceId": "Wk7fQ2xR9bLm4tZp8sNv",
"bankAccountId": "bacc_Q0gzMTA4NzY1NDM",
"counterpartyIds": [
"string"
],
"transferCounterpartyIds": {
"key": "string"
},
"creation": {
"creationDateTime": "2026-03-02T09:15:00.000Z",
"createdBy": "Xq3vT9mB2kLpR7sN4wYc8dZf1aHj"
},
"invoiceIds": [
"string"
],
"instruction": {
"executionDate": "string",
"paymentMethod": "string",
"paymentInformationId": "string",
"debtorName": "string",
"debtorIban": "string",
"debtorCurrency": "string",
"debtorBic": "string"
},
"submissionStatus": {
"status": "string",
"creationDateTime": "string"
},
"instructionStatus": {
"status": "string"
},
"relationships": {…}
}
]
}{
"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"
}
}