@NonNull @Override public JSONObject toJson() { JSONObject jsonObject = new JSONObject(); putStringIfNotNull(jsonObject, FIELD_ID, mId); putStringIfNotNull(jsonObject, FIELD_OBJECT, mObjectType); putArrayIfNotNull(jsonObject, FIELD_ALLOWED_SOURCE_TYPES, listToJsonArray(mAllowedSourceTypes)); putLongIfNotNull(jsonObject, FIELD_AMOUNT, mAmount); putLongIfNotNull(jsonObject, FIELD_CANCELED, mCanceledAt); putStringIfNotNull(jsonObject, FIELD_CAPTURE_METHOD, mCaptureMethod); putStringIfNotNull(jsonObject, FIELD_CLIENT_SECRET, mClientSecret); putStringIfNotNull(jsonObject, FIELD_CONFIRMATION_METHOD, mConfirmationMethod); putLongIfNotNull(jsonObject, FIELD_CREATED, mCreated); putStringIfNotNull(jsonObject, FIELD_CURRENCY, mCurrency); putStringIfNotNull(jsonObject, FIELD_DESCRIPTION, mDescription); putBooleanIfNotNull(jsonObject, FIELD_LIVEMODE, mLiveMode); putMapIfNotNull(jsonObject, FIELD_NEXT_SOURCE_ACTION, mNextSourceAction); putStringIfNotNull(jsonObject, FIELD_RECEIPT_EMAIL, mReceiptEmail); putStringIfNotNull(jsonObject, FIELD_SOURCE, mSource); putStringIfNotNull(jsonObject, FIELD_STATUS, mStatus); return jsonObject; }