Visual FoxPro Stripe: Update a Dispute

Back to Index

Submit evidence for a dispute with the given ID.

Documentation: https://stripe.com/docs/api/curl#update_dispute

CURL Command

curl -X POST https://api.stripe.com/v1/disputes/dp_1BnETJGswQrCoh0Xefx4zP2a \
   -u STRIPE_SECRET_KEY: \
   -d evidence[customer_name]="Isabella Williams" \
   -d evidence[product_description]="Comfortable cotton t-shirt" \
   -d evidence[shipping_documentation]=file_1BnEEuGswQrCoh0XqB3XkqAg

Visual FoxPro Example

LOCAL loRest
LOCAL lnSuccess
LOCAL lnBTls
LOCAL lnPort
LOCAL lnBAutoReconnect
LOCAL lcStrResponseBody
LOCAL loJsonResponse
LOCAL lcId
LOCAL lcObject
LOCAL lnAmount
LOCAL lcBalance_transaction
LOCAL lcCharge
LOCAL lnCreated
LOCAL lcCurrency
LOCAL lcEvidenceProduct_description
LOCAL lcEvidenceCustomer_name
LOCAL lnEvidenceCustomer_email_address
LOCAL lnEvidenceBilling_address
LOCAL lnEvidenceCustomer_purchase_ip
LOCAL lnEvidenceShipping_address
LOCAL lnEvidenceShipping_date
LOCAL lnEvidenceShipping_carrier
LOCAL lnEvidenceShipping_tracking_number
LOCAL lnEvidenceService_date
LOCAL lnEvidenceAccess_activity_log
LOCAL lnEvidenceDuplicate_charge_id
LOCAL lnEvidenceDuplicate_charge_explanation
LOCAL lnEvidenceRefund_policy_disclosure
LOCAL lnEvidenceRefund_refusal_explanation
LOCAL lnEvidenceCancellation_policy_disclosure
LOCAL lnEvidenceCancellation_rebuttal
LOCAL lnEvidenceUncategorized_text
LOCAL lnEvidenceCustomer_signature
LOCAL lnEvidenceReceipt
LOCAL lcEvidenceShipping_documentation
LOCAL lnEvidenceService_documentation
LOCAL lnEvidenceDuplicate_charge_documentation
LOCAL lnEvidenceRefund_policy
LOCAL lnEvidenceCancellation_policy
LOCAL lnEvidenceCustomer_communication
LOCAL lnEvidenceUncategorized_file
LOCAL lnEvidence_detailsDue_by
LOCAL lnEvidence_detailsHas_evidence
LOCAL lnEvidence_detailsPast_due
LOCAL lnEvidence_detailsSubmission_count
LOCAL lnIs_charge_refundable
LOCAL lnLivemode
LOCAL lcReason
LOCAL lcStatus
LOCAL i
LOCAL lnCount_i

loRest = CreateObject('Chilkat_9_5_0.Rest')

*  URL: https://api.stripe.com/v1/disputes/dp_1BnETJGswQrCoh0Xefx4zP2a
lnBTls = 1
lnPort = 443
lnBAutoReconnect = 1
lnSuccess = loRest.Connect("api.stripe.com",lnPort,lnBTls,lnBAutoReconnect)
IF (lnSuccess <> 1) THEN
    ? "ConnectFailReason: " + STR(loRest.ConnectFailReason)
    ? loRest.LastErrorText
    RELEASE loRest
    CANCEL
ENDIF

loRest.SetAuthBasic("STRIPE_SECRET_KEY","")

loRest.AddQueryParam("evidence[customer_name]","Isabella Williams")
loRest.AddQueryParam("evidence[product_description]","Comfortable cotton t-shirt")
loRest.AddQueryParam("evidence[shipping_documentation]","file_1BnEEuGswQrCoh0XqB3XkqAg")

lcStrResponseBody = loRest.FullRequestFormUrlEncoded("POST","/v1/disputes/dp_1BnETJGswQrCoh0Xefx4zP2a")
IF (loRest.LastMethodSuccess <> 1) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    CANCEL
ENDIF

loJsonResponse = CreateObject('Chilkat_9_5_0.JsonObject')
loJsonResponse.Load(lcStrResponseBody)

lcId = loJsonResponse.StringOf("id")
lcObject = loJsonResponse.StringOf("object")
lnAmount = loJsonResponse.IntOf("amount")
lcBalance_transaction = loJsonResponse.StringOf("balance_transaction")
lcCharge = loJsonResponse.StringOf("charge")
lnCreated = loJsonResponse.IntOf("created")
lcCurrency = loJsonResponse.StringOf("currency")
lcEvidenceProduct_description = loJsonResponse.StringOf("evidence.product_description")
lcEvidenceCustomer_name = loJsonResponse.StringOf("evidence.customer_name")
lnEvidenceCustomer_email_address = loJsonResponse.IsNullOf("evidence.customer_email_address")
lnEvidenceBilling_address = loJsonResponse.IsNullOf("evidence.billing_address")
lnEvidenceCustomer_purchase_ip = loJsonResponse.IsNullOf("evidence.customer_purchase_ip")
lnEvidenceShipping_address = loJsonResponse.IsNullOf("evidence.shipping_address")
lnEvidenceShipping_date = loJsonResponse.IsNullOf("evidence.shipping_date")
lnEvidenceShipping_carrier = loJsonResponse.IsNullOf("evidence.shipping_carrier")
lnEvidenceShipping_tracking_number = loJsonResponse.IsNullOf("evidence.shipping_tracking_number")
lnEvidenceService_date = loJsonResponse.IsNullOf("evidence.service_date")
lnEvidenceAccess_activity_log = loJsonResponse.IsNullOf("evidence.access_activity_log")
lnEvidenceDuplicate_charge_id = loJsonResponse.IsNullOf("evidence.duplicate_charge_id")
lnEvidenceDuplicate_charge_explanation = loJsonResponse.IsNullOf("evidence.duplicate_charge_explanation")
lnEvidenceRefund_policy_disclosure = loJsonResponse.IsNullOf("evidence.refund_policy_disclosure")
lnEvidenceRefund_refusal_explanation = loJsonResponse.IsNullOf("evidence.refund_refusal_explanation")
lnEvidenceCancellation_policy_disclosure = loJsonResponse.IsNullOf("evidence.cancellation_policy_disclosure")
lnEvidenceCancellation_rebuttal = loJsonResponse.IsNullOf("evidence.cancellation_rebuttal")
lnEvidenceUncategorized_text = loJsonResponse.IsNullOf("evidence.uncategorized_text")
lnEvidenceCustomer_signature = loJsonResponse.IsNullOf("evidence.customer_signature")
lnEvidenceReceipt = loJsonResponse.IsNullOf("evidence.receipt")
lcEvidenceShipping_documentation = loJsonResponse.StringOf("evidence.shipping_documentation")
lnEvidenceService_documentation = loJsonResponse.IsNullOf("evidence.service_documentation")
lnEvidenceDuplicate_charge_documentation = loJsonResponse.IsNullOf("evidence.duplicate_charge_documentation")
lnEvidenceRefund_policy = loJsonResponse.IsNullOf("evidence.refund_policy")
lnEvidenceCancellation_policy = loJsonResponse.IsNullOf("evidence.cancellation_policy")
lnEvidenceCustomer_communication = loJsonResponse.IsNullOf("evidence.customer_communication")
lnEvidenceUncategorized_file = loJsonResponse.IsNullOf("evidence.uncategorized_file")
lnEvidence_detailsDue_by = loJsonResponse.IntOf("evidence_details.due_by")
lnEvidence_detailsHas_evidence = loJsonResponse.BoolOf("evidence_details.has_evidence")
lnEvidence_detailsPast_due = loJsonResponse.BoolOf("evidence_details.past_due")
lnEvidence_detailsSubmission_count = loJsonResponse.IntOf("evidence_details.submission_count")
lnIs_charge_refundable = loJsonResponse.BoolOf("is_charge_refundable")
lnLivemode = loJsonResponse.BoolOf("livemode")
lcReason = loJsonResponse.StringOf("reason")
lcStatus = loJsonResponse.StringOf("status")
i = 0
lnCount_i = loJsonResponse.SizeOfArray("balance_transactions")
DO WHILE i < lnCount_i
    loJsonResponse.I = i
    i = i + 1
ENDDO

RELEASE loRest
RELEASE loJsonResponse

Sample JSON Response Body

{
  "id": "dp_1BnETJGswQrCoh0Xefx4zP2a",
  "object": "dispute",
  "amount": 1000,
  "balance_transaction": "txn_1BnETJGswQrCoh0XPNBs9uW2",
  "balance_transactions": [
  ],
  "charge": "ch_1BnETJGswQrCoh0XlANDK278",
  "created": 1516662781,
  "currency": "usd",
  "evidence": {
    "product_description": "Comfortable cotton t-shirt",
    "customer_name": "Isabella Williams",
    "customer_email_address": null,
    "billing_address": null,
    "customer_purchase_ip": null,
    "shipping_address": null,
    "shipping_date": null,
    "shipping_carrier": null,
    "shipping_tracking_number": null,
    "service_date": null,
    "access_activity_log": null,
    "duplicate_charge_id": null,
    "duplicate_charge_explanation": null,
    "refund_policy_disclosure": null,
    "refund_refusal_explanation": null,
    "cancellation_policy_disclosure": null,
    "cancellation_rebuttal": null,
    "uncategorized_text": null,
    "customer_signature": null,
    "receipt": null,
    "shipping_documentation": "file_1BnEEuGswQrCoh0XqB3XkqAg",
    "service_documentation": null,
    "duplicate_charge_documentation": null,
    "refund_policy": null,
    "cancellation_policy": null,
    "customer_communication": null,
    "uncategorized_file": null
  },
  "evidence_details": {
    "due_by": 1518307199,
    "has_evidence": false,
    "past_due": false,
    "submission_count": 0
  },
  "is_charge_refundable": false,
  "livemode": false,
  "metadata": {},
  "reason": "general",
  "status": "needs_response"
}