GraphQL API Reference
GraphQl endpoints for payment-service!
API Endpoints
Copy # 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
Copy query Customer {
customer {
id
stripeCustomerId
defaultPaymentMethodId
email
defaultPaymentMethod {
brand
country
expirationMonth
expirationYear
lastFourDigits
}
createdAt
updatedAt
}
}
Response
Copy {
"data" : {
"customer" : {
"id" : 123.45 ,
"stripeCustomerId" : "xyz789" ,
"defaultPaymentMethodId" : "xyz789" ,
"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
Copy 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
Copy {
"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
Copy query ListCards {
listCards {
items {
brand
country
expirationMonth
expirationYear
lastFourDigits
paymentMethodId
}
total
}
}
Response
Copy {
"data" : {
"listCards" : {
"items" : [PaymentCardDataListDto] ,
"total" : 987.65
}
}
}
Queries
purchaseEvent
Description
🔒 JWT Token
Retrieve purchase event by id attached to the user
Response
Returns a PurchaseEventDto!
Arguments
Example
Query
Copy 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
Copy { "purchaseEventId" : 123.45 }
Response
Copy {
"data" : {
"purchaseEvent" : {
"id" : 987.65 ,
"invoiceItemId" : "xyz789" ,
"invoiceId" : "xyz789" ,
"amount" : "abc123" ,
"currency" : "xyz789" ,
"purchaseEventStatus" : "DRAFT" ,
"collectionContract" : "xyz789" ,
"tokenId" : "abc123" ,
"seller" : "abc123" ,
"quantity" : 987 ,
"networkName" : "ropsten" ,
"onchainTxEventStatus" : "TRANSACTION_ON_CHAIN_PENDING" ,
"priceInUSDCents" : 987 ,
"serviceFeeInUSDCents" : 987 ,
"serviceFeePercentage" : 987 ,
"messageId" : "xyz789" ,
"transactionHash" : "abc123" ,
"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
Copy 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
Copy {
"data" : {
"purchaseEventList" : {
"total" : 987.65 ,
"items" : [PurchaseEventDto]
}
}
}
Queries
sayHello
Response
Returns a String!
Example
Query
Copy query SayHello {
sayHello
}
Response
Copy { "data" : { "sayHello" : "xyz789" }}
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
Copy mutation CreateCard ($paymentMethodId: String ! ) {
createCard(paymentMethodId: $paymentMethodId) {
paymentMethodId
stripeCustomerId
customerId
cardData {
brand
country
expirationMonth
expirationYear
lastFourDigits
}
}
}
Variables
Copy { "paymentMethodId" : "abc123" }
Response
Copy {
"data" : {
"createCard" : {
"paymentMethodId" : "abc123" ,
"stripeCustomerId" : "xyz789" ,
"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
Copy 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
Copy {
"amount" : "abc123" ,
"quantity" : 123.45 ,
"tokenId" : "xyz789" ,
"collectionContract" : "xyz789" ,
"seller" : "abc123" ,
"network" : NetworkNameDto ,
"messageId" : "xyz789" ,
"ownerUri" : "abc123"
}
Response
Copy {
"data" : {
"createPurchaseEvent" : {
"id" : 123.45 ,
"invoiceItemId" : "xyz789" ,
"invoiceId" : "abc123" ,
"amount" : "abc123" ,
"currency" : "xyz789" ,
"purchaseEventStatus" : "DRAFT" ,
"collectionContract" : "abc123" ,
"tokenId" : "xyz789" ,
"seller" : "xyz789" ,
"quantity" : 987 ,
"networkName" : "ropsten" ,
"onchainTxEventStatus" : "TRANSACTION_ON_CHAIN_PENDING" ,
"priceInUSDCents" : 123 ,
"serviceFeeInUSDCents" : 987 ,
"serviceFeePercentage" : 123 ,
"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
Copy mutation DetachCard ($cardId: String ! ) {
detachCard(cardId: $cardId)
}
Variables
Response
Copy { "data" : { "detachCard" : "xyz789" }}
Mutations
getOrCreateFeeRate
Description
🔓 Public
get actual payments fee rates
Response
Returns a FeeRateDto!
Arguments
Example
Query
Copy mutation GetOrCreateFeeRate (
$network: NetworkNameDto ! ,
$ownerUri: String !
) {
getOrCreateFeeRate(
network: $network,
ownerUri: $ownerUri
) {
id
ownerUri
stripePurchaseFee
createdAt
updatedAt
}
}
Variables
Copy {
"network" : NetworkNameDto ,
"ownerUri" : "abc123"
}
Response
Copy {
"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
Copy {
"paymentMethodId" : "xyz789" ,
"stripeCustomerId" : "abc123" ,
"customerId" : 123.45 ,
"cardData" : PaymentCardDataDto
}
Types
CustomerDto
Description
CustomerDto describes a user's Stripe payment data
Fields
Example
Copy {
"id" : 123.45 ,
"stripeCustomerId" : "abc123" ,
"defaultPaymentMethodId" : "xyz789" ,
"email" : "abc123" ,
"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
Copy "2007-12-03T10:15:30Z"
Types
ExchangeQuotesDTO
Description
Quote currencies
Fields
Example
Copy { "USD" : 123.45 , "EUR" : 987.65 , "ETH" : 987.65 }
Types
ExchangeRateDto
Description
Exchange rate object
Fields
Example
Copy {
"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
Copy {
"id" : 987.65 ,
"ownerUri" : "xyz789" ,
"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
Types
GetCardsDto
Description
Returns a list of cards and their number.
Fields
Example
Copy { "items" : [PaymentCardDataListDto] , "total" : 123.45 }
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
Types
NetworkName
Values
Example
Types
NetworkNameDto
Fields
Example
Copy { "networkName" : "ropsten" }
Types
OnchainTxEventStatus
Values
Example
Copy "TRANSACTION_ON_CHAIN_PENDING"
Types
PaymentCardDataDto
Description
Basic information about a credit or debit card.
Fields
Example
Copy {
"brand" : "xyz789" ,
"country" : "xyz789" ,
"expirationMonth" : 123.45 ,
"expirationYear" : 123.45 ,
"lastFourDigits" : "abc123"
}
Types
PaymentCardDataListDto
Description
Basic information about a credit or debit card.
Fields
Example
Copy {
"brand" : "abc123" ,
"country" : "abc123" ,
"expirationMonth" : 987.65 ,
"expirationYear" : 987.65 ,
"lastFourDigits" : "xyz789" ,
"paymentMethodId" : "xyz789"
}
Types
PurchaseEventDto
Description
Purchase event object. Represent a one-time purchase of any item.
Fields
Example
Copy {
"id" : 123.45 ,
"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" : 123 ,
"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
Copy { "total" : 987.65 , "items" : [PurchaseEventDto]}
Types
PurchaseEventStatus
Values
Example
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
Documentation by Anvil SpectaQL