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
      }
      externalAccounts {
        ...ExternalAccountConnectionFragment
      }
      paymentMandates {
        ...PaymentMandateConnectionFragment
      }
      fundingLimitSettings {
        ...FundingLimitSettingsFragment
      }
    }
    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
      canManageCards
      statusInfo {
        ...AccountMembershipStatusInfoFragment
      }
      account {
        ...AccountFragment
      }
      spendingLimits {
        ...SpendingLimitFragment
      }
      createdAt
      updatedAt
      version
      residencyAddress {
        ...AddressInfoFragment
      }
      taxIdentificationNumber
      acceptedIdentificationLevels
      recommendedIdentificationLevel
      hasRequiredIdentificationLevel
      disabledAt
      cards {
        ...CardConnectionFragment
      }
      spending {
        ...SpendingFragment
      }
    }
    paymentAccountType
    upgradedAt
    bankDetails
    legalDocuments {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...LegalDocumentEdgeFragment
      }
    }
    balances {
      available {
        ...AmountFragment
      }
      pending {
        ...AmountFragment
      }
      booked {
        ...AmountFragment
      }
      reserved {
        ...AmountFragment
      }
    }
    statements {
      pageInfo {
        ...PageInfoFragment
      }
      totalCount
      edges {
        ...StatementEdgeFragment
      }
    }
    transactions {
      pageInfo {
        ...PageInfoFragment
      }
      totalCount
      edges {
        ...TransactionEdgeFragment
      }
    }
    invoices {
      pageInfo {
        ...PageInfoFragment
      }
      totalCount
      edges {
        ...InvoiceEdgeFragment
      }
    }
    receivedDirectDebitMandates {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...ReceivedDirectDebitMandateEdgeFragment
      }
    }
    standingOrders {
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...StandingOrderEdgeFragment
      }
      totalCount
    }
    fundingSources {
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...FundingSourceEdgeFragment
      }
      totalCount
    }
    merchantProfiles {
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...MerchantProfileEdgeFragment
      }
      totalCount
    }
  }
}
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": false,
      "language": "de",
      "legalRepresentativeMembership": AccountMembership,
      "paymentAccountType": "EMoney",
      "upgradedAt": "2007-12-03T10:15:30Z",
      "bankDetails": "abc123",
      "legalDocuments": LegalDocumentConnection,
      "balances": AccountBalances,
      "statements": StatementConnection,
      "transactions": TransactionConnection,
      "invoices": InvoiceConnection,
      "receivedDirectDebitMandates": ReceivedDirectDebitMandateConnection,
      "standingOrders": StandingOrderConnection,
      "fundingSources": FundingSourceConnection,
      "merchantProfiles": MerchantProfileConnection
    }
  }
}

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
      }
      legalRepresentativeAcceptedIdentificationLevels
      legalRepresentativeRecommendedIdentificationLevel
    }
    externalAccounts {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...ExternalAccountEdgeFragment
      }
    }
    paymentMandates {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...PaymentMandateEdgeFragment
      }
    }
    fundingLimitSettings {
      instantFundingLimit {
        ...InstantFundingLimitFragment
      }
      fundingLimit {
        ...FundingLimitFragment
      }
      fundingLimitSettingsChangeRequest {
        ...FundingLimitSettingsChangeRequestFragment
      }
      statusInfo {
        ...FundingLimitSettingsStatusInfoFragment
      }
    }
  }
}
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,
      "externalAccounts": ExternalAccountConnection,
      "paymentMandates": PaymentMandateConnection,
      "fundingLimitSettings": FundingLimitSettings
    }
  }
}

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": "abc123",
  "filters": AccountHolderFilterInput,
  "orderBy": AccountHolderOrderByInput,
  "after": "abc123"
}
Response
{
  "data": {
    "accountHolders": {
      "totalCount": 123,
      "pageInfo": PageInfo,
      "edges": [AccountHolderEdge]
    }
  }
}

accountInvoice

Response

Returns an Invoice

Arguments
Name Description
invoiceId - ID!

Example

Query
query AccountInvoice($invoiceId: ID!) {
  accountInvoice(invoiceId: $invoiceId) {
    id
    accountId
    name
    status
    amount {
      currency
      value
    }
    url
    expiresAt
    openingDate
    closingDate
    createdAt
    updatedAt
  }
}
Variables
{"invoiceId": "4"}
Response
{
  "data": {
    "accountInvoice": {
      "id": 4,
      "accountId": "4",
      "name": "xyz789",
      "status": "Failed",
      "amount": Amount,
      "url": "xyz789",
      "expiresAt": "2007-12-03T10:15:30Z",
      "openingDate": "2007-12-03T10:15:30Z",
      "closingDate": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

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
      accountMemberships {
        ...AccountMembershipConnectionFragment
      }
      mobilePhoneNumber
      firstName
      lastName
      allFirstNames
      birthDate
      nationalityCCA3
      idVerified
      authenticators {
        ...AuthenticatorFragment
      }
      identificationStatus
      identificationLevels {
        ...IdentificationLevelsFragment
      }
      preferredNotificationChannel
      createdAt
      updatedAt
      joinedAt
      identifications {
        ...IdentificationConnectionFragment
      }
    }
    legalRepresentative
    canViewAccount
    canManageBeneficiaries
    canInitiatePayments
    canManageAccountMembership
    canManageCards
    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
      }
      paymentAccountType
      upgradedAt
      bankDetails
      legalDocuments {
        ...LegalDocumentConnectionFragment
      }
      balances {
        ...AccountBalancesFragment
      }
      statements {
        ...StatementConnectionFragment
      }
      transactions {
        ...TransactionConnectionFragment
      }
      invoices {
        ...InvoiceConnectionFragment
      }
      receivedDirectDebitMandates {
        ...ReceivedDirectDebitMandateConnectionFragment
      }
      standingOrders {
        ...StandingOrderConnectionFragment
      }
      fundingSources {
        ...FundingSourceConnectionFragment
      }
      merchantProfiles {
        ...MerchantProfileConnectionFragment
      }
    }
    spendingLimits {
      type
      period
      amount {
        ...AmountFragment
      }
    }
    createdAt
    updatedAt
    version
    residencyAddress {
      addressLine1
      addressLine2
      city
      postalCode
      state
      country
    }
    taxIdentificationNumber
    acceptedIdentificationLevels
    recommendedIdentificationLevel
    hasRequiredIdentificationLevel
    disabledAt
    cards {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...CardEdgeFragment
      }
    }
    spending {
      period
      amount {
        ...AmountFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "accountMembership": {
      "id": 4,
      "email": "xyz789",
      "user": User,
      "legalRepresentative": true,
      "canViewAccount": false,
      "canManageBeneficiaries": false,
      "canInitiatePayments": false,
      "canManageAccountMembership": true,
      "canManageCards": 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",
      "acceptedIdentificationLevels": ["Expert"],
      "recommendedIdentificationLevel": "Expert",
      "hasRequiredIdentificationLevel": true,
      "disabledAt": "2007-12-03T10:15:30Z",
      "cards": CardConnection,
      "spending": Spending
    }
  }
}

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": "xyz789",
  "filters": AccountMembershipsFilterInput,
  "orderBy": AccountMembershipOrderByInput
}
Response
{
  "data": {
    "accountMemberships": {
      "totalCount": 987,
      "pageInfo": PageInfo,
      "edges": [AccountMembershipEdge]
    }
  }
}

accountStatement

Description

Returns an account statement by id

Response

Returns a Statement!

Arguments
Name Description
id - ID!

Example

Query
query AccountStatement($id: ID!) {
  accountStatement(id: $id) {
    id
    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
      }
      paymentAccountType
      upgradedAt
      bankDetails
      legalDocuments {
        ...LegalDocumentConnectionFragment
      }
      balances {
        ...AccountBalancesFragment
      }
      statements {
        ...StatementConnectionFragment
      }
      transactions {
        ...TransactionConnectionFragment
      }
      invoices {
        ...InvoiceConnectionFragment
      }
      receivedDirectDebitMandates {
        ...ReceivedDirectDebitMandateConnectionFragment
      }
      standingOrders {
        ...StandingOrderConnectionFragment
      }
      fundingSources {
        ...FundingSourceConnectionFragment
      }
      merchantProfiles {
        ...MerchantProfileConnectionFragment
      }
    }
    openingBalance {
      currency
      value
    }
    closingBalance {
      currency
      value
    }
    openingDate
    closingDate
    status
    period
    totalCredits {
      currency
      value
    }
    totalDebits {
      currency
      value
    }
    fees {
      currency
      value
    }
    type {
      type
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "accountStatement": {
      "id": "4",
      "account": Account,
      "openingBalance": Amount,
      "closingBalance": Amount,
      "openingDate": "2007-12-03T10:15:30Z",
      "closingDate": "2007-12-03T10:15:30Z",
      "status": "Available",
      "period": "Monthly",
      "totalCredits": Amount,
      "totalDebits": Amount,
      "fees": Amount,
      "type": [StatementInfo],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

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
      }
      legalRepresentativeAcceptedIdentificationLevels
      legalRepresentativeRecommendedIdentificationLevel
    }
    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": "xyz789",
      "status": "Initiated",
      "documents": [CapitalDepositDocument],
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

capitalDepositCases

Description

Returns the list of capital deposit cases.

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

Response

Returns a CapitalDepositCaseConnection!

Arguments
Name Description
first - Int! Default = 50
before - String
after - String
filters - CapitalDepositCaseFiltersInput
orderBy - CapitalDepositCaseOrderByInput

Example

Query
query CapitalDepositCases(
  $first: Int!,
  $before: String,
  $after: String,
  $filters: CapitalDepositCaseFiltersInput,
  $orderBy: CapitalDepositCaseOrderByInput
) {
  capitalDepositCases(
    first: $first,
    before: $before,
    after: $after,
    filters: $filters,
    orderBy: $orderBy
  ) {
    totalCount
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    edges {
      cursor
      node {
        ...CapitalDepositCaseFragment
      }
    }
  }
}
Variables
{
  "first": 50,
  "before": "xyz789",
  "after": "abc123",
  "filters": CapitalDepositCaseFiltersInput,
  "orderBy": CapitalDepositCaseOrderByInput
}
Response
{
  "data": {
    "capitalDepositCases": {
      "totalCount": 987,
      "pageInfo": PageInfo,
      "edges": [CapitalDepositCaseEdge]
    }
  }
}

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
      canManageCards
      statusInfo {
        ...AccountMembershipStatusInfoFragment
      }
      account {
        ...AccountFragment
      }
      spendingLimits {
        ...SpendingLimitFragment
      }
      createdAt
      updatedAt
      version
      residencyAddress {
        ...AddressInfoFragment
      }
      taxIdentificationNumber
      acceptedIdentificationLevels
      recommendedIdentificationLevel
      hasRequiredIdentificationLevel
      disabledAt
      cards {
        ...CardConnectionFragment
      }
      spending {
        ...SpendingFragment
      }
    }
    mainCurrency
    cardContractExpiryDate
    cardDesignUrl
    cardUrl
    statusInfo {
      status
    }
    withdrawal
    international
    nonMainCurrencyTransactions
    eCommerce
    spendingLimits {
      type
      period
      amount {
        ...AmountFragment
      }
    }
    physicalCard {
      statusInfo {
        ...PhysicalCardStatusInfoFragment
      }
      expiryDate
      identifier
      offlineSpendingLimit {
        ...AmountFragment
      }
      cardMaskedNumber
      customOptions {
        ...PhysicalCardCustomOptionsFragment
      }
    }
    cardMaskedNumber
    expiryDate
    name
    cardProduct {
      id
      name
      projectId
      status
      createdAt
      updatedAt
      applicableToPhysicalCards
      cardDesigns {
        ...CardProductDesignFragment
      }
      defaultCardProduct
      individualSpendingLimit {
        ...SpendingLimitFragment
      }
      companySpendingLimit {
        ...SpendingLimitFragment
      }
    }
    issuingCountry
    digitalCards {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...DigitalCardEdgeFragment
      }
    }
    transactions {
      pageInfo {
        ...PageInfoFragment
      }
      totalCount
      edges {
        ...TransactionEdgeFragment
      }
    }
    spending {
      period
      amount {
        ...AmountFragment
      }
    }
  }
}
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": "abc123",
      "statusInfo": CardStatusInfo,
      "withdrawal": false,
      "international": true,
      "nonMainCurrencyTransactions": true,
      "eCommerce": true,
      "spendingLimits": [SpendingLimit],
      "physicalCard": PhysicalCard,
      "cardMaskedNumber": "xyz789",
      "expiryDate": "abc123",
      "name": "abc123",
      "cardProduct": CardProduct,
      "issuingCountry": CCA3,
      "digitalCards": DigitalCardConnection,
      "transactions": TransactionConnection,
      "spending": Spending
    }
  }
}

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": "abc123",
  "orderBy": CardOrderByInput,
  "filters": CardFiltersInput
}
Response
{
  "data": {
    "cards": {
      "totalCount": 123,
      "pageInfo": PageInfo,
      "edges": [CardEdge]
    }
  }
}

consents

Description

Return the list of consents

For a User access token : return the list of consents for the signed-in user For a Project access token : return the list of consents for the project. This list can be filtered by userId

( Learn more on authentication)

Response

Returns a ConsentConnection!

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

Example

Query
query Consents(
  $first: Int!,
  $after: String,
  $filters: ConsentsFiltersInput
) {
  consents(
    first: $first,
    after: $after,
    filters: $filters
  ) {
    totalCount
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    edges {
      cursor
      node {
        ...ConsentFragment
      }
    }
  }
}
Variables
{
  "first": 50,
  "after": "xyz789",
  "filters": ConsentsFiltersInput
}
Response
{
  "data": {
    "consents": {
      "totalCount": 123,
      "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": "xyz789",
      "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 {
      iban
      code
      message
    }
  }
}
Variables
{"input": IbanValidationInput}
Response
{"data": {"ibanValidation": ValidIban}}

internationalBeneficiaryDynamicForms

Description

Returns an international beneficiary dynamic forms.

Arguments
Name Description
amount - AmountInput!
language - InternationalCreditTransferDisplayLanguage
dynamicFields - [InternationalBeneficiaryDetails!]

Example

Query
query InternationalBeneficiaryDynamicForms(
  $amount: AmountInput!,
  $language: InternationalCreditTransferDisplayLanguage,
  $dynamicFields: [InternationalBeneficiaryDetails!]
) {
  internationalBeneficiaryDynamicForms(
    amount: $amount,
    language: $language,
    dynamicFields: $dynamicFields
  ) {
    schemes {
      fields {
        ...FieldFragment
      }
      title
      type
      remainingFieldsToRefreshCount
    }
  }
}
Variables
{
  "amount": AmountInput,
  "language": "EN",
  "dynamicFields": [InternationalBeneficiaryDetails]
}
Response
{
  "data": {
    "internationalBeneficiaryDynamicForms": {
      "schemes": [Scheme]
    }
  }
}

internationalCreditTransferQuote

Description

Request an international credit transfer quote.

Response

Returns an InternationalCreditTransferQuote

Arguments
Name Description
targetAmount - AmountInput!

Example

Query
query InternationalCreditTransferQuote($targetAmount: AmountInput!) {
  internationalCreditTransferQuote(targetAmount: $targetAmount) {
    exchangeRate
    sourceAmount {
      currency
      value
    }
    targetAmount {
      currency
      value
    }
    feesAmount {
      currency
      value
    }
  }
}
Variables
{"targetAmount": AmountInput}
Response
{
  "data": {
    "internationalCreditTransferQuote": {
      "exchangeRate": "xyz789",
      "sourceAmount": Amount,
      "targetAmount": Amount,
      "feesAmount": Amount
    }
  }
}

internationalCreditTransferTransactionDetailsDynamicForm

Description

Returns an international credit transfer dynamic form.

Arguments
Name Description
targetAmount - AmountInput!
language - InternationalCreditTransferDisplayLanguage
internationalBeneficiary - InternationalBeneficiary!
refreshableFields - [InternationalCreditTransferDetails!]

Example

Query
query InternationalCreditTransferTransactionDetailsDynamicForm(
  $targetAmount: AmountInput!,
  $language: InternationalCreditTransferDisplayLanguage,
  $internationalBeneficiary: InternationalBeneficiary!,
  $refreshableFields: [InternationalCreditTransferDetails!]
) {
  internationalCreditTransferTransactionDetailsDynamicForm(
    targetAmount: $targetAmount,
    language: $language,
    internationalBeneficiary: $internationalBeneficiary,
    refreshableFields: $refreshableFields
  ) {
    fields {
      key
      name
      required
    }
    remainingFieldsToRefreshCount
  }
}
Variables
{
  "targetAmount": AmountInput,
  "language": "EN",
  "internationalBeneficiary": InternationalBeneficiary,
  "refreshableFields": [
    InternationalCreditTransferDetails
  ]
}
Response
{
  "data": {
    "internationalCreditTransferTransactionDetailsDynamicForm": {
      "fields": [Field],
      "remainingFieldsToRefreshCount": 123
    }
  }
}

merchantProfile

Description

Returns a merchant profile by id.

Response

Returns a MerchantProfile

Arguments
Name Description
id - ID!

Example

Query
query MerchantProfile($id: ID!) {
  merchantProfile(id: $id) {
    id
    accountId
    merchantName
    merchantWebsite
    merchantLogoUrl
    statusInfo {
      status
    }
    productType
    expectedMonthlyPaymentVolume {
      currency
      value
    }
    merchantPaymentMethods {
      id
      type
      productId
      methodId
      statusInfo {
        ...MerchantPaymentMethodStatusInfoFragment
      }
      version
      updatedAt
      rollingReserve {
        ...RollingReserveFragment
      }
    }
    requestedMerchantProfileUpdates {
      id
      merchantProfileId
      merchantName
      merchantWebsite
      merchantLogoUrl
      status
      productType
      expectedMonthlyPaymentVolume {
        ...AmountFragment
      }
      expectedAverageBasket {
        ...AmountFragment
      }
      createdAt
      updatedAt
    }
    expectedAverageBasket {
      currency
      value
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "merchantProfile": {
      "id": "4",
      "accountId": "4",
      "merchantName": "xyz789",
      "merchantWebsite": "abc123",
      "merchantLogoUrl": "xyz789",
      "statusInfo": MerchantProfileStatusInfo,
      "productType": "Goods",
      "expectedMonthlyPaymentVolume": Amount,
      "merchantPaymentMethods": [MerchantPaymentMethod],
      "requestedMerchantProfileUpdates": [
        RequestMerchantProfileUpdate
      ],
      "expectedAverageBasket": Amount,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

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
      }
      externalAccounts {
        ...ExternalAccountConnectionFragment
      }
      paymentMandates {
        ...PaymentMandateConnectionFragment
      }
      fundingLimitSettings {
        ...FundingLimitSettingsFragment
      }
    }
    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
      }
      paymentAccountType
      upgradedAt
      bankDetails
      legalDocuments {
        ...LegalDocumentConnectionFragment
      }
      balances {
        ...AccountBalancesFragment
      }
      statements {
        ...StatementConnectionFragment
      }
      transactions {
        ...TransactionConnectionFragment
      }
      invoices {
        ...InvoiceConnectionFragment
      }
      receivedDirectDebitMandates {
        ...ReceivedDirectDebitMandateConnectionFragment
      }
      standingOrders {
        ...StandingOrderConnectionFragment
      }
      fundingSources {
        ...FundingSourceConnectionFragment
      }
      merchantProfiles {
        ...MerchantProfileConnectionFragment
      }
    }
    legalRepresentativeAcceptedIdentificationLevels
    legalRepresentativeRecommendedIdentificationLevel
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "onboarding": {
      "id": "abc123",
      "accountName": "abc123",
      "accountCountry": "FRA",
      "createdAt": "2007-12-03T10:15:30Z",
      "email": "abc123",
      "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,
      "legalRepresentativeAcceptedIdentificationLevels": ["Expert"],
      "legalRepresentativeRecommendedIdentificationLevel": "Expert"
    }
  }
}

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": "abc123",
  "after": "xyz789",
  "filters": OnboardingFiltersInput,
  "orderBy": OnboardingOrderByInput
}
Response
{
  "data": {
    "onboardings": {
      "totalCount": 123,
      "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
      payments {
        ...PaymentConnectionFragment
      }
      reference
      label
      amount {
        ...AmountFragment
      }
      targetAvailableBalance {
        ...AmountFragment
      }
      period
      firstExecutionDate
      lastExecutionDate
      sepaBeneficiary {
        ...SEPABeneficiaryFragment
      }
      statusInfo {
        ...StandingOrderStatusInfoFragment
      }
      createdAt
      updatedAt
      account {
        ...AccountFragment
      }
      createdBy {
        ...UserFragment
      }
      nextExecutionDate
    }
  }
}
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": 123
    }
  }
}

projectInfo

Description

Returns the project infos you set in the dashboard.

Response

Returns a ProjectInfo!

Example

Query
query ProjectInfo {
  projectInfo {
    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
      }
    }
    id
    B2BMembershipIDVerification
    amlRiskLevel
    supportingDocumentSettings {
      collectMode
      communicationLanguage
      emailContact
    }
    name
    type
    logoUri
    accentColor
    customConsentSubdomain
    oAuthClientId
    tcuDocumentUri
    tcuDocumentId
    webBankingSettings {
      canViewAccountDetails
      canViewAccountStatement
      canManageVirtualIbans
      canInitiatePaymentsToNewBeneficiaries
      canViewPaymentList
      canOrderVirtualCards
      canOrderPhysicalCards
      canViewMembers
      canAddNewMembers
    }
    status
    allowsDesktopAuthentication
  }
}
Response
{
  "data": {
    "projectInfo": {
      "cardProducts": [CardProduct],
      "activeCardSettings": CardSettings,
      "id": 4,
      "B2BMembershipIDVerification": false,
      "amlRiskLevel": "Low",
      "supportingDocumentSettings": SupportingDocumentSettings,
      "name": "xyz789",
      "type": "INDIVIDUAL",
      "logoUri": "xyz789",
      "accentColor": "xyz789",
      "customConsentSubdomain": "xyz789",
      "oAuthClientId": "abc123",
      "tcuDocumentUri": "xyz789",
      "tcuDocumentId": "abc123",
      "webBankingSettings": WebBankingSettings,
      "status": "Initiated",
      "allowsDesktopAuthentication": false
    }
  }
}

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": "abc123",
      "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
      }
      legalRepresentativeAcceptedIdentificationLevels
      legalRepresentativeRecommendedIdentificationLevel
    }
    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
    payments {
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...PaymentEdgeFragment
      }
      totalCount
    }
    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
      }
      paymentAccountType
      upgradedAt
      bankDetails
      legalDocuments {
        ...LegalDocumentConnectionFragment
      }
      balances {
        ...AccountBalancesFragment
      }
      statements {
        ...StatementConnectionFragment
      }
      transactions {
        ...TransactionConnectionFragment
      }
      invoices {
        ...InvoiceConnectionFragment
      }
      receivedDirectDebitMandates {
        ...ReceivedDirectDebitMandateConnectionFragment
      }
      standingOrders {
        ...StandingOrderConnectionFragment
      }
      fundingSources {
        ...FundingSourceConnectionFragment
      }
      merchantProfiles {
        ...MerchantProfileConnectionFragment
      }
    }
    createdBy {
      id
      accountMemberships {
        ...AccountMembershipConnectionFragment
      }
      mobilePhoneNumber
      firstName
      lastName
      allFirstNames
      birthDate
      nationalityCCA3
      idVerified
      authenticators {
        ...AuthenticatorFragment
      }
      identificationStatus
      identificationLevels {
        ...IdentificationLevelsFragment
      }
      preferredNotificationChannel
      createdAt
      updatedAt
      joinedAt
      identifications {
        ...IdentificationConnectionFragment
      }
    }
    nextExecutionDate
  }
}
Variables
{"standingOrderId": "4"}
Response
{
  "data": {
    "standingOrder": {
      "id": 4,
      "payments": PaymentConnection,
      "reference": "xyz789",
      "label": "abc123",
      "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"
    }
  }
}

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
      }
      paymentAccountType
      upgradedAt
      bankDetails
      legalDocuments {
        ...LegalDocumentConnectionFragment
      }
      balances {
        ...AccountBalancesFragment
      }
      statements {
        ...StatementConnectionFragment
      }
      transactions {
        ...TransactionConnectionFragment
      }
      invoices {
        ...InvoiceConnectionFragment
      }
      receivedDirectDebitMandates {
        ...ReceivedDirectDebitMandateConnectionFragment
      }
      standingOrders {
        ...StandingOrderConnectionFragment
      }
      fundingSources {
        ...FundingSourceConnectionFragment
      }
      merchantProfiles {
        ...MerchantProfileConnectionFragment
      }
    }
    externalReference
    executionDate
    requestedExecutionAt
    originTransactionId
    originTransaction {
      id
      reference
      paymentMethodIdentifier
      side
      type
      amount {
        ...AmountFragment
      }
      label
      statusInfo {
        ...TransactionStatusInfoFragment
      }
      paymentId
      payment {
        ...PaymentFragment
      }
      createdAt
      updatedAt
      counterparty
      bookedBalanceAfter {
        ...AmountFragment
      }
      paymentProduct
      account {
        ...AccountFragment
      }
      externalReference
      executionDate
      requestedExecutionAt
      originTransactionId
      originTransaction {
        ...TransactionFragment
      }
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "transaction": {
      "id": 4,
      "reference": "xyz789",
      "paymentMethodIdentifier": "abc123",
      "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": "abc123",
      "bookedBalanceAfter": Amount,
      "paymentProduct": "InternalCreditTransfer",
      "account": Account,
      "externalReference": "abc123",
      "executionDate": "2007-12-03T10:15:30Z",
      "requestedExecutionAt": "2007-12-03T10:15:30Z",
      "originTransactionId": "abc123",
      "originTransaction": Transaction
    }
  }
}

transactions

Description

A list of transactions of a project.

For a Project access token, this is all the transactions of the project (only available with project access token)

Response

Returns a TransactionConnection!

Arguments
Name Description
after - String When the list of elements needs to start after a element
filters - TransactionsFiltersInput When the list of elements needs to be filtered
first - Int! number of elements in the list (default value 50). Default = 50
orderBy - TransactionsOrderByInput When the list of elements needs to be sorted (default value UpdatedAt desc)

Example

Query
query Transactions(
  $after: String,
  $filters: TransactionsFiltersInput,
  $first: Int!,
  $orderBy: TransactionsOrderByInput
) {
  transactions(
    after: $after,
    filters: $filters,
    first: $first,
    orderBy: $orderBy
  ) {
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    totalCount
    edges {
      node {
        ...TransactionFragment
      }
      cursor
    }
  }
}
Variables
{
  "after": "xyz789",
  "filters": TransactionsFiltersInput,
  "first": 50,
  "orderBy": TransactionsOrderByInput
}
Response
{
  "data": {
    "transactions": {
      "pageInfo": PageInfo,
      "totalCount": 987,
      "edges": [TransactionEdge]
    }
  }
}

user

Description

Returns a User

For a Project access token : it requires a user id and returns the user for the given id For a User access token : returns the signed-in user and all of their data at Swan

( Learn more on authentication)

Response

Returns a User

Arguments
Name Description
id - String

Example

Query
query User($id: String) {
  user(id: $id) {
    id
    accountMemberships {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...AccountMembershipEdgeFragment
      }
    }
    mobilePhoneNumber
    firstName
    lastName
    allFirstNames
    birthDate
    nationalityCCA3
    idVerified
    authenticators {
      os
      brand
      model
      type
      userAgent
      acceptLanguage
    }
    identificationStatus
    identificationLevels {
      PVID
      QES
      expert
    }
    preferredNotificationChannel
    createdAt
    updatedAt
    joinedAt
    identifications {
      totalCount
      pageInfo {
        ...PageInfoFragment
      }
      edges {
        ...IdentificationEdgeFragment
      }
    }
  }
}
Variables
{"id": "abc123"}
Response
{
  "data": {
    "user": {
      "id": 4,
      "accountMemberships": AccountMembershipConnection,
      "mobilePhoneNumber": "+17895551234",
      "firstName": "abc123",
      "lastName": "xyz789",
      "allFirstNames": ["abc123"],
      "birthDate": "2007-12-03",
      "nationalityCCA3": CCA3,
      "idVerified": false,
      "authenticators": [Authenticator],
      "identificationStatus": "Uninitiated",
      "identificationLevels": IdentificationLevels,
      "preferredNotificationChannel": "Sms",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "joinedAt": "2007-12-03T10:15:30Z",
      "identifications": IdentificationConnection
    }
  }
}

users

Description

Returns the list of user that joined the project The search field allows to search in : id, phonNumber, firstName, allFirstNames, lastName

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

Response

Returns a UserConnection!

Arguments
Name Description
after - String
before - String
filters - UserFilterInput
first - Int! Default = 50
search - String @deprecated(reason: "use the search field in UserFilterInput")

Example

Query
query Users(
  $after: String,
  $before: String,
  $filters: UserFilterInput,
  $first: Int!,
  $search: String
) {
  users(
    after: $after,
    before: $before,
    filters: $filters,
    first: $first,
    search: $search
  ) {
    totalCount
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
    }
    edges {
      cursor
      node {
        ...UserFragment
      }
    }
  }
}
Variables
{
  "after": "xyz789",
  "before": "xyz789",
  "filters": UserFilterInput,
  "first": 50,
  "search": "xyz789"
}
Response
{
  "data": {
    "users": {
      "totalCount": 123,
      "pageInfo": PageInfo,
      "edges": [UserEdge]
    }
  }
}

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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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 AccountMembershipNotAllowedRejection {
      message
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on CardProductDisabledRejection {
      message
    }
    ... on CardProductSuspendedRejection {
      message
    }
    ... on EnabledCardDesignNotFoundRejection {
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on MissingMandatoryFieldRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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 AddingCardsToDifferentAccountsRejection {
      message
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on TooManyItemsRejection {
      message
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on CardProductSuspendedRejection {
      message
    }
    ... on CardProductNotApplicableToPhysicalCardsRejection {
      message
    }
    ... on CardProductDisabledRejection {
      message
    }
    ... on EnabledCardDesignNotFoundRejection {
      message
    }
    ... on MissingMandatoryFieldRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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 AddingCardsToDifferentAccountsRejection {
      message
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on TooManyItemsRejection {
      message
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on CardProductSuspendedRejection {
      message
    }
    ... on CardProductNotApplicableToPhysicalCardsRejection {
      message
    }
    ... on CardProductDisabledRejection {
      message
    }
    ... on EnabledCardDesignNotFoundRejection {
      message
    }
    ... on MissingMandatoryFieldRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on MissingMandatoryFieldRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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 {
      paymentMandate {
        ...InternalPaymentDirectDebitMandateFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on NotFoundRejection {
      id
      message
    }
    ... on DebtorAccountNotAllowedRejection {
      message
    }
    ... on DebtorAccountClosedRejection {
      message
    }
    ... on SchemeWrongRejection {
      message
    }
    ... on PaymentMandateReferenceAlreadyUsedRejection {
      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
  }
}

addReceivedInternalDirectDebitB2bMandate

Description

Allows to add a received internal 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 AddReceivedInternalDirectDebitB2bMandate($input: AddReceivedInternalDirectDebitB2bMandateInput!) {
  addReceivedInternalDirectDebitB2bMandate(input: $input) {
    ... on AddReceivedInternalDirectDebitB2bMandateSuccessPayload {
      receivedDirectDebitMandate {
        ...ReceivedDirectDebitMandateFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on PaymentMandateMandateNotFoundRejection {
      id
      message
    }
    ... on AccountHolderTypeIndividualRejection {
      message
    }
  }
}
Variables
{"input": AddReceivedInternalDirectDebitB2bMandateInput}
Response
{
  "data": {
    "addReceivedInternalDirectDebitB2bMandate": AddReceivedInternalDirectDebitB2bMandateSuccessPayload
  }
}

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
  }
}

addSepaDirectDebitPaymentMandate

Arguments
Name Description
input - AddSepaDirectDebitPaymentMandateInput!

Example

Query
mutation AddSepaDirectDebitPaymentMandate($input: AddSepaDirectDebitPaymentMandateInput!) {
  addSepaDirectDebitPaymentMandate(input: $input) {
    ... on AddSepaDirectDebitPaymentMandateSuccessPayload {
      paymentMandate {
        ...SEPAPaymentDirectDebitMandateFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on NotFoundRejection {
      id
      message
    }
    ... on DebtorAccountNotAllowedRejection {
      message
    }
    ... on DebtorAccountClosedRejection {
      message
    }
    ... on SchemeWrongRejection {
      message
    }
    ... on PaymentMandateReferenceAlreadyUsedRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
    ... on PaymentMethodNotCompatibleRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
  }
}
Variables
{"input": AddSepaDirectDebitPaymentMandateInput}
Response
{
  "data": {
    "addSepaDirectDebitPaymentMandate": AddSepaDirectDebitPaymentMandateSuccessPayload
  }
}

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
    }
    ... on MissingMandatoryFieldRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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 AddingCardsToDifferentAccountsRejection {
      message
    }
    ... on TooManyItemsRejection {
      message
    }
    ... on BadAccountStatusRejection {
      id
      message
    }
    ... on AccountMembershipNotAllowedRejection {
      message
    }
    ... on CardProductSuspendedRejection {
      message
    }
    ... on CardProductDisabledRejection {
      message
    }
    ... on EnabledCardDesignNotFoundRejection {
      message
    }
    ... on MissingMandatoryFieldRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
      }
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
      }
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
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
    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
      }
      paymentAccountType
      upgradedAt
      bankDetails
      legalDocuments {
        ...LegalDocumentConnectionFragment
      }
      balances {
        ...AccountBalancesFragment
      }
      statements {
        ...StatementConnectionFragment
      }
      transactions {
        ...TransactionConnectionFragment
      }
      invoices {
        ...InvoiceConnectionFragment
      }
      receivedDirectDebitMandates {
        ...ReceivedDirectDebitMandateConnectionFragment
      }
      standingOrders {
        ...StandingOrderConnectionFragment
      }
      fundingSources {
        ...FundingSourceConnectionFragment
      }
      merchantProfiles {
        ...MerchantProfileConnectionFragment
      }
    }
    openingBalance {
      currency
      value
    }
    closingBalance {
      currency
      value
    }
    openingDate
    closingDate
    status
    period
    totalCredits {
      currency
      value
    }
    totalDebits {
      currency
      value
    }
    fees {
      currency
      value
    }
    type {
      type
    }
    createdAt
    updatedAt
  }
}
Variables
{"input": GenerateAccountStatementInput}
Response
{
  "data": {
    "generateAccountStatement": {
      "id": 4,
      "account": Account,
      "openingBalance": Amount,
      "closingBalance": Amount,
      "openingDate": "2007-12-03T10:15:30Z",
      "closingDate": "2007-12-03T10:15:30Z",
      "status": "Available",
      "period": "Monthly",
      "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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": GenerateSupportingDocumentUploadUrlInput}
Response
{
  "data": {
    "generateSupportingDocumentUploadUrl": GenerateSupportingDocumentUploadUrlSuccessPayload
  }
}

grantConsentWithServerSignature

Description

Grant consent with a server signature

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 ServerConsentCredentialsNotValidOrOutdatedRejection {
      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
  }
}

initiateInternationalCreditTransfer

Description

COMING SOON Create an international transfer

Example

Query
mutation InitiateInternationalCreditTransfer($input: InitiateInternationalCreditTransferInput!) {
  initiateInternationalCreditTransfer(input: $input) {
    ... on InitiateInternationalCreditTransferResponseSuccessPayload {
      payment {
        ...PaymentFragment
      }
      quote {
        ...InternationalCreditTransferQuoteFragment
      }
    }
    ... on AccountNotFoundRejection {
      id
      message
    }
    ... on ForbiddenRejection {
      message
    }
    ... on InternalErrorRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": InitiateInternationalCreditTransferInput}
Response
{
  "data": {
    "initiateInternationalCreditTransfer": InitiateInternationalCreditTransferResponseSuccessPayload
  }
}

initiateMerchantPaymentCollection

Arguments
Name Description
input - InitiateMerchantPaymentCollectionInput!

Example

Query
mutation InitiateMerchantPaymentCollection($input: InitiateMerchantPaymentCollectionInput!) {
  initiateMerchantPaymentCollection(input: $input) {
    ... on InitiateMerchantPaymentCollectionSuccessPayload {
      merchantPaymentCollection {
        ...PaymentFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on NotFoundRejection {
      id
      message
    }
    ... on InternalErrorRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": InitiateMerchantPaymentCollectionInput}
Response
{
  "data": {
    "initiateMerchantPaymentCollection": InitiateMerchantPaymentCollectionSuccessPayload
  }
}

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
    }
    ... on MissingMandatoryFieldRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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}}

requestMerchantPaymentMethods

Description

Request merchant payment methods for a merchant profile

Arguments
Name Description
input - RequestMerchantPaymentMethodsInput!

Example

Query
mutation RequestMerchantPaymentMethods($input: RequestMerchantPaymentMethodsInput!) {
  requestMerchantPaymentMethods(input: $input) {
    ... on RequestMerchantPaymentMethodsSuccessPayload {
      merchantProfile {
        ...MerchantProfileFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on NotFoundRejection {
      id
      message
    }
    ... on InternalErrorRejection {
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": RequestMerchantPaymentMethodsInput}
Response
{
  "data": {
    "requestMerchantPaymentMethods": RequestMerchantPaymentMethodsSuccessPayload
  }
}

requestMerchantProfileUpdate

Description

Request an update of a MerchantProfile

Arguments
Name Description
input - RequestMerchantProfileUpdateInput!

Example

Query
mutation RequestMerchantProfileUpdate($input: RequestMerchantProfileUpdateInput!) {
  requestMerchantProfileUpdate(input: $input) {
    ... on RequestMerchantProfileUpdateSuccessPayload {
      requestMerchantProfileUpdate {
        ...RequestMerchantProfileUpdateFragment
      }
    }
    ... on ForbiddenRejection {
      message
    }
    ... on AccountNotFoundRejection {
      id
      message
    }
    ... on InternalErrorRejection {
      message
    }
  }
}
Variables
{"input": RequestMerchantProfileUpdateInput}
Response
{
  "data": {
    "requestMerchantProfileUpdate": RequestMerchantProfileUpdateSuccessPayload
  }
}

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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": ViewCardNumbersInput}
Response
{
  "data": {
    "viewCardNumbers": ViewCardNumbersSuccessPayload
  }
}

viewPhysicalCardNumbers

Description

Reveal the physical 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 ViewPhysicalCardNumbersPayload!

Arguments
Name Description
input - ViewPhysicalCardNumbersInput!

Example

Query
mutation ViewPhysicalCardNumbers($input: ViewPhysicalCardNumbersInput!) {
  viewPhysicalCardNumbers(input: $input) {
    ... on ViewPhysicalCardNumbersSuccessPayload {
      consent {
        ...ConsentFragment
      }
    }
    ... on UserNotCardHolderRejection {
      message
    }
    ... on CardNotFoundRejection {
      id
      message
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      message
    }
  }
}
Variables
{"input": ViewPhysicalCardNumbersInput}
Response
{
  "data": {
    "viewPhysicalCardNumbers": ViewPhysicalCardNumbersSuccessPayload
  }
}

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
    }
    ... on ValidationRejection {
      fields {
        ...ValidationFieldErrorFragment
      }
      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
paymentAccountType - PaymentAccountType! Type of the account : EMoney if account holder has not finished the KYC requirements, PaymentService otherwise
upgradedAt - DateTime Date of the account going from eMoney to PaymentService
bankDetails - String COMING SOON Link to the account's bank details
legalDocuments - LegalDocumentConnection COMING SOON Legal Documents linked to the account
Arguments
first - Int!
after - String
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)

invoices - InvoiceConnection A list of invoices of an account. The list is ordered by creation date (from newest to oldest)
Arguments
first - Int!

number of elements in the list (default value 10)

after - String

When the list of elements needs to start after an element

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

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

Example
{
  "id": "4",
  "number": "000000012345",
  "name": "xyz789",
  "holder": AccountHolder,
  "cashAccountType": "Current",
  "country": "FRA",
  "paymentLevel": "Limited",
  "BIC": BIC,
  "IBAN": "NL55INGB4789170233",
  "currency": "USD",
  "blockSDD": true,
  "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,
  "paymentAccountType": "EMoney",
  "upgradedAt": "2007-12-03T10:15:30Z",
  "bankDetails": "abc123",
  "legalDocuments": LegalDocumentConnection,
  "balances": AccountBalances,
  "statements": StatementConnection,
  "transactions": TransactionConnection,
  "invoices": InvoiceConnection,
  "receivedDirectDebitMandates": ReceivedDirectDebitMandateConnection,
  "standingOrders": StandingOrderConnection,
  "fundingSources": FundingSourceConnection,
  "merchantProfiles": MerchantProfileConnection
}

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": "xyz789",
  "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": "abc123",
  "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

Refers to the country of the account. It will determine the country code of the local IBAN of the account.

Available Account Country: CCA3

Values
Enum Value Description

FRA

French account with a French IBAN, starting with FR.

DEU

German account with a German IBAN, starting with DE.

ESP

Spanish account with a Spanish IBAN, starting with ES.

NLD

Dutch account with a Dutch IBAN, starting with DU. COMING SOON
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": "xyz789"
}

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
externalAccounts - ExternalAccountConnection! List of external account owned by the account holder
Arguments
first - Int!
before - String
after - String
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

fundingLimitSettings - FundingLimitSettings Funding limit settings
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,
  "externalAccounts": ExternalAccountConnection,
  "paymentMandates": PaymentMandateConnection,
  "fundingLimitSettings": FundingLimitSettings
}

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, ...).
companyRegistrationDate - Date Registration date of the company.
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": "xyz789",
  "registrationNumber": "abc123",
  "companyRegistrationDate": "2007-12-03",
  "companyType": "Association",
  "businessActivity": "AdministrativeServices",
  "businessActivityDescription": "xyz789",
  "monthlyPaymentVolume": "Between10000And50000",
  "individualUltimateBeneficialOwners": [
    IndividualUltimateBeneficialOwner
  ],
  "vatNumber": "xyz789",
  "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": 987,
  "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

firstName - String
lastName - String
birthDate - String
registrationNumber - String
Example
{
  "status": ["Enabled"],
  "types": ["Individual"],
  "verificationStatus": ["NotStarted"],
  "search": "xyz789",
  "firstName": "abc123",
  "lastName": "abc123",
  "birthDate": "abc123",
  "registrationNumber": "abc123"
}

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": "abc123",
  "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": "abc123"}

AccountHolderNotFoundRejection

Description

Rejection returned when the Account Holder was not found

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