{
  "name": "CloverConnector-Hackathon-2017",
  "version": "0.0.3",
  "summary": "Provides an api for communicating with a Clover Mini as a customer facing payment device.",
  "description": "CloverConnector provides an interface to communicate with a tethered Clover device to enable integration with Clover's customer facing payment device capabilities.\n\nNew features in 1.4 largely focused around expanding printing capabilities. The 1.4 release is also the first to support Swift 4.0.\n\nICloverConnector\n- *sale* - method to collect a final sale payment\n- *auth* - method to collect a payment that can be tip adjusted\n- *preAuth* - method to collect a payment that will not be eligible to be final until a capturePreAuth is processed on this payment\n- *tipAdjustAuth* - method to adjust the tip amount on a payment collected from an auth, or a payment that has been captured via capturePreAuth\n- *capturePreAuth* - method to make a preAuth payment eligible to be tip adjusted or finalized\n- *voidPayment* - queues a request to void a payment\n- *refundPayment* - refund a payment or partially refund a final payment\n- *manualRefund* - provide a manual refund a.k.a. naked credit\n- *cancel* - sends a cancel command to exit activities that support the cancel option\n- *closeout* - posts a closeout request to the server to closeout open payments\n- *displayPaymentReceiptOptions* - display the receipt selection screen\n- *acceptSignature* - method to accept a signature when the Clover device sends a `verifySignatureRequest`\n- *rejectSignature* - method to reject a signature when the Clover device sends a `verifySignatureRequest`\n- *vaultCard* - reads a card and retrieves a multi-pay token\n- *printText* - prints simple text *deprecated*\n- *printImage* - prints the passed in image *deprecated*\n- *printImageFromURL* - print an image references in the url *deprecated*\n- *openCashDrawer* - opens a cash drawer attached to the Clover device *deprecated*\n- *showMessage* - displays a simple message on the Clover device\n- *showWelcomeScreen* - displays the welcome screen on the Clover device\n- *showThankYouScreen* - displays the thank you screen on the Clover device\n- *showDisplayOrder* - displays the DisplayOrder passed in on the Clover device\n- *removeDisplayOrder* - clears the DisplayOrder from the DisplayOrder screen\n- *resetDevice* - requests the device exit whatever activity has been started and returns the device to Welcome. Note: Any payment in process will be voided\n- *invokeInputOption* - sends an input option to the device, which may act on behalf of the customer. Input options are passed to the POS via the onDeviceActivityStart callback\n- *readCardData* - reads a card and calls back with the card data. Financial cards will be returned encrypted\n- *acceptPayment* - method to accept a payment when the Clover device sends a `confirmPaymentRequest`\n- *rejectPayment* - method to reject a payment when the Clover device sends a `confirmPaymentRequest`\n- *retrievePendingPayments* - requests the device send any payments taken offline that haven't been processed by the server\n- *dispose* - cleans up the CloverConnector and disconnects from the Clover Mini\n- *retrievePayment* - query the device for the status of a payment on the device by its external id, callback on on\n- *retrieveDeviceStatus* - query the status of the device, callback on onRetrieveDeviceStatus\n- *startCustomActivity* - send a request to start a custom activity on the Clover device\n- *sendMessageToActivity* - send a message to a custom activity running on the Clover device\n- __NEW__\n- *print* - print the contents of the passed-in `PrintRequest` object\n- *openCashDrawer* - opens a cash drawer attached to the Clover device with a passed in `OpenCashDrawerRequest` object\n- *retrievePrinters* - request to retreive available printers\n- *retrievePrintJobStatus* - request the status of a given print job\n\nICloverConnectorListener\n- *onSaleResponse* - called at the completion of a sale request with either a payment or a cancel state\n- *onAuthResponse* - called at the completion of an auth request with either a payment or a cancel state\n- *onPreAuthResponse* - called at the completion of a preAuth request with either a payment or a cancel state\n- *onTipAdjustAuthResponse* - called at the completion ofo a tipAdjustAuth request\n- *onCapturePreAuthResponse* - called at the completion of a capturePreAuth request\n- *onRefundPaymentResponse* - called at the completion of a refund payment request\n- *onManualRefundResponse* - called at the completion of a manual refund request\n- *onVoidPaymentResponse* - called at the completion of a void payment request\n- *onCloseoutResponse* - called at the completion of a closeout request\n- *confirmPaymentRequest* - called if the Clover device needs confirmation of a payment (duplicate verification, offline verification)\n- *verifySignatureRequest* - called if the Clover device needs acceptance of a signature\n- *onRetrievePendingPaymentsResponse* - called in response to a retrieve pending payments request. Returns a list of payments not yet submitted to the server\n- *onReadCardDataResponse* - called at the completion of a read card data request. Data may come back encrypted depending on the card type and bin\n- *onCustomActivityResponse* - called at the completion of a custom activity\n- *onResetDeviceResponse* - called at the completion of a resetDevice request\n- *onMessageFromActivity* - called if the custom activity wants to send a message back to the POS, prior to finishing\n- *onRetrievePaymentResponse* - called at the completion of a retrievePayment request\n- *onRetrieveDeviceStatusResponse* - called at the completion of a retrieveDeviceStatus request\n- __NEW__\n- *onRetrievePrintersResponse* - called at the completion of a retrievePrinters request\n- *onPrintJobStatusResponse* - called at the completion of a retrievePrintJobStatus",
  "homepage": "https://docs.clover.com/build/integration-overview-requirements/",
  "license": {
    "type": "Custom",
    "file": "LICENSE"
  },
  "authors": {
    "Clover Go": "clovergodev@gmail.com"
  },
  "source": {
    "git": "https://github.com/CloverGo/remote-pay-ios-hackathon.git",
    "tag": "0.0.3"
  },
  "pod_target_xcconfig": {
    "SWIFT_VERSION": "4.0"
  },
  "platforms": {
    "ios": "9.0"
  },
  "source_files": "CloverConnector/Classes/**/*.swift",
  "xcconfig": {
    "HEADER_SEARCH_PATHS": "$(PODS_ROOT)/CLVGoSDK",
    "FRAMEWORK_SEARCH_PATHS": "$(PODS_ROOT)/CLVGoSDK/**"
  },
  "frameworks": "Foundation",
  "dependencies": {
    "ObjectMapper": [
      "3.0.0"
    ],
    "Starscream": [
      "2.1.1"
    ],
    "SwiftyJSON": [
      "3.1.4"
    ],
    "CLVGoSDK": [
      "3.0.0.7"
    ]
  },
  "pushed_with_swift_version": "4.0"
}
