Every API here is available over the APIs.io API and to AI agents over MCP.
{
"info": {
"_postman_id": "0f2c9d31-5b1a-4c77-9c2e-2a7f3b0a11e2",
"name": "Swan Partner API (GraphQL)",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"description": {
"content": "Swan embedded-banking GraphQL API. Transport is HTTPS POST with a GraphQL body against the Partner endpoint (https://api.swan.io/live-partner/graphql) or the Unauthenticated endpoint for onboarding. Authenticate with an OAuth2 Bearer access token scoped to your Project. Use the sandbox hosts (sandbox-partner / sandbox-unauthenticated) for testing.",
"type": "text/plain"
}
},
"item": [
{
"name": "Accounts",
"item": [
{
"name": "Get account by id",
"request": {
"method": "POST",
"header": [
{ "key": "Content-Type", "value": "application/json" }
],
"url": {
"raw": "{{partnerUrl}}",
"host": [ "{{partnerUrl}}" ]
},
"body": {
"mode": "graphql",
"graphql": {
"query": "query Account($id: ID!) {\n account(id: $id) {\n id\n name\n IBAN\n BIC\n status\n balances { available { value currency } }\n }\n}",
"variables": "{\n \"id\": \"account-id\"\n}"
}
},
"description": "Fetch a single account, its IBAN/BIC, status, and balances."
},
"response": []
},
{
"name": "List accounts",
"request": {
"method": "POST",
"header": [
{ "key": "Content-Type", "value": "application/json" }
],
"url": {
"raw": "{{partnerUrl}}",
"host": [ "{{partnerUrl}}" ]
},
"body": {
"mode": "graphql",
"graphql": {
"query": "query Accounts($first: Int) {\n accounts(first: $first) {\n totalCount\n edges { node { id name status } }\n }\n}",
"variables": "{\n \"first\": 20\n}"
}
},
"description": "List accounts visible to the current Project / access token."
},
"response": []
}
]
},
{
"name": "Account Memberships",
"item": [
{
"name": "Add account memberships",
"request": {
"method": "POST",
"header": [
{ "key": "Content-Type", "value": "application/json" }
],
"url": {
"raw": "{{partnerUrl}}",
"host": [ "{{partnerUrl}}" ]
},
"body": {
"mode": "graphql",
"graphql": {
"query": "mutation AddAccountMemberships($input: AddAccountMembershipInput!) {\n addAccountMemberships(input: $input) {\n accountMemberships { id status email }\n consent { id consentUrl status }\n }\n}",
"variables": "{\n \"input\": {\n \"accountId\": \"account-id\",\n \"email\": \"member@example.com\",\n \"canViewAccount\": true\n }\n}"
}
},
"description": "Add up to 200 account memberships with a single consent. Returns a consent URL to approve."
},
"response": []
},
{
"name": "Resume account membership",
"request": {
"method": "POST",
"header": [
{ "key": "Content-Type", "value": "application/json" }
],
"url": {
"raw": "{{partnerUrl}}",
"host": [ "{{partnerUrl}}" ]
},
"body": {
"mode": "graphql",
"graphql": {
"query": "mutation ResumeAccountMembership($id: ID!) {\n resumeAccountMembership(id: $id) {\n accountMembership { id status }\n }\n}",
"variables": "{\n \"id\": \"membership-id\"\n}"
}
},
"description": "Resume an account membership that was previously suspended."
},
"response": []
}
]
},
{
"name": "Cards",
"item": [
{
"name": "Add cards",
"request": {
"method": "POST",
"header": [
{ "key": "Content-Type", "value": "application/json" }
],
"url": {
"raw": "{{partnerUrl}}",
"host": [ "{{partnerUrl}}" ]
},
"body": {
"mode": "graphql",
"graphql": {
"query": "mutation AddCards($input: AddCardInput!) {\n addCards(input: $input) {\n cards { id type status }\n consent { id consentUrl status }\n }\n}",
"variables": "{\n \"input\": {\n \"accountMembershipId\": \"membership-id\",\n \"printPhysicalCard\": false\n }\n}"
}
},
"description": "Issue up to 200 cards (optionally physical) with a single consent."
},
"response": []
}
]
},
{
"name": "Payments",
"item": [
{
"name": "Initiate SEPA credit transfers",
"request": {
"method": "POST",
"header": [
{ "key": "Content-Type", "value": "application/json" }
],
"url": {
"raw": "{{partnerUrl}}",
"host": [ "{{partnerUrl}}" ]
},
"body": {
"mode": "graphql",
"graphql": {
"query": "mutation InitiateCreditTransfers($input: InitiateCreditTransfersInput!) {\n initiateCreditTransfers(input: $input) {\n payment { id status }\n consent { id consentUrl status }\n }\n}",
"variables": "{\n \"input\": {\n \"accountId\": \"account-id\",\n \"consentRedirectUrl\": \"https://example.com/callback\",\n \"creditTransfers\": [\n {\n \"amount\": { \"value\": \"42.00\", \"currency\": \"EUR\" },\n \"sepaBeneficiary\": { \"name\": \"Jane Doe\", \"iban\": \"FR7699999001000000000000000\" },\n \"isInstant\": true\n }\n ]\n }\n}"
}
},
"description": "Send one or more SEPA credit transfers; set isInstant for SEPA Instant Credit Transfers."
},
"response": []
}
]
},
{
"name": "Transactions",
"item": [
{
"name": "List account transactions",
"request": {
"method": "POST",
"header": [
{ "key": "Content-Type", "value": "application/json" }
],
"url": {
"raw": "{{partnerUrl}}",
"host": [ "{{partnerUrl}}" ]
},
"body": {
"mode": "graphql",
"graphql": {
"query": "query Transactions($id: ID!, $first: Int) {\n account(id: $id) {\n transactions(first: $first) {\n totalCount\n edges { node { id label statusInfo amount { value currency } } }\n }\n }\n}",
"variables": "{\n \"id\": \"account-id\",\n \"first\": 20\n}"
}
},
"description": "Read the transaction ledger for an account via a Relay-style connection."
},
"response": []
}
]
},
{
"name": "Onboarding",
"item": [
{
"name": "Onboard company account holder",
"request": {
"method": "POST",
"header": [
{ "key": "Content-Type", "value": "application/json" }
],
"url": {
"raw": "{{unauthenticatedUrl}}",
"host": [ "{{unauthenticatedUrl}}" ]
},
"body": {
"mode": "graphql",
"graphql": {
"query": "mutation OnboardCompany($input: OnboardCompanyAccountHolderInput!) {\n onboardCompanyAccountHolder(input: $input) {\n onboarding { id status onboardingUrl }\n }\n}",
"variables": "{\n \"input\": {\n \"accountName\": \"Acme SAS\",\n \"email\": \"founder@acme.example\",\n \"redirectUrl\": \"https://example.com/onboarding/complete\"\n }\n}"
}
},
"description": "Start onboarding for a company account holder against the Unauthenticated endpoint; returns an onboardingUrl. This operation does not require a Bearer token."
},
"response": []
}
]
}
],
"auth": {
"type": "bearer",
"bearer": [
{ "key": "token", "value": "{{bearerToken}}" }
]
},
"variable": [
{ "key": "partnerUrl", "value": "https://api.swan.io/live-partner/graphql", "type": "string" },
{ "key": "unauthenticatedUrl", "value": "https://api.swan.io/live-unauthenticated/graphql", "type": "string" },
{ "key": "bearerToken", "value": "", "type": "string" }
]
}