GraphQL API Reference

Our API is organized around GraphQL. We’re convinced GraphQL is the future of APIs - it allows much finer command than other technologies such as REST. Payloads are typed and it’s efficient for reducing cascading requests.

This API reference includes:

  • Guides: step-by-step tutorials show you how to integrate our features
  • Concept documentation: describes every single part of the API in detail
  • API Explorer: Test everything. Our favorite explorer said, “The most beautiful things in the world cannot be seen or touched, they are felt with the heart.” ...well, you’ll quickly get a feel for how beautiful you can make your product experience when you test with our API Explorer!
Contact

API Support

integration@swan.io

Sales team

hello@swan.io

API Endpoints
# Sandbox:
https://api.swan.io/sandbox-partner/graphql

Queries

account

Description

Returns an account from its id.

Response

Returns an Account

Arguments
Name Description
accountId - ID!

Example

Query
query Account($accountId: ID!) {
  account(accountId: $accountId) {
    id
    number
    name
    holder {
      id
      verificationStatus
      info {
        ...AccountHolderInfoFragment
      }
      statusInfo {
        ...AccountHolderStatusInfoFragment
      }
      residencyAddress {
        ...AddressInfoFragment
      }
      createdDate
      updatedDate
      accounts {
        ...AccountConnectionFragment
      }
      supportingDocumentCollections {
        ...SupportingDocumentCollectionConnectionFragment
      }
      fundingLimitSettingsChangeRequests {
        ...FundingLimitSettingsChangeRequestConnectionFragment
      }
      onboarding {
        ...OnboardingFragment
      }
      fundingLimitSettings {
        ...FundingLimitSettingsFragment
      }
      paymentMandates {
        ...PaymentMandateConnectionFragment
      }
      externalAccounts {
        ...ExternalAccountConnectionFragment
      }
    }
    cashAccountType
    country
    paymentLevel
    BIC
    IBAN
    currency
    blockSDD
    statusInfo {
      status
    }
    partnershipStatusInfo {
      status
    }
    createdAt
    updatedAt
    virtualIbanEntries {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...VirtualIBANEntryEdgeFragment
      }
    }
    memberships {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...AccountMembershipEdgeFragment
      }
    }
    requiredConsentToFetchNewTransactions
    language
    legalRepresentativeMembership {
      id
      email
      user {
        ...UserFragment
      }
      legalRepresentative
      canViewAccount
      canManageBeneficiaries
      canInitiatePayments
      canManageAccountMembership
      statusInfo {
        ...AccountMembershipStatusInfoFragment
      }
      account {
        ...AccountFragment
      }
      spendingLimits {
        ...SpendingLimitFragment
      }
      createdAt
      updatedAt
      version
      residencyAddress {
        ...AddressInfoFragment
      }
      taxIdentificationNumber
      spending {
        ...SpendingFragment
      }
      cards {
        ...CardConnectionFragment
      }
    }
    standingOrders {
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...StandingOrderEdgeFragment
      }
      totalCount
    }
    fundingSources {
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...FundingSourceEdgeFragment
      }
      totalCount
    }
    merchantProfiles {
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...MerchantProfileEdgeFragment
      }
      totalCount
    }
    receivedDirectDebitMandates {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...ReceivedDirectDebitMandateEdgeFragment
      }
    }
    balances {
      available {
        ...AmountFragment
      }
      pending {
        ...AmountFragment
      }
      booked {
        ...AmountFragment
      }
      reserved {
        ...AmountFragment
      }
    }
    statements {
      pageInfo {
        ...PageInfoFragment
      }
      totalCount
      edges {
        ...StatementEdgeFragment
      }
    }
    transactions {
      pageInfo {
        ...PageInfoFragment
      }
      totalCount
      edges {
        ...TransactionEdgeFragment
      }
    }
  }
}
Variables
{"accountId": 4}
Response
{
  "data": {
    "account": {
      "id": 4,
      "number": "000000012345",
      "name": "abc123",
      "holder": AccountHolder,
      "cashAccountType": "Current",
      "country": "FRA",
      "paymentLevel": "Limited",
      "BIC": BIC,
      "IBAN": "NL55INGB4789170233",
      "currency": "USD",
      "blockSDD": false,
      "statusInfo": AccountStatusInfo,
      "partnershipStatusInfo": PartnershipStatusInfo,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "virtualIbanEntries": VirtualIBANEntryConnection,
      "memberships": AccountMembershipConnection,
      "requiredConsentToFetchNewTransactions": true,
      "language": "de",
      "legalRepresentativeMembership": AccountMembership,
      "standingOrders": StandingOrderConnection,
      "fundingSources": FundingSourceConnection,
      "merchantProfiles": MerchantProfileConnection,
      "receivedDirectDebitMandates": ReceivedDirectDebitMandateConnection,
      "balances": AccountBalances,
      "statements": StatementConnection,
      "transactions": TransactionConnection
    }
  }
}

accountHolder

Description

Returns an account holder from its id.

Response

Returns an AccountHolder

Arguments
Name Description
id - ID!

Example

Query
query AccountHolder($id: ID!) {
  accountHolder(id: $id) {
    id
    verificationStatus
    info {
      type
      name
    }
    statusInfo {
      status
    }
    residencyAddress {
      addressLine1
      addressLine2
      city
      postalCode
      state
      country
    }
    createdDate
    updatedDate
    accounts {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...AccountEdgeFragment
      }
    }
    supportingDocumentCollections {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...SupportingDocumentCollectionEdgeFragment
      }
    }
    fundingLimitSettingsChangeRequests {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...FundingLimitSettingsChangeRequestEdgeFragment
      }
    }
    onboarding {
      id
      accountName
      accountCountry
      createdAt
      email
      finalizedAt
      language
      info {
        ...OnboardingAccountHolderInfoFragment
      }
      accountHolder {
        ...AccountHolderFragment
      }
      onboardingUrl
      onboardingState
      redirectUrl
      oAuthRedirectParameters {
        ...OAuthRedirectParametersFragment
      }
      statusInfo {
        ...OnboardingStatusInfoFragment
      }
      tcuUrl
      supportingDocumentCollection {
        ...SupportingDocumentCollectionFragment
      }
      updatedAt
      account {
        ...AccountFragment
      }
    }
    fundingLimitSettings {
      instantFundingLimit {
        ...InstantFundingLimitFragment
      }
      fundingLimit {
        ...FundingLimitFragment
      }
      fundingLimitSettingsChangeRequest {
        ...FundingLimitSettingsChangeRequestFragment
      }
      statusInfo {
        ...FundingLimitSettingsStatusInfoFragment
      }
    }
    paymentMandates {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...PaymentMandateEdgeFragment
      }
    }
    externalAccounts {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...ExternalAccountEdgeFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "accountHolder": {
      "id": "4",
      "verificationStatus": "NotStarted",
      "info": AccountHolderInfo,
      "statusInfo": AccountHolderStatusInfo,
      "residencyAddress": AddressInfo,
      "createdDate": "2007-12-03T10:15:30Z",
      "updatedDate": "2007-12-03T10:15:30Z",
      "accounts": AccountConnection,
      "supportingDocumentCollections": SupportingDocumentCollectionConnection,
      "fundingLimitSettingsChangeRequests": FundingLimitSettingsChangeRequestConnection,
      "onboarding": Onboarding,
      "fundingLimitSettings": FundingLimitSettings,
      "paymentMandates": PaymentMandateConnection,
      "externalAccounts": ExternalAccountConnection
    }
  }
}

accountHolders

Description

Returns the list of account holders.

For a Project access token, this is all the account holders of the project and for an User access token, these are the holders of the accounts of which the user has an account membership.

Response

Returns an AccountHolderConnection!

Arguments
Name Description
first - Int! Default = 50
before - String
filters - AccountHolderFilterInput
orderBy - AccountHolderOrderByInput
after - String

Example

Query
query AccountHolders(
  $first: Int!,
  $before: String,
  $filters: AccountHolderFilterInput,
  $orderBy: AccountHolderOrderByInput,
  $after: String
) {
  accountHolders(
    first: $first,
    before: $before,
    filters: $filters,
    orderBy: $orderBy,
    after: $after
  ) {
    totalCount
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    edges {
      cursor
      node {
        ...AccountHolderFragment
      }
    }
  }
}
Variables
{
  "first": 50,
  "before": "xyz789",
  "filters": AccountHolderFilterInput,
  "orderBy": AccountHolderOrderByInput,
  "after": "xyz789"
}
Response
{
  "data": {
    "accountHolders": {
      "totalCount": 123,
      "pageInfo": PageInfo,
      "edges": [AccountHolderEdge]
    }
  }
}

accountMembership

Description

Returns an account membership from its id.

Response

Returns an AccountMembership

Arguments
Name Description
id - ID!

Example

Query
query AccountMembership($id: ID!) {
  accountMembership(id: $id) {
    id
    email
    user {
      id
      mobilePhoneNumber
      firstName
      lastName
      allFirstNames
      birthDate
      nationalityCCA3
      idVerified
      authenticators {
        ...AuthenticatorFragment
      }
      identificationStatus
      preferredNotificationChannel
      accountMemberships {
        ...AccountMembershipConnectionFragment
      }
    }
    legalRepresentative
    canViewAccount
    canManageBeneficiaries
    canInitiatePayments
    canManageAccountMembership
    statusInfo {
      status
    }
    account {
      id
      number
      name
      holder {
        ...AccountHolderFragment
      }
      cashAccountType
      country
      paymentLevel
      BIC
      IBAN
      currency
      blockSDD
      statusInfo {
        ...AccountStatusInfoFragment
      }
      partnershipStatusInfo {
        ...PartnershipStatusInfoFragment
      }
      createdAt
      updatedAt
      virtualIbanEntries {
        ...VirtualIBANEntryConnectionFragment
      }
      memberships {
        ...AccountMembershipConnectionFragment
      }
      requiredConsentToFetchNewTransactions
      language
      legalRepresentativeMembership {
        ...AccountMembershipFragment
      }
      standingOrders {
        ...StandingOrderConnectionFragment
      }
      fundingSources {
        ...FundingSourceConnectionFragment
      }
      merchantProfiles {
        ...MerchantProfileConnectionFragment
      }
      receivedDirectDebitMandates {
        ...ReceivedDirectDebitMandateConnectionFragment
      }
      balances {
        ...AccountBalancesFragment
      }
      statements {
        ...StatementConnectionFragment
      }
      transactions {
        ...TransactionConnectionFragment
      }
    }
    spendingLimits {
      type
      period
      amount {
        ...AmountFragment
      }
    }
    createdAt
    updatedAt
    version
    residencyAddress {
      addressLine1
      addressLine2
      city
      postalCode
      state
      country
    }
    taxIdentificationNumber
    spending {
      period
      amount {
        ...AmountFragment
      }
    }
    cards {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...CardEdgeFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "accountMembership": {
      "id": "4",
      "email": "abc123",
      "user": User,
      "legalRepresentative": true,
      "canViewAccount": false,
      "canManageBeneficiaries": false,
      "canInitiatePayments": false,
      "canManageAccountMembership": false,
      "statusInfo": AccountMembershipStatusInfo,
      "account": Account,
      "spendingLimits": [SpendingLimit],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "version": "abc123",
      "residencyAddress": AddressInfo,
      "taxIdentificationNumber": "abc123",
      "spending": Spending,
      "cards": CardConnection
    }
  }
}

accountMemberships

Description

The list of account memberships

Response

Returns an AccountMembershipConnection!

Arguments
Name Description
first - Int! Default = 50
before - String
after - String
filters - AccountMembershipsFilterInput
orderBy - AccountMembershipOrderByInput

Example

Query
query AccountMemberships(
  $first: Int!,
  $before: String,
  $after: String,
  $filters: AccountMembershipsFilterInput,
  $orderBy: AccountMembershipOrderByInput
) {
  accountMemberships(
    first: $first,
    before: $before,
    after: $after,
    filters: $filters,
    orderBy: $orderBy
  ) {
    totalCount
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    edges {
      cursor
      node {
        ...AccountMembershipFragment
      }
    }
  }
}
Variables
{
  "first": 50,
  "before": "abc123",
  "after": "abc123",
  "filters": AccountMembershipsFilterInput,
  "orderBy": AccountMembershipOrderByInput
}
Response
{
  "data": {
    "accountMemberships": {
      "totalCount": 123,
      "pageInfo": PageInfo,
      "edges": [AccountMembershipEdge]
    }
  }
}

accounts

Description

Returns the list of accounts.

For a Project access token, this is all the accounts of the project and for an User access token, these are the accounts of which the user has an account membership.

Response

Returns an AccountConnection!

Arguments
Name Description
first - Int! Default = 50
before - String
after - String
filters - AccountFilterInput
orderBy - AccountOrderByInput

Example

Query
query Accounts(
  $first: Int!,
  $before: String,
  $after: String,
  $filters: AccountFilterInput,
  $orderBy: AccountOrderByInput
) {
  accounts(
    first: $first,
    before: $before,
    after: $after,
    filters: $filters,
    orderBy: $orderBy
  ) {
    totalCount
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    edges {
      cursor
      node {
        ...AccountFragment
      }
    }
  }
}
Variables
{
  "first": 50,
  "before": "xyz789",
  "after": "xyz789",
  "filters": AccountFilterInput,
  "orderBy": AccountOrderByInput
}
Response
{
  "data": {
    "accounts": {
      "totalCount": 123,
      "pageInfo": PageInfo,
      "edges": [AccountEdge]
    }
  }
}

capitalDepositCase

Description

Return the capital deposit case for the provided id.

Response

Returns a CapitalDepositCase

Arguments
Name Description
id - ID!

Example

Query
query CapitalDepositCase($id: ID!) {
  capitalDepositCase(id: $id) {
    id
    shareholders {
      id
      capitalDepositAmount {
        ...AmountFragment
      }
      onboarding {
        ...OnboardingFragment
      }
      accountId
      status
      info {
        ... on IndividualShareholder {
          ...IndividualShareholderFragment
        }
        ... on CompanyShareholder {
          ...CompanyShareholderFragment
        }
      }
      documents {
        ...CapitalDepositDocumentFragment
      }
      createdAt
      updatedAt
    }
    totalCapitalDepositAmount {
      currency
      value
    }
    companyName
    companyOnboarding {
      id
      accountName
      accountCountry
      createdAt
      email
      finalizedAt
      language
      info {
        ...OnboardingAccountHolderInfoFragment
      }
      accountHolder {
        ...AccountHolderFragment
      }
      onboardingUrl
      onboardingState
      redirectUrl
      oAuthRedirectParameters {
        ...OAuthRedirectParametersFragment
      }
      statusInfo {
        ...OnboardingStatusInfoFragment
      }
      tcuUrl
      supportingDocumentCollection {
        ...SupportingDocumentCollectionFragment
      }
      updatedAt
      account {
        ...AccountFragment
      }
    }
    companyAccountId
    status
    documents {
      id
      type
      downloadUrl
      uploadedAt
      status
      createdAt
      updatedAt
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "capitalDepositCase": {
      "id": "xyz789",
      "shareholders": [Shareholder],
      "totalCapitalDepositAmount": Amount,
      "companyName": "abc123",
      "companyOnboarding": Onboarding,
      "companyAccountId": "abc123",
      "status": "Initiated",
      "documents": [CapitalDepositDocument],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

card

Description

Returns a card from its id.

Response

Returns a Card

Arguments
Name Description
cardId - ID!

Example

Query
query Card($cardId: ID!) {
  card(cardId: $cardId) {
    id
    type
    createdAt
    updatedAt
    accountMembership {
      id
      email
      user {
        ...UserFragment
      }
      legalRepresentative
      canViewAccount
      canManageBeneficiaries
      canInitiatePayments
      canManageAccountMembership
      statusInfo {
        ...AccountMembershipStatusInfoFragment
      }
      account {
        ...AccountFragment
      }
      spendingLimits {
        ...SpendingLimitFragment
      }
      createdAt
      updatedAt
      version
      residencyAddress {
        ...AddressInfoFragment
      }
      taxIdentificationNumber
      spending {
        ...SpendingFragment
      }
      cards {
        ...CardConnectionFragment
      }
    }
    mainCurrency
    cardContractExpiryDate
    cardDesignUrl
    cardUrl
    statusInfo {
      status
    }
    withdrawal
    international
    nonMainCurrencyTransactions
    eCommerce
    spendingLimits {
      type
      period
      amount {
        ...AmountFragment
      }
    }
    physicalCard {
      statusInfo {
        ...PhysicalCardStatusInfoFragment
      }
      expiryDate
      identifier
      offlineSpendingLimit {
        ...AmountFragment
      }
      cardMaskedNumber
    }
    cardMaskedNumber
    expiryDate
    name
    cardProduct {
      id
      name
      projectId
      status
      createdAt
      updatedAt
      applicableToPhysicalCards
      cardDesigns {
        ...CardProductDesignFragment
      }
      defaultCardProduct
      individualSpendingLimit {
        ...SpendingLimitFragment
      }
      companySpendingLimit {
        ...SpendingLimitFragment
      }
    }
    spending {
      period
      amount {
        ...AmountFragment
      }
    }
    transactions {
      pageInfo {
        ...PageInfoFragment
      }
      totalCount
      edges {
        ...TransactionEdgeFragment
      }
    }
    digitalCards {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...DigitalCardEdgeFragment
      }
    }
  }
}
Variables
{"cardId": "4"}
Response
{
  "data": {
    "card": {
      "id": "4",
      "type": "Virtual",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "accountMembership": AccountMembership,
      "mainCurrency": "USD",
      "cardContractExpiryDate": "2007-12-03T10:15:30Z",
      "cardDesignUrl": "abc123",
      "cardUrl": "xyz789",
      "statusInfo": CardStatusInfo,
      "withdrawal": true,
      "international": false,
      "nonMainCurrencyTransactions": false,
      "eCommerce": false,
      "spendingLimits": [SpendingLimit],
      "physicalCard": PhysicalCard,
      "cardMaskedNumber": "xyz789",
      "expiryDate": "xyz789",
      "name": "xyz789",
      "cardProduct": CardProduct,
      "spending": Spending,
      "transactions": TransactionConnection,
      "digitalCards": DigitalCardConnection
    }
  }
}

cards

Description

Returns the list of cards.

For a Project access token, this is all the cards of the project and for an User access token, these are the cards owned by the user whom have an account membership.

Response

Returns a CardConnection!

Arguments
Name Description
first - Int! Default = 50
before - String
after - String
orderBy - CardOrderByInput When the list of elements needs to be ordered
filters - CardFiltersInput When the list of elements needs to be filtered

Example

Query
query Cards(
  $first: Int!,
  $before: String,
  $after: String,
  $orderBy: CardOrderByInput,
  $filters: CardFiltersInput
) {
  cards(
    first: $first,
    before: $before,
    after: $after,
    orderBy: $orderBy,
    filters: $filters
  ) {
    totalCount
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    edges {
      cursor
      node {
        ...CardFragment
      }
    }
  }
}
Variables
{
  "first": 50,
  "before": "abc123",
  "after": "xyz789",
  "orderBy": CardOrderByInput,
  "filters": CardFiltersInput
}
Response
{
  "data": {
    "cards": {
      "totalCount": 987,
      "pageInfo": PageInfo,
      "edges": [CardEdge]
    }
  }
}

consents

Description

The list of consents

This query is restricted to a User access token ( Learn More)

Response

Returns a ConsentConnection!

Arguments
Name Description
first - Int! Default = 50
after - String

Example

Query
query Consents(
  $first: Int!,
  $after: String
) {
  consents(
    first: $first,
    after: $after
  ) {
    totalCount
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    edges {
      cursor
      node {
        ...ConsentFragment
      }
    }
  }
}
Variables
{"first": 50, "after": "abc123"}
Response
{
  "data": {
    "consents": {
      "totalCount": 987,
      "pageInfo": PageInfo,
      "edges": [ConsentEdge]
    }
  }
}

fundingLimitSettingsChangeRequest

Description

Returns a request for funding limit settings change from its id.

Arguments
Name Description
fundingLimitSettingsChangeRequestId - ID!

Example

Query
query FundingLimitSettingsChangeRequest($fundingLimitSettingsChangeRequestId: ID!) {
  fundingLimitSettingsChangeRequest(fundingLimitSettingsChangeRequestId: $fundingLimitSettingsChangeRequestId) {
    id
    instantFundingLimit {
      amount {
        ...AmountFragment
      }
    }
    fundingLimit {
      amount {
        ...AmountFragment
      }
    }
    approved {
      instantFundingLimit {
        ...FundingLimitAmountFragment
      }
      fundingLimit {
        ...FundingLimitAmountFragment
      }
    }
    statusInfo {
      status
    }
    createdAt
    updatedAt
  }
}
Variables
{"fundingLimitSettingsChangeRequestId": "4"}
Response
{
  "data": {
    "fundingLimitSettingsChangeRequest": {
      "id": 4,
      "instantFundingLimit": FundingLimitAmount,
      "fundingLimit": FundingLimitAmount,
      "approved": ApprovedFundingLimit,
      "statusInfo": FundingLimitSettingsChangeRequestStatusInfo,
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03"
    }
  }
}

fundingSource

Description

Returns funding source by id.

Response

Returns a FundingSource

Arguments
Name Description
id - ID!

Example

Query
query FundingSource($id: ID!) {
  fundingSource(id: $id) {
    id
    name
    statusInfo {
      status
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "fundingSource": {
      "id": "4",
      "name": "abc123",
      "statusInfo": FundingSourceStatusInfo,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

ibanValidation

Description

Allows to check iban validation. It also returns its bank and reachability information

Response

Returns an IbanValidationResult

Arguments
Name Description
input - IbanValidationInput

Example

Query
query IbanValidation($input: IbanValidationInput) {
  ibanValidation(input: $input) {
    ... on ValidIban {
      iban
      accountNumber
      checksum
      bank {
        ...BankFragment
      }
      reachability {
        ...ReachabilityFragment
      }
    }
    ... on InvalidIban {
      code
      message
    }
  }
}
Variables
{"input": IbanValidationInput}
Response
{"data": {"ibanValidation": ValidIban}}

onboarding

Description

Returns an onboarding from its id.

This query is restricted to a Project access token ( Learn More)

Response

Returns an Onboarding!

Arguments
Name Description
id - ID!

Example

Query
query Onboarding($id: ID!) {
  onboarding(id: $id) {
    id
    accountName
    accountCountry
    createdAt
    email
    finalizedAt
    language
    info {
      type
    }
    accountHolder {
      id
      verificationStatus
      info {
        ...AccountHolderInfoFragment
      }
      statusInfo {
        ...AccountHolderStatusInfoFragment
      }
      residencyAddress {
        ...AddressInfoFragment
      }
      createdDate
      updatedDate
      accounts {
        ...AccountConnectionFragment
      }
      supportingDocumentCollections {
        ...SupportingDocumentCollectionConnectionFragment
      }
      fundingLimitSettingsChangeRequests {
        ...FundingLimitSettingsChangeRequestConnectionFragment
      }
      onboarding {
        ...OnboardingFragment
      }
      fundingLimitSettings {
        ...FundingLimitSettingsFragment
      }
      paymentMandates {
        ...PaymentMandateConnectionFragment
      }
      externalAccounts {
        ...ExternalAccountConnectionFragment
      }
    }
    onboardingUrl
    onboardingState
    redirectUrl
    oAuthRedirectParameters {
      state
      redirectUrl
    }
    statusInfo {
      status
    }
    tcuUrl
    supportingDocumentCollection {
      id
      statusInfo {
        ...SupportingDocumentCollectionStatusInfoFragment
      }
      createdAt
      updatedAt
      supportingDocuments {
        ...SupportingDocumentFragment
      }
      requiredSupportingDocumentPurposes {
        ...SupportingDocumentPurposeFragment
      }
    }
    updatedAt
    account {
      id
      number
      name
      holder {
        ...AccountHolderFragment
      }
      cashAccountType
      country
      paymentLevel
      BIC
      IBAN
      currency
      blockSDD
      statusInfo {
        ...AccountStatusInfoFragment
      }
      partnershipStatusInfo {
        ...PartnershipStatusInfoFragment
      }
      createdAt
      updatedAt
      virtualIbanEntries {
        ...VirtualIBANEntryConnectionFragment
      }
      memberships {
        ...AccountMembershipConnectionFragment
      }
      requiredConsentToFetchNewTransactions
      language
      legalRepresentativeMembership {
        ...AccountMembershipFragment
      }
      standingOrders {
        ...StandingOrderConnectionFragment
      }
      fundingSources {
        ...FundingSourceConnectionFragment
      }
      merchantProfiles {
        ...MerchantProfileConnectionFragment
      }
      receivedDirectDebitMandates {
        ...ReceivedDirectDebitMandateConnectionFragment
      }
      balances {
        ...AccountBalancesFragment
      }
      statements {
        ...StatementConnectionFragment
      }
      transactions {
        ...TransactionConnectionFragment
      }
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "onboarding": {
      "id": "xyz789",
      "accountName": "xyz789",
      "accountCountry": "FRA",
      "createdAt": "2007-12-03T10:15:30Z",
      "email": "xyz789",
      "finalizedAt": "2007-12-03T10:15:30Z",
      "language": "xyz789",
      "info": OnboardingAccountHolderInfo,
      "accountHolder": AccountHolder,
      "onboardingUrl": "xyz789",
      "onboardingState": "Ongoing",
      "redirectUrl": "abc123",
      "oAuthRedirectParameters": OAuthRedirectParameters,
      "statusInfo": OnboardingStatusInfo,
      "tcuUrl": "abc123",
      "supportingDocumentCollection": SupportingDocumentCollection,
      "updatedAt": "2007-12-03T10:15:30Z",
      "account": Account
    }
  }
}

onboardings

Description

Returns the list of onboardings.

This query is restricted to a Project access token ( Learn More)

Response

Returns an OnboardingConnection!

Arguments
Name Description
first - Int! Default = 50
before - String
after - String
filters - OnboardingFiltersInput
orderBy - OnboardingOrderByInput

Example

Query
query Onboardings(
  $first: Int!,
  $before: String,
  $after: String,
  $filters: OnboardingFiltersInput,
  $orderBy: OnboardingOrderByInput
) {
  onboardings(
    first: $first,
    before: $before,
    after: $after,
    filters: $filters,
    orderBy: $orderBy
  ) {
    totalCount
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    edges {
      cursor
      node {
        ...OnboardingFragment
      }
    }
  }
}
Variables
{
  "first": 50,
  "before": "xyz789",
  "after": "abc123",
  "filters": OnboardingFiltersInput,
  "orderBy": OnboardingOrderByInput
}
Response
{
  "data": {
    "onboardings": {
      "totalCount": 987,
      "pageInfo": PageInfo,
      "edges": [OnboardingEdge]
    }
  }
}

payment

Description

Returns a payment from its id.

Response

Returns a Payment!

Arguments
Name Description
id - ID!

Example

Query
query Payment($id: ID!) {
  payment(id: $id) {
    id
    createdAt
    updatedAt
    statusInfo {
      status
    }
    transactions {
      pageInfo {
        ...PageInfoFragment
      }
      totalCount
      edges {
        ...TransactionEdgeFragment
      }
    }
    standingOrder {
      id
      reference
      label
      amount {
        ...AmountFragment
      }
      targetAvailableBalance {
        ...AmountFragment
      }
      period
      firstExecutionDate
      lastExecutionDate
      sepaBeneficiary {
        ...SEPABeneficiaryFragment
      }
      statusInfo {
        ...StandingOrderStatusInfoFragment
      }
      createdAt
      updatedAt
      account {
        ...AccountFragment
      }
      createdBy {
        ...UserFragment
      }
      nextExecutionDate
      payments {
        ...PaymentConnectionFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "payment": {
      "id": "4",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "statusInfo": PaymentStatusInfo,
      "transactions": TransactionConnection,
      "standingOrder": StandingOrder
    }
  }
}

payments

Description

Returns the list of payments.

For a Project access token, this is all the payments of the project and for an User access token, these are the payments initiated by the user

Response

Returns a PaymentConnection!

Arguments
Name Description
first - Int! number of elements in the list (default value 50). Default = 50
after - String When the list of elements needs to start after a element
before - String When the list of elements needs to end before a element
orderBy - PaymentOrderByInput When the list of elements needs to be ordered
filters - PaymentFiltersInput When the list of elements needs to be filtered

Example

Query
query Payments(
  $first: Int!,
  $after: String,
  $before: String,
  $orderBy: PaymentOrderByInput,
  $filters: PaymentFiltersInput
) {
  payments(
    first: $first,
    after: $after,
    before: $before,
    orderBy: $orderBy,
    filters: $filters
  ) {
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    edges {
      node {
        ...PaymentFragment
      }
      cursor
    }
    totalCount
  }
}
Variables
{
  "first": 50,
  "after": "abc123",
  "before": "abc123",
  "orderBy": PaymentOrderByInput,
  "filters": PaymentFiltersInput
}
Response
{
  "data": {
    "payments": {
      "pageInfo": PageInfo,
      "edges": [PaymentEdge],
      "totalCount": 987
    }
  }
}

projectInfo

Description

Returns the project infos you set in the dashboard.

Response

Returns a ProjectInfo!

Example

Query
query ProjectInfo {
  projectInfo {
    id
    name
    type
    logoUri
    accentColor
    oAuthClientId
    tcuDocumentUri
    tcuDocumentId
    webBankingSettings {
      canViewAccountDetails
      canViewAccountStatement
      canManageVirtualIbans
      canInitiatePaymentsToNewBeneficiaries
      canViewPaymentList
      canOrderVirtualCards
      canOrderPhysicalCards
      canViewMembers
      canAddNewMembers
    }
    status
    cardProducts {
      id
      name
      projectId
      status
      createdAt
      updatedAt
      applicableToPhysicalCards
      cardDesigns {
        ...CardProductDesignFragment
      }
      defaultCardProduct
      individualSpendingLimit {
        ...SpendingLimitFragment
      }
      companySpendingLimit {
        ...SpendingLimitFragment
      }
    }
    activeCardSettings {
      id
      allowsApplePay
      version
      cardProjectLogoSvgUrl
      cardProjectLogo300dpiUrl
      cardProjectLogo600dpiUrl
      zoomRatioProjectLogo
      cardDesignUrl
      accentColor
      createdAt
      updatedAt
      status
      cardBackground {
        ...CardSettingsBackgroundFragment
      }
    }
    B2BMembershipIDVerification
    amlRiskLevel
    supportingDocumentSettings {
      collectMode
      communicationLanguage
      emailContact
    }
  }
}
Response
{
  "data": {
    "projectInfo": {
      "id": 4,
      "name": "xyz789",
      "type": "INDIVIDUAL",
      "logoUri": "abc123",
      "accentColor": "abc123",
      "oAuthClientId": "xyz789",
      "tcuDocumentUri": "abc123",
      "tcuDocumentId": "abc123",
      "webBankingSettings": WebBankingSettings,
      "status": "Initiated",
      "cardProducts": [CardProduct],
      "activeCardSettings": CardSettings,
      "B2BMembershipIDVerification": true,
      "amlRiskLevel": "Low",
      "supportingDocumentSettings": SupportingDocumentSettings
    }
  }
}

receivedDirectDebitMandate

Description

Returns a received direct debit mandate from its id.

Response

Returns a ReceivedDirectDebitMandate

Arguments
Name Description
receivedDirectDebitMandateId - ID!

Example

Query
query ReceivedDirectDebitMandate($receivedDirectDebitMandateId: ID!) {
  receivedDirectDebitMandate(receivedDirectDebitMandateId: $receivedDirectDebitMandateId) {
    id
    version
    createdAt
    updatedAt
    signatureDate
    executedAt
    expiredAt
    statusInfo {
      status
    }
    name
  }
}
Variables
{"receivedDirectDebitMandateId": 4}
Response
{
  "data": {
    "receivedDirectDebitMandate": {
      "id": "4",
      "version": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "signatureDate": "2007-12-03",
      "executedAt": "2007-12-03T10:15:30Z",
      "expiredAt": "2007-12-03",
      "statusInfo": ReceivedDirectDebitMandateStatusInfo,
      "name": "xyz789"
    }
  }
}

shareholder

Description

Return the Shareholder for the provided id.

Response

Returns a Shareholder

Arguments
Name Description
id - ID!

Example

Query
query Shareholder($id: ID!) {
  shareholder(id: $id) {
    id
    capitalDepositAmount {
      currency
      value
    }
    onboarding {
      id
      accountName
      accountCountry
      createdAt
      email
      finalizedAt
      language
      info {
        ...OnboardingAccountHolderInfoFragment
      }
      accountHolder {
        ...AccountHolderFragment
      }
      onboardingUrl
      onboardingState
      redirectUrl
      oAuthRedirectParameters {
        ...OAuthRedirectParametersFragment
      }
      statusInfo {
        ...OnboardingStatusInfoFragment
      }
      tcuUrl
      supportingDocumentCollection {
        ...SupportingDocumentCollectionFragment
      }
      updatedAt
      account {
        ...AccountFragment
      }
    }
    accountId
    status
    info {
      ... on IndividualShareholder {
        ...IndividualShareholderFragment
      }
      ... on CompanyShareholder {
        ...CompanyShareholderFragment
      }
    }
    documents {
      id
      type
      downloadUrl
      uploadedAt
      status
      createdAt
      updatedAt
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "shareholder": {
      "id": "4",
      "capitalDepositAmount": Amount,
      "onboarding": Onboarding,
      "accountId": "abc123",
      "status": "PendingOnboarding",
      "info": IndividualShareholder,
      "documents": [CapitalDepositDocument],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

standingOrder

Description

Returns standing order from its id.

Response

Returns a StandingOrder

Arguments
Name Description
standingOrderId - ID!

Example

Query
query StandingOrder($standingOrderId: ID!) {
  standingOrder(standingOrderId: $standingOrderId) {
    id
    reference
    label
    amount {
      currency
      value
    }
    targetAvailableBalance {
      currency
      value
    }
    period
    firstExecutionDate
    lastExecutionDate
    sepaBeneficiary {
      id
      name
      isMyOwnIban
      address {
        ...AddressFragment
      }
      maskedIBAN
    }
    statusInfo {
      status
    }
    createdAt
    updatedAt
    account {
      id
      number
      name
      holder {
        ...AccountHolderFragment
      }
      cashAccountType
      country
      paymentLevel
      BIC
      IBAN
      currency
      blockSDD
      statusInfo {
        ...AccountStatusInfoFragment
      }
      partnershipStatusInfo {
        ...PartnershipStatusInfoFragment
      }
      createdAt
      updatedAt
      virtualIbanEntries {
        ...VirtualIBANEntryConnectionFragment
      }
      memberships {
        ...AccountMembershipConnectionFragment
      }
      requiredConsentToFetchNewTransactions
      language
      legalRepresentativeMembership {
        ...AccountMembershipFragment
      }
      standingOrders {
        ...StandingOrderConnectionFragment
      }
      fundingSources {
        ...FundingSourceConnectionFragment
      }
      merchantProfiles {
        ...MerchantProfileConnectionFragment
      }
      receivedDirectDebitMandates {
        ...ReceivedDirectDebitMandateConnectionFragment
      }
      balances {
        ...AccountBalancesFragment
      }
      statements {
        ...StatementConnectionFragment
      }
      transactions {
        ...TransactionConnectionFragment
      }
    }
    createdBy {
      id
      mobilePhoneNumber
      firstName
      lastName
      allFirstNames
      birthDate
      nationalityCCA3
      idVerified
      authenticators {
        ...AuthenticatorFragment
      }
      identificationStatus
      preferredNotificationChannel
      accountMemberships {
        ...AccountMembershipConnectionFragment
      }
    }
    nextExecutionDate
    payments {
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...PaymentEdgeFragment
      }
      totalCount
    }
  }
}
Variables
{"standingOrderId": "4"}
Response
{
  "data": {
    "standingOrder": {
      "id": 4,
      "reference": "xyz789",
      "label": "xyz789",
      "amount": Amount,
      "targetAvailableBalance": Amount,
      "period": "Daily",
      "firstExecutionDate": "2007-12-03T10:15:30Z",
      "lastExecutionDate": "2007-12-03T10:15:30Z",
      "sepaBeneficiary": SEPABeneficiary,
      "statusInfo": StandingOrderStatusInfo,
      "createdAt": "2007-12-03",
      "updatedAt": "2007-12-03",
      "account": Account,
      "createdBy": User,
      "nextExecutionDate": "2007-12-03",
      "payments": PaymentConnection
    }
  }
}

transaction

Description

Returns a transaction from its id.

This query is restricted to a Project access token ( Learn More)

Response

Returns a Transaction!

Arguments
Name Description
id - ID!

Example

Query
query Transaction($id: ID!) {
  transaction(id: $id) {
    id
    reference
    paymentMethodIdentifier
    side
    type
    amount {
      currency
      value
    }
    label
    statusInfo {
      status
    }
    paymentId
    payment {
      id
      createdAt
      updatedAt
      statusInfo {
        ...PaymentStatusInfoFragment
      }
      transactions {
        ...TransactionConnectionFragment
      }
      standingOrder {
        ...StandingOrderFragment
      }
    }
    createdAt
    updatedAt
    counterparty
    bookedBalanceAfter {
      currency
      value
    }
    paymentProduct
    account {
      id
      number
      name
      holder {
        ...AccountHolderFragment
      }
      cashAccountType
      country
      paymentLevel
      BIC
      IBAN
      currency
      blockSDD
      statusInfo {
        ...AccountStatusInfoFragment
      }
      partnershipStatusInfo {
        ...PartnershipStatusInfoFragment
      }
      createdAt
      updatedAt
      virtualIbanEntries {
        ...VirtualIBANEntryConnectionFragment
      }
      memberships {
        ...AccountMembershipConnectionFragment
      }
      requiredConsentToFetchNewTransactions
      language
      legalRepresentativeMembership {
        ...AccountMembershipFragment
      }
      standingOrders {
        ...StandingOrderConnectionFragment
      }
      fundingSources {
        ...FundingSourceConnectionFragment
      }
      merchantProfiles {
        ...MerchantProfileConnectionFragment
      }
      receivedDirectDebitMandates {
        ...ReceivedDirectDebitMandateConnectionFragment
      }
      balances {
        ...AccountBalancesFragment
      }
      statements {
        ...StatementConnectionFragment
      }
      transactions {
        ...TransactionConnectionFragment
      }
    }
    externalReference
    executionDate
    requestedExecutionAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "transaction": {
      "id": "4",
      "reference": "xyz789",
      "paymentMethodIdentifier": "xyz789",
      "side": "Debit",
      "type": "InternalCreditTransferOut",
      "amount": Amount,
      "label": "abc123",
      "statusInfo": TransactionStatusInfo,
      "paymentId": "abc123",
      "payment": Payment,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "counterparty": "xyz789",
      "bookedBalanceAfter": Amount,
      "paymentProduct": "InternalCreditTransfer",
      "account": Account,
      "externalReference": "xyz789",
      "executionDate": "2007-12-03T10:15:30Z",
      "requestedExecutionAt": "2007-12-03T10:15:30Z"
    }
  }
}

user

Description

Returns the signed-in user and all of their data at Swan.

This query is restricted to a User access token ( Learn More)

Response

Returns a User

Example

Query
query User {
  user {
    id
    mobilePhoneNumber
    firstName
    lastName
    allFirstNames
    birthDate
    nationalityCCA3
    idVerified
    authenticators {
      os
      brand
      model
      type
      userAgent
      acceptLanguage
    }
    identificationStatus
    preferredNotificationChannel
    accountMemberships {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...AccountMembershipEdgeFragment
      }
    }
  }
}
Response
{
  "data": {
    "user": {
      "id": 4,
      "mobilePhoneNumber": "+17895551234",
      "firstName": "abc123",
      "lastName": "xyz789",
      "allFirstNames": ["abc123"],
      "birthDate": "2007-12-03",
      "nationalityCCA3": CCA3,
      "idVerified": false,
      "authenticators": [Authenticator],
      "identificationStatus": "Uninitiated",
      "preferredNotificationChannel": "Sms",
      "accountMemberships": AccountMembershipConnection
    }
  }
}

Mutations

activatePhysicalCard

Description

Activate a Physical Card.

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have the account membership for this card

Response

Returns an ActivatePhysicalCardPayload!

Arguments
Name Description
input - ActivatePhysicalCardInput!

Example

Query
mutation ActivatePhysicalCard($input: ActivatePhysicalCardInput!) {
  activatePhysicalCard(input: $input) {
    ... on ActivatePhysicalCardSuccessPayload {
      consent {
        ...ConsentFragment
      }
      physicalCard {
        ...PhysicalCardFragment
      }
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on PhysicalCardNotFoundRejection {
      message
      identifier
    }
    ... on PhysicalCardWrongStatusRejection {
      message
      identifier
      currentStatus
      expectedStatus
    }
    ... on CannotActivatePhysicalCardRejection {
      message
      identifier
    }
    ... on ForbiddenRejection {
      message
    }
    ... on CardNotFoundRejection {
      id
      message
    }
    ... on UserNotCardHolderRejection {
      message
    }
  }
}
Variables
{"input": ActivatePhysicalCardInput}
Response
{
  "data": {
    "activatePhysicalCard": ActivatePhysicalCardSuccessPayload
  }
}

addAccountMembership

Description

Add a new account membership to an account.

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have an account membership for this account with the attribute canManageAccountMembership=true.

Response

Returns an AddAccountMembershipPayload!

Arguments
Name Description
input - AddAccountMembershipInput!

Example

Query
mutation AddAccountMembership($input: AddAccountMembershipInput!) {
  addAccountMembership(input: $input) {
    ... on AddAccountMembershipSuccessPayload {
      accountMembership {
        ...AccountMembershipFragment
      }
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on InvalidPhoneNumberRejection {
      message
    }
    ... on PermissionCannotBeGrantedRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": AddAccountMembershipInput}
Response
{
  "data": {
    "addAccountMembership": AddAccountMembershipSuccessPayload
  }
}

addAccountMemberships

Description

Add multiple new account memberships to account

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have an account membership for this account with the attribute canManageAccountMembership=true.

Response

Returns an AddAccountMembershipsPayload!

Arguments
Name Description
input - AddAccountMembershipsInput!

Example

Query
mutation AddAccountMemberships($input: AddAccountMembershipsInput!) {
  addAccountMemberships(input: $input) {
    ... on AddAccountMembershipsSuccessPayload {
      accountMemberships {
        ...AccountMembershipFragment
      }
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on InvalidPhoneNumberRejection {
      message
    }
    ... on PermissionCannotBeGrantedRejection {
      message
    }
    ... on TooManyItemsRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": AddAccountMembershipsInput}
Response
{
  "data": {
    "addAccountMemberships": AddAccountMembershipsSuccessPayload
  }
}

addCard

Description

Add a new card to an account membership.

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have an account membership for this account with the attribute canManageAccountMembership=true.

Response

Returns an AddCardPayload!

Arguments
Name Description
input - AddCardInput!

Example

Query
mutation AddCard($input: AddCardInput!) {
  addCard(input: $input) {
    ... on AddCardSuccessPayload {
      card {
        ...CardFragment
      }
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on CardProductSuspendedRejection {
      message
    }
    ... on CardProductDisabledRejection {
      message
    }
    ... on EnabledCardDesignNotFoundRejection {
      message
    }
  }
}
Variables
{"input": AddCardInput}
Response
{"data": {"addCard": AddCardSuccessPayload}}

addCards

Description

Add several cards

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have an account membership for this account with the attribute canManageAccountMembership=true.

Response

Returns an AddCardsPayload!

Arguments
Name Description
input - AddCardsInput!

Example

Query
mutation AddCards($input: AddCardsInput!) {
  addCards(input: $input) {
    ... on AddCardsSuccessPayload {
      cards {
        ...CardFragment
      }
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on TooManyItemsRejection {
      message
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on CardProductSuspendedRejection {
      message
    }
    ... on CardProductNotApplicableToPhysicalCardsRejection {
      message
    }
    ... on CardProductDisabledRejection {
      message
    }
    ... on EnabledCardDesignNotFoundRejection {
      message
    }
  }
}
Variables
{"input": AddCardsInput}
Response
{"data": {"addCards": AddCardsSuccessPayload}}

addCardsWithGroupDelivery

Description

Add several cards with Group Delivery

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have an account membership for this account with the attribute canManageAccountMembership=true.

Response

Returns an AddCardsWithGroupDeliveryPayload!

Arguments
Name Description
input - AddCardsWithGroupDeliveryInput!

Example

Query
mutation AddCardsWithGroupDelivery($input: AddCardsWithGroupDeliveryInput!) {
  addCardsWithGroupDelivery(input: $input) {
    ... on AddCardsWithGroupDeliverySuccessPayload {
      cards {
        ...CardFragment
      }
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on TooManyItemsRejection {
      message
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on CardProductSuspendedRejection {
      message
    }
    ... on CardProductNotApplicableToPhysicalCardsRejection {
      message
    }
    ... on CardProductDisabledRejection {
      message
    }
    ... on EnabledCardDesignNotFoundRejection {
      message
    }
  }
}
Variables
{"input": AddCardsWithGroupDeliveryInput}
Response
{
  "data": {
    "addCardsWithGroupDelivery": AddCardsWithGroupDeliverySuccessPayload
  }
}

addDigitalCard

Description

Add a Digital Card to push to ApplePay or GooglePay

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must be the card holder

A digital card will only be valid for 1 hour after consent validation

Response

Returns an AddDigitalCardPayload!

Arguments
Name Description
input - AddDigitalCardInput

Example

Query
mutation AddDigitalCard($input: AddDigitalCardInput) {
  addDigitalCard(input: $input) {
    ... on AddDigitalCardSuccessPayload {
      digitalCard {
        ...PendingDigitalCardFragment
      }
    }
    ... on CardNotFoundRejection {
      id
      message
    }
    ... on CardCanNotBeDigitalizedRejection {
      id
      message
    }
    ... on ApplePayNotAllowedForProjectRejection {
      id
      message
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on UserNotCardHolderRejection {
      message
    }
    ... on CardProductDisabledRejection {
      message
    }
    ... on EnabledCardDesignNotFoundRejection {
      message
    }
  }
}
Variables
{"input": AddDigitalCardInput}
Response
{"data": {"addDigitalCard": AddDigitalCardSuccessPayload}}

addDirectDebitFundingSource

Description

Add a funding source to an account

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have an account membership for this account with the attribute canManageAccountMembership=true.

Arguments
Name Description
input - AddDirectDebitFundingSourceInput!

Example

Query
mutation AddDirectDebitFundingSource($input: AddDirectDebitFundingSourceInput!) {
  addDirectDebitFundingSource(input: $input) {
    ... on AddDirectDebitFundingSourceSuccessPayload {
      fundingSource {
        ...FundingSourceFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on NotFoundRejection {
      id
      message
    }
    ... on AccountVerificationAlreadyRejectedRejection {
      message
    }
    ... on IBANNotReachableRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": AddDirectDebitFundingSourceInput}
Response
{
  "data": {
    "addDirectDebitFundingSource": AddDirectDebitFundingSourceSuccessPayload
  }
}

addExternalAccount

Description

Add an external account to an account holder.

This mutation is restricted to a Project access token ( Learn More).

Response

Returns an AddExternalAccountPayload!

Arguments
Name Description
input - AddExternalAccountInput!

Example

Query
mutation AddExternalAccount($input: AddExternalAccountInput!) {
  addExternalAccount(input: $input) {
    ... on AddExternalAccountSuccessPayload {
      externalAccount {
        ...ExternalAccountFragment
      }
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
    ... on IbanValidationRejection {
      message
    }
    ... on ExternalAccountAlreadyExistsRejection {
      iban
      accountHolderId
      message
    }
    ... on ForbiddenRejection {
      message
    }
  }
}
Variables
{"input": AddExternalAccountInput}
Response
{
  "data": {
    "addExternalAccount": AddExternalAccountSuccessPayload
  }
}

addExternalAccountBalance

use AddOrUpdateExternalAccountBalance instead
Description

Add an external balance to an external account.

This mutation is restricted to a Project access token ( Learn More).

Response

Returns an AddExternalAccountBalancePayload!

Arguments
Name Description
input - AddExternalAccountBalanceInput!

Example

Query
mutation AddExternalAccountBalance($input: AddExternalAccountBalanceInput!) {
  addExternalAccountBalance(input: $input) {
    ... on AddExternalAccountBalanceSuccessPayload {
      externalAccountBalance {
        ...ExternalAccountBalanceFragment
      }
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
    ... on ExternalAccountBalanceAlreadyExistsRejection {
      type
      lastChangedAt
      message
    }
    ... on ForbiddenRejection {
      message
    }
  }
}
Variables
{"input": AddExternalAccountBalanceInput}
Response
{
  "data": {
    "addExternalAccountBalance": AddExternalAccountBalanceSuccessPayload
  }
}

addFundingLimitSettingsChangeRequest

Description

COMING SOON Add a new request for funding limit settings change.

This mutation is restricted to a Project access token ( Learn More).

Arguments
Name Description
input - AddFundingLimitSettingsChangeRequestInput!

Example

Query
mutation AddFundingLimitSettingsChangeRequest($input: AddFundingLimitSettingsChangeRequestInput!) {
  addFundingLimitSettingsChangeRequest(input: $input) {
    ... on AddFundingLimitSettingsChangeRequestSuccessPayload {
      fundingLimitSettingsChangeRequest {
        ...FundingLimitSettingsChangeRequestFragment
      }
    }
    ... on FundingLimitSettingsChangeRequestBadAmountRejection {
      message
    }
    ... on AccountHolderNotFoundRejection {
      message
    }
    ... on ForbiddenRejection {
      message
    }
  }
}
Variables
{"input": AddFundingLimitSettingsChangeRequestInput}
Response
{
  "data": {
    "addFundingLimitSettingsChangeRequest": AddFundingLimitSettingsChangeRequestSuccessPayload
  }
}

addInternalDirectDebitPaymentMandate

Description

Allows to add an internal direct debit payment mandate.

Arguments
Name Description
input - AddInternalDirectDebitPaymentMandateInput!

Example

Query
mutation AddInternalDirectDebitPaymentMandate($input: AddInternalDirectDebitPaymentMandateInput!) {
  addInternalDirectDebitPaymentMandate(input: $input) {
    ... on AddInternalDirectDebitPaymentMandateSuccessPayload {
      internalDirectDebitPaymentMandateId
    }
    ... on ForbiddenRejection {
      message
    }
    ... on NotFoundRejection {
      id
      message
    }
    ... on DebtorAccountNotAllowedRejection {
      message
    }
    ... on DebtorAccountClosedRejection {
      message
    }
    ... on SchemeWrongRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
  }
}
Variables
{"input": AddInternalDirectDebitPaymentMandateInput}
Response
{
  "data": {
    "addInternalDirectDebitPaymentMandate": AddInternalDirectDebitPaymentMandateSuccessPayload
  }
}

addMerchantProfile

Description

Add a merchant profile to a company account holder

Response

Returns an AddMerchantProfilePayload

Arguments
Name Description
input - AddMerchantProfileInput!

Example

Query
mutation AddMerchantProfile($input: AddMerchantProfileInput!) {
  addMerchantProfile(input: $input) {
    ... on AddMerchantProfileSuccessPayload {
      merchantProfile {
        ...MerchantProfileFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on AccountNotFoundRejection {
      id
      message
    }
    ... on InternalErrorRejection {
      message
    }
  }
}
Variables
{"input": AddMerchantProfileInput}
Response
{
  "data": {
    "addMerchantProfile": AddMerchantProfileSuccessPayload
  }
}

addOrUpdateExternalAccountBalance

Description

Add an external balance to an external account. If a balance already exist for the day, the balance amount will be updated.

This mutation is restricted to a Project access token ( Learn More).

Arguments
Name Description
input - AddOrUpdateExternalAccountBalanceInput!

Example

Query
mutation AddOrUpdateExternalAccountBalance($input: AddOrUpdateExternalAccountBalanceInput!) {
  addOrUpdateExternalAccountBalance(input: $input) {
    ... on AddOrUpdateExternalAccountBalanceSuccessPayload {
      externalAccountBalance {
        ...ExternalAccountBalanceFragment
      }
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
    ... on ForbiddenRejection {
      message
    }
  }
}
Variables
{"input": AddOrUpdateExternalAccountBalanceInput}
Response
{
  "data": {
    "addOrUpdateExternalAccountBalance": AddOrUpdateExternalAccountBalanceSuccessPayload
  }
}

addReceivedSepaDirectDebitB2bMandate

Description

Allows to add a received sepa direct debit mandate B2b.

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request with the Swan app.

The user must be able to initiate payments for this account.

Arguments
Name Description
input - AddReceivedSepaDirectDebitB2bMandateInput!

Example

Query
mutation AddReceivedSepaDirectDebitB2bMandate($input: AddReceivedSepaDirectDebitB2bMandateInput!) {
  addReceivedSepaDirectDebitB2bMandate(input: $input) {
    ... on AddReceivedSepaDirectDebitB2bMandateSuccessPayload {
      receivedDirectDebitMandate {
        ...ReceivedDirectDebitMandateFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on AccountNotFoundRejection {
      id
      message
    }
    ... on AccountHolderTypeIndividualRejection {
      message
    }
  }
}
Variables
{"input": AddReceivedSepaDirectDebitB2bMandateInput}
Response
{
  "data": {
    "addReceivedSepaDirectDebitB2bMandate": AddReceivedSepaDirectDebitB2bMandateSuccessPayload
  }
}

addSingleUseVirtualCard

Description

add a new Single Use Virtual Card to an account membership.

Response

Returns an AddSingleUseVirtualCardPayload!

Arguments
Name Description
input - AddSingleUseVirtualCardInput!

Example

Query
mutation AddSingleUseVirtualCard($input: AddSingleUseVirtualCardInput!) {
  addSingleUseVirtualCard(input: $input) {
    ... on AddSingleUseVirtualCardSuccessForUserPayload {
      card {
        ...CardFragment
      }
    }
    ... on AddSingleUseVirtualCardSuccessForProjectOwnerPayload {
      card {
        ...CardFragment
      }
      confidential {
        ...CardConfidentialFragment
      }
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on CardProductSuspendedRejection {
      message
    }
    ... on CardProductDisabledRejection {
      message
    }
    ... on EnabledCardDesignNotFoundRejection {
      message
    }
  }
}
Variables
{"input": AddSingleUseVirtualCardInput}
Response
{
  "data": {
    "addSingleUseVirtualCard": AddSingleUseVirtualCardSuccessForUserPayload
  }
}

addSingleUseVirtualCards

Description

Add several single-use virtual cards

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have an account membership for this account with the attribute canManageAccountMembership=true.

Response

Returns an AddSingleUseVirtualCardsPayload!

Arguments
Name Description
input - AddSingleUseVirtualCardsInput!

Example

Query
mutation AddSingleUseVirtualCards($input: AddSingleUseVirtualCardsInput!) {
  addSingleUseVirtualCards(input: $input) {
    ... on AddSingleUseVirtualCardsSuccessPayload {
      cards {
        ...CardFragment
      }
    }
    ... on TooManyItemsRejection {
      message
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on CardProductSuspendedRejection {
      message
    }
    ... on CardProductDisabledRejection {
      message
    }
    ... on EnabledCardDesignNotFoundRejection {
      message
    }
  }
}
Variables
{"input": AddSingleUseVirtualCardsInput}
Response
{
  "data": {
    "addSingleUseVirtualCards": AddSingleUseVirtualCardsSuccessPayload
  }
}

addVirtualIbanEntry

Description

Add a new Virtual IBAN.

Response

Returns an AddVirtualIbanEntryPayload

Arguments
Name Description
input - AddVirtualIbanInput

Example

Query
mutation AddVirtualIbanEntry($input: AddVirtualIbanInput) {
  addVirtualIbanEntry(input: $input) {
    ... on AddVirtualIbanEntrySuccessPayload {
      virtualIbanEntry {
        ...VirtualIBANEntryFragment
      }
    }
    ... on AccountNotFoundRejection {
      id
      message
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
  }
}
Variables
{"input": AddVirtualIbanInput}
Response
{
  "data": {
    "addVirtualIbanEntry": AddVirtualIbanEntrySuccessPayload
  }
}

allowSdd

Description

Allows to receive Sepa Direct Debit on an account.

Response

Returns an AllowSddPayload!

Arguments
Name Description
input - AllowSddInput!

Example

Query
mutation AllowSdd($input: AllowSddInput!) {
  allowSdd(input: $input) {
    ... on AllowSddSuccessPayload {
      account {
        ...AccountFragment
      }
    }
    ... on AccountNotFoundRejection {
      id
      message
    }
  }
}
Variables
{"input": AllowSddInput}
Response
{"data": {"allowSdd": AllowSddSuccessPayload}}

allowSddVirtualIbanEntry

Description

Allows to receive Sepa Direct Debit on a Virtual IBAN.

Response

Returns an AllowSddVirtualIbanEntryPayload!

Arguments
Name Description
input - AllowSddVirtualIbanEntryInput!

Example

Query
mutation AllowSddVirtualIbanEntry($input: AllowSddVirtualIbanEntryInput!) {
  allowSddVirtualIbanEntry(input: $input) {
    ... on AllowSddVirtualIbanEntrySuccessPayload {
      virtualIbanEntry {
        ...VirtualIBANEntryFragment
      }
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
  }
}
Variables
{"input": AllowSddVirtualIbanEntryInput}
Response
{
  "data": {
    "allowSddVirtualIbanEntry": AllowSddVirtualIbanEntrySuccessPayload
  }
}

bindAccountMembership

Description

Bind a user to an account membership

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

Response

Returns a BindAccountMembershipPayload!

Arguments
Name Description
input - BindAccountMembershipInput!

Example

Query
mutation BindAccountMembership($input: BindAccountMembershipInput!) {
  bindAccountMembership(input: $input) {
    ... on BindAccountMembershipSuccessPayload {
      accountMembership {
        ...AccountMembershipFragment
      }
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on AccountMembershipNotFoundRejection {
      id
      message
    }
    ... on AccountMembershipNotReadyToBeBoundRejection {
      id
      message
    }
    ... on IdentityAlreadyBindToAccountMembershipRejection {
      accountId
      identityId
      message
    }
    ... on RestrictedToUserRejection {
      message
    }
  }
}
Variables
{"input": BindAccountMembershipInput}
Response
{
  "data": {
    "bindAccountMembership": BindAccountMembershipSuccessPayload
  }
}

cancelCard

Description

Cancel a Card

Response

Returns a CancelCardPayload!

Arguments
Name Description
input - CancelCardInput

Example

Query
mutation CancelCard($input: CancelCardInput) {
  cancelCard(input: $input) {
    ... on CancelCardSuccessPayload {
      card {
        ...CardFragment
      }
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on CardNotFoundRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
  }
}
Variables
{"input": CancelCardInput}
Response
{"data": {"cancelCard": CancelCardSuccessPayload}}

cancelConsent

Description

Cancels a consent.

Response

Returns a CancelConsentPayload!

Arguments
Name Description
input - CancelConsentInput!

Example

Query
mutation CancelConsent($input: CancelConsentInput!) {
  cancelConsent(input: $input) {
    ... on CancelConsentSuccessPayload {
      consent {
        ...ConsentFragment
      }
    }
    ... on ConsentNotFoundRejection {
      message
      consentId
    }
    ... on NotReachableConsentStatusRejection {
      message
      currentStatus
      unreachableStatus
    }
  }
}
Variables
{"input": CancelConsentInput}
Response
{"data": {"cancelConsent": CancelConsentSuccessPayload}}

cancelDigitalCard

Description

Cancel a Digital Card

Response

Returns a CancelDigitalCardPayload!

Arguments
Name Description
input - CancelDigitalCardInput

Example

Query
mutation CancelDigitalCard($input: CancelDigitalCardInput) {
  cancelDigitalCard(input: $input) {
    ... on CancelDigitalCardSuccessPayload {
      digitalCard {
        ...DigitalCardFragment
      }
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on CardNotFoundRejection {
      id
      message
    }
    ... on DigitalCardNotFoundRejection {
      message
      identifier
    }
    ... on ForbiddenRejection {
      message
    }
  }
}
Variables
{"input": CancelDigitalCardInput}
Response
{
  "data": {
    "cancelDigitalCard": CancelDigitalCardSuccessPayload
  }
}

cancelFundingSource

Description

Cancel a funding source

Response

Returns a CancelFundingSourcePayload

Arguments
Name Description
input - CancelFundingSourceInput!

Example

Query
mutation CancelFundingSource($input: CancelFundingSourceInput!) {
  cancelFundingSource(input: $input) {
    ... on CancelFundingSourceSuccessPayload {
      fundingSource {
        ...FundingSourceFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on NotFoundRejection {
      id
      message
    }
  }
}
Variables
{"input": CancelFundingSourceInput}
Response
{
  "data": {
    "cancelFundingSource": CancelFundingSourceSuccessPayload
  }
}

cancelPhysicalCard

Description

Cancel a Physical Card.

Response

Returns a CancelPhysicalCardPayload!

Arguments
Name Description
input - CancelPhysicalCardInput

Example

Query
mutation CancelPhysicalCard($input: CancelPhysicalCardInput) {
  cancelPhysicalCard(input: $input) {
    ... on CancelPhysicalCardSuccessPayload {
      physicalCard {
        ...PhysicalCardFragment
      }
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on CardNotFoundRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on PhysicalCardNotFoundRejection {
      message
      identifier
    }
  }
}
Variables
{"input": CancelPhysicalCardInput}
Response
{
  "data": {
    "cancelPhysicalCard": CancelPhysicalCardSuccessPayload
  }
}

cancelStandingOrder

Description

Cancel a standing Order

The user must have an account membership to the account and the permission to initiate credit transfer

Response

Returns a CancelStandingOrderPayload!

Arguments
Name Description
input - CancelStandingOrderInput!

Example

Query
mutation CancelStandingOrder($input: CancelStandingOrderInput!) {
  cancelStandingOrder(input: $input) {
    ... on CancelStandingOrderSuccessPayload {
      standingOrder {
        ...StandingOrderFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
    ... on StandingOrderNotFoundRejection {
      message
    }
  }
}
Variables
{"input": CancelStandingOrderInput}
Response
{
  "data": {
    "cancelStandingOrder": CancelStandingOrderSuccessPayload
  }
}

cancelTransaction

Description

Cancels an UPCOMING credit transfer

The user must have an account membership for this account with the attribute canInitiatePayments=true.

Response

Returns a CancelTransactionPayload!

Arguments
Name Description
input - CancelTransactionInput!

Example

Query
mutation CancelTransaction($input: CancelTransactionInput!) {
  cancelTransaction(input: $input) {
    ... on CancelTransactionSuccessPayload {
      message
    }
    ... on ForbiddenRejection {
      message
    }
  }
}
Variables
{"input": CancelTransactionInput}
Response
{
  "data": {
    "cancelTransaction": CancelTransactionSuccessPayload
  }
}

cancelVirtualIbanEntry

Description

Cancels a Virtual IBAN.

Response

Returns a CancelVirtualIbanEntryPayload!

Arguments
Name Description
input - CancelVirtualIbanEntryInput!

Example

Query
mutation CancelVirtualIbanEntry($input: CancelVirtualIbanEntryInput!) {
  cancelVirtualIbanEntry(input: $input) {
    ... on CancelVirtualIbanEntrySuccessPayload {
      virtualIbanEntry {
        ...VirtualIBANEntryFragment
      }
    }
    ... on AccountNotFoundRejection {
      id
      message
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on InternalErrorRejection {
      message
    }
  }
}
Variables
{"input": CancelVirtualIbanEntryInput}
Response
{
  "data": {
    "cancelVirtualIbanEntry": CancelVirtualIbanEntrySuccessPayload
  }
}

closeAccount

Description

Closes an account.

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request with the Swan app.

The user must have a legal representative account membership for this account.

Response

Returns a CloseAccountPayload!

Arguments
Name Description
input - CloseAccountInput!

Example

Query
mutation CloseAccount($input: CloseAccountInput!) {
  closeAccount(input: $input) {
    ... on CloseAccountSuccessPayload {
      consent {
        ...ConsentFragment
      }
    }
    ... on AccountNotFoundRejection {
      id
      message
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
  }
}
Variables
{"input": CloseAccountInput}
Response
{"data": {"closeAccount": CloseAccountSuccessPayload}}

createCapitalDepositCase

Description

Create a capital deposit case.

This mutation is restricted to an Project access token ( Learn More).

Arguments
Name Description
input - CreateCapitalDepositCaseInput!

Example

Query
mutation CreateCapitalDepositCase($input: CreateCapitalDepositCaseInput!) {
  createCapitalDepositCase(input: $input) {
    ... on CreateCapitalDepositCaseSuccessPayload {
      capitalDepositCase {
        ...CapitalDepositCaseFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on BadRequestRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
  }
}
Variables
{"input": CreateCapitalDepositCaseInput}
Response
{
  "data": {
    "createCapitalDepositCase": CreateCapitalDepositCaseSuccessPayload
  }
}

createMultiConsent

Description

Create a multi consent, which represents a consent of several other consents, executed in parallel or sequentially depending on the order input value

This mutation is restricted to a User access token ( Learn More) and ask the user to consent to this request.

Response

Returns a CreateMultiConsentPayload

Arguments
Name Description
input - CreateMultiConsentInput!

Example

Query
mutation CreateMultiConsent($input: CreateMultiConsentInput!) {
  createMultiConsent(input: $input) {
    ... on CreateMultiConsentSuccessPayload {
      consent {
        ...ConsentFragment
      }
    }
    ... on ConsentsNotAllInCreatedStatusRejection {
      message
      consentIds
    }
    ... on ConsentsNotFoundRejection {
      message
      ids
    }
    ... on TooManyChildConsentsRejection {
      message
    }
    ... on ConsentsAlreadyLinkedToMultiConsentRejection {
      message
      consentIds
    }
  }
}
Variables
{"input": CreateMultiConsentInput}
Response
{
  "data": {
    "createMultiConsent": CreateMultiConsentSuccessPayload
  }
}

deleteSupportingDocument

Description

Delete a supporting document, in case uploaded file is not what was wanted. This action can not be undone.

This mutation can only be used on an "Uploaded" supporting document of a "WaitingForDocument" supporting document collection.

This mutation is restricted to a Project access token ( Learn More)

Arguments
Name Description
input - DeleteSupportingDocumentInput!

Example

Query
mutation DeleteSupportingDocument($input: DeleteSupportingDocumentInput!) {
  deleteSupportingDocument(input: $input) {
    ... on DeleteSupportingDocumentSuccessPayload {
      id
    }
    ... on ForbiddenRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
    ... on SupportingDocumentCollectionNotFoundRejection {
      id
      message
    }
    ... on SupportingDocumentCollectionStatusDoesNotAllowDeletionRejection {
      message
      supportingDocumentCollectionStatus
      supportingDocumentCollection {
        ...SupportingDocumentCollectionFragment
      }
    }
    ... on SupportingDocumentNotFoundRejection {
      id
      message
    }
    ... on SupportingDocumentStatusDoesNotAllowDeletionRejection {
      supportingDocument {
        ...SupportingDocumentFragment
      }
      status
      message
    }
  }
}
Variables
{"input": DeleteSupportingDocumentInput}
Response
{
  "data": {
    "deleteSupportingDocument": DeleteSupportingDocumentSuccessPayload
  }
}

denySdd

Description

Allows to refuse all Sepa Direct Debit received on an account.

Response

Returns a DenySddPayload!

Arguments
Name Description
input - DenySddInput

Example

Query
mutation DenySdd($input: DenySddInput) {
  denySdd(input: $input) {
    ... on DenySddSuccessPayload {
      account {
        ...AccountFragment
      }
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on AccountNotFoundRejection {
      id
      message
    }
    ... on InvalidArgumentRejection {
      message
      code
      fields {
        ...InvalidArgumentRejectionFieldFragment
      }
    }
  }
}
Variables
{"input": DenySddInput}
Response
{"data": {"denySdd": DenySddSuccessPayload}}

denySddVirtualIbanEntry

Description

Allows to refuse all Sepa Direct Debit received on a Virtual IBAN.

Response

Returns a DenySddVirtualIbanEntryPayload!

Arguments
Name Description
input - DenySddVirtualIbanEntryInput!

Example

Query
mutation DenySddVirtualIbanEntry($input: DenySddVirtualIbanEntryInput!) {
  denySddVirtualIbanEntry(input: $input) {
    ... on DenySddVirtualIbanEntrySuccessPayload {
      virtualIbanEntry {
        ...VirtualIBANEntryFragment
      }
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
  }
}
Variables
{"input": DenySddVirtualIbanEntryInput}
Response
{
  "data": {
    "denySddVirtualIbanEntry": DenySddVirtualIbanEntrySuccessPayload
  }
}

disableAccountMembership

Description

Disable an account membership

This mutation is callable with a User access token and a Project access token ( Learn More)

With a User access token, the user must have the permission to manage account membership of the account

Arguments
Name Description
input - DisableAccountMembershipInput

Example

Query
mutation DisableAccountMembership($input: DisableAccountMembershipInput) {
  disableAccountMembership(input: $input) {
    ... on DisableAccountMembershipSuccessPayload {
      accountMembership {
        ...AccountMembershipFragment
      }
    }
    ... on AccountMembershipCannotBeDisabledRejection {
      accountMembershipId
      message
    }
    ... on AccountMembershipNotFoundRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
    ... on LegalRepresentativeAccountMembershipCannotBeDisabledRejection {
      accountMembershipId
      message
    }
    ... on UserNotAllowedToDisableItsOwnAccountMembershipRejection {
      accountMembershipId
      message
    }
  }
}
Variables
{"input": DisableAccountMembershipInput}
Response
{
  "data": {
    "disableAccountMembership": DisableAccountMembershipSuccessPayload
  }
}

enableReceivedDirectDebitMandate

Description

Allows to enable a received mandate in the Suspended status.

For B2b received direct debit mandate, this mutation is restricted to an User access token( Learn More) and ask the user to consent to this request with the Swan app.

The user must be able to initiate payments for this account.

Arguments
Name Description
input - EnableReceivedDirectDebitMandateInput!

Example

Query
mutation EnableReceivedDirectDebitMandate($input: EnableReceivedDirectDebitMandateInput!) {
  enableReceivedDirectDebitMandate(input: $input) {
    ... on EnableReceivedDirectDebitMandateSuccessPayload {
      receivedDirectDebitMandate {
        ...ReceivedDirectDebitMandateFragment
      }
    }
    ... on ReceivedDirectDebitMandateNotFoundRejection {
      id
      message
    }
    ... on ReceivedDirectDebitMandateCanceledRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
  }
}
Variables
{"input": EnableReceivedDirectDebitMandateInput}
Response
{
  "data": {
    "enableReceivedDirectDebitMandate": EnableReceivedDirectDebitMandateSuccessPayload
  }
}

finalizeOnboarding

Description

Finalize an onboarding led to the opening of a new account for your client, who thus become the account holder.

This mutation is restricted to an User access token ( Learn More).

Response

Returns a FinalizeOnboardingPayload!

Arguments
Name Description
input - FinalizeOnboardingInput!

Example

Query
mutation FinalizeOnboarding($input: FinalizeOnboardingInput!) {
  finalizeOnboarding(input: $input) {
    ... on FinalizeOnboardingSuccessPayload {
      onboarding {
        ...OnboardingFragment
      }
    }
    ... on InternalErrorRejection {
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on OnboardingNotCompletedRejection {
      message
      onboardingId
      onboarding {
        ...OnboardingFragment
      }
    }
  }
}
Variables
{"input": FinalizeOnboardingInput}
Response
{
  "data": {
    "finalizeOnboarding": FinalizeOnboardingSuccessPayload
  }
}

generateAccountStatement

Description

Generate an account statement

Response

Returns a Statement!

Arguments
Name Description
input - GenerateAccountStatementInput!

Example

Query
mutation GenerateAccountStatement($input: GenerateAccountStatementInput!) {
  generateAccountStatement(input: $input) {
    id
    openingBalance {
      currency
      value
    }
    closingBalance {
      currency
      value
    }
    openingDate
    closingDate
    status
    totalCredits {
      currency
      value
    }
    totalDebits {
      currency
      value
    }
    fees {
      currency
      value
    }
    type {
      type
    }
    createdAt
    updatedAt
  }
}
Variables
{"input": GenerateAccountStatementInput}
Response
{
  "data": {
    "generateAccountStatement": {
      "id": "4",
      "openingBalance": Amount,
      "closingBalance": Amount,
      "openingDate": "2007-12-03T10:15:30Z",
      "closingDate": "2007-12-03T10:15:30Z",
      "status": "Available",
      "totalCredits": Amount,
      "totalDebits": Amount,
      "fees": Amount,
      "type": [StatementInfo],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

generateCapitalDepositDocumentUploadUrl

Description

Generate an url allowing the upload of a document which unique identifier is specified in parameters.

This mutation is restricted to an Project access token ( Learn More).

Example

Query
mutation GenerateCapitalDepositDocumentUploadUrl($input: GenerateCapitalDepositDocumentUploadUrlInput!) {
  generateCapitalDepositDocumentUploadUrl(input: $input) {
    ... on GenerateCapitalDepositDocumentUploadUrlSuccessPayload {
      uploadUrl
    }
    ... on CapitalDepositDocumentCanNotBeUploaded {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on BadRequestRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
  }
}
Variables
{"input": GenerateCapitalDepositDocumentUploadUrlInput}
Response
{
  "data": {
    "generateCapitalDepositDocumentUploadUrl": GenerateCapitalDepositDocumentUploadUrlSuccessPayload
  }
}

generateSupportingDocumentUploadUrl

Description

Generate and return a presigned URL to upload a unique file for the supporting document collection

This mutation is restricted to a Project access token ( Learn More)

Arguments
Name Description
input - GenerateSupportingDocumentUploadUrlInput!

Example

Query
mutation GenerateSupportingDocumentUploadUrl($input: GenerateSupportingDocumentUploadUrlInput!) {
  generateSupportingDocumentUploadUrl(input: $input) {
    ... on GenerateSupportingDocumentUploadUrlSuccessPayload {
      supportingDocumentId
      upload {
        ...SupportingDocumentUploadInfoFragment
      }
    }
    ... on SupportingDocumentCollectionNotFoundRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
    ... on SupportingDocumentUploadNotAllowedRejection {
      supportingDocumentCollectionStatus
      message
    }
  }
}
Variables
{"input": GenerateSupportingDocumentUploadUrlInput}
Response
{
  "data": {
    "generateSupportingDocumentUploadUrl": GenerateSupportingDocumentUploadUrlSuccessPayload
  }
}

grantConsentWithServerSignature

Arguments
Name Description
input - GrantConsentWithServerSignatureInput!

Example

Query
mutation GrantConsentWithServerSignature($input: GrantConsentWithServerSignatureInput!) {
  grantConsentWithServerSignature(input: $input) {
    ... on GrantConsentWithServerSignatureSuccessPayload {
      consent {
        ...ConsentFragment
      }
    }
    ... on ConsentNotFoundRejection {
      message
      consentId
    }
    ... on NotReachableConsentStatusRejection {
      message
      currentStatus
      unreachableStatus
    }
    ... on ForbiddenRejection {
      message
    }
    ... on ConsentTypeNotSupportedByServerConsentRejection {
      message
    }
    ... on ServerConsentNotAllowedForConsentOperationRejection {
      message
    }
    ... on ProjectNotFoundRejection {
      message
    }
    ... on ServerConsentNotAllowedForProjectRejection {
      message
    }
    ... on ServerConsentProjectSettingsNotFoundRejection {
      message
    }
    ... on ServerConsentProjectCredentialMissingRejection {
      message
    }
    ... on ServerConsentProjectCredentialNotFoundRejection {
      message
    }
    ... on ServerConsentSignatureNotValidRejection {
      message
    }
  }
}
Variables
{"input": GrantConsentWithServerSignatureInput}
Response
{
  "data": {
    "grantConsentWithServerSignature": GrantConsentWithServerSignatureSuccessPayload
  }
}

initiateCreditTransfers

Description

Initiates a credit transfer to an other Swan account or to an IBAN

This mutation is restricted to an User access token ( Learn More) and if necessary ask the user to consent to this request.

The user must have an account membership for this account with the attribute canInitiatePayments=true.

Response

Returns an InitiateCreditTransfersPayload!

Arguments
Name Description
input - InitiateCreditTransfersInput!

Example

Query
mutation InitiateCreditTransfers($input: InitiateCreditTransfersInput!) {
  initiateCreditTransfers(input: $input) {
    ... on InitiateCreditTransfersSuccessPayload {
      payment {
        ...PaymentFragment
      }
    }
    ... on AccountNotFoundRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
  }
}
Variables
{"input": InitiateCreditTransfersInput}
Response
{
  "data": {
    "initiateCreditTransfers": InitiateCreditTransfersSuccessPayload
  }
}

initiateFundingRequest

Description

Initiate a funding request. This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request. The user must have an account membership for this account with the attribute canInitiateCreditTransfer=true.

Response

Returns an InitiateFundingRequestPayload

Arguments
Name Description
input - InitiateFundingRequestInput!

Example

Query
mutation InitiateFundingRequest($input: InitiateFundingRequestInput!) {
  initiateFundingRequest(input: $input) {
    ... on InitiateFundingRequestSuccessPayload {
      payment {
        ...PaymentFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
    ... on FundingLimitExceededRejection {
      message
    }
    ... on ProjectFundingLimitExceededRejection {
      message
    }
    ... on GlobalFundingLimitExceededRejection {
      message
    }
    ... on FundingSourceWrongStatusRejection {
      message
      currentStatus
      expectedStatus
    }
    ... on FundingSourceNotFoundRejection {
      id
      message
    }
    ... on InsufficientFundsRejection {
      message
    }
    ... on InstantFundingLimitExceededRejection {
      message
    }
    ... on ProjectInstantFundingLimitExceededRejection {
      message
    }
    ... on GlobalInstantFundingLimitExceededRejection {
      message
    }
    ... on AccountVerificationWrongStatusRejection {
      message
    }
  }
}
Variables
{"input": InitiateFundingRequestInput}
Response
{
  "data": {
    "initiateFundingRequest": InitiateFundingRequestSuccessPayload
  }
}

onboardCompanyAccountHolder

Description

Creates an onboarding for a new company account holder.

This mutation is restricted to a Project access token ( Learn More)

Arguments
Name Description
input - OnboardCompanyAccountHolderInput

Example

Query
mutation OnboardCompanyAccountHolder($input: OnboardCompanyAccountHolderInput) {
  onboardCompanyAccountHolder(input: $input) {
    ... on OnboardCompanyAccountHolderSuccessPayload {
      onboarding {
        ...OnboardingFragment
      }
    }
    ... on BadRequestRejection {
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": OnboardCompanyAccountHolderInput}
Response
{
  "data": {
    "onboardCompanyAccountHolder": OnboardCompanyAccountHolderSuccessPayload
  }
}

onboardIndividualAccountHolder

Description

Creates an onboarding for a new individual account holder.

This mutation is restricted to a Project access token ( Learn More)

Arguments
Name Description
input - OnboardIndividualAccountHolderInput

Example

Query
mutation OnboardIndividualAccountHolder($input: OnboardIndividualAccountHolderInput) {
  onboardIndividualAccountHolder(input: $input) {
    ... on OnboardIndividualAccountHolderSuccessPayload {
      onboarding {
        ...OnboardingFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": OnboardIndividualAccountHolderInput}
Response
{
  "data": {
    "onboardIndividualAccountHolder": OnboardIndividualAccountHolderSuccessPayload
  }
}

printPhysicalCard

Description

Print Physical Card.

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

Response

Returns a PrintPhysicalCardPayload!

Arguments
Name Description
input - PrintPhysicalCardInput!

Example

Query
mutation PrintPhysicalCard($input: PrintPhysicalCardInput!) {
  printPhysicalCard(input: $input) {
    ... on PrintPhysicalCardSuccessPayload {
      physicalCard {
        ...PhysicalCardFragment
      }
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on AlreadyValidPhysicalCardRejection {
      message
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on BadRequestRejection {
      message
    }
    ... on CardNotFoundRejection {
      id
      message
    }
    ... on CardProductNotApplicableToPhysicalCardsRejection {
      message
    }
    ... on CardProductDisabledRejection {
      message
    }
  }
}
Variables
{"input": PrintPhysicalCardInput}
Response
{
  "data": {
    "printPhysicalCard": PrintPhysicalCardSuccessPayload
  }
}

refund

Description

initiates a refund for a list of booked transaction

This mutation is restricted to an User access token ( Learn More) and if necessary ask the user to consent to this request.

The user must have an account membership on the accounts that are beneficiary of the transaction with the attribute canInitiatePayments=true.

Response

Returns a RefundPayload!

Arguments
Name Description
input - RefundInput!

Example

Query
mutation Refund($input: RefundInput!) {
  refund(input: $input) {
    ... on RefundSuccessPayload {
      consent {
        ...ConsentFragment
      }
    }
    ... on RefundRejection {
      message
      code
    }
  }
}
Variables
{"input": RefundInput}
Response
{"data": {"refund": RefundSuccessPayload}}

requestMerchantPaymentProducts

Description

Request merchant payment products for a merchant profile

Arguments
Name Description
input - RequestMerchantPaymentProductsInput!

Example

Query
mutation RequestMerchantPaymentProducts($input: RequestMerchantPaymentProductsInput!) {
  requestMerchantPaymentProducts(input: $input) {
    ... on RequestMerchantPaymentProductsSuccessPayload {
      merchantProfile {
        ...MerchantProfileFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on NotFoundRejection {
      id
      message
    }
    ... on InternalErrorRejection {
      message
    }
  }
}
Variables
{"input": RequestMerchantPaymentProductsInput}
Response
{
  "data": {
    "requestMerchantPaymentProducts": RequestMerchantPaymentProductsSuccessPayload
  }
}

requestSupportingDocumentCollectionReview

Description

Ask for Swan's compliance team to review given supporting document collection.

This mutation is restricted to a Project access token ( Learn More)

Example

Query
mutation RequestSupportingDocumentCollectionReview($input: RequestSupportingDocumentCollectionReviewInput) {
  requestSupportingDocumentCollectionReview(input: $input) {
    ... on RequestSupportingDocumentCollectionReviewSuccessPayload {
      supportingDocumentCollection {
        ...SupportingDocumentCollectionFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on SupportingDocumentCollectionNotFoundRejection {
      id
      message
    }
    ... on SupportingDocumentCollectionStatusNotAllowedRejection {
      oldStatus
      newStatus
      message
    }
  }
}
Variables
{"input": RequestSupportingDocumentCollectionReviewInput}
Response
{
  "data": {
    "requestSupportingDocumentCollectionReview": RequestSupportingDocumentCollectionReviewSuccessPayload
  }
}

resumeAccountMembership

Description

Resumes an account membership already suspended.

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have an account membership for this account with the attribute canManageAccountMembership=true.

Response

Returns a ResumeAccountMembershipPayload!

Arguments
Name Description
input - ResumeAccountMembershipInput

Example

Query
mutation ResumeAccountMembership($input: ResumeAccountMembershipInput) {
  resumeAccountMembership(input: $input) {
    ... on ResumeAccountMembershipSuccessPayload {
      consent {
        ...ConsentFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on UserNotAllowedToManageAccountMembershipRejection {
      message
    }
  }
}
Variables
{"input": ResumeAccountMembershipInput}
Response
{
  "data": {
    "resumeAccountMembership": ResumeAccountMembershipSuccessPayload
  }
}

resumePhysicalCard

Description

Resume a Physical Card.

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have the account membership for this card

Response

Returns a ResumePhysicalCardPayload!

Arguments
Name Description
input - ResumePhysicalCardInput

Example

Query
mutation ResumePhysicalCard($input: ResumePhysicalCardInput) {
  resumePhysicalCard(input: $input) {
    ... on ResumePhysicalCardSuccessPayload {
      physicalCard {
        ...PhysicalCardFragment
      }
      consent {
        ...ConsentFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on CardNotFoundRejection {
      id
      message
    }
    ... on UserNotCardHolderRejection {
      message
    }
    ... on PhysicalCardNotFoundRejection {
      message
      identifier
    }
    ... on PhysicalCardWrongStatusRejection {
      message
      identifier
      currentStatus
      expectedStatus
    }
  }
}
Variables
{"input": ResumePhysicalCardInput}
Response
{
  "data": {
    "resumePhysicalCard": ResumePhysicalCardSuccessPayload
  }
}

scheduleStandingOrder

Description

Schedule a standing Order

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have an account membership to the account and the permission to initiate credit transfer

Response

Returns a ScheduleStandingOrderPayload!

Arguments
Name Description
input - ScheduleStandingOrderInput!

Example

Query
mutation ScheduleStandingOrder($input: ScheduleStandingOrderInput!) {
  scheduleStandingOrder(input: $input) {
    ... on ScheduleStandingOrderSuccessPayload {
      standingOrder {
        ...StandingOrderFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
    ... on InvalidArgumentRejection {
      message
      code
      fields {
        ...InvalidArgumentRejectionFieldFragment
      }
    }
  }
}
Variables
{"input": ScheduleStandingOrderInput}
Response
{
  "data": {
    "scheduleStandingOrder": ScheduleStandingOrderSuccessPayload
  }
}

suspendAccountMembership

Description

Suspends an account membership.

*This mutation is restricted to an User access token ( Learn More).

The user must have an account membership for this account with the attribute canManageAccountMembership=true.

Arguments
Name Description
input - SuspendAccountMembershipInput!

Example

Query
mutation SuspendAccountMembership($input: SuspendAccountMembershipInput!) {
  suspendAccountMembership(input: $input) {
    ... on SuspendAccountMembershipSuccessPayload {
      accountMembership {
        ...AccountMembershipFragment
      }
    }
    ... on InternalErrorRejection {
      message
    }
    ... on LegalRepresentativeAccountMembershipCannotBeSuspendedRejection {
      id
      message
    }
    ... on UserNotAllowedToManageAccountMembershipRejection {
      message
    }
    ... on UserNotAllowedToSuspendItsOwnAccountMembershipRejection {
      accountMembershipId
      message
    }
  }
}
Variables
{"input": SuspendAccountMembershipInput}
Response
{
  "data": {
    "suspendAccountMembership": SuspendAccountMembershipSuccessPayload
  }
}

suspendPhysicalCard

Description

Suspend a Physical Card.

Response

Returns a SuspendPhysicalCardPayload!

Arguments
Name Description
input - SuspendPhysicalCardInput

Example

Query
mutation SuspendPhysicalCard($input: SuspendPhysicalCardInput) {
  suspendPhysicalCard(input: $input) {
    ... on SuspendPhysicalCardSuccessPayload {
      physicalCard {
        ...PhysicalCardFragment
      }
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on CardNotFoundRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on PhysicalCardNotFoundRejection {
      message
      identifier
    }
  }
}
Variables
{"input": SuspendPhysicalCardInput}
Response
{
  "data": {
    "suspendPhysicalCard": SuspendPhysicalCardSuccessPayload
  }
}

suspendReceivedDirectDebitMandate

Description

Allows to suspend a received direct debit mandate in the Enabled status.

The user must be able to initiate payments for this account.

Arguments
Name Description
input - SuspendReceivedDirectDebitMandateInput!

Example

Query
mutation SuspendReceivedDirectDebitMandate($input: SuspendReceivedDirectDebitMandateInput!) {
  suspendReceivedDirectDebitMandate(input: $input) {
    ... on SuspendReceivedDirectDebitMandateSuccessPayload {
      receivedDirectDebitMandate {
        ...ReceivedDirectDebitMandateFragment
      }
    }
    ... on SuspendReceivedDirectDebitMandatedRejection {
      message
      reason
    }
    ... on ReceivedDirectDebitMandateNotFoundRejection {
      id
      message
    }
    ... on ReceivedDirectDebitMandateCanceledRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
  }
}
Variables
{"input": SuspendReceivedDirectDebitMandateInput}
Response
{
  "data": {
    "suspendReceivedDirectDebitMandate": SuspendReceivedDirectDebitMandateSuccessPayload
  }
}

updateAccount

Description

Update an account.

Response

Returns an UpdateAccountPayload!

Arguments
Name Description
input - UpdateAccountInput!

Example

Query
mutation UpdateAccount($input: UpdateAccountInput!) {
  updateAccount(input: $input) {
    ... on UpdateAccountSuccessPayload {
      account {
        ...AccountFragment
      }
    }
    ... on AccountNotFoundRejection {
      id
      message
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
  }
}
Variables
{"input": UpdateAccountInput}
Response
{"data": {"updateAccount": UpdateAccountSuccessPayload}}

updateAccountHolder

Response

Returns an UpdateAccountHolderPayload!

Arguments
Name Description
input - UpdateAccountHolderInput!

Example

Query
mutation UpdateAccountHolder($input: UpdateAccountHolderInput!) {
  updateAccountHolder(input: $input) {
    ... on UpdateAccountHolderSuccessPayload {
      accountHolder {
        ...AccountHolderFragment
      }
    }
    ... on AccountHolderNotFoundRejection {
      message
    }
  }
}
Variables
{"input": UpdateAccountHolderInput}
Response
{
  "data": {
    "updateAccountHolder": UpdateAccountHolderSuccessPayload
  }
}

updateAccountMembership

Description

Updates an account membership.

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have an account membership for this account with the attribute canManageAccountMembership=true.

Response

Returns an UpdateAccountMembershipPayload!

Arguments
Name Description
input - UpdateAccountMembershipInput!

Example

Query
mutation UpdateAccountMembership($input: UpdateAccountMembershipInput!) {
  updateAccountMembership(input: $input) {
    ... on UpdateAccountMembershipSuccessPayload {
      consent {
        ...ConsentFragment
      }
    }
    ... on AccountMembershipCannotBeUpdatedRejection {
      id
      message
    }
    ... on AccountMembershipNotFoundRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on InvalidPhoneNumberRejection {
      message
    }
    ... on PermissionCannotBeGrantedRejection {
      message
    }
    ... on UserNotAllowedToManageAccountMembershipRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": UpdateAccountMembershipInput}
Response
{
  "data": {
    "updateAccountMembership": UpdateAccountMembershipSuccessPayload
  }
}

updateCard

Description

Update a Card.

Response

Returns an UpdateCardPayload

Arguments
Name Description
input - UpdateCardInput

Example

Query
mutation UpdateCard($input: UpdateCardInput) {
  updateCard(input: $input) {
    ... on UpdateCardSuccessPayload {
      consent {
        ...ConsentFragment
      }
    }
    ... on AccountNotFoundRejection {
      id
      message
    }
    ... on CardNotFoundRejection {
      id
      message
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
  }
}
Variables
{"input": UpdateCardInput}
Response
{"data": {"updateCard": UpdateCardSuccessPayload}}

updateCompanyOnboarding

Description

Updates a company onboarding.

If you aim to update Ultimate Beneficiary Owners, you need to provide all of them as they are going to be overridden by your update payload.

This mutation is restricted to a Project access token ( Learn More)

Response

Returns an UpdateCompanyOnboardingPayload!

Arguments
Name Description
input - UpdateCompanyOnboardingInput

Example

Query
mutation UpdateCompanyOnboarding($input: UpdateCompanyOnboardingInput) {
  updateCompanyOnboarding(input: $input) {
    ... on ForbiddenRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
    ... on UpdateCompanyOnboardingSuccessPayload {
      onboarding {
        ...OnboardingInfoFragment
      }
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": UpdateCompanyOnboardingInput}
Response
{"data": {"updateCompanyOnboarding": ForbiddenRejection}}

updateIndividualOnboarding

Description

Updates an individual onboarding.

This mutation is restricted to a Project access token ( Learn More)

Arguments
Name Description
input - UpdateIndividualOnboardingInput!

Example

Query
mutation UpdateIndividualOnboarding($input: UpdateIndividualOnboardingInput!) {
  updateIndividualOnboarding(input: $input) {
    ... on ForbiddenRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
    ... on UpdateIndividualOnboardingSuccessPayload {
      onboarding {
        ...OnboardingInfoFragment
      }
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": UpdateIndividualOnboardingInput}
Response
{
  "data": {
    "updateIndividualOnboarding": ForbiddenRejection
  }
}

updateReceivedSepaDirectDebitB2bMandate

Description

Allows to update a received sepa direct debit mandate B2b.

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request with the Swan app.

The user must be able to initiate payments for this account.

Example

Query
mutation UpdateReceivedSepaDirectDebitB2bMandate($input: UpdateReceivedSepaDirectDebitB2bMandateInput!) {
  updateReceivedSepaDirectDebitB2bMandate(input: $input) {
    ... on UpdateReceivedSepaDirectDebitB2bMandateSuccessPayload {
      receivedDirectDebitMandate {
        ...ReceivedDirectDebitMandateFragment
      }
    }
    ... on ReceivedDirectDebitMandateNotFoundRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on ReceivedDirectDebitMandateAlreadyExistRejection {
      id
      message
    }
    ... on ReceivedDirectDebitMandateNotB2bRejection {
      id
      message
    }
  }
}
Variables
{"input": UpdateReceivedSepaDirectDebitB2bMandateInput}
Response
{
  "data": {
    "updateReceivedSepaDirectDebitB2bMandate": UpdateReceivedSepaDirectDebitB2bMandateSuccessPayload
  }
}

updateSupportingDocument

Response

Returns an UpdateSupportingDocumentPayload!

Arguments
Name Description
input - UpdateSupportingDocumentInput!

Example

Query
mutation UpdateSupportingDocument($input: UpdateSupportingDocumentInput!) {
  updateSupportingDocument(input: $input) {
    ... on UpdateSupportingDocumentSuccessPayload {
      supportingDocument {
        ...SupportingDocumentFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
    ... on SupportingDocumentCollectionNotFoundRejection {
      id
      message
    }
    ... on SupportingDocumentCollectionStatusDoesNotAllowUpdateRejection {
      message
      supportingDocumentCollectionStatus
      supportingDocumentCollection {
        ...SupportingDocumentCollectionFragment
      }
    }
    ... on SupportingDocumentNotFoundRejection {
      id
      message
    }
    ... on SupportingDocumentStatusDoesNotAllowUpdateRejection {
      supportingDocument {
        ...SupportingDocumentFragment
      }
      status
      message
    }
  }
}
Variables
{"input": UpdateSupportingDocumentInput}
Response
{
  "data": {
    "updateSupportingDocument": UpdateSupportingDocumentSuccessPayload
  }
}

updateUserConsentSettings

Description

Updates user preferred consent notification channel.

This mutation is restricted to a Project access token ( Learn More)

Response

Returns an UpdateUserConsentSettingsPayload!

Arguments
Name Description
input - UpdateUserConsentSettingsInput!

Example

Query
mutation UpdateUserConsentSettings($input: UpdateUserConsentSettingsInput!) {
  updateUserConsentSettings(input: $input) {
    ... on UpdateUserConsentSettingsSuccessPayload {
      userConsentSettings {
        ...UserConsentSettingsFragment
      }
    }
    ... on UpdateUserConsentSettingsTokenRejection {
      message
    }
  }
}
Variables
{"input": UpdateUserConsentSettingsInput}
Response
{
  "data": {
    "updateUserConsentSettings": UpdateUserConsentSettingsSuccessPayload
  }
}

viewCardNumbers

Description

Reveal the card numbers in the consent page once consent has been given by the cardholder

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have the account membership for this card

Response

Returns a ViewCardNumbersPayload!

Arguments
Name Description
input - ViewCardNumbersInput!

Example

Query
mutation ViewCardNumbers($input: ViewCardNumbersInput!) {
  viewCardNumbers(input: $input) {
    ... on ViewCardNumbersSuccessPayload {
      consent {
        ...ConsentFragment
      }
    }
    ... on UserNotCardHolderRejection {
      message
    }
    ... on CardNotFoundRejection {
      id
      message
    }
  }
}
Variables
{"input": ViewCardNumbersInput}
Response
{
  "data": {
    "viewCardNumbers": ViewCardNumbersSuccessPayload
  }
}

viewPhysicalCardPin

Description

Reveal the PIN code on Swan app after his consent

This mutation is restricted to an User access token ( Learn More) and ask the user to consent to this request.

The user must have the account membership for this card

Response

Returns a ViewPhysicalCardPinPayload!

Arguments
Name Description
input - ViewPhysicalCardPinInput!

Example

Query
mutation ViewPhysicalCardPin($input: ViewPhysicalCardPinInput!) {
  viewPhysicalCardPin(input: $input) {
    ... on ViewPhysicalCardPinSuccessPayload {
      consent {
        ...ConsentFragment
      }
    }
    ... on CardNotFoundRejection {
      id
      message
    }
    ... on PhysicalCardNotFoundRejection {
      message
      identifier
    }
    ... on PINNotReadyRejection {
      physicalCardIdentifier
      message
    }
    ... on UserNotCardHolderRejection {
      message
    }
  }
}
Variables
{"input": ViewPhysicalCardPinInput}
Response
{
  "data": {
    "viewPhysicalCardPin": ViewPhysicalCardPinSuccessPayload
  }
}

Types

Account

Description

Whether you call it a wallet, monetary account, payment account or bank account, the notion of account is fundamental at Swan. All payment flows necessarily go through an account.

Fields
Field Name Description
id - ID! Unique identifier of an account
number - AccountNumber! Unique account number
name - String! Account name
holder - AccountHolder! Account holder
cashAccountType - CashAccountType! Cash account type
country - AccountCountry! Country of the account
paymentLevel - PaymentLevel Payment level
BIC - BIC! Bank Identifier Code Only if the account membership has canViewAccount=true & this account has paymentLevel=Unlimited
IBAN - IBAN International Bank Account Number Only if the account membership has canViewAccount=true & this account has paymentLevel=Unlimited
currency - Currency! Currency
blockSDD - Boolean true if the main IBAN refuses all Sepa Direct Debit received
statusInfo - AccountStatusInfo! Status of the account
partnershipStatusInfo - PartnershipStatusInfo Partnership status
createdAt - DateTime! Created date
updatedAt - DateTime! Updated date
virtualIbanEntries - VirtualIBANEntryConnection! List of Virtual IBAN
Arguments
first - Int!
before - String
after - String
memberships - AccountMembershipConnection! List of account membership for this account
Arguments
first - Int!
before - String
after - String
requiredConsentToFetchNewTransactions - Boolean! trueif a consent is required to fetch new transactions
language - AccountLanguage! Language used for account statements
legalRepresentativeMembership - AccountMembership! Legal representative account membership
standingOrders - StandingOrderConnection! A list of standing orders regarding an account.
Arguments
first - Int!

number of elements in the list (default value 50)

after - String

When the list of elements needs to start after a element

offset - Int

When the list of elements needs to start at a specific offset

orderBy - AccountStandingOrderOrderByInput

When the list of elements needs to be ordered

filters - AccountStandingOrderFiltersInput

When the list of elements needs to be filtered

fundingSources - FundingSourceConnection List of funding source created on the account
Arguments
first - Int!

number of elements in the list (default value 50)

after - String

When the list of elements needs to start after a element

orderBy - FundingSourceOrderByInput

When the list of elements needs to be ordered

filters - FundingSourceFiltersInput

When the list of elements needs to be filtered

merchantProfiles - MerchantProfileConnection List of merchant profiles created on the account
Arguments
first - Int!

number of elements in the list (default value 50)

after - String

When the list of elements needs to start after a element

orderBy - MerchantProfileOrderByInput

When the list of elements needs to be ordered

filters - MerchantProfileFiltersInput

When the list of elements needs to be filtered

receivedDirectDebitMandates - ReceivedDirectDebitMandateConnection A list of receive Direct Mandates of an account.
Arguments
first - Int!

number of elements in the list (default value 50)

after - String

When the list of elements needs to start after a element

orderBy - AccountReceivedDirectDebitOrderByInput

When the list of elements needs to be ordered

filters - AccountReceivedDirectDebitMandateFiltersInput

When the list of elements needs to be filtered

balances - AccountBalances A list of balances regarding an account.
statements - StatementConnection A list of statements of an account. The list is ordered by lastUpdateAt
Arguments
first - Int!

number of elements in the list (default value 50)

after - String

When the list of elements needs to start after a element

filters - StatementFiltersInput

When the list of elements needs to be filtered

transactions - TransactionConnection A list of transactions of an account.
Arguments
first - Int!

number of elements in the list (default value 50)

after - String

When the list of elements needs to start after a element

filters - TransactionsFiltersInput

When the list of elements needs to be filtered

orderBy - TransactionsOrderByInput

When the list of elements needs to be sorted (default value UpdatedAt desc)

Example
{
  "id": 4,
  "number": "000000012345",
  "name": "abc123",
  "holder": AccountHolder,
  "cashAccountType": "Current",
  "country": "FRA",
  "paymentLevel": "Limited",
  "BIC": BIC,
  "IBAN": "NL55INGB4789170233",
  "currency": "USD",
  "blockSDD": false,
  "statusInfo": AccountStatusInfo,
  "partnershipStatusInfo": PartnershipStatusInfo,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "virtualIbanEntries": VirtualIBANEntryConnection,
  "memberships": AccountMembershipConnection,
  "requiredConsentToFetchNewTransactions": true,
  "language": "de",
  "legalRepresentativeMembership": AccountMembership,
  "standingOrders": StandingOrderConnection,
  "fundingSources": FundingSourceConnection,
  "merchantProfiles": MerchantProfileConnection,
  "receivedDirectDebitMandates": ReceivedDirectDebitMandateConnection,
  "balances": AccountBalances,
  "statements": StatementConnection,
  "transactions": TransactionConnection
}

AccountBalances

Description

A list of balances regarding an account.

Fields
Field Name Description
available - Amount! Balance composed of booked, pending transactions and rolling reserve used known at the time of calculation.
pending - Amount! Balance just composed of pending transactions.
booked - Amount! Balance just composed of booked transactions.
reserved - Amount! Balance just composed of rolling reserve used in booked transactions.
Example
{
  "available": Amount,
  "pending": Amount,
  "booked": Amount,
  "reserved": Amount
}

AccountClosedStatus

Description

Account Closed status information

Fields
Field Name Description
status - AccountStatus! Account status (always Closed for type AccountClosedStatus)
reason - String! Reason why the account is suspended @Deprecated
reasonInfo - CloseAccountStatusReason! Reason why the account is currently closed
Example
{
  "status": "Opened",
  "reason": "abc123",
  "reasonInfo": CloseAccountReason
}

AccountClosingStatus

Description

Account Closing status information

Fields
Field Name Description
status - AccountStatus! Account status (always Closing for type AccountClosingStatus)
reason - String! Reason why the account is suspended @Deprecated
reasonInfo - CloseAccountStatusReason! Reason why the account is currently in closing
Example
{
  "status": "Opened",
  "reason": "xyz789",
  "reasonInfo": CloseAccountReason
}

AccountConnection

Description

Implements the Relay Connection interface, used to paginate list of element ( Learn More)

Fields
Field Name Description
totalCount - Int! Total number of element in the list
pageInfo - PageInfo! Information about the current, the previous and the next page
edges - [AccountEdge!]! AccountEdge list
Example
{
  "totalCount": 123,
  "pageInfo": PageInfo,
  "edges": [AccountEdge]
}

AccountCountry

Description

Available Account Country: CCA3

Values
Enum Value Description

FRA

DEU

Example
"FRA"

AccountEdge

Description

Implements the Relay Edge interface

Fields
Field Name Description
cursor - String! Opaque identifier pointing to this node in the pagination mechanism
node - Account! The account
Example
{
  "cursor": "xyz789",
  "node": Account
}

AccountFilterInput

Fields
Input Field Description
status - [AccountStatus!]

Account Status we want to filter on

paymentLevels - [PaymentLevel!]

Account Payment Levels we want to filter on

search - String

Searches name, account number, and IBAN

Example
{
  "status": ["Opened"],
  "paymentLevels": ["Limited"],
  "search": "abc123"
}

AccountHolder

Description

The account holder is the person who owns the money stored in the account. The account holder can be one of your customers, whether it is a natural person or a legal person, or quite simply you.

Fields
Field Name Description
id - ID! Unique identifier of the account holder.
verificationStatus - VerificationStatus! Verification status. Banking regulations require financial institutions such as Swan to know and verify their customers in order to comply with their anti-money laundering and terrorist financing obligations. In banking jargon, we talk about KYC (Know Your Customers) procedure
info - AccountHolderInfo! Account holder type information.
statusInfo - AccountHolderStatusInfo Account holder status information.
residencyAddress - AddressInfo! Residency address.
createdDate - DateTime! Created date.
updatedDate - DateTime! Updated date.
accounts - AccountConnection! List of accounts owned by the account holder.
Arguments
after - String
before - String
first - Int!
supportingDocumentCollections - SupportingDocumentCollectionConnection! List of supporting document collection for an account holder
Arguments
first - Int!
before - String
after - String
fundingLimitSettingsChangeRequests - FundingLimitSettingsChangeRequestConnection! COMING SOON List of funding limit settings change request for an account holder
Arguments
first - Int!
before - String
after - String
onboarding - Onboarding Account holder onboarding
fundingLimitSettings - FundingLimitSettings Funding limit settings
paymentMandates - PaymentMandateConnection A list of Payment Mandates for an account holder.
Arguments
first - Int!

number of elements in the list (default value 50)

after - String

When the list of elements needs to start after a element

orderBy - PaymentMandateOrderByInput

When the list of elements needs to be ordered, by default, the list will be ordered by the latest updated Payment Mandate

filters - PaymentMandateFiltersInput

When the list of elements needs to be filtered

externalAccounts - ExternalAccountConnection! List of external account owned by the account holder
Arguments
first - Int!
before - String
after - String
Example
{
  "id": 4,
  "verificationStatus": "NotStarted",
  "info": AccountHolderInfo,
  "statusInfo": AccountHolderStatusInfo,
  "residencyAddress": AddressInfo,
  "createdDate": "2007-12-03T10:15:30Z",
  "updatedDate": "2007-12-03T10:15:30Z",
  "accounts": AccountConnection,
  "supportingDocumentCollections": SupportingDocumentCollectionConnection,
  "fundingLimitSettingsChangeRequests": FundingLimitSettingsChangeRequestConnection,
  "onboarding": Onboarding,
  "fundingLimitSettings": FundingLimitSettings,
  "paymentMandates": PaymentMandateConnection,
  "externalAccounts": ExternalAccountConnection
}

AccountHolderCanceledStatusInfo

Description

Account Holder Canceled Status Information

Fields
Field Name Description
status - AccountHolderStatus! Status of the account holder.
reason - String! Reason why the account holder is suspended.
Example
{"status": "Enabled", "reason": "xyz789"}

AccountHolderCompanyInfo

Fields
Field Name Description
type - AccountHolderType! Account holder type (always Company for type AccountHolderCompanyInfo)
name - String! Name of the company.
registrationNumber - String Registration number of the company (SIRET, ...).
companyType - CompanyType Legal form of the company (SAS, SCI, SASU, ...).
businessActivity - BusinessActivity! Business activity.
businessActivityDescription - String! Business activity description. This must be 1024 characters long maximum.
monthlyPaymentVolume - MonthlyPaymentVolume! Estimated monthly payment volume (euro).
individualUltimateBeneficialOwners - [IndividualUltimateBeneficialOwner!]!

The ultimate beneficiary is defined as the natural person (s) who own or control, directly or indirectly, the reporting company.

The ultimate beneficiary is :

  • either the natural person (s) who hold, directly or indirectly, more than 25% of the capital or the rights of vote of the reporting company;
  • either the natural person (s) who exercise, by other means, a power of control of the company;
vatNumber - String Unique number that identifies a taxable person (business) or non-taxable legal entity that is registered for VAT
taxIdentificationNumber - String Tax Identification Number
legalRepresentativePersonalAddress - AddressInformation Legal representative personal address
Example
{
  "type": "Individual",
  "name": "abc123",
  "registrationNumber": "abc123",
  "companyType": "Association",
  "businessActivity": "AdministrativeServices",
  "businessActivityDescription": "abc123",
  "monthlyPaymentVolume": "Between10000And50000",
  "individualUltimateBeneficialOwners": [
    IndividualUltimateBeneficialOwner
  ],
  "vatNumber": "abc123",
  "taxIdentificationNumber": "xyz789",
  "legalRepresentativePersonalAddress": AddressInformation
}

AccountHolderConnection

Description

Implements the Relay Connection interface, used to paginate list of element ( Learn More).

Fields
Field Name Description
totalCount - Int! Total number of element in the list.
pageInfo - PageInfo! Information about the current, the previous and the next page.
edges - [AccountHolderEdge!]! AccountHolderEdge list.
Example
{
  "totalCount": 123,
  "pageInfo": PageInfo,
  "edges": [AccountHolderEdge]
}

AccountHolderEdge

Description

Implements the Relay Edge interface.

Fields
Field Name Description
cursor - String! Opaque identifier pointing to this node in the pagination mechanism.
node - AccountHolder! The account holder.
Example
{
  "cursor": "abc123",
  "node": AccountHolder
}

AccountHolderEnabledStatusInfo

Description

Account Holder Enabled Status Information

Fields
Field Name Description
status - AccountHolderStatus! Status of the account holder.
Example
{"status": "Enabled"}

AccountHolderFilterInput

Fields
Input Field Description
status - [AccountHolderStatus!]
types - [AccountHolderType!]
verificationStatus - [VerificationStatus!]
search - String

Searches company name, first name, last name

Example
{
  "status": ["Enabled"],
  "types": ["Individual"],
  "verificationStatus": ["NotStarted"],
  "search": "xyz789"
}

AccountHolderIndividualInfo

Description

Individual account holder.

Fields
Field Name Description
type - AccountHolderType! Account holder type (always Individual for type AccountHolderIndividualInfo).
name - String! Account Holder's first name and last name.
employmentStatus - EmploymentStatus! Employment status of the account holder (regulatory questions).
monthlyIncome - MonthlyIncome! Monthly income of the account holder (regulatory questions).
user - User! User of the individual account holder.
taxIdentificationNumber - String Tax Identification Number
Example
{
  "type": "Individual",
  "name": "xyz789",
  "employmentStatus": "Craftsman",
  "monthlyIncome": "LessThan500",
  "user": User,
  "taxIdentificationNumber": "xyz789"
}

AccountHolderInfo

Description

Account holder types.

Fields
Field Name Description
type - AccountHolderType! Account holder type
name - String! Account holder name
Possible Types
AccountHolderInfo Types

AccountHolderCompanyInfo

AccountHolderIndividualInfo

Example
{"type": "Individual", "name": "xyz789"}

AccountHolderNotFoundRejection

Description

Rejection returned when the Account Holder was not found

Fields
Field Name Description
message - String!
Example
{"message": "abc123"}

AccountHolderOrderByFieldInput

Description

Field we can use when ordering that can be applied when listing account holders

Values
Enum Value Description

createdAt

updatedAt

Example
"createdAt"

AccountHolderOrderByInput

Description

Order that can be applied when listing account holders

Fields
Input Field Description
field - AccountHolderOrderByFieldInput
direction - OrderByDirection
Example
{"field": "createdAt", "direction": "Asc"}

AccountHolderStatus

Description

Account holder status.

Values
Enum Value Description

Enabled

When the account holder is enabled.

Suspended

When the account holder is suspended.

Canceled

When the account holder is canceled.
Example
"Enabled"

AccountHolderStatusInfo

Description

Account Holder Status Information

Fields
Field Name Description
status - AccountHolderStatus! Status of the account holder.
Example
{"status": "Enabled"}

AccountHolderSuspendedStatusInfo

Description

Account Holder Suspended Status Information

Fields
Field Name Description
status - AccountHolderStatus! Status of the account holder.
reason - String! Reason why the account holder is suspended.
Example
{"status": "Enabled", "reason": "xyz789"}

AccountHolderType

Description

Account holder type

Values
Enum Value Description

Individual

Individual (Natural person)

Company

Company (Legal person)
Example
"Individual"

AccountHolderTypeIndividualRejection

Description

Rejection returned if the account holder type is individual. An individual account holder can't create a b2b received direct debit mandate.

Fields
Field Name Description
message - String!
Example
{"message": "xyz789"}

AccountLanguage

Description

Language: ISO 639-1 language code

Values
Enum Value Description

de

en

fr

it

nl

es

Example
"de"

AccountMembership

Description

An account membership represents the rights of a user for a given account.

Each account is administered by an account membership having the capacity of legal representative. He has the possibility of delegating rights on this account to other users.

Fields
Field Name Description
id - ID! unique identifier of an account membership
email - String! email
user - User user of this account membership
legalRepresentative - Boolean! true if this account membership having the capacity of the legal representative of the account holder.
canViewAccount - Boolean! true if this account membership can view account balances and transactions history
canManageBeneficiaries - Boolean! true if this account membership can add or canceled beneficiaries
canInitiatePayments - Boolean! true if this account membership can initiate payments
canManageAccountMembership - Boolean! true if this account membership can invite, update, suspend or resume beneficiaries
statusInfo - AccountMembershipStatusInfo! status of the account membership
account - Account account of the account membership
spendingLimits - [SpendingLimit!] Periodic Spending limit list
createdAt - DateTime! created date
updatedAt - DateTime! updated date
version - String! version of the account membership started from '1' and incremented at every updates
residencyAddress - AddressInfo Residency address of the member
taxIdentificationNumber - String Tax Identitification Number of the member
spending - Spending Periodic Spending
cards - CardConnection! account membership's cards
Arguments
first - Int!
before - String
after - String
orderBy - CardOrderByInput

When the list of elements needs to be ordered

filters - CardFiltersInput

When the list of elements needs to be filtered

Example
{
  "id": 4,
  "email": "xyz789",
  "user": User,
  "legalRepresentative": true,
  "canViewAccount": true,
  "canManageBeneficiaries": false,
  "canInitiatePayments": false,
  "canManageAccountMembership": false,
  "statusInfo": AccountMembershipStatusInfo,
  "account": Account,
  "spendingLimits": [SpendingLimit],
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "version": "abc123",
  "residencyAddress": AddressInfo,
  "taxIdentificationNumber": "xyz789",
  "spending": Spending,
  "cards": CardConnection
}

AccountMembershipBindingUserErrorStatusInfo

Description

when a user is binded with the error to the account membership

Fields
Field Name Description
status - AccountMembershipStatus! AccountMembership status (always BindingUserError for type AccountMembershipBindingUserErrorStatusInfo)
firstNameMatchError - Boolean! true if the first name of the user binded doesn't match with the invitation
idVerifiedMatchError - Boolean! true if Swan hasn't verified the user's identity
lastNameMatchError - Boolean! true if the last name of the user binded doesn't match with the invitation
phoneNumberMatchError - Boolean! true if the phone number of the user binded doesn't match with the invitation
birthDateMatchError - Boolean! true if the birth date of the user binded doesn't match with the invitation
restrictedTo - RestrictedTo! restricted to a user
Example
{
  "status": "ConsentPending",
  "firstNameMatchError": false,
  "idVerifiedMatchError": true,
  "lastNameMatchError": false,
  "phoneNumberMatchError": true,
  "birthDateMatchError": true,
  "restrictedTo": RestrictedTo
}

AccountMembershipCannotBeDisabledRejection

Fields
Field Name Description
accountMembershipId - String!
message - String!
Example
{
  "accountMembershipId": "abc123",
  "message": "abc123"
}

AccountMembershipCannotBeUpdatedRejection

Fields
Field Name Description
id - String!
message - String!
Example
{
  "id": "xyz789",
  "message": "abc123"
}

AccountMembershipConnection

Description

Implements the Relay Connection interface, used to paginate list of element ( Learn More)

Fields
Field Name Description
totalCount - Int! Total number of element in the list
pageInfo - PageInfo! Information about the current, the previous and the next page
edges - [AccountMembershipEdge!]! AccountMembershipEdge list
Example
{
  "totalCount": 987,
  "pageInfo": PageInfo,
  "edges": [AccountMembershipEdge]
}

AccountMembershipConsentPendingStatusInfo

Description

when the user has to consent to invite a new account membership

Fields
Field Name Description
status - AccountMembershipStatus! AccountMembership status (always ConsentPending for type AccountMembershipConsentPendingStatusInfo)
consent - Consent! The consent required to invite this account membership
restrictedTo - RestrictedTo! restricted to a user
Example
{
  "status": "ConsentPending",
  "consent": Consent,
  "restrictedTo": RestrictedTo
}

AccountMembershipDisabledStatusInfo

Description

when the account membership is disabled

Fields
Field Name Description
status - AccountMembershipStatus! AccountMembership status (always Disabled for type AccountMembershipDisabledStatusInfo)
reason - String! reason why the account membership is disabled
Example
{
  "status": "ConsentPending",
  "reason": "abc123"
}

AccountMembershipEdge

Description

Implements the Relay Edge interface

Fields
Field Name Description
cursor - String! Opaque identifier pointing to this node in the pagination mechanism
node - AccountMembership! The account membership
Example
{
  "cursor": "xyz789",
  "node": AccountMembership
}

AccountMembershipEnabledStatusInfo

Description

when the account membership is enabled

Fields
Field Name Description
status - AccountMembershipStatus! AccountMembership status (always Enabled for type AccountMembershipEnabledStatusInfo)
Example
{"status": "ConsentPending"}

AccountMembershipInvitationSentStatusInfo

Description

when a new account membership is invited and there is no user binded yet

Fields
Field Name Description
status - AccountMembershipStatus! AccountMembership status (always InvitationSent for type AccountMembershipInvitationSentStatusInfo)
restrictedTo - RestrictedTo! restricted to a user
Example
{"status": "ConsentPending", "restrictedTo": RestrictedTo}

AccountMembershipNotAllowedRejection

Description

Rejection returned when the Account Membership is not allowed to use an operation.

Fields
Field Name Description
message - String!
Example
{"message": "abc123"}

AccountMembershipNotFoundRejection

Fields
Field Name Description
id - String!
message - String!
Example
{
  "id": "xyz789",
  "message": "xyz789"
}

AccountMembershipNotReadyToBeBoundRejection

Description

Rejection returned if invitation has not been sent to user yet

Fields
Field Name Description
id - String!
message - String!
Example
{
  "id": "xyz789",
  "message": "xyz789"
}

AccountMembershipOrderByFieldInput

Description

Field we can use when ordering that can be applied when listing account memberships

Values
Enum Value Description

createdAt

updatedAt

Example
"createdAt"

AccountMembershipOrderByInput

Description

Order that can be applied when listing account memberships

Fields
Input Field Description
field - AccountMembershipOrderByFieldInput
direction - OrderByDirection
Example
{"field": "createdAt", "direction": "Asc"}

AccountMembershipStatus

Description

AccountMembership enabled

Values
Enum Value Description

ConsentPending

when the consent to invite the account membership is pending

InvitationSent

when the account membership is invited

BindingUserError

when the user binded with errors to the account membership

Enabled

when the account membership is enabled

Suspended

when the account membership is suspended

Disabled

when the account membership is disabled
Example
"ConsentPending"

AccountMembershipStatusInfo

Description

here are the different account membership status:

Fields
Field Name Description
status - AccountMembershipStatus! AccountMembership status
Example
{"status": "ConsentPending"}

AccountMembershipSuspendedStatusInfo

Description

when the account membership is suspended

Fields
Field Name Description
status - AccountMembershipStatus! AccountMembership status (always Suspended for type AccountMembershipSuspendedStatusInfo)
reason - String! reason why the account membership is suspended
Example
{
  "status": "ConsentPending",
  "reason": "abc123"
}

AccountMembershipsFilterInput

Description

Filters that can be applied when listing accounts (Only applied in user context)

Fields
Input Field Description
canInitiatePayments - Boolean

Can the user initiate payments on this account

canManageAccountMembership - Boolean

Can the user manage account membership

canManageBeneficiaries - Boolean

Can the user manage beneficiaries

status - [AccountMembershipStatus!]

Account memberships status/statuses we're looking for

email - String

Filtered by email

firstName - String

Filtered by first name

lastName - String

Filtered by last name

search - String

Searches email, first name, last name, and id

Example
{
  "canInitiatePayments": true,
  "canManageAccountMembership": false,
  "canManageBeneficiaries": true,
  "status": ["ConsentPending"],
  "email": "abc123",
  "firstName": "xyz789",
  "lastName": "abc123",
  "search": "xyz789"
}

AccountNotFoundRejection

Description

Rejection returned if the account was not found or if the user does not have the rights to know that the card exists

Fields
Field Name Description
id - String!
message - String!
Example
{
  "id": "abc123",
  "message": "abc123"
}

AccountNumber

Description

Swan account number

Example
"000000012345"

AccountOpenedStatus

Description

Account Opened status information

Fields
Field Name Description
status - AccountStatus! Account status (always Opened for type AccountOpenedStatus)
Example
{"status": "Opened"}

AccountOrderByFieldInput

Description

Fields that can be used when ordering accounts

Values
Enum Value Description

createdAt

updatedAt

Example
"createdAt"

AccountOrderByInput

Description

Order that can be applied when listing accounts

Fields
Input Field Description
field - AccountOrderByFieldInput
direction - OrderByDirection
Example
{"field": "createdAt", "direction": "Asc"}

AccountReceivedDirectDebitMandateFiltersInput

Description

Filter that can be passed to get the received direct debit mandate in a specific data range

Fields
Input Field Description
status - [ReceivedDirectDebitMandateStatus!]

To filter on status values

scheme - [ReceivedDirectDebitMandateScheme!]

To filter on scheme values

Example
{"status": ["Enabled"], "scheme": ["SepaDirectDebitB2b"]}

AccountReceivedDirectDebitOrderByFieldInput

Description

Field we can use when ordering that can be applied when listing receives direct debit mandate results

Values
Enum Value Description

createdAt

updatedAt

Example
"createdAt"

AccountReceivedDirectDebitOrderByInput

Description

Order that can be applied when listing receives direct debit mandate results

Fields
Input Field Description
field - AccountReceivedDirectDebitOrderByFieldInput
direction - OrderByDirection
Example
{"field": "createdAt", "direction": "Asc"}

AccountStandingOrderFiltersInput

Description

Filters that can be applied when listing Standing orders

Fields
Input Field Description
status - [StandingOrderStatus!]
Example
{"status": ["ConsentPending"]}

AccountStandingOrderOrderByFieldInput

Description

Field we can use when ordering that can be applied when listing standing order results

Values
Enum Value Description

createdAt

updatedAt

Example
"createdAt"

AccountStandingOrderOrderByInput

Description

Order that can be applied when listing standing order results

Fields
Input Field Description
field - AccountStandingOrderOrderByFieldInput
direction - OrderByDirection
Example
{"field": "createdAt", "direction": "Asc"}

AccountStatus

Values
Enum Value Description

Opened

When the account is opened

Suspended

When the account is suspended

Closing

When the account is currently closing

Closed

When the account is closed
Example
"Opened"

AccountStatusInfo

Fields
Field Name Description
status - AccountStatus! Account status
Example
{"status": "Opened"}

AccountSuspendedStatus

Description

Account Suspended status information

Fields
Field Name Description
status - AccountStatus! Account status (always Suspended for type AccountSuspendedStatus)
reason - String! Reason why the account is suspended @Deprecated
reasonInfo - SuspendAccountStatusReason! Reason why the account is currently suspend
Example
{
  "status": "Opened",
  "reason": "abc123",
  "reasonInfo": SuspendAccountReason
}

AccountVerification

Description

Account Verification

Fields
Field Name Description
createdAt - DateTime! Creation date of the account verification
id - ID! Unique identifier of the Account Verification
statusInfo - AccountVerificationStatusInfo! Account Verification Status Information
updatedAt - DateTime! Last update date of the account verification
Possible Types
AccountVerification Types

DirectDebitAccountVerification

Example
{
  "createdAt": "2007-12-03T10:15:30Z",
  "id": "4",
  "statusInfo": AccountVerificationStatusInfo,
  "updatedAt": "2007-12-03T10:15:30Z"
}

AccountVerificationAlreadyRejectedRejection

Description

Rejection returned when the external account has already been rejected.

In such a case, contact Swan directly to resolve the situation for this specific account holder.

Fields
Field Name Description
message - String!
Example
{"message": "abc123"}

AccountVerificationStatus

Description

Account Verification Status

Values
Enum Value Description

PendingVerification

We are waiting for the end user to send a credit transfer from his external iban to any Swan owned iban

PendingReview

We could not automatically match the external iban based on last received transfer. Manuel review process is underway

Verified

Account has been verified

Rejected

Account verification has been rejected
Example
"PendingVerification"

AccountVerificationStatusInfo

Description

Account Verification Status Information

Fields
Field Name Description
status - AccountVerificationStatus! Account verification status
Example
{"status": "PendingVerification"}

AccountVerificationWrongStatusRejection

Description

Rejection returned when the Account Verification is not in the expected status

Fields
Field Name Description
message - String!
Example
{"message": "xyz789"}

ActivatePhysicalCardInput

Fields
Input Field Description
identifier - String!

Unique identifier present on physical card

consentRedirectUrl - String!

URL the user is redirected to after consent has been given

Example
{
  "identifier": "abc123",
  "consentRedirectUrl": "xyz789"
}

ActivatePhysicalCardPayload

ActivatePhysicalCardSuccessPayload

Fields
Field Name Description
consent - Consent! The consent required to activate this physical card
physicalCard - PhysicalCard! The physicalCard to activate
Example
{
  "consent": Consent,
  "physicalCard": PhysicalCard
}

AddAccountMembershipInput

Description

Inputs to add a new account membership

Fields
Input Field Description
accountId - ID!

unique identifier of a given account

email - String!

email

restrictedTo - RestrictedToInput!

restricted to a user if necessary

canViewAccount - Boolean!

true if this account membership can view account balances and transactions history

canManageBeneficiaries - Boolean!

true if this account membership can add or canceled beneficiaries

canInitiatePayments - Boolean!

true if this account membership can initiate payments

canManageAccountMembership - Boolean!

true if this account membership can invite, update, suspend or resume account membership

consentRedirectUrl - String!

URL the user is redirected to after consent has been given

residencyAddress - ResidencyAddressInput

Residency address of the member to be added

taxIdentificationNumber - String

Tax Identitification Number of the user added

Example
{
  "accountId": "4",
  "email": "xyz789",
  "restrictedTo": RestrictedToInput,
  "canViewAccount": false,
  "canManageBeneficiaries": true,
  "canInitiatePayments": false,
  "canManageAccountMembership": true,
  "consentRedirectUrl": "abc123",
  "residencyAddress": ResidencyAddressInput,
  "taxIdentificationNumber": "xyz789"
}

AddAccountMembershipPayload

AddAccountMembershipSuccessPayload

Fields
Field Name Description
accountMembership - AccountMembership!
Example
{"accountMembership": AccountMembership}

AddAccountMembershipsInput