All Release Notes
Added GraphQL mutations for Payments and MyPayments
29 May 2020
Composable Commerce
HTTP API
Enhancement
GraphQLPayments
Payments and MyPayments can now be created, updated, and deleted using the GraphQL API.
- [GraphQL API] Added the following types to the GraphQL schema:
AddMyPaymentTransaction,AddPaymentInterfaceInteraction,AddPaymentTransaction,ChangePaymentAmountPlanned,ChangePaymentTransactionInteractionId,ChangePaymentTransactionState,ChangePaymentTransactionTimestamp,MyPayment,MyPaymentDraft,MyPaymentQueryResult,MyPaymentUpdateAction,MyTransactionDraft,PaymentDraft,PaymentMethodInfoInput,PaymentStatusInput,PaymentUpdateAction,SetPaymentAmountPaid,SetPaymentAmountRefunded,SetPaymentAnonymousId,SetPaymentAuthorization,SetPaymentCustomField,SetPaymentCustomType,SetPaymentCustomer,SetPaymentExternalId,SetPaymentInterfaceId,SetPaymentKey,SetPaymentMethodInfoInterface,SetPaymentMethodInfoMethod,SetPaymentMethodInfoName,SetPaymentStatusInterfaceCode,SetPaymentStatusInterfaceText,SetStoreSupplyChannels,TransactionDraft,TransitionPaymentState. - [GraphQL API] Changed the
Metype:- Added the
paymentsfield to theMetype. - Added the
paymentfield to theMetype.
- Added the
- [GraphQL API] Changed the
StoreUpdateActiontype:- Input field
setSupplyChannelswas added toStoreUpdateActiontype
- Input field
- [GraphQL API] Changed the
CreateStoretype:- Input field
supplyChannelswas added toCreateStoretype
- Input field
- [GraphQL API] Changed the
Mutationtype:- Added the
createPaymentfield to theMutationtype. - Added the
createMyPaymentfield to theMutationtype. - Added the
updatePaymentfield to theMutationtype. - Added the
updateMyPaymentfield to theMutationtype. - Added the
deletePaymentfield to theMutationtype. - Added the
deleteMyPaymentfield to theMutationtype.
- Added the
Introduced the following changes to the GraphQL schema (in SDL format):
extend type Me {payment(id: String!): MyPaymentpayments(where: String, sort: [String!], limit: Int, offset: Int): MyPaymentQueryResult!}extend type Mutation {createMyPayment(draft: MyPaymentDraft!): MyPaymentcreatePayment(draft: PaymentDraft!): PaymentdeleteMyPayment(id: String!, version: Long!): MyPaymentdeletePayment(version: Long!, personalDataErasure: Boolean = false,"Queries with specified ID"id: String,"Queries with specified key"key: String): PaymentupdateMyPayment(id: String!, version: Long!, actions: [MyPaymentUpdateAction!]!): MyPaymentupdatePayment(version: Long!, actions: [PaymentUpdateAction!]!,"Queries with specified ID"id: String,"Queries with specified key"key: String): Payment}input AddMyPaymentTransaction {transaction: MyTransactionDraft!}input AddPaymentInterfaceInteraction {fields: [CustomFieldInput!]type: ResourceIdentifierInputtypeKey: StringtypeId: String}input AddPaymentTransaction {transaction: TransactionDraft!}input ChangePaymentAmountPlanned {amount: MoneyInput!}input ChangePaymentTransactionInteractionId {transactionId: String!interactionId: String!}input ChangePaymentTransactionState {transactionId: String!state: TransactionState!}input ChangePaymentTransactionTimestamp {transactionId: String!timestamp: DateTime!}"""My Payments endpoint provides access to payments scoped to a specific user.[documentation](https://docs.commercetools.com/http-api-projects-me-payments#mypayment)"""type MyPayment {id: String!version: Long!customerRef: Referencecustomer: CustomeranonymousId: StringpaymentMethodInfo: PaymentMethodInfo!amountPlanned: Money!transactions: [Transaction!]!custom: CustomFieldsType}input MyPaymentDraft {amountPlanned: MoneyInput!paymentMethodInfo: PaymentMethodInfoInputcustom: CustomFieldsDrafttransaction: MyTransactionDraft}type MyPaymentQueryResult {offset: Int!count: Int!total: Long!results: [MyPayment!]!}input MyPaymentUpdateAction {addTransaction: AddMyPaymentTransactionchangeAmountPlanned: ChangePaymentAmountPlannedsetCustomField: SetPaymentCustomFieldsetMethodInfoInterface: SetPaymentMethodInfoInterfacesetMethodInfoMethod: SetPaymentMethodInfoMethodsetMethodInfoName: SetPaymentMethodInfoName}input MyTransactionDraft {timestamp: DateTimetype: TransactionType!amount: MoneyInput!interactionId: String}input PaymentDraft {amountPlanned: MoneyInput!paymentMethodInfo: PaymentMethodInfoInputcustom: CustomFieldsDraftkey: Stringcustomer: ResourceIdentifierInputanonymousId: StringinterfaceId: StringpaymentStatus: PaymentStatusInputtransactions: [TransactionDraft!]interfaceInteractions: [CustomFieldsDraft!]}input PaymentMethodInfoInput {paymentInterface: Stringmethod: Stringname: [LocalizedStringItemInputType!]}input PaymentStatusInput {interfaceCode: StringinterfaceText: Stringstate: ReferenceInput}input PaymentUpdateAction {addInterfaceInteraction: AddPaymentInterfaceInteractionaddTransaction: AddPaymentTransactionchangeAmountPlanned: ChangePaymentAmountPlannedchangeTransactionInteractionId: ChangePaymentTransactionInteractionIdchangeTransactionState: ChangePaymentTransactionStatechangeTransactionTimestamp: ChangePaymentTransactionTimestampsetAmountPaid: SetPaymentAmountPaidsetAmountRefunded: SetPaymentAmountRefundedsetAnonymousId: SetPaymentAnonymousIdsetAuthorization: SetPaymentAuthorizationsetCustomField: SetPaymentCustomFieldsetCustomType: SetPaymentCustomTypesetCustomer: SetPaymentCustomersetExternalId: SetPaymentExternalIdsetInterfaceId: SetPaymentInterfaceIdsetKey: SetPaymentKeysetMethodInfoInterface: SetPaymentMethodInfoInterfacesetMethodInfoMethod: SetPaymentMethodInfoMethodsetMethodInfoName: SetPaymentMethodInfoNamesetStatusInterfaceCode: SetPaymentStatusInterfaceCodesetStatusInterfaceText: SetPaymentStatusInterfaceTexttransitionState: TransitionPaymentState}input SetPaymentAmountPaid {amount: MoneyInput}input SetPaymentAmountRefunded {amount: MoneyInput}input SetPaymentAnonymousId {anonymousId: String}input SetPaymentAuthorization {amount: MoneyInputuntil: DateTime}input SetPaymentCustomField {name: String!value: String}input SetPaymentCustomType {fields: [CustomFieldInput!]type: ResourceIdentifierInputtypeKey: StringtypeId: String}input SetPaymentCustomer {customer: ReferenceInput}input SetPaymentExternalId {externalId: String}input SetPaymentInterfaceId {interfaceId: String}input SetPaymentKey {key: String}input SetPaymentMethodInfoInterface {interface: String!}input SetPaymentMethodInfoMethod {method: String}input SetPaymentMethodInfoName {name: [LocalizedStringItemInputType!]}input SetPaymentStatusInterfaceCode {interfaceCode: String}input SetPaymentStatusInterfaceText {interfaceText: String}input SetStoreSupplyChannels {supplyChannels: [ResourceIdentifierInput!]}input TransactionDraft {timestamp: DateTimetype: TransactionType!amount: MoneyInput!interactionId: Stringstate: TransactionState}input TransitionPaymentState {state: ResourceIdentifierInput!force: Boolean = false}