Unicode C++ Stripe: Close a Dispute

Back to Index

Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially ‘dismissing’ the dispute, acknowledging it as lost

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

CURL Command

curl https://api.stripe.com/v1/disputes/dp_1BnETJGswQrCoh0Xefx4zP2a/close \
   -u STRIPE_SECRET_KEY: \
   -X POST

Unicode C++ Example

#include <CkRestW.h>
#include <CkStringBuilderW.h>
#include <CkJsonObjectW.h>

void ChilkatSample(void)
    {
    CkRestW rest;
    bool success;

    //  URL: https://api.stripe.com/v1/disputes/dp_1BnETJGswQrCoh0Xefx4zP2a/close
    bool bTls = true;
    int port = 443;
    bool bAutoReconnect = true;
    success = rest.Connect(L"api.stripe.com",port,bTls,bAutoReconnect);
    if (success != true) {
        wprintf(L"ConnectFailReason: %d\n",rest.get_ConnectFailReason());
        wprintf(L"%s\n",rest.lastErrorText());
        return;
    }

    rest.SetAuthBasic(L"STRIPE_SECRET_KEY",L"");

    CkStringBuilderW sbResponseBody;
    success = rest.FullRequestNoBodySb(L"POST",L"/v1/disputes/dp_1BnETJGswQrCoh0Xefx4zP2a/close",sbResponseBody);
    if (success != true) {
        wprintf(L"%s\n",rest.lastErrorText());
        return;
    }

    CkJsonObjectW jsonResponse;
    jsonResponse.LoadSb(sbResponseBody);

    const wchar_t *id = 0;
    const wchar_t *object = 0;
    int amount;
    const wchar_t *balance_transaction = 0;
    const wchar_t *charge = 0;
    int created;
    const wchar_t *currency = 0;
    bool evidenceAccess_activity_log;
    bool evidenceBilling_address;
    bool evidenceCancellation_policy;
    bool evidenceCancellation_policy_disclosure;
    bool evidenceCancellation_rebuttal;
    bool evidenceCustomer_communication;
    bool evidenceCustomer_email_address;
    bool evidenceCustomer_name;
    bool evidenceCustomer_purchase_ip;
    bool evidenceCustomer_signature;
    bool evidenceDuplicate_charge_documentation;
    bool evidenceDuplicate_charge_explanation;
    bool evidenceDuplicate_charge_id;
    bool evidenceProduct_description;
    bool evidenceReceipt;
    bool evidenceRefund_policy;
    bool evidenceRefund_policy_disclosure;
    bool evidenceRefund_refusal_explanation;
    bool evidenceService_date;
    bool evidenceService_documentation;
    bool evidenceShipping_address;
    bool evidenceShipping_carrier;
    bool evidenceShipping_date;
    bool evidenceShipping_documentation;
    bool evidenceShipping_tracking_number;
    bool evidenceUncategorized_file;
    bool evidenceUncategorized_text;
    int evidence_detailsDue_by;
    bool evidence_detailsHas_evidence;
    bool evidence_detailsPast_due;
    int evidence_detailsSubmission_count;
    bool is_charge_refundable;
    bool livemode;
    const wchar_t *reason = 0;
    const wchar_t *status = 0;
    int i;
    int count_i;

    id = jsonResponse.stringOf(L"id");
    object = jsonResponse.stringOf(L"object");
    amount = jsonResponse.IntOf(L"amount");
    balance_transaction = jsonResponse.stringOf(L"balance_transaction");
    charge = jsonResponse.stringOf(L"charge");
    created = jsonResponse.IntOf(L"created");
    currency = jsonResponse.stringOf(L"currency");
    evidenceAccess_activity_log = jsonResponse.IsNullOf(L"evidence.access_activity_log");
    evidenceBilling_address = jsonResponse.IsNullOf(L"evidence.billing_address");
    evidenceCancellation_policy = jsonResponse.IsNullOf(L"evidence.cancellation_policy");
    evidenceCancellation_policy_disclosure = jsonResponse.IsNullOf(L"evidence.cancellation_policy_disclosure");
    evidenceCancellation_rebuttal = jsonResponse.IsNullOf(L"evidence.cancellation_rebuttal");
    evidenceCustomer_communication = jsonResponse.IsNullOf(L"evidence.customer_communication");
    evidenceCustomer_email_address = jsonResponse.IsNullOf(L"evidence.customer_email_address");
    evidenceCustomer_name = jsonResponse.IsNullOf(L"evidence.customer_name");
    evidenceCustomer_purchase_ip = jsonResponse.IsNullOf(L"evidence.customer_purchase_ip");
    evidenceCustomer_signature = jsonResponse.IsNullOf(L"evidence.customer_signature");
    evidenceDuplicate_charge_documentation = jsonResponse.IsNullOf(L"evidence.duplicate_charge_documentation");
    evidenceDuplicate_charge_explanation = jsonResponse.IsNullOf(L"evidence.duplicate_charge_explanation");
    evidenceDuplicate_charge_id = jsonResponse.IsNullOf(L"evidence.duplicate_charge_id");
    evidenceProduct_description = jsonResponse.IsNullOf(L"evidence.product_description");
    evidenceReceipt = jsonResponse.IsNullOf(L"evidence.receipt");
    evidenceRefund_policy = jsonResponse.IsNullOf(L"evidence.refund_policy");
    evidenceRefund_policy_disclosure = jsonResponse.IsNullOf(L"evidence.refund_policy_disclosure");
    evidenceRefund_refusal_explanation = jsonResponse.IsNullOf(L"evidence.refund_refusal_explanation");
    evidenceService_date = jsonResponse.IsNullOf(L"evidence.service_date");
    evidenceService_documentation = jsonResponse.IsNullOf(L"evidence.service_documentation");
    evidenceShipping_address = jsonResponse.IsNullOf(L"evidence.shipping_address");
    evidenceShipping_carrier = jsonResponse.IsNullOf(L"evidence.shipping_carrier");
    evidenceShipping_date = jsonResponse.IsNullOf(L"evidence.shipping_date");
    evidenceShipping_documentation = jsonResponse.IsNullOf(L"evidence.shipping_documentation");
    evidenceShipping_tracking_number = jsonResponse.IsNullOf(L"evidence.shipping_tracking_number");
    evidenceUncategorized_file = jsonResponse.IsNullOf(L"evidence.uncategorized_file");
    evidenceUncategorized_text = jsonResponse.IsNullOf(L"evidence.uncategorized_text");
    evidence_detailsDue_by = jsonResponse.IntOf(L"evidence_details.due_by");
    evidence_detailsHas_evidence = jsonResponse.BoolOf(L"evidence_details.has_evidence");
    evidence_detailsPast_due = jsonResponse.BoolOf(L"evidence_details.past_due");
    evidence_detailsSubmission_count = jsonResponse.IntOf(L"evidence_details.submission_count");
    is_charge_refundable = jsonResponse.BoolOf(L"is_charge_refundable");
    livemode = jsonResponse.BoolOf(L"livemode");
    reason = jsonResponse.stringOf(L"reason");
    status = jsonResponse.stringOf(L"status");
    i = 0;
    count_i = jsonResponse.SizeOfArray(L"balance_transactions");
    while (i < count_i) {
        jsonResponse.put_I(i);
        i = i + 1;
    }
    }

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": {
    "access_activity_log": null,
    "billing_address": null,
    "cancellation_policy": null,
    "cancellation_policy_disclosure": null,
    "cancellation_rebuttal": null,
    "customer_communication": null,
    "customer_email_address": null,
    "customer_name": null,
    "customer_purchase_ip": null,
    "customer_signature": null,
    "duplicate_charge_documentation": null,
    "duplicate_charge_explanation": null,
    "duplicate_charge_id": null,
    "product_description": null,
    "receipt": null,
    "refund_policy": null,
    "refund_policy_disclosure": null,
    "refund_refusal_explanation": null,
    "service_date": null,
    "service_documentation": null,
    "shipping_address": null,
    "shipping_carrier": null,
    "shipping_date": null,
    "shipping_documentation": null,
    "shipping_tracking_number": null,
    "uncategorized_file": null,
    "uncategorized_text": 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": "lost"
}