payment-service-api

GraphQL API Reference

GraphQl endpoints for payment-service!

API Endpoints

# devel:
https://payment-service.devel.original.works/graphql
# staging:
https://payment-service.stage.original.works/graphql
# prod:
https://payment-service.original.works/graphql

Queries

customer

Description

🔒 JWT Token

Returns the customer's record. If the user does not have a previously created customer, this endpoint creates it.

Response

Returns a CustomerDto!

Example

Query

query Customer {
  customer {
    id
    stripeCustomerId
    defaultPaymentMethodId
    email
    defaultPaymentMethod {
      brand
      country
      expirationMonth
      expirationYear
      lastFourDigits
    }
    createdAt
    updatedAt
  }
}

Response

{
  "data": {
    "customer": {
      "id": 123.45,
      "stripeCustomerId": "abc123",
      "defaultPaymentMethodId": "abc123",
      "email": "abc123",
      "defaultPaymentMethod": PaymentCardDataDto,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

Queries

exchangeRates

Description

🔓 Public

Returns exchange rates.

Response

Returns an ExchangeRateDto!

Example

Query

query ExchangeRates {
  exchangeRates {
    ETH {
      USD
      EUR
      ETH
    }
    MATIC {
      USD
      EUR
      ETH
    }
    USDC {
      USD
      EUR
      ETH
    }
    USDT {
      USD
      EUR
      ETH
    }
    BNB {
      USD
      EUR
      ETH
    }
    WETH {
      USD
      EUR
      ETH
    }
    DAI {
      USD
      EUR
      ETH
    }
    AVAX {
      USD
      EUR
      ETH
    }
    BUSD {
      USD
      EUR
      ETH
    }
    WBTC {
      USD
      EUR
      ETH
    }
    ATOM {
      USD
      EUR
      ETH
    }
    ASTR {
      USD
      EUR
      ETH
    }
    updatedAt
  }
}

Response

{
  "data": {
    "exchangeRates": {
      "ETH": ExchangeQuotesDTO,
      "MATIC": ExchangeQuotesDTO,
      "USDC": ExchangeQuotesDTO,
      "USDT": ExchangeQuotesDTO,
      "BNB": ExchangeQuotesDTO,
      "WETH": ExchangeQuotesDTO,
      "DAI": ExchangeQuotesDTO,
      "AVAX": ExchangeQuotesDTO,
      "BUSD": ExchangeQuotesDTO,
      "WBTC": ExchangeQuotesDTO,
      "ATOM": ExchangeQuotesDTO,
      "ASTR": ExchangeQuotesDTO,
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

Queries

listCards

Description

🔒 JWT Token

Returns a list of PaymentMethods(cards) attached to the customer.

Response

Returns a GetCardsDto!

Example

Query

query ListCards {
  listCards {
    items {
      brand
      country
      expirationMonth
      expirationYear
      lastFourDigits
      paymentMethodId
    }
    total
  }
}

Response

{
  "data": {
    "listCards": {
      "items": [PaymentCardDataListDto],
      "total": 123.45
    }
  }
}

Queries

purchaseEvent

Description

🔒 JWT Token

Retrieve purchase event by id attached to the user

Response

Returns a PurchaseEventDto!

Arguments

Example

Query

query PurchaseEvent($purchaseEventId: Float!) {
  purchaseEvent(purchaseEventId: $purchaseEventId) {
    id
    invoiceItemId
    invoiceId
    amount
    currency
    purchaseEventStatus
    collectionContract
    tokenId
    seller
    quantity
    networkName
    onchainTxEventStatus
    priceInUSDCents
    serviceFeeInUSDCents
    serviceFeePercentage
    messageId
    transactionHash
    createdAt
    updatedAt
  }
}

Variables

{"purchaseEventId": 987.65}

Response

{
  "data": {
    "purchaseEvent": {
      "id": 987.65,
      "invoiceItemId": "xyz789",
      "invoiceId": "xyz789",
      "amount": "xyz789",
      "currency": "abc123",
      "purchaseEventStatus": "DRAFT",
      "collectionContract": "xyz789",
      "tokenId": "xyz789",
      "seller": "xyz789",
      "quantity": 123,
      "networkName": "ropsten",
      "onchainTxEventStatus": "TRANSACTION_ON_CHAIN_PENDING",
      "priceInUSDCents": 987,
      "serviceFeeInUSDCents": 123,
      "serviceFeePercentage": 987,
      "messageId": "abc123",
      "transactionHash": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

Queries

purchaseEventList

Description

🔒 JWT Token

Returns a list of purchase events attached to the user.

Response

Returns a PurchaseEventListDto!

Example

Query

query PurchaseEventList {
  purchaseEventList {
    total
    items {
      id
      invoiceItemId
      invoiceId
      amount
      currency
      purchaseEventStatus
      collectionContract
      tokenId
      seller
      quantity
      networkName
      onchainTxEventStatus
      priceInUSDCents
      serviceFeeInUSDCents
      serviceFeePercentage
      messageId
      transactionHash
      createdAt
      updatedAt
    }
  }
}

Response

{
  "data": {
    "purchaseEventList": {
      "total": 987.65,
      "items": [PurchaseEventDto]
    }
  }
}

Queries

sayHello

Response

Returns a String!

Example

Query

query SayHello {
  sayHello
}

Response

{"data": {"sayHello": "abc123"}}

Mutations

createCard

Description

🔒 JWT Token

Saves information about the card in the database and assigns it to the user. If the user did not have a default payment method, it sets it.

Response

Returns a CreateCardDataDto!

Arguments

Example

Query

mutation CreateCard($paymentMethodId: String!) {
  createCard(paymentMethodId: $paymentMethodId) {
    paymentMethodId
    stripeCustomerId
    customerId
    cardData {
      brand
      country
      expirationMonth
      expirationYear
      lastFourDigits
    }
  }
}

Variables

{"paymentMethodId": "abc123"}

Response

{
  "data": {
    "createCard": {
      "paymentMethodId": "abc123",
      "stripeCustomerId": "abc123",
      "customerId": 987.65,
      "cardData": PaymentCardDataDto
    }
  }
}

Mutations

createPurchaseEvent

Description

🔒 JWT Token

Create purchase event. The invoice item and invoice are created automatically

Response

Returns a PurchaseEventDto!

Arguments

Example

Query

mutation CreatePurchaseEvent(
  $amount: String!,
  $quantity: Float!,
  $tokenId: String!,
  $collectionContract: String!,
  $seller: String!,
  $network: NetworkNameDto!,
  $messageId: String!,
  $ownerUri: String!
) {
  createPurchaseEvent(
    amount: $amount,
    quantity: $quantity,
    tokenId: $tokenId,
    collectionContract: $collectionContract,
    seller: $seller,
    network: $network,
    messageId: $messageId,
    ownerUri: $ownerUri
  ) {
    id
    invoiceItemId
    invoiceId
    amount
    currency
    purchaseEventStatus
    collectionContract
    tokenId
    seller
    quantity
    networkName
    onchainTxEventStatus
    priceInUSDCents
    serviceFeeInUSDCents
    serviceFeePercentage
    messageId
    transactionHash
    createdAt
    updatedAt
  }
}

Variables

{
  "amount": "abc123",
  "quantity": 123.45,
  "tokenId": "xyz789",
  "collectionContract": "abc123",
  "seller": "xyz789",
  "network": NetworkNameDto,
  "messageId": "abc123",
  "ownerUri": "xyz789"
}

Response

{
  "data": {
    "createPurchaseEvent": {
      "id": 123.45,
      "invoiceItemId": "xyz789",
      "invoiceId": "xyz789",
      "amount": "xyz789",
      "currency": "xyz789",
      "purchaseEventStatus": "DRAFT",
      "collectionContract": "abc123",
      "tokenId": "xyz789",
      "seller": "xyz789",
      "quantity": 987,
      "networkName": "ropsten",
      "onchainTxEventStatus": "TRANSACTION_ON_CHAIN_PENDING",
      "priceInUSDCents": 987,
      "serviceFeeInUSDCents": 987,
      "serviceFeePercentage": 987,
      "messageId": "xyz789",
      "transactionHash": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

Mutations

detachCard

Description

🔒 JWT Token

Detach a PaymentMethod object from a Customer

Response

Returns a String!

Arguments

Example

Query

mutation DetachCard($cardId: String!) {
  detachCard(cardId: $cardId)
}

Variables

{"cardId": "xyz789"}

Response

{"data": {"detachCard": "xyz789"}}

Mutations

getOrCreateFeeRate

Description

🔓 Public

get actual payments fee rates

Response

Returns a FeeRateDto!

Arguments

Example

Query

mutation GetOrCreateFeeRate(
  $network: NetworkNameDto!,
  $ownerUri: String!
) {
  getOrCreateFeeRate(
    network: $network,
    ownerUri: $ownerUri
  ) {
    id
    ownerUri
    stripePurchaseFee
    createdAt
    updatedAt
  }
}

Variables

{
  "network": NetworkNameDto,
  "ownerUri": "xyz789"
}

Response

{
  "data": {
    "getOrCreateFeeRate": {
      "id": 123.45,
      "ownerUri": "xyz789",
      "stripePurchaseFee": 987.65,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

Types

Boolean

Description

The Boolean scalar type represents true or false.

Types

CreateCardDataDto

Description

Data required to create the card.

Fields

Example

{
  "paymentMethodId": "abc123",
  "stripeCustomerId": "xyz789",
  "customerId": 123.45,
  "cardData": PaymentCardDataDto
}

Types

CustomerDto

Description

CustomerDto describes a user's Stripe payment data

Fields

Example

{
  "id": 123.45,
  "stripeCustomerId": "xyz789",
  "defaultPaymentMethodId": "abc123",
  "email": "xyz789",
  "defaultPaymentMethod": PaymentCardDataDto,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

Types

DateTime

Description

A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.

Example

"2007-12-03T10:15:30Z"

Types

ExchangeQuotesDTO

Description

Quote currencies

Fields

Example

{"USD": 123.45, "EUR": 987.65, "ETH": 123.45}

Types

ExchangeRateDto

Description

Exchange rate object

Fields

Example

{
  "ETH": ExchangeQuotesDTO,
  "MATIC": ExchangeQuotesDTO,
  "USDC": ExchangeQuotesDTO,
  "USDT": ExchangeQuotesDTO,
  "BNB": ExchangeQuotesDTO,
  "WETH": ExchangeQuotesDTO,
  "DAI": ExchangeQuotesDTO,
  "AVAX": ExchangeQuotesDTO,
  "BUSD": ExchangeQuotesDTO,
  "WBTC": ExchangeQuotesDTO,
  "ATOM": ExchangeQuotesDTO,
  "ASTR": ExchangeQuotesDTO,
  "updatedAt": "2007-12-03T10:15:30Z"
}

Types

FeeRateDto

Description

Payments fee rates

Fields

Example

{
  "id": 123.45,
  "ownerUri": "abc123",
  "stripePurchaseFee": 123.45,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

Types

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example

123.45

Types

GetCardsDto

Description

Returns a list of cards and their number.

Fields

Example

{"items": [PaymentCardDataListDto], "total": 987.65}

Types

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example

987

Types

NetworkName

Values

Example

"ropsten"

Types

NetworkNameDto

Fields

Example

{"networkName": "ropsten"}

Types

OnchainTxEventStatus

Values

Example

"TRANSACTION_ON_CHAIN_PENDING"

Types

PaymentCardDataDto

Description

Basic information about a credit or debit card.

Fields

Example

{
  "brand": "abc123",
  "country": "abc123",
  "expirationMonth": 123.45,
  "expirationYear": 987.65,
  "lastFourDigits": "xyz789"
}

Types

PaymentCardDataListDto

Description

Basic information about a credit or debit card.

Fields

Example

{
  "brand": "abc123",
  "country": "abc123",
  "expirationMonth": 987.65,
  "expirationYear": 987.65,
  "lastFourDigits": "abc123",
  "paymentMethodId": "xyz789"
}

Types

PurchaseEventDto

Description

Purchase event object. Represent a one-time purchase of any item.

Fields

Example

{
  "id": 987.65,
  "invoiceItemId": "xyz789",
  "invoiceId": "abc123",
  "amount": "xyz789",
  "currency": "abc123",
  "purchaseEventStatus": "DRAFT",
  "collectionContract": "xyz789",
  "tokenId": "abc123",
  "seller": "abc123",
  "quantity": 987,
  "networkName": "ropsten",
  "onchainTxEventStatus": "TRANSACTION_ON_CHAIN_PENDING",
  "priceInUSDCents": 987,
  "serviceFeeInUSDCents": 987,
  "serviceFeePercentage": 987,
  "messageId": "abc123",
  "transactionHash": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

Types

PurchaseEventListDto

Description

List of purchase events attached to the user.

Fields

Example

{"total": 123.45, "items": [PurchaseEventDto]}

Types

PurchaseEventStatus

Values

Example

"DRAFT"

Types

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example

"xyz789"

Documentation by Anvil SpectaQL

Last updated